public static bool TryGetGraphicApparel(Apparel apparel, BodyTypeDef bodyType, out ApparelGraphicRecord rec) { if (bodyType == null) { Log.Error("Getting apparel graphic with undefined body type.", false); bodyType = BodyTypeDefOf.Male; } if (apparel.def.apparel.wornGraphicPath.NullOrEmpty()) { rec = new ApparelGraphicRecord(null, null); return(false); } string path; if (apparel.def.apparel.LastLayer == ApparelLayerDefOf.Overhead) { path = apparel.def.apparel.wornGraphicPath; } else { path = apparel.def.apparel.wornGraphicPath + "_" + bodyType.defName; } Graphic graphic = GraphicDatabase.Get <Graphic_Multi>(path, ShaderDatabase.Cutout, apparel.def.graphicData.drawSize, apparel.DrawColor); rec = new ApparelGraphicRecord(graphic, apparel); return(true); }
public Vector2 BeltScaleAt(BodyTypeDef bodyType) { Vector2 result = Vector2.one; if (bodyType == BodyTypeDefOf.Male) { result = male.Scale; } else if (bodyType == BodyTypeDefOf.Female) { result = female.Scale; } else if (bodyType == BodyTypeDefOf.Thin) { result = thin.Scale; } else if (bodyType == BodyTypeDefOf.Hulk) { result = hulk.Scale; } else if (bodyType == BodyTypeDefOf.Fat) { result = fat.Scale; } return(result); }
public Vector2 BeltOffsetAt(Rot4 facing, BodyTypeDef bodyType) { WornGraphicDirectionData wornGraphicDirectionData = default(WornGraphicDirectionData); switch (facing.AsInt) { case 0: wornGraphicDirectionData = north; break; case 1: wornGraphicDirectionData = east; break; case 2: wornGraphicDirectionData = south; break; case 3: wornGraphicDirectionData = west; break; } Vector2 offset = wornGraphicDirectionData.offset; if (bodyType == BodyTypeDefOf.Male) { offset += wornGraphicDirectionData.male.offset; } else if (bodyType == BodyTypeDefOf.Female) { offset += wornGraphicDirectionData.female.offset; } else if (bodyType == BodyTypeDefOf.Thin) { offset += wornGraphicDirectionData.thin.offset; } else if (bodyType == BodyTypeDefOf.Hulk) { offset += wornGraphicDirectionData.hulk.offset; } else if (bodyType == BodyTypeDefOf.Fat) { offset += wornGraphicDirectionData.fat.offset; } return(offset); }
public void ResolveReferences() { int num = Mathf.Abs(GenText.StableStringHash(baseDesc) % 100); string s = title.Replace('-', ' '); s = GenText.CapitalizedNoSpaces(s); identifier = GenText.RemoveNonAlphanumeric(s) + num.ToString(); foreach (KeyValuePair <string, int> skillGain in skillGains) { skillGainsResolved.Add(DefDatabase <SkillDef> .GetNamed(skillGain.Key), skillGain.Value); } skillGains = null; if (!bodyTypeGlobal.NullOrEmpty()) { bodyTypeGlobalResolved = DefDatabase <BodyTypeDef> .GetNamed(bodyTypeGlobal); } if (!bodyTypeFemale.NullOrEmpty()) { bodyTypeFemaleResolved = DefDatabase <BodyTypeDef> .GetNamed(bodyTypeFemale); } if (!bodyTypeMale.NullOrEmpty()) { bodyTypeMaleResolved = DefDatabase <BodyTypeDef> .GetNamed(bodyTypeMale); } if (!nameMaker.NullOrEmpty()) { nameMakerResolved = DefDatabase <RulePackDef> .GetNamed(nameMaker); } if (slot == BackstorySlot.Adulthood && bodyTypeGlobalResolved == null) { if (bodyTypeMaleResolved == null) { Log.Error("Adulthood backstory " + title + " is missing male body type. Defaulting..."); bodyTypeMaleResolved = BodyTypeDefOf.Male; } if (bodyTypeFemaleResolved == null) { Log.Error("Adulthood backstory " + title + " is missing female body type. Defaulting..."); bodyTypeFemaleResolved = BodyTypeDefOf.Female; } } }
public void ResolveReferences() { int num = Mathf.Abs(GenText.StableStringHash(this.baseDesc) % 100); string s = this.title.Replace('-', ' '); s = GenText.CapitalizedNoSpaces(s); this.identifier = GenText.RemoveNonAlphanumeric(s) + num.ToString(); foreach (KeyValuePair <string, int> keyValuePair in this.skillGains) { this.skillGainsResolved.Add(DefDatabase <SkillDef> .GetNamed(keyValuePair.Key, true), keyValuePair.Value); } this.skillGains = null; if (!this.bodyTypeGlobal.NullOrEmpty()) { this.bodyTypeGlobalResolved = DefDatabase <BodyTypeDef> .GetNamed(this.bodyTypeGlobal, true); } if (!this.bodyTypeFemale.NullOrEmpty()) { this.bodyTypeFemaleResolved = DefDatabase <BodyTypeDef> .GetNamed(this.bodyTypeFemale, true); } if (!this.bodyTypeMale.NullOrEmpty()) { this.bodyTypeMaleResolved = DefDatabase <BodyTypeDef> .GetNamed(this.bodyTypeMale, true); } if (this.slot == BackstorySlot.Adulthood) { if (this.bodyTypeGlobalResolved == null) { if (this.bodyTypeMaleResolved == null) { Log.Error("Adulthood backstory " + this.title + " is missing male body type. Defaulting...", false); this.bodyTypeMaleResolved = BodyTypeDefOf.Male; } if (this.bodyTypeFemaleResolved == null) { Log.Error("Adulthood backstory " + this.title + " is missing female body type. Defaulting...", false); this.bodyTypeFemaleResolved = BodyTypeDefOf.Female; } } } }
public static bool TryGetGraphicApparel(Apparel apparel, BodyTypeDef bodyType, out ApparelGraphicRecord rec) { if (bodyType == null) { Log.Error("Getting apparel graphic with undefined body type."); bodyType = BodyTypeDefOf.Male; } if (apparel.def.apparel.wornGraphicPath.NullOrEmpty()) { rec = new ApparelGraphicRecord(null, null); return(false); } string path = (apparel.def.apparel.LastLayer != ApparelLayerDefOf.Overhead && !(apparel.def.apparel.wornGraphicPath == BaseContent.PlaceholderImagePath)) ? (apparel.def.apparel.wornGraphicPath + "_" + bodyType.defName) : apparel.def.apparel.wornGraphicPath; Shader shader = ShaderDatabase.Cutout; if (apparel.def.apparel.useWornGraphicMask) { shader = ShaderDatabase.CutoutComplex; } Graphic graphic = GraphicDatabase.Get <Graphic_Multi>(path, shader, apparel.def.graphicData.drawSize, apparel.DrawColor); rec = new ApparelGraphicRecord(graphic, apparel); return(true); }