# 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 = 50 GRID_HEIGHT = 50 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 # Unified Panel Styling System (based on tree widget design) PANEL_BACKGROUND_COLOR = (30, 30, 40) # Dark blue-gray background PANEL_SELECTED_COLOR = (50, 100, 150) # Blue highlight for selected elements PANEL_HOVER_COLOR = (60, 60, 80) # Dark blue highlight for interactive elements PANEL_TEXT_COLOR = (200, 200, 200) # Light gray text PANEL_ICON_COLOR = (150, 150, 150) # Medium gray icons PANEL_BORDER_COLOR = (220, 220, 220) # Light gray borders/dividers # Panel spacing and dimensions PANEL_DIVIDER_WIDTH = 0 # No divider lines between panels PANEL_BORDER_WIDTH = 2 # Border width for emphasis elements PANEL_INTERNAL_PADDING = 8 # Standard padding inside panels PANEL_TIGHT_SPACING = 4 # Tight spacing between components PANEL_NODE_HEIGHT = 20 # Height for list/grid items PANEL_INDENTATION = 20 # Indentation per hierarchy level # 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"), ]