PlayerSprite.gd 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. class_name PlayerSprite
  2. extends AnimatedSprite2D
  3. @export var player_id := 0
  4. @export var force_power_state := ""
  5. @export var force_character := ""
  6. var character := ""
  7. @export var resource_setter: ResourceSetterNew
  8. func _ready() -> void:
  9. Global.player_characters_changed.connect(update)
  10. Global.level_theme_changed.connect(update)
  11. update()
  12. func update() -> void:
  13. character = Player.CHARACTERS[int(Global.player_characters[player_id])]
  14. var power_state = Global.player_power_states[player_id]
  15. if force_power_state != "":
  16. power_state = force_power_state
  17. if force_character != "":
  18. character = force_character
  19. if resource_setter != null:
  20. var path = "res://Assets/Sprites/Players/" + character + "/" + Player.POWER_STATES[int(power_state)] + ".json"
  21. if Player.CHARACTERS.find(character) > 3:
  22. path = path.replace("res://Assets/Sprites/Players/", "user://custom_characters/")
  23. var json = resource_setter.get_resource(load(path))
  24. sprite_frames = json
  25. if sprite_frames == null:
  26. return
  27. if sprite_frames.get_frame_texture(animation, frame):
  28. offset.y = -(sprite_frames.get_frame_texture(animation, frame).get_height() / 2.0)