nature-sim/Entities/GroundTile/ground_tile.gd
Dan Baker ea5006e8a2 Improves tree and ground tile appearance
Refactors tree spawning and rendering:
- Adds seasonal color variations for trees via scripts.
- Introduces `ColorStorage` to manage tree and grass colors
- Removes unused code from tree spawning logic.
- Adjusts ground tile color for better visual appeal.
- Hides debug text on ground tiles.
2025-06-28 17:21:50 +01:00

49 lines
1.2 KiB
GDScript

class_name GroundTile
extends Node3D
@onready var debug_text: Label = $DebugText/DebugTextViewport/DebugTextLabel
@onready var tree_spawner = $Trees
@onready var grass_spawner = $Grass
var grid_x: int
var grid_z: int
var cell_info: CellDataResource = null
var spawners_ready: bool = false
var cached_rng: RandomClass = null
# 326432 229379
# Grass - 1a7761 1f6051
func _ready() -> void:
spawners_ready = true
if cell_info != null:
spawn_content()
update_text_label()
func get_rng() -> RandomClass:
if cached_rng == null and cell_info:
cached_rng = RandomClass.get_seeded_instance(cell_info.cell_seed)
elif cached_rng == null:
cached_rng = RandomClass.get_shared_instance()
return cached_rng
func set_grid_location(x, z) -> void:
grid_x = x
grid_z = z
cell_info = MapData.get_map_data(grid_x, grid_z)
# Only spawn if spawners are ready
if spawners_ready and cell_info != null:
spawn_content()
func spawn_content():
if cell_info == null:
return
if tree_spawner:
tree_spawner.spawn_trees_for_cell(cell_info)
if grass_spawner:
grass_spawner.spawn_grass_for_cell(cell_info)
func update_text_label() -> void:
debug_text.text = str(cell_info.vegetation_density)