Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
             */
        }
Esempio n. 3
0
        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);
        }