public static Graphic_Multi GetHeadRandom(Gender gender, Color skinColor, CrownType crownType)
        {
            GraphicDatabaseHeadRecords.BuildDatabaseIfNecessary();
            Predicate <GraphicDatabaseHeadRecords.HeadGraphicRecord> predicate = (GraphicDatabaseHeadRecords.HeadGraphicRecord head) => head.crownType == crownType && head.gender == gender;
            int num = 0;

            GraphicDatabaseHeadRecords.HeadGraphicRecord headGraphicRecord;
            while (true)
            {
                headGraphicRecord = GraphicDatabaseHeadRecords.heads.RandomElement <GraphicDatabaseHeadRecords.HeadGraphicRecord>();
                if (predicate(headGraphicRecord))
                {
                    break;
                }
                num++;
                if (num > 40)
                {
                    goto Block_2;
                }
            }
            return(headGraphicRecord.GetGraphic(skinColor, false));

Block_2:
            foreach (GraphicDatabaseHeadRecords.HeadGraphicRecord current in GraphicDatabaseHeadRecords.heads.InRandomOrder(null))
            {
                if (predicate(current))
                {
                    return(current.GetGraphic(skinColor, false));
                }
            }
            Log.Error("Failed to find head for gender=" + gender + ". Defaulting...", false);
            return(GraphicDatabaseHeadRecords.heads.First <GraphicDatabaseHeadRecords.HeadGraphicRecord>().GetGraphic(skinColor, false));
        }
 public static Graphic_Multi GetHeadNamed(string graphicPath, Color skinColor)
 {
     GraphicDatabaseHeadRecords.BuildDatabaseIfNecessary();
     for (int i = 0; i < GraphicDatabaseHeadRecords.heads.Count; i++)
     {
         GraphicDatabaseHeadRecords.HeadGraphicRecord headGraphicRecord = GraphicDatabaseHeadRecords.heads[i];
         if (headGraphicRecord.graphicPath == graphicPath)
         {
             return(headGraphicRecord.GetGraphic(skinColor, false));
         }
     }
     Log.Message("Tried to get pawn head at path " + graphicPath + " that was not found. Defaulting...", false);
     return(GraphicDatabaseHeadRecords.heads.First <GraphicDatabaseHeadRecords.HeadGraphicRecord>().GetGraphic(skinColor, false));
 }
        public static Graphic_Multi GetHeadRandom(Gender gender, Color skinColor, CrownType crownType)
        {
            GraphicDatabaseHeadRecords.BuildDatabaseIfNecessary();
            Predicate <HeadGraphicRecord> predicate = delegate(HeadGraphicRecord head)
            {
                if (head.crownType != crownType)
                {
                    return(false);
                }
                if (head.gender != gender)
                {
                    return(false);
                }
                return(true);
            };
            int num = 0;

            while (true)
            {
                HeadGraphicRecord headGraphicRecord = GraphicDatabaseHeadRecords.heads.RandomElement();
                if (predicate(headGraphicRecord))
                {
                    return(headGraphicRecord.GetGraphic(skinColor));
                }
                num++;
                if (num > 40)
                {
                    break;
                }
            }
            foreach (HeadGraphicRecord item in GraphicDatabaseHeadRecords.heads.InRandomOrder(null))
            {
                if (predicate(item))
                {
                    return(item.GetGraphic(skinColor));
                }
            }
            Log.Error("Failed to find head for gender=" + gender + ". Defaulting...");
            return(GraphicDatabaseHeadRecords.heads.First().GetGraphic(skinColor));
        }
 public static Graphic_Multi GetStump(Color skinColor)
 {
     GraphicDatabaseHeadRecords.BuildDatabaseIfNecessary();
     return(GraphicDatabaseHeadRecords.stump.GetGraphic(skinColor, false));
 }
 public static Graphic_Multi GetSkull()
 {
     GraphicDatabaseHeadRecords.BuildDatabaseIfNecessary();
     return(GraphicDatabaseHeadRecords.skull.GetGraphic(Color.white, true));
 }