public BodyPartData(System.IO.BinaryReader reader) { part = (BodyPartPiece)reader.ReadByte(); skinType = (SkinType)reader.ReadByte(); flags = (BodyPartFlags)reader.ReadByte(); partType = (BodyPartType)reader.ReadByte(); }
public BodyPartRecord GetPart(BodyPartPiece bodyPartType, bool isFemale) { if (isFemale) { BodyPartRecord bodyPart; if (femaleParts.TryGetValue(bodyPartType, out bodyPart)) { return(femaleParts[bodyPartType]); } return(maleParts[bodyPartType]); } return(maleParts[bodyPartType]); }
// Used to create Npc bodies public static BodyPartRecord GetBodyPart(Race race, BodyPartPiece bodyPartType, bool isFemale) => RaceBodyParts[race].GetPart(bodyPartType, isFemale);
public void AddPart(BodyPartPiece bodyPartType, BodyPartRecord bodyPart, bool isFemale) { if (isFemale) { switch (bodyPartType) { case BodyPartPiece.Head: if (isFemale) { femaleHeads.Add(bodyPart); } else { maleHeads.Add(bodyPart); } return; case BodyPartPiece.Hair: femaleHair.Add(bodyPart); return; case BodyPartPiece.Hand: if (bodyPart.name.EndsWith(".1st")) { femaleHands1st = bodyPart; } else { femaleParts[BodyPartPiece.Hand] = bodyPart; } return; default: femaleParts.Add(bodyPartType, bodyPart); return; } } switch (bodyPartType) { case BodyPartPiece.Head: maleHeads.Add(bodyPart); return; case BodyPartPiece.Hair: maleHair.Add(bodyPart); return; case BodyPartPiece.Hand: if (bodyPart.name.EndsWith(".1st")) { maleHands1st = bodyPart; } else { maleParts[BodyPartPiece.Hand] = bodyPart; } return; default: maleParts.Add(bodyPartType, bodyPart); return; } }