public CreatureType process(RawCreatureType raw) { CreatureType type = new CreatureType(raw); if (!typeMap.templates.ContainsKey(raw.bodyTemplate)) { Debug.LogWarning("Creature " + type.name + " has invalid body template " + raw.bodyTemplate); return(null); } // if(type.combinedAppearance != null) type.combinedAppearance.process(); // Arrays.stream(GameplayStatEnum.values()) // .forEach(value -> type.statMap.put(value, value.DEFAULT)); // save default values // for (String statName : raw.statMap.keySet()) { // override default values // if (GameplayStatEnum.map.containsKey(statName)) { // type.statMap.put(GameplayStatEnum.map.get(statName), raw.statMap.get(statName)); // } else { // Logger.LOADING.logError("Invalid stat name " + statName + " in creature type " + raw.name); // } // } BodyTemplate template = typeMap.templates[raw.bodyTemplate]; foreach (var part in template.body.Values) { type.bodyParts.Add(part.name, part.clone()); } foreach (var slot in template.slots) { type.slots.Add(slot.Key, new List <string>(slot.Value)); } type.desiredSlots.AddRange(raw.desiredSlots); // type.needs.AddRange(defaultNeeds); return(type); }
// public CombinedAppearance combinedAppearance; // public readonly Dictionary<GameplayStatEnum, float> statMap = new HashMap<>(); public CreatureType(RawCreatureType rawType) { name = rawType.name; title = rawType.title; description = rawType.description; atlasXY = rawType.atlasXY; color = rawType.color; aspects.AddRange(rawType.aspects); // combinedAppearance = rawType.combinedAppearance; }