TowerGame/objects/units/citizen.gd

25 lines
704 B
GDScript

@tool
extends Unit
class_name Citizen
@onready var body: Sprite3D = $Body
@onready var hands: Sprite3D = $Body/Hands
func _process(delta: float) -> void:
super(delta)
var camera: Camera3D
if Engine.is_editor_hint():
camera = EditorInterface.get_editor_viewport_3d(0).get_camera_3d()
else:
camera = get_viewport().get_camera_3d()
var facing_direction: Vector3 = -global_basis.z
var camera_local_facing: Vector3 = facing_direction * camera.global_basis
var facing_away: bool = camera_local_facing.z < 0
var facing_right: bool = camera_local_facing.x > 0
body.frame = 1 if facing_away else 0
hands.frame = 1 if facing_away else 0
body.flip_h = facing_right
hands.flip_h = facing_right