Exemplo n.º 1
0
        public Thing FromRealmThing(RealmThing realmThing)
        {
            ThingDef thingDef = DefDatabase <ThingDef> .AllDefs.First((def) => { return(def.label == realmThing.thingDefLabel); });

            ThingDef stuffDef = null;

            if (realmThing.stuffDefLabel != "")
            {
                stuffDef = DefDatabase <ThingDef> .AllDefs.First((def) => { return(def.label == realmThing.stuffDefLabel); });
            }
            Thing thing = ThingMaker.MakeThing(thingDef, stuffDef);

            thing.stackCount = realmThing.stackCount;

            CompQuality compQuality = thing.TryGetComp <CompQuality>();

            if (compQuality != null && realmThing.compQuality != -1)
            {
                compQuality.SetQuality((QualityCategory)realmThing.compQuality, ArtGenerationContext.Outsider);
            }

            thing.HitPoints = realmThing.hitPoints;

            return(thing);
        }
Exemplo n.º 2
0
        public bool SendThings(User user, Dictionary <List <Thing>, int> chosenThings)
        {
            if (!CheckCanStartTransaction(user))
            {
                return(false);
            }

            List <KeyValuePair <RealmThing, int> > realmThings = new List <KeyValuePair <RealmThing, int> >();

            foreach (KeyValuePair <List <Thing>, int> entry in chosenThings)
            {
                RealmThing realmThing = realmData.ToRealmThing(entry.Key[0]);

                realmThings.Add(new KeyValuePair <RealmThing, int>(realmThing, entry.Value));
            }

            int             id          = ++this.currentUser.lastTransactionId;
            ItemTransaction transaction = new ItemTransaction(id, currentUser, user, chosenThings, realmThings);

            realmData.transactions.Add(transaction);

            this.SendPacket(new StartTransactionPacket {
                transaction = transaction
            });

            Messages.Message("Offer sent, waiting for confirmation", MessageSound.Silent);

            return(true);
        }
Exemplo n.º 3
0
        public Thing FromRealmThing(RealmThing realmThing)
        {
            ThingDef thingDef = DefDatabase <ThingDef> .AllDefs.First((def) => { return(def.defName == realmThing.thingDefName); });

            ThingDef stuffDef = null;

            if (realmThing.stuffDefName != "")
            {
                stuffDef = DefDatabase <ThingDef> .AllDefs.First((def) => { return(def.defName == realmThing.stuffDefName); });
            }
            Thing thing = ThingMaker.MakeThing(thingDef, stuffDef);

            thing.stackCount = realmThing.stackCount;

            CompQuality compQuality = thing.TryGetComp <CompQuality>();

            if (compQuality != null && realmThing.compQuality != -1)
            {
                compQuality.SetQuality((QualityCategory)realmThing.compQuality, ArtGenerationContext.Outsider);
            }

            thing.HitPoints = realmThing.hitPoints;

            // Minimified thing
            if (thing is MinifiedThing)
            {
                MinifiedThing minifiedThing = (MinifiedThing)thing;

                minifiedThing.InnerThing = FromRealmThing(realmThing.innerThing);
            }

            return(thing);
        }
Exemplo n.º 4
0
        public RealmThing ToRealmThing(Thing thing)
        {
            string stuffDefLabel = thing.Stuff != null ? thing.Stuff.defName : "";

            int         compQualityRaw = -1;
            CompQuality compQuality    = thing.TryGetComp <CompQuality>();

            if (compQuality != null)
            {
                compQualityRaw = (int)thing.TryGetComp <CompQuality>().Quality;
            }

            // Minimified thing
            RealmThing innerThing = null;

            if (thing is MinifiedThing)
            {
                MinifiedThing minifiedThing = (MinifiedThing)thing;

                innerThing = ToRealmThing(minifiedThing.InnerThing);
            }

            return(new RealmThing
            {
                thingDefName = thing.def.defName,
                stackCount = thing.stackCount,
                stuffDefName = stuffDefLabel,
                compQuality = compQualityRaw,
                hitPoints = thing.HitPoints,
                innerThing = innerThing
            });
        }
Exemplo n.º 5
0
        // Token: 0x06000032 RID: 50 RVA: 0x00002848 File Offset: 0x00000A48
        public Thing FromRealmThing(RealmThing realmThing)
        {
            var def2 = DefDatabase <ThingDef> .AllDefs.First(def => def.defName == realmThing.thingDefName);

            ThingDef stuff = null;

            if (realmThing.stuffDefName != "")
            {
                stuff = DefDatabase <ThingDef> .AllDefs.First(def => def.defName == realmThing.stuffDefName);
            }

            var thing = ThingMaker.MakeThing(def2, stuff);

            thing.stackCount = realmThing.stackCount;
            var compQuality = thing.TryGetComp <CompQuality>();

            if (compQuality != null && realmThing.compQuality != -1)
            {
                compQuality.SetQuality((QualityCategory)realmThing.compQuality, ArtGenerationContext.Outsider);
            }

            thing.HitPoints = realmThing.hitPoints;
            if (thing is MinifiedThing minifiedThing)
            {
                minifiedThing.InnerThing = FromRealmThing(realmThing.innerThing);
            }

            return(thing);
        }
Exemplo n.º 6
0
 public new static ThingReceivedPacket FromRaw(RealmData realmData, JObject data)
 {
     return(new ThingReceivedPacket
     {
         realmThing = RealmThing.FromRaw(realmData, (JObject)data["realmThing"]),
         userFrom = ID.Find(realmData.users, (int)data["userFrom"])
     });
 }
Exemplo n.º 7
0
 public new static SendThingPacket FromRaw(RealmData realmData, JObject data)
 {
     return(new SendThingPacket
     {
         realmThing = RealmThing.FromRaw(realmData, (JObject)data["realmThing"]),
         userTo = ID.Find(realmData.users, (int)data["userTo"])
     });
 }