You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

89 lines
2.2 KiB

"""
Configuration settings for the Isometric Terrain Generator
"""
# Window settings
WINDOW_WIDTH = 1200
WINDOW_HEIGHT = 800
WINDOW_TITLE = "Isometric Terrain - RollerCoaster Tycoon Style"
FPS = 60
# Terrain generation settings
TERRAIN = {
'grid_size': 20, # 20x20 matrix
'tile_size': 1, # 1 tile per grid cell (so 20x20 tiles total)
'tile_width': 30.0, # 30px tile width
'tile_depth': 30.0, # 30px tile depth
# Perlin noise parameters
'noise_scale': 8.0, # Smaller scale = more variation in small area
'noise_octaves': 4,
'noise_persistence': 0.6, # Higher = more detail from higher octaves
'noise_lacunarity': 2.5, # Higher = more frequency increase per octave
'noise_repeat_x': 1024,
'noise_repeat_y': 1024,
'noise_base': 42,
# Height scaling
'height_multiplier': 80.0, # Multiplier for height variation
'enable_smoothing': False, # Set to True for gentler terrain
'smoothing_kernel_size': 3,
}
# Camera settings
CAMERA = {
'initial_distance': 800.0,
'initial_height': 450.0,
'initial_angle': 45.0,
# Movement settings
'zoom_speed': 10.0,
'height_speed': 5.0,
'min_distance': 200.0,
'max_distance': 2000.0,
# Perspective settings
'fov': 45, # Field of view
'near_clip': 0.1,
'far_clip': 5000.0,
}
# Rendering settings
RENDERING = {
'background_color': (0.53, 0.81, 0.92, 1.0), # Sky blue
# Grid/wireframe settings
'grid_line_width': 5.0,
'grid_line_color': (0.0, 0.0, 0.0),
# Lighting settings
'light_position': [1.0, 1.0, 1.0, 0.0],
'light_ambient': [0.4, 0.4, 0.4, 1.0],
'light_diffuse': [0.8, 0.8, 0.8, 1.0],
# Shading multipliers for side faces
'side_face_shading': 0.7,
'back_face_shading': 0.8,
}
# Biome colors (RCT style)
BIOME_COLORS = {
'water': (0.2, 0.4, 0.8),
'sand': (0.76, 0.7, 0.5),
'grass_low': (0.2, 0.5, 0.2),
'grass_mid': (0.25, 0.6, 0.25),
'grass_high': (0.3, 0.65, 0.3),
'rock': (0.5, 0.5, 0.5),
'snow': (0.9, 0.9, 0.95)
}
# Height thresholds for biomes
BIOME_THRESHOLDS = {
'water': 10.0,
'sand': 20.0,
'grass_low': 30.0,
'grass_mid': 45.0,
'grass_high': 60.0,
'rock': 70.0,
# snow is everything above rock
}