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 const BUILD_GHOST = 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) func _on_insect_tile_moved(tile: InsectTile, to: Vector4i) -> void: queue_free() func _on_insect_placed(resource: TileResource, is_black: bool, pos: Vector4i) -> void: queue_free() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): if Input.is_action_just_pressed("place_tile"): 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_entered(): hovered = true tile = BUILD_GHOST.instantiate() tile.resource = insect_resource tile.is_black = is_black tile.map_reference = map_reference add_child(tile) func _on_input_event(camera, event, position, normal, shape_idx): pass # Replace with function body. func _on_mouse_exited(): hovered = false if tile: tile.queue_free() tile = null