Basic character, trait and preference resources
This commit is contained in:
45
scenes/character/character.gd
Normal file
45
scenes/character/character.gd
Normal file
@@ -0,0 +1,45 @@
|
||||
@tool
|
||||
extends Node2D
|
||||
class_name Character
|
||||
|
||||
@export var chara_resource: CharacterResource:
|
||||
set(new_resource):
|
||||
chara_resource = new_resource
|
||||
_on_chara_resource_changed()
|
||||
# Connect the changed signal as soon as a new resource is being added.
|
||||
if chara_resource != null:
|
||||
chara_resource.changed.connect(_on_chara_resource_changed)
|
||||
|
||||
@onready var face: Sprite2D = $Face
|
||||
@onready var mask_eyes: Mask = $MaskEyes
|
||||
@onready var mask_mouth: Mask = $MaskMouth
|
||||
|
||||
var mask_eyes_location: Vector2
|
||||
var mask_mouth_location: Vector2
|
||||
|
||||
func _on_chara_resource_changed() -> void:
|
||||
face.texture = chara_resource.chara_sprite
|
||||
mask_eyes_location = chara_resource.mask_eyes_location
|
||||
mask_mouth_location = chara_resource.mask_mouth_location
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
if Engine.is_editor_hint():
|
||||
_engine_process(delta)
|
||||
else:
|
||||
_game_process(delta)
|
||||
|
||||
|
||||
func _game_process(delta: float) -> void:
|
||||
pass
|
||||
|
||||
|
||||
func _engine_process(delta: float) -> void:
|
||||
mask_eyes.position = mask_eyes_location
|
||||
mask_mouth.position = mask_mouth_location
|
||||
Reference in New Issue
Block a user