StarClone/scripts/plant_crops.gd

49 lines
1.1 KiB
GDScript3
Raw Permalink Normal View History

2024-08-14 20:28:46 -04:00
extends Area2D
@export var crop_type: String
var growth_time: float
var stages: int
var sprite_paths: Array
var current_stage: int = 0
var timer: Timer
# Load crop configurations
var crop_config = load("res://data/crop_config.json").get_data()
# Called when the node is added to the scene
func _ready():
if crop_type in crop_config:
growth_time = crop_config[crop_type]["growth_time"]
stages = crop_config[crop_type]["stages"]
sprite_paths = crop_config[crop_type]["sprite_paths"]
else:
print("Unknown crop type: ", crop_type)
return
timer = Timer.new()
timer.one_shot = true
timer.timeout.connect(_on_timer_timeout)
add_child(timer)
start_growing()
# Start the growth process
func start_growing():
if current_stage < stages:
timer.start(growth_time / stages)
# Called when the timer times out
func _on_timer_timeout():
current_stage += 1
update_crop_stage()
if current_stage < stages:
start_growing()
# Update the crop's visual representation for the current stage
func update_crop_stage():
if current_stage - 1 < sprite_paths.size():
var sprite = $Sprite
sprite.texture = load(sprite_paths[current_stage - 1])