public virtual Thing CreateThing(bool useOriginalID = false, int stackCount = 0) { var gx = new GameXMLUtils(); Thing thing = gx.FromXml <Thing>(Data); thing.stackCount = stackCount == 0 ? Count : stackCount; if (OriginalID <= 0 || !useOriginalID) { thing.thingIDNumber = -1; ThingIDMaker.GiveIDTo(thing); } else { thing.thingIDNumber = OriginalID; } return(thing); }
public Thing CreateThing(bool useOriginalID, int stackCount = 0) { var gx = new GameXMLUtils(); Thing thing = gx.FromXml <Thing>(Data); thing.stackCount = stackCount == 0 ? Count : stackCount; if (OriginalID <= 0 || useOriginalID) { thing.thingIDNumber = -1; ThingIDMaker.GiveIDTo(thing); } else { thing.thingIDNumber = OriginalID; } return(thing); /* * var def = (ThingDef)GenDefDatabase.GetDef(typeof(ThingDef), DefName); * var stuffDef = !string.IsNullOrEmpty(StuffName) ? (ThingDef)GenDefDatabase.GetDef(typeof(ThingDef), StuffName) : GenStuff.DefaultStuffFor(def); * Thing thing = ThingMaker.MakeThing(def, stuffDef); * thing.stackCount = stackCount == 0 ? Count : stackCount; * * if (HitPoints > 0) thing.HitPoints = HitPoints; * * CompQuality compQuality = thing.TryGetComp<CompQuality>(); * if (compQuality != null) * { * compQuality.SetQuality((QualityCategory)(Quality + 3), ArtGenerationContext.Outsider); * } * * if (WornByCorpse) * { * Apparel thingA = thing as Apparel; * if (thingA != null) * { * typeof(Apparel) * .GetField("wornByCorpseInt", BindingFlags.Instance | BindingFlags.NonPublic) * .SetValue(thingA, true); * } * } * return thing; */ }
public virtual Thing CreateThing(bool useOriginalID = false, int stackCount = 0, bool needPirate = false) { var gx = new GameXMLUtils(); Thing thing = gx.FromXml <Thing>(Data); thing.stackCount = stackCount == 0 ? Count : stackCount; if (OriginalID <= 0 || !useOriginalID) { thing.thingIDNumber = -1; ThingIDMaker.GiveIDTo(thing); } else { thing.thingIDNumber = OriginalID; } SetFaction(thing, isColonist && !needPirate); return(thing); }