internal BodyPartModel GetPart(BodyPartRaw part) { foreach (var partModel in bodyParts) { if (!string.IsNullOrEmpty(partModel.category)) { if (partModel.categoryRegex) { if (!Regex.IsMatch(part.category, partModel.category)) { continue; } } else { if (partModel.category != part.category) { continue; } } } if (!string.IsNullOrEmpty(partModel.token)) { if (partModel.tokenRegex) { if (!Regex.IsMatch(part.token, partModel.token)) { continue; } } else { if (partModel.token != part.token) { continue; } } } return(partModel.model); } return(null); }
private static Shape MakeCylinder(BodyPartRaw originalPart, double ratio, double creatureScale, double visualScale, out double width, out double length) { width = GetRatioCylinderWidth(originalPart.relsize * creatureScale, ratio) * visualScale; length = width * ratio; return(new Rectangle()); }
public static BodyPartModel GetPart(CreatureBody.BodyCategory category, CreatureRaw race, CasteRaw caste, BodyPartRaw part) { if (categoryParts == null) { LoadDefaultBodyParts(); } BodyPartModel partModel = null; var bodyDef = GetBodyDefinition(race, caste); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } if (partModel != null) { return(partModel); } bodyDef = GetBodyDefinition(race); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } if (partModel != null) { return(partModel); } bodyDef = GetBodyDefinition(category); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } return(partModel); }
public static BodyPartModel GetPart(CreatureBody.BodyCategory category, CreatureRaw race, CasteRaw caste, BodyPartRaw part) { Gender gender = Gender.Neuter; if (caste != null) { gender = (Gender)caste.gender; } BodyPartModel partModel = null; var bodyDef = GetBodyDefinition(race, caste); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } if (partModel != null) { return(partModel); } bodyDef = GetBodyDefinition(race); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } if (partModel != null) { return(partModel); } bodyDef = GetBodyDefinition(category, gender); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } if (partModel != null) { return(partModel); } bodyDef = GetBodyDefinition(category, Gender.Neuter); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } if (partModel != null) { return(partModel); } bodyDef = GetBodyDefinition(CreatureBody.BodyCategory.None); if (bodyDef != null) { partModel = bodyDef.GetPart(part); } return(partModel); }