Projectdd/ settings.py

174 lines
3.5 KiB
Python

# ==========================================
# 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
# Tiles
AIR = 0
DIRT = 1
GRASS = 2
STONE = 3
WOOD = 4
LEAVES = 5
IRON_ORE = 6
GOLD_ORE = 7
COPPER_ORE = 8
COAL_ORE = 9
# Items
ITEM_WOOD = 100
ITEM_STONE = 101
ITEM_IRON = 102
ITEM_GOLD = 103
ITEM_COPPER = 104
ITEM_COAL = 105
# Tile properties
TILE_PROPERTIES = {
AIR: {"solid": False, "color": (0, 0, 0), "drop": None},
DIRT: {"solid": True, "color": (139, 69, 19), "drop": ITEM_STONE},
GRASS: {"solid": True, "color": (34, 177, 76), "drop": ITEM_STONE},
STONE: {"solid": True, "color": (100, 100, 100), "drop": ITEM_STONE},
WOOD: {"solid": True, "color": (160, 82, 45), "drop": ITEM_WOOD},
LEAVES: {"solid": False, "color": (34, 139, 34), "drop": None},
# ORES
IRON_ORE: {"solid": True, "color": (180, 180, 180), "drop": ITEM_IRON},
GOLD_ORE: {"solid": True, "color": (255, 215, 0), "drop": ITEM_GOLD},
COPPER_ORE: {"solid": True, "color": (210, 120, 60), "drop": ITEM_COPPER},
COAL_ORE: {"solid": True, "color": (40, 40, 40), "drop": ITEM_COAL},
}
# ==========================================
# 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,
WOOD: 0.5,
IRON_ORE: 1.2,
GOLD_ORE: 1.5,
COPPER_ORE: 1.0,
COAL_ORE: 0.9,
}
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