extends Area3D var hovered: bool = false var coordinates: Vector4i var insect_resource: TileResource var is_black: bool = false var insect_tile: InsectTile var tile: Node3D var is_moving: bool = false var map_reference: HexGrid var is_active: bool = true const BUILD_GHOST: PackedScene = preload("res://InsectTiles/BuildGhost.tscn") # Called when the node enters the scene tree for the first time. func _ready(): if insect_resource == null: #print("Should not happen!") return if is_moving: GameEvents.insect_tile_moved.connect(_on_insect_tile_moved) else: GameEvents.insect_placed.connect(_on_insect_placed) tile = BUILD_GHOST.instantiate() tile.resource = insect_resource tile.is_black = is_black tile.map_reference = map_reference add_child(tile) tile.visible = false func _on_insect_tile_moved(tile: InsectTile, to: Vector4i) -> void: is_active = false queue_free() func _on_insect_placed(resource: TileResource, is_black: bool, pos: Vector4i) -> void: is_active = false queue_free() # Called every frame. 'delta' is the elapsed time since the previous frame. #func _process(delta): func _on_mouse_entered(): hovered = true tile.visible = true func _on_input_event(camera, event, position, normal, shape_idx): if Input.is_action_just_pressed("place_tile") and is_active: if hovered: if is_moving: GameEvents.insect_tile_moved.emit(insect_tile, coordinates) else: GameEvents.insect_placed.emit(insect_resource, is_black, coordinates) func _on_mouse_exited(): hovered = false tile.visible = false #if tile: #tile.queue_free() #tile = null