85 lines
2.1 KiB
GDScript
85 lines
2.1 KiB
GDScript
extends Node2D
|
|
|
|
class_name Unit
|
|
|
|
var _spawnPosition: Vector2
|
|
|
|
### Marker
|
|
# For now the marker will be spawned and deleted by the unit.
|
|
# Later it will be handled by the main scene.
|
|
# Load marker scene.
|
|
# var marker_scene: PackedScene = preload("res://Scenes/Unit/marker.tscn")
|
|
# var marker
|
|
## WE NOW USE A SIMPLE SPRITE2D FOR THE MARKER
|
|
|
|
|
|
@onready var _readyToSelectMarker: Sprite2D = $ReadyToSelectMarker
|
|
@onready var _selectedMarker: Sprite2D = $SelectedMarker
|
|
#@onready var _movingMarker: Sprite2D = $MovingMarker
|
|
|
|
var _readyToSelect: bool = false
|
|
var _selected: bool = false
|
|
#var _moving: bool = false
|
|
|
|
var TargetPosition: Vector2
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
# marker = marker_scene.instantiate()
|
|
# marker.hide()
|
|
global_position = _spawnPosition
|
|
|
|
_readyToSelectMarker.hide()
|
|
_selectedMarker.hide()
|
|
# _movingMarker.hide()
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
pass
|
|
|
|
func _input(event: InputEvent):
|
|
if event.is_action_pressed("Select"):
|
|
print_debug("Action is Select")
|
|
|
|
# We combine it with the fact that it is already marked (@see _markUnit)
|
|
if _readyToSelect: _selectUnit()
|
|
else: _deselectUnit()
|
|
|
|
|
|
# if event.is_action_pressed("SetMarker"):
|
|
# print("Action is SetMarker")
|
|
# if _selected:
|
|
# print("Setting marker to ", event.position)
|
|
# #marker.global_position = event.position
|
|
## marker.show()
|
|
## _movingMarker.position = get_global_mouse_position()
|
|
## _movingMarker.show()
|
|
|
|
func _getUnitPosition():
|
|
return $AnimatedSprite2D.global_position
|
|
|
|
func _setSelected(selected: bool):
|
|
_selected = selected
|
|
|
|
func _selectUnit():
|
|
_setSelected(true)
|
|
_selectedMarker.show()
|
|
|
|
func _deselectUnit():
|
|
_setSelected(false)
|
|
_selectedMarker.hide()
|
|
|
|
func _gets_selected(viewport: Node, event: InputEvent, shape_index: int):
|
|
if event.is_action_pressed("Select") and event.position == position:
|
|
_selectUnit()
|
|
|
|
func _markUnit():
|
|
_readyToSelect = true
|
|
_readyToSelectMarker.show()
|
|
|
|
func _unMarkUnit():
|
|
_readyToSelect = false
|
|
_readyToSelectMarker.hide()
|
|
|
|
func moveToTarget():
|
|
|