seeding-planets/entities/player/inventory/scripts/items/blueprint.gd

43 lines
1020 B
GDScript

extends Item
class_name Blueprint
@export var machine_type: MachineType
@export var machine_level: int = 1
func _init(_machine_type : MachineType = null, _machine_level : int = 1):
machine_type = _machine_type
machine_level = _machine_level
func get_item_name() -> String:
if machine_type:
return machine_type.name
return ""
func get_description() -> String:
if machine_type:
return machine_type.description
return ""
func get_icon() -> Texture2D:
return preload("res://common/icons/cube-3d-sphere.svg")
func use_text() -> String:
if machine_type:
return "Build " + machine_type.name
return ""
func is_one_time_use():
return true
func can_use(player : Player, _zone : Player.ActionZone) -> bool:
return player.terrain is Planet
func use(player : Player, zone : Player.ActionZone) -> bool:
if machine_type and machine_level and player.planet:
player.planet.add_entity(
Machine.instantiate_machine(machine_type, machine_level),
zone.get_global_position()
)
return true
return false