25 lines
704 B
GDScript
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
|