# config/constants.py """Configuration constants for the simulation.""" # Screen settings SCREEN_WIDTH = 1920 SCREEN_HEIGHT = 1080 # 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 = 100 GRID_HEIGHT = 100 CELL_SIZE = 20 RENDER_BUFFER = 50 # Performance settings DEFAULT_TPS = 40 MAX_FPS = 180 TURBO_MULTIPLIER = 8 # 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 FOOD_OBJECTS_COUNT = 500 RANDOM_SEED = 0 # Vector visualization settings ACCELERATION_SCALE = 100 VELOCITY_SCALE = 50 ANGULAR_ACCELERATION_SCALE = 50 ARROW_TIP_SIZE = 5 ANGULAR_TIP_SIZE = 2.5 DIRECTION_TIP_SIZE = 3 # Cell physics settings MAX_ACCELERATION = 0.125 MAX_ANGULAR_ACCELERATION = 0.25 MAX_VELOCITY = 1 MAX_ROTATIONAL_VELOCITY = 3 # degrees per tick 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"), ]