diff --git a/ settings.py b/ settings.py index e69de29..8e8dba9 100644 --- a/ settings.py +++ b/ settings.py @@ -0,0 +1,143 @@ +# ========================================== +# WINDOW / DISPLAY SETTINGS +# ========================================== + +SCREEN_WIDTH = 1280 +SCREEN_HEIGHT = 720 +FPS = 60 +VSYNC = True + +GAME_TITLE = "Terraria Clone" + +BACKGROUND_COLOR = (135, 206, 235) # Sky blue + + +# ========================================== +# TILE SETTINGS +# ========================================== + +TILE_SIZE = 32 +CHUNK_SIZE = 16 # 16x16 tiles per chunk +RENDER_DISTANCE = 3 # how many chunks visible around player + +# Tile IDs +AIR = 0 +DIRT = 1 +GRASS = 2 +STONE = 3 + +# Tile properties +TILE_PROPERTIES = { + AIR: {"solid": False, "color": (0, 0, 0)}, + DIRT: {"solid": True, "color": (139, 69, 19)}, + GRASS: {"solid": True, "color": (34, 177, 76)}, + STONE: {"solid": True, "color": (100, 100, 100)}, +} + + +# ========================================== +# WORLD GENERATION +# ========================================== + +WORLD_WIDTH = 200 # in tiles +WORLD_HEIGHT = 100 # in tiles + +SEED = 42 + +SURFACE_LEVEL = 40 +CAVE_THRESHOLD = 0.4 +ORE_THRESHOLD = 0.75 + +NOISE_SCALE = 0.05 +OCTAVES = 4 + + +# ========================================== +# PLAYER SETTINGS +# ========================================== + +PLAYER_WIDTH = 28 +PLAYER_HEIGHT = 48 + +PLAYER_SPEED = 250 +PLAYER_ACCELERATION = 2000 +PLAYER_FRICTION = -0.15 + +GRAVITY = 1500 +MAX_FALL_SPEED = 1000 + +JUMP_FORCE = -500 +DOUBLE_JUMP = False + +MAX_HEALTH = 100 + + +# ========================================== +# CAMERA SETTINGS +# ========================================== + +CAMERA_SMOOTHING = 0.1 +CAMERA_OFFSET_Y = -100 + + +# ========================================== +# INVENTORY SETTINGS +# ========================================== + +INVENTORY_SIZE = 40 +HOTBAR_SIZE = 10 +STACK_LIMIT = 999 + +INVENTORY_SLOT_SIZE = 40 +INVENTORY_PADDING = 4 + + +# ========================================== +# BLOCK BREAKING / PLACING +# ========================================== + +BREAK_RANGE = 5 # tiles +BREAK_TIME = { + DIRT: 0.3, + GRASS: 0.3, + STONE: 0.8 +} + +PLACE_RANGE = 5 + + +# ========================================== +# ENEMY SETTINGS +# ========================================== + +MAX_ENEMIES = 10 +ENEMY_SPAWN_RATE = 5 # seconds +ENEMY_SPEED = 100 +ENEMY_DAMAGE = 10 +ENEMY_HEALTH = 50 + + +# ========================================== +# PHYSICS SETTINGS +# ========================================== + +TERMINAL_VELOCITY = 1200 +COLLISION_STEPS = 4 + + +# ========================================== +# LIGHTING (for future use) +# ========================================== + +ENABLE_LIGHTING = False +LIGHT_RADIUS = 5 + + +# ========================================== +# DEBUG SETTINGS +# ========================================== + +DEBUG_MODE = True +SHOW_FPS = True +SHOW_COLLIDERS = False +SHOW_CHUNK_BORDERS = False