public TestAwesomeInventoryLoadout() { ThingStuffPairWithQuality pair1 = new ThingStuffPairWithQuality { thing = _thingDef, stuff = ThingDefOf.Plasteel, quality = QualityCategory.Legendary }; ThingStuffPairWithQuality pair2 = new ThingStuffPairWithQuality { thing = _thingDef, stuff = ThingDefOf.Steel, quality = QualityCategory.Good }; ThingStuffPairWithQuality pair3 = new ThingStuffPairWithQuality { thing = _thingDef, stuff = ThingDefOf.Steel, quality = QualityCategory.Legendary }; Thing finemeal = ThingMaker.MakeThing(ThingDefOf.MealFine); finemeal.stackCount = 11; _things.Add(pair1.MakeThing()); _things.Add(pair2.MakeThing()); _things.Add(pair3.MakeThing()); _things.Add(finemeal); }
public TestCompAwesomeInventoryLoadout() { _pawn = PawnGenerator.GeneratePawn(PawnKindDefOf.Colonist); _pawn.outfits = new Pawn_OutfitTracker(_pawn); _pawn.apparel.DestroyAll(); _pawn.equipment.DestroyAllEquipment(); _pawn.inventory.DestroyAll(); _comp = _pawn.TryGetComp <CompAwesomeInventoryLoadout>(); ThingStuffPairWithQuality pair1 = new ThingStuffPairWithQuality { thing = _weaponThingDef, stuff = ThingDefOf.Plasteel, quality = QualityCategory.Legendary }; ThingStuffPairWithQuality pair2 = new ThingStuffPairWithQuality { thing = _weaponThingDef, stuff = ThingDefOf.Steel, quality = QualityCategory.Good }; ThingStuffPairWithQuality pair3 = new ThingStuffPairWithQuality { thing = _weaponThingDef, stuff = ThingDefOf.Steel, quality = QualityCategory.Legendary }; ThingStuffPairWithQuality pair4 = new ThingStuffPairWithQuality { thing = _apparelThingDef, stuff = ThingDefOf.Cloth, quality = QualityCategory.Normal, }; ThingStuffPairWithQuality pair5 = new ThingStuffPairWithQuality { thing = _apparelThingDef, stuff = ThingDefOf.Leather_Plain, quality = QualityCategory.Legendary, }; Thing finemeal = ThingMaker.MakeThing(ThingDefOf.MealFine); finemeal.stackCount = 11; _pairs.Add(pair1); _pairs.Add(pair2); _pairs.Add(pair3); _pairs.Add(pair4); _pairs.Add(pair5); _things.Add(pair1.MakeThing()); _things.Add(pair2.MakeThing()); _things.Add(pair3.MakeThing()); _things.Add(finemeal); }
static Test_AddItem() { ThingDef thingDef = ThingDef.Named("MeleeWeapon_Knife"); ThingStuffPairWithQuality pair1 = new ThingStuffPairWithQuality { thing = thingDef, stuff = ThingDefOf.Plasteel, quality = QualityCategory.Legendary }; ThingStuffPairWithQuality pair2 = new ThingStuffPairWithQuality { thing = thingDef, stuff = ThingDefOf.Steel, quality = QualityCategory.Good }; ThingStuffPairWithQuality pair3 = new ThingStuffPairWithQuality { thing = thingDef, stuff = ThingDefOf.Steel, quality = QualityCategory.Legendary }; Thing finemeal = ThingMaker.MakeThing(ThingDefOf.MealFine); finemeal.stackCount = 11; things.Add(pair1.MakeThing()); things.Add(pair2.MakeThing()); things.Add(pair3.MakeThing()); things.Add(finemeal); }
/// <summary> /// Initializes a new instance of the <see cref="AILoadout"/> class. /// Copy constructor, except the label is different. /// </summary> /// <param name="loadout"></param> public AILoadout(AILoadout loadout) : this(loadout?.label) { ValidateArg.NotNull(loadout, nameof(loadout)); _loadoutDic = new Dictionary <ThingStuffPairWithQuality, ThingFilterAll>(); foreach (Thing thing in loadout.CachedList) { Thing item = thing.DeepCopy(); ThingStuffPairWithQuality pair = item.MakeThingStuffPairWithQuality(); _loadoutDic.Add(pair, new ThingFilterAll(item, loadout[pair])); _cachedList.Add(item); } filter.CopyAllowancesFrom(loadout.filter); }
public static bool CompareThing(Thing x, Thing y) { if (ReferenceEquals(x, y)) { return(true); } if (x == null || y == null) { return(false); } ThingStuffPairWithQuality pairX = x.MakeThingStuffPairWithQuality(); ThingStuffPairWithQuality pairY = y.MakeThingStuffPairWithQuality(); return(pairX == pairY); }
public static Thing MakeThing(ThingStuffPairWithQuality pair) { if (pair.thing.MadeFromStuff && pair.stuff == null) { pair.stuff = AwesomeInventoryStuffDefOf.AwesomeInventoryGenericResource; } Thing thing = pair.MakeThing(); if (thing.def.useHitPoints) { thing.HitPoints = thing.MaxHitPoints; } return(thing); }
/// <inheritdoc/> public override bool Equals(T x, T y) { if (ReferenceEquals(x, y)) { return(true); } if (x == null || y == null) { return(false); } ThingStuffPairWithQuality pairX = x.MakeThingStuffPairWithQuality(); ThingStuffPairWithQuality pairY = y.MakeThingStuffPairWithQuality(); return(pairX == pairY); }
public static Thing MakeThingWithoutID(this ThingStuffPairWithQuality pair) { if (pair.thing.MadeFromStuff && pair.stuff == null) { pair.stuff = AwesomeInventoryStuffDefOf.AwesomeInventoryGenericResource; } if (pair.stuff != null && !pair.stuff.IsStuff) { Log.Error("MakeThing error: Tried to make " + pair.thing + " from " + pair.stuff + " which is not a stuff. Assigning default."); pair.stuff = GenStuff.DefaultStuffFor(pair.thing); } if (!pair.thing.MadeFromStuff && pair.stuff != null) { Log.Error("MakeThing error: " + pair.thing + " is not madeFromStuff but stuff=" + pair.stuff + ". Setting to null."); pair.stuff = null; } Thing thing = (Thing)Activator.CreateInstance(pair.thing.thingClass); thing.def = pair.thing; thing.SetStuffDirect(pair.stuff); if (thing.def.useHitPoints) { thing.HitPoints = thing.MaxHitPoints; } if (thing is ThingWithComps thingWithComps) { thingWithComps.InitializeComps(); } thing.TryGetComp <CompQuality>()?.SetQuality(pair.Quality, ArtGenerationContext.Outsider); return(thing); }
public SavePairFilter(ThingStuffPairWithQuality pair) { _thing = pair.thing; _stuff = pair.stuff; _qualityCategory = pair.quality; }