Пример #1
0
 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);
 }
Пример #2
0
 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());
 }
Пример #3
0
    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);
    }
Пример #4
0
    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);
    }