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); }
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); }
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); }
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 }); }
// 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); }
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"]) }); }
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"]) }); }