extends Node @export var grid: Resource @onready var _Map: Node = $Map @onready var _Camera = $CameraController # Units var _UnitScene = preload("res://Scenes/Unit/unit.tscn") var _Units: Array[Unit] = [] # MovingMarker var _MovingMarkerScene = preload("res://Scenes/Unit/marker.tscn") var _MovingMarker: Node2D = _MovingMarkerScene.instantiate() #@export var mapSize: int = 15 @onready var UnitCamera: SmartCamera2D = $SmartCamera2D @onready var GroundLayer: TileMapLayer = $Map/Ground # Called when the node enters the scene tree for the first time. func _ready() -> void: # add_child(_MovingMarker) # _MovingMarker.hide() # # create unit at local position (50, 50) => eg mouse position _createUnit(GroundLayer.local_to_map(Vector2i(50, 50))) # create unit at map position (50, 50) => tile x = 50, y = 50 in the map _createUnit(GroundLayer.map_to_local(Vector2i(50,50))) for unit in _Units: add_child(unit) # $CameraController.position = get_viewport().get_camera_2d().get_screen_center_position() var firstUnit: Node2D = _Units[0] # if firstUnit.is_node_ready(): # UnitCamera.target = _Units[0].get_path_to(get_parent()) # UnitCamera.target_node = _Units[0] pass # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func _createUnit(pos: Vector2i): var newUnit = _UnitScene.instantiate() newUnit.set("_spawnPosition", pos) _Units.append(newUnit as Unit) func _input(event: InputEvent) -> void: if event.is_action_pressed("SetMarker"): print("Action is SetMarker") # _MovingMarker.global_position = _getMousePosition(event).position _MovingMarker.position = GroundLayer.local_to_map(event.position) _MovingMarker.show() func _getScreenCenter(): return get_viewport().get_camera_2d().get_screen_center_position() func _getMousePosition(event: InputEvent): return get_viewport().get_camera_2d().make_input_local(event)