144 lines
2.7 KiB
Python
144 lines
2.7 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
|
|
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
|