RaceData.gd 1.1 KB

1234567891011121314151617181920212223242526272829
  1. extends Node
  2. class_name RaceData
  3. @export var _name : String = "Unknown"
  4. @export var _faces : Array[String] = []
  5. @export var _bodies : Array[String] = []
  6. @export var _skins : Dictionary[int, FileData] = {}
  7. func _init():
  8. _faces.resize(ActorCommons.Gender.COUNT)
  9. _bodies.resize(ActorCommons.Gender.COUNT)
  10. static func Create(key : String, result : Dictionary) -> RaceData:
  11. var data : RaceData = RaceData.new()
  12. data._name = key
  13. if "Bodies" in result and result.Bodies is Dictionary:
  14. for gender in ActorCommons.Gender.COUNT:
  15. data._bodies[gender] = result.Bodies.get(ActorCommons.GetGenderName(gender), "")
  16. if "Faces" in result and result.Faces is Dictionary:
  17. for gender in ActorCommons.Gender.COUNT:
  18. data._faces[gender] = result.Faces.get(ActorCommons.GetGenderName(gender), "")
  19. if "Skins" in result and result.Skins is Dictionary:
  20. for skin in result.Skins.keys():
  21. var skinId : int = DB.GetCellHash(skin) if DB.HasCellHash(skin) else DB.SetCellHash(skin)
  22. var paletteId : int = DB.GetCellHash(result.Skins[skin])
  23. data._skins[skinId] = DB.GetPalette(DB.Palette.SKIN, paletteId)
  24. return data