47 lines
1.0 KiB
GDScript3
Raw Normal View History

class_name Tile extends Node2D
2026-04-13 11:34:00 -05:00
@warning_ignore("unused_signal")
2026-04-13 11:34:00 -05:00
signal tile_selected(tile: Tile)
@export var coords: Vector2i
@export var cost: int = 0
@export var day_placed: int = 0
@export var player: Player:
set = _set_player
2026-04-13 11:34:00 -05:00
var highlighted: bool = false
var is_placing: bool = false
2026-04-13 11:34:00 -05:00
2026-04-13 11:34:00 -05:00
func handle_mouse_entered() -> void:
highlighted = true
2026-04-13 11:34:00 -05:00
func handle_mouse_exited() -> void:
highlighted = false
func _set_player(value: Player) -> void:
player = value
func serialize() -> Dictionary:
var result = {}
result["scene_file_path"] = scene_file_path
result["coords"] = coords
result["cost"] = cost
result["day_placed"] = day_placed
if player != null:
result["player"] = player.serialize()
return result
static func deserialize(data: Dictionary) -> Tile:
var tile: Tile = load(data["scene_file_path"]).instantiate()
tile.coords = data["coords"]
tile.cost = data["cost"]
tile.day_placed = data["day_placed"]
if data.get("player") != null:
tile.player = Player.deserialize(data["player"])
return tile