# config/constants.py """Configuration constants for the simulation.""" # Screen settings SCREEN_WIDTH = 1920 // 2 SCREEN_HEIGHT = 1080 // 2 # Colors BLACK = (0, 0, 0) DARK_GRAY = (64, 64, 64) GRAY = (128, 128, 128) WHITE = (255, 255, 255) RED = (255, 0, 0) BLUE = (0, 0, 255) GREEN = (0, 255, 0) LIGHT_BLUE = (52, 134, 235) SELECTION_BLUE = (0, 128, 255) SELECTION_GRAY = (128, 128, 128, 80) SELECTION_BORDER = (80, 80, 90) # Grid settings GRID_WIDTH = 30 GRID_HEIGHT = 25 CELL_SIZE = 20 RENDER_BUFFER = 50 # Performance settings DEFAULT_TPS = 20 MAX_FPS = 180 TURBO_MULTIPLIER = 4 # Camera settings DEFAULT_CAMERA_SPEED = 700 CAMERA_SPEED_INCREMENT = 350 MIN_CAMERA_SPEED = 350 MAX_CAMERA_SPEED = 2100 # UI settings FONT_SIZE = 16 LEGEND_FONT_SIZE = 14 HUD_MARGIN = 10 LINE_HEIGHT = 20 SELECTION_THRESHOLD = 3 # pixels # Simulation settings FOOD_SPAWNING = True RANDOM_SEED = 0 # Vector visualization settings ACCELERATION_SCALE = 1000 VELOCITY_SCALE = 50 ANGULAR_ACCELERATION_SCALE = 50 ARROW_TIP_SIZE = 5 ANGULAR_TIP_SIZE = 2.5 DIRECTION_TIP_SIZE = 3 KEYMAP_LEGEND = [ ("WASD", "Move camera"), ("Mouse wheel", "Zoom in/out"), ("Middle mouse", "Pan camera"), ("R", "Reset camera"), ("G", "Toggle grid"), ("I", "Toggle interaction radius"), ("ESC", "Deselect/Exit"), ("Left click", "Select object(s)"), ("Drag select", "Select multiple objects"), ("Click on object", "Select closest object in range"), ("Up/Down", "Increase/Decrease camera speed"), ("Shift", "Double TPS (for testing)"), ("L", "Toggle this legend"), ("Space", "Pause/Resume simulation"), ]