Example #1
0
        public void ExposeData()
        {
            if (Scribe.mode == LoadSaveMode.Saving)
            {
                Controller.GetArchiver.ValidateArchiveTarget(this);
            }

            Scribe_Values.Look(ref this.type, "type");
            Scribe_Values.Look(ref this.pinned, "pinned", false);

            Scribe_Values.Look(ref this.dateDayofSeason, "dateDayofSeason", -1);
            Scribe_Values.Look(ref this.dateQuadrum, "dateQuadrum", Quadrum.Undefined);
            Scribe_Values.Look(ref this.dateYear, "dateYear", -1);

            Scribe_Deep.Look(ref this.letter, "letter");
            Scribe_TargetInfo.Look(ref this.lookTarget, "lookTarget");
            Scribe_Values.Look(ref this.text, "text");
        }
Example #2
0
        public override void ExposeData()           // Added new variables, removed bool loaded (not used in CE)
        {
            base.ExposeData();

            // New variables
            Scribe_Deep.Look(ref gunInt, "gunInt");
            InitGun();
            Scribe_Values.Look(ref isReloading, "isReloading", false);
            Scribe_Values.Look(ref ticksUntilAutoReload, "ticksUntilAutoReload", 0);
            //lastSurroundingAmmoCheck should never be saved

            Scribe_Values.Look <int>(ref this.burstCooldownTicksLeft, "burstCooldownTicksLeft", 0, false);
            Scribe_Values.Look <int>(ref this.burstWarmupTicksLeft, "burstWarmupTicksLeft", 0, false);
            Scribe_TargetInfo.Look(ref this.currentTargetInt, "currentTarget");
            Scribe_Values.Look <bool>(ref this.holdFire, "holdFire", false, false);
            Scribe_Values.Look <bool>(ref this.everSpawned, "everSpawned", false, false);
            BackCompatibility.PostExposeData(this);
        }
        public override void ExposeData()
        {
            base.ExposeData();
            Scribe_TargetInfo.Look(ref localTarget, "localTarget", LocalTargetInfo.Invalid);
            Scribe_TargetInfo.Look(ref globalTarget, "globalTarget", GlobalTargetInfo.Invalid);
            Scribe_Values.Look(ref CooldownTicks, "cooldownTicks");
            Scribe_Values.Look(ref PoweringUpTicks, "powerUpTicks");
            Scribe_Values.Look(ref isChargingUp, "isChargingUp");
            Scribe_Values.Look(ref lastKnownThingLoc, "lastKnownThingLoc");

            Scribe_Deep.Look(ref gun, "gun", Array.Empty <object>());

            BackCompatibility.PostExposeData(this);
            if (Scribe.mode == LoadSaveMode.PostLoadInit)
            {
                this.UpdateGunVerbs();
            }
        }
        public override void ExposeData()
        {
            base.ExposeData();

            Scribe_Deep.Look <Thing>(ref gun, "activeGun");

            Scribe_Values.Look <bool>(ref collectingGunAllowed, "collectingGunAllowed");
            Scribe_Values.Look <int>(ref burstCooldownTicksLeft, "burstCooldownTicksLeft", 0, false);
            Scribe_Values.Look <int>(ref this.burstWarmupTicksLeft, "burstWarmupTicksLeft", 0, false);
            Scribe_TargetInfo.Look(ref this.currentTargetInt, "currentTarget");
            Scribe_Values.Look <bool>(ref this.loaded, "loaded", false, false);
            Scribe_Values.Look <bool>(ref this.holdFire, "holdFire", false, false);

            if (gun != null)
            {
                forceCreateGunAndTop = true;
            }
        }
Example #5
0
        public override void ExposeData()
        {
            base.ExposeData();
            Scribe_Deep.Look <StunHandler>(ref this.stunner, "stunner", new object[]
            {
                this
            });

            Scribe_Values.Look <bool>(ref this.isInstalled, "isInstalled", false, false);
            Scribe_Values.Look <string>(ref this.assignedSlotName, "assignedSlotName");
            Scribe_Values.Look <Vector3>(ref this.drawPosOffset, "drawPosOffset");
            Scribe_Values.Look <WeaponSystemType>(ref this.weaponSystemType, "weaponSystemType");
            Scribe_TargetInfo.Look(ref this.forcedTarget, "forcedTarget");
            if (this.slotToInstall != null)
            {
                Scribe_References.Look <ShipWeaponSlot>(ref this.slotToInstall, "slotToInstall");
            }
        }
Example #6
0
 public void ExposeData()
 {
     if (Scribe.mode == LoadSaveMode.Saving && this.activeJobs != null)
     {
         this.activeJobs.RemoveAll(x => x == null);
     }
     Scribe_TargetInfo.Look(ref targetDest, "targetDest");
     Scribe_Collections.Look(ref this.activeJobs, "activeJobs", LookMode.Deep);
     Scribe_References.Look(ref this.mainJob, "mainJob");
     Scribe_Values.Look(ref searchingJobsNow, "searchingJobsNow", false);
     Scribe_References.Look(ref oldMap, "oldMap");
     Scribe_Values.Look(ref forceGoToDestMap, "forceGoToDestMap", false);
     Scribe_References.Look(ref target, "target");
     Scribe_References.Look(ref mapDest, "mapDest");
     Scribe_Values.Look(ref forceGoToDestMap, "failIfTargetMapIsNotDest", false);
     Scribe_Collections.Look(ref reservedThings, "reservedThings", LookMode.LocalTargetInfo);
     Scribe_Collections.Look(ref reservedCells, "reservedCells", LookMode.LocalTargetInfo);
     Scribe_Collections.Look(ref lookedAtLocalCellMap, "lookedAtLocalCellMap", LookMode.Value, LookMode.Reference, ref intVec3Keys, ref mapValues);
 }
        public override void ExposeData()
        {
            base.ExposeData();
            Scribe_Values.Look <int>(ref this.burstCooldownTicksLeft, "burstCooldownTicksLeft", 0, false);
            Scribe_Values.Look <int>(ref this.burstWarmupTicksLeft, "burstWarmupTicksLeft", 0, false);
            Scribe_TargetInfo.Look(ref this.currentTargetInt, "currentTarget");
            Scribe_Values.Look <bool>(ref this.holdFire, "holdFire", false, false);
            Scribe_Deep.Look <Thing>(ref this.gun, "gun", new object[0]);
            Scribe_Values.Look <float>(ref this.turretBurstCooldownTime, "turretBurstCooldownTime", -1, false);            // added

            if (Scribe.mode == LoadSaveMode.PostLoadInit)
            {
                if (this.gun == null)
                {
                    this.MakeGun();                                   // replacent of BackCompatibility.TurretPostLoadInit(this);
                }
                this.UpdateGunVerbs();
            }
        }
Example #8
0
 public void ExposeData()
 {
     Scribe_Defs.Look(ref def, "def");
     Scribe_Deep.Look(ref travelTracker, "travelTracker", new object[]
     {
         def.travelSettings
     });
     Scribe_Deep.Look(ref thingTracker, "thingTracker", new object[]
     {
         def.targetSettings
     });
     Scribe_References.Look(ref parentMission, "parent");
     Scribe_Values.Look(ref startedOnce, "startedOnce");
     Scribe_Values.Look(ref finishedOnce, "finishedOnce");
     Scribe_Values.Look(ref failedOnce, "failedOnce");
     Scribe_Values.Look(ref workDone, "workDone");
     Scribe_Values.Look(ref timer, "timer");
     Scribe_TargetInfo.Look(ref lastTarget, "lastTarget");
 }
Example #9
0
        public void ExposeData()
        {
            var loadReferenceable = (ILoadReferenceable)commTarget;

            Scribe_References.Look(ref loadReferenceable, "commTarget", false);
            commTarget = (ICommunicable)loadReferenceable;
            Scribe_References.Look(ref verbToUse, "verbToUse", false);
            Scribe_References.Look(ref bill, "bill", false);
            Scribe_References.Look(ref lord, "lord", false);
            Scribe_Defs.Look(ref def, "def");
            Scribe_TargetInfo.Look(ref targetA, "targetA");
            Scribe_TargetInfo.Look(ref targetB, "targetB");
            Scribe_TargetInfo.Look(ref targetC, "targetC");
            Scribe_Collections.Look(ref targetQueueA, "targetQueueA", LookMode.Undefined);
            Scribe_Collections.Look(ref targetQueueB, "targetQueueB", LookMode.Undefined);
            Scribe_Values.Look(ref count, "count", -1, false);
            Scribe_Collections.Look(ref countQueue, "countQueue", LookMode.Undefined);
            Scribe_Values.Look(ref startTick, "startTick", -1, false);
            Scribe_Values.Look(ref expiryInterval, "expiryInterval", -1, false);
            Scribe_Values.Look(ref checkOverrideOnExpire, "checkOverrideOnExpire", false, false);
            Scribe_Values.Look(ref playerForced, "playerForced", false, false);
            Scribe_Collections.Look(ref placedThings, "placedThings", LookMode.Undefined);
            Scribe_Values.Look(ref maxNumMeleeAttacks, "maxNumMeleeAttacks", 2147483647, false);
            Scribe_Values.Look(ref maxNumStaticAttacks, "maxNumStaticAttacks", 2147483647, false);
            Scribe_Values.Look(ref exitMapOnArrival, "exitMapOnArrival", false, false);
            Scribe_Values.Look(ref failIfCantJoinOrCreateCaravan, "failIfCantJoinOrCreateCaravan", false, false);
            Scribe_Values.Look(ref killIncappedTarget, "killIncappedTarget", false, false);
            Scribe_Values.Look(ref haulOpportunisticDuplicates, "haulOpportunisticDuplicates", false, false);
            Scribe_Values.Look(ref haulMode, "haulMode", HaulMode.Undefined, false);
            Scribe_Defs.Look(ref plantDefToSow, "plantDefToSow");
            Scribe_Values.Look(ref locomotionUrgency, "locomotionUrgency", LocomotionUrgency.Jog, false);
            Scribe_Values.Look(ref ignoreDesignations, "ignoreDesignations", false, false);
            Scribe_Values.Look(ref canBash, "canBash", false, false);
            Scribe_Values.Look(ref haulDroppedApparel, "haulDroppedApparel", false, false);
            Scribe_Values.Look(ref restUntilHealed, "restUntilHealed", false, false);
            Scribe_Values.Look(ref ignoreJoyTimeAssignment, "ignoreJoyTimeAssignment", false, false);
            Scribe_Values.Look(ref overeat, "overeat", false, false);
            Scribe_Values.Look(ref attackDoorIfTargetLost, "attackDoorIfTargetLost", false, false);
            Scribe_Values.Look(ref takeExtraIngestibles, "takeExtraIngestibles", 0, false);
            Scribe_Values.Look(ref expireRequiresEnemiesNearby, "expireRequiresEnemiesNearby", false, false);
            Scribe_Values.Look(ref collideWithCaravans, "collideWithCaravans", false, false);
        }
Example #10
0
        public void ExposeData()
        {
            var loadReferenceable = (ILoadReferenceable)commTarget;

            Scribe_References.Look(ref loadReferenceable, nameof(commTarget));
            commTarget = (ICommunicable)loadReferenceable;
            Scribe_References.Look(ref verbToUse, nameof(verbToUse));
            Scribe_References.Look(ref bill, nameof(bill));
            Scribe_References.Look(ref lord, nameof(lord));
            Scribe_Defs.Look(ref def, nameof(def));
            Scribe_TargetInfo.Look(ref targetA, nameof(targetA));
            Scribe_TargetInfo.Look(ref targetB, nameof(targetB));
            Scribe_TargetInfo.Look(ref targetC, nameof(targetC));
            Scribe_Collections.Look(ref targetQueueA, nameof(targetQueueA), LookMode.GlobalTargetInfo);
            Scribe_Collections.Look(ref targetQueueB, nameof(targetQueueB), LookMode.GlobalTargetInfo);
            Scribe_Values.Look(ref count, nameof(count), -1);
            Scribe_Collections.Look(ref countQueue, nameof(countQueue), LookMode.Value);
            Scribe_Values.Look(ref startTick, nameof(startTick), -1);
            Scribe_Values.Look(ref expiryInterval, nameof(expiryInterval), -1);
            Scribe_Values.Look(ref checkOverrideOnExpire, nameof(checkOverrideOnExpire));
            Scribe_Values.Look(ref playerForced, nameof(playerForced));
            Scribe_Collections.Look(ref placedThings, nameof(placedThings), LookMode.Deep);
            Scribe_Values.Look(ref maxNumMeleeAttacks, nameof(maxNumMeleeAttacks), int.MaxValue);
            Scribe_Values.Look(ref maxNumStaticAttacks, nameof(maxNumStaticAttacks), int.MaxValue);
            Scribe_Values.Look(ref exitMapOnArrival, nameof(exitMapOnArrival));
            Scribe_Values.Look(ref failIfCantJoinOrCreateCaravan, nameof(failIfCantJoinOrCreateCaravan));
            Scribe_Values.Look(ref killIncappedTarget, nameof(killIncappedTarget));
            Scribe_Values.Look(ref haulOpportunisticDuplicates, nameof(haulOpportunisticDuplicates));
            Scribe_Values.Look(ref haulMode, nameof(haulMode));
            Scribe_Defs.Look(ref plantDefToSow, nameof(plantDefToSow));
            Scribe_Values.Look(ref locomotionUrgency, nameof(locomotionUrgency), LocomotionUrgency.Jog);
            Scribe_Values.Look(ref ignoreDesignations, nameof(ignoreDesignations));
            Scribe_Values.Look(ref canBash, nameof(canBash));
            Scribe_Values.Look(ref haulDroppedApparel, nameof(haulDroppedApparel));
            Scribe_Values.Look(ref restUntilHealed, nameof(restUntilHealed));
            Scribe_Values.Look(ref ignoreJoyTimeAssignment, nameof(ignoreJoyTimeAssignment));
            Scribe_Values.Look(ref overeat, nameof(overeat));
            Scribe_Values.Look(ref attackDoorIfTargetLost, nameof(attackDoorIfTargetLost));
            Scribe_Values.Look(ref takeExtraIngestibles, nameof(takeExtraIngestibles));
            Scribe_Values.Look(ref expireRequiresEnemiesNearby, nameof(expireRequiresEnemiesNearby));
            Scribe_Values.Look(ref collideWithCaravans, nameof(collideWithCaravans));
        }
Example #11
0
        public void ExposeData()
        {
            ILoadReferenceable loadReferenceable = (ILoadReferenceable)this.commTarget;

            Scribe_References.Look <ILoadReferenceable>(ref loadReferenceable, "commTarget", false);
            this.commTarget = (ICommunicable)loadReferenceable;
            Scribe_References.Look <Verb>(ref this.verbToUse, "verbToUse", false);
            Scribe_References.Look <Bill>(ref this.bill, "bill", false);
            Scribe_References.Look <Lord>(ref this.lord, "lord", false);
            Scribe_Defs.Look <CaravanJobDef>(ref this.def, "def");
            Scribe_TargetInfo.Look(ref this.targetA, "targetA");
            Scribe_TargetInfo.Look(ref this.targetB, "targetB");
            Scribe_TargetInfo.Look(ref this.targetC, "targetC");
            Scribe_Collections.Look <GlobalTargetInfo>(ref this.targetQueueA, "targetQueueA", LookMode.Undefined, new object[0]);
            Scribe_Collections.Look <GlobalTargetInfo>(ref this.targetQueueB, "targetQueueB", LookMode.Undefined, new object[0]);
            Scribe_Values.Look <int>(ref this.count, "count", -1, false);
            Scribe_Collections.Look <int>(ref this.countQueue, "countQueue", LookMode.Undefined, new object[0]);
            Scribe_Values.Look <int>(ref this.startTick, "startTick", -1, false);
            Scribe_Values.Look <int>(ref this.expiryInterval, "expiryInterval", -1, false);
            Scribe_Values.Look <bool>(ref this.checkOverrideOnExpire, "checkOverrideOnExpire", false, false);
            Scribe_Values.Look <bool>(ref this.playerForced, "playerForced", false, false);
            Scribe_Collections.Look <ThingStackPartClass>(ref this.placedThings, "placedThings", LookMode.Undefined, new object[0]);
            Scribe_Values.Look <int>(ref this.maxNumMeleeAttacks, "maxNumMeleeAttacks", 2147483647, false);
            Scribe_Values.Look <int>(ref this.maxNumStaticAttacks, "maxNumStaticAttacks", 2147483647, false);
            Scribe_Values.Look <bool>(ref this.exitMapOnArrival, "exitMapOnArrival", false, false);
            Scribe_Values.Look <bool>(ref this.failIfCantJoinOrCreateCaravan, "failIfCantJoinOrCreateCaravan", false, false);
            Scribe_Values.Look <bool>(ref this.killIncappedTarget, "killIncappedTarget", false, false);
            Scribe_Values.Look <bool>(ref this.haulOpportunisticDuplicates, "haulOpportunisticDuplicates", false, false);
            Scribe_Values.Look <HaulMode>(ref this.haulMode, "haulMode", HaulMode.Undefined, false);
            Scribe_Defs.Look <ThingDef>(ref this.plantDefToSow, "plantDefToSow");
            Scribe_Values.Look <LocomotionUrgency>(ref this.locomotionUrgency, "locomotionUrgency", LocomotionUrgency.Jog, false);
            Scribe_Values.Look <bool>(ref this.ignoreDesignations, "ignoreDesignations", false, false);
            Scribe_Values.Look <bool>(ref this.canBash, "canBash", false, false);
            Scribe_Values.Look <bool>(ref this.haulDroppedApparel, "haulDroppedApparel", false, false);
            Scribe_Values.Look <bool>(ref this.restUntilHealed, "restUntilHealed", false, false);
            Scribe_Values.Look <bool>(ref this.ignoreJoyTimeAssignment, "ignoreJoyTimeAssignment", false, false);
            Scribe_Values.Look <bool>(ref this.overeat, "overeat", false, false);
            Scribe_Values.Look <bool>(ref this.attackDoorIfTargetLost, "attackDoorIfTargetLost", false, false);
            Scribe_Values.Look <int>(ref this.takeExtraIngestibles, "takeExtraIngestibles", 0, false);
            Scribe_Values.Look <bool>(ref this.expireRequiresEnemiesNearby, "expireRequiresEnemiesNearby", false, false);
            Scribe_Values.Look <bool>(ref this.collideWithCaravans, "collideWithCaravans", false, false);
        }
Example #12
0
 public void ExposeData()
 {
     if (!TargetsDone.Values.ToList().NullOrEmpty())
     {
         tempInts = TargetsDone.Values.ToList();
     }
     Scribe_Values.Look(ref type, "type");
     Scribe_Values.Look(ref count, "count");
     Scribe_Collections.Look(ref tempInts, "tempInts", LookMode.Value);
     Scribe_Collections.Look <Thing, int>(ref CurrentlyOwnedTargets, "TempOwned", LookMode.Deep, LookMode.Value);
     Scribe_Collections.Look(ref trackedPawns, "trackedPawns", LookMode.Value);
     Scribe_TargetInfo.Look(ref LastTarget, "lastTarget");
     if (Scribe.mode == LoadSaveMode.LoadingVars)
     {
         for (int i = 0; i < targetSettings.targets.Count; i++)
         {
             TargetsDone.Add(targetSettings.targets[i], tempInts[i]);
         }
     }
 }
Example #13
0
 public override void PostExposeData()
 {
     base.PostExposeData();
     Scribe_TargetInfo.Look(ref this.forcedTarget, "forcedTarget" + Props.gizmoID);
     Scribe_TargetInfo.Look(ref this.lastAttackedTarget, "lastAttackedTarget" + Props.gizmoID);
     Scribe_Deep.Look <ThingOwner>(ref this.innerContainer, "innerContainer" + Props.gizmoID, new object[]
     {
         this
     });
     Scribe_Values.Look <int>(ref this.lastAttackTargetTick, "lastAttackTargetTick" + Props.gizmoID, 0, false);
     Scribe_Values.Look <int>(ref this.stunedticks, "stunedticks" + Props.gizmoID, 0, false);
     Scribe_Values.Look <int>(ref this.remainingCharges, "remainingCharges" + Props.gizmoID, -999, false);
     Scribe_Deep.Look <VerbTracker>(ref this.verbTracker, "verbTracker" + Props.gizmoID, new object[]
     {
         this
     });
     if (Scribe.mode == LoadSaveMode.PostLoadInit && this.remainingCharges == -999)
     {
         this.remainingCharges = this.MaxCharges;
     }
 }
Example #14
0
        public override void ExposeData()
        {
            base.ExposeData();

            Scribe_Values.Look(ref FireTicks, "coil_fireTicks", -1);
            Scribe_Values.Look(ref CurrentState, "coil_state", State.Idle);
            Scribe_TargetInfo.Look(ref CurrentTargetInfo, "coil_target", LocalTargetInfo.Invalid);
            Scribe_Values.Look(ref LastKnowPos, "coil_lastKnownPos");
            Scribe_Values.Look(ref Recoil, "coil_recoil");
            Scribe_Values.Look(ref RecoilVel, "coil_recoilVel");
            Scribe_Values.Look(ref ticksSinceCapacitorRefresh, "coil_ticksSinceCapRefresh");
            Scribe_Collections.Look(ref rawCapacitors, "coil_rawCaps", LookMode.Reference);
            rawCapacitors ??= new List <Building_Capacitor>();

            Scribe_Defs.Look(ref shellDef, "coil_shellDef");

            if (Scribe.mode == LoadSaveMode.LoadingVars)
            {
                ReplaceFuelProps(GetComp <CompRefuelable>());
            }

            CurrentShellDef = shellDef;
        }
Example #15
0
        public void ExposeData()
        {
            Scribe_Defs.Look <CannonDef>(ref cannonDef, "cannonDef");
            Scribe_Values.Look(ref uniqueID, "uniqueID", -1);
            Scribe_Values.Look(ref cooldownTicks, "cooldownTicks");

            Scribe_Values.Look(ref cannonRenderOffset, "cannonRenderOffset");
            Scribe_Values.Look(ref cannonRenderLocation, "cannonRenderLocation");
            Scribe_Values.Look(ref currentRotation, "currentRotation", defaultAngleRotated - 90);
            Scribe_Values.Look(ref rotationTargeted, "rotationTargeted", defaultAngleRotated - 90);

            Scribe_Values.Look(ref targetPersists, "targetPersists");
            Scribe_Values.Look(ref autoTargeting, "autoTargeting");
            Scribe_Values.Look(ref manualTargeting, "manualTargeting");

            Scribe_Values.Look(ref aimPieOffset, "aimPieOffset");
            Scribe_Values.Look(ref angleRestricted, "angleRestricted");

            Scribe_Values.Look(ref baseCannonRenderLocation, "baseCannonRenderLocation");

            Scribe_Values.Look(ref cannonTurretDrawSize, "cannonTurretDrawSize");
            Scribe_Values.Look(ref baseCannonDrawSize, "baseCannonDrawSize");

            Scribe_Values.Look(ref drawLayer, "drawLayer");

            Scribe_Values.Look(ref parentKey, "parentKey");
            Scribe_Values.Look(ref key, "key");

            Scribe_References.Look(ref pawn, "pawn");
            Scribe_Defs.Look(ref loadedAmmo, "loadedAmmo");
            Scribe_Defs.Look(ref savedAmmoType, "savedAmmoType");
            Scribe_Values.Look(ref shellCount, "shellCount");
            Scribe_Values.Look(ref gizmoLabel, "gizmoLabel");

            Scribe_Collections.Look(ref cannonGroupDict, "cannonGroupDict");
            Scribe_TargetInfo.Look(ref cannonTarget, "cannonTarget", LocalTargetInfo.Invalid);
        }
Example #16
0
        /*
         * *** End of class variables ***
         */

        #region Methods

        #region Expose
        /// <summary>
        /// Saves new variables shotAngle, shotHeight, shotSpeed.
        /// </summary>
        public override void ExposeData()
        {
            base.ExposeData();

            if (Scribe.mode == LoadSaveMode.Saving && launcher != null && launcher.Destroyed)
            {
                launcher = null;
            }

            Scribe_Values.Look <Vector2>(ref origin, "origin", default(Vector2), true);
            Scribe_Values.Look <int>(ref ticksToImpact, "ticksToImpact", 0, true);
            Scribe_TargetInfo.Look(ref intendedTarget, "intendedTarget");
            Scribe_References.Look <Thing>(ref launcher, "launcher");
            Scribe_Defs.Look <ThingDef>(ref equipmentDef, "equipmentDef");
            Scribe_Values.Look <bool>(ref landed, "landed");

            //Here be new variables
            Scribe_Values.Look(ref shotAngle, "shotAngle", 0f, true);
            Scribe_Values.Look(ref shotRotation, "shotRotation", 0f, true);
            Scribe_Values.Look(ref shotHeight, "shotHeight", 0f, true);
            Scribe_Values.Look(ref shotSpeed, "shotSpeed", 0f, true);
            Scribe_Values.Look <bool>(ref canTargetSelf, "canTargetSelf");
            Scribe_Values.Look <bool>(ref logMisses, "logMisses", true);
            Scribe_Values.Look <bool>(ref castShadow, "castShadow", true);

            // To insure saves don't get affected..
            Thing target = null;

            if (Scribe.mode != LoadSaveMode.Saving)
            {
                Scribe_References.Look <Thing>(ref target, "intendedTarget");
                if (target != null)
                {
                    intendedTarget = new LocalTargetInfo(target);
                }
            }
        }
Example #17
0
 public void ExposeData()
 {
     if (Scribe.mode == LoadSaveMode.Saving)
     {
         this.lastJobGiverKey = ((this.lastJobGiver == null) ? -1 : this.lastJobGiver.UniqueSaveKey);
     }
     Scribe_Values.Look <int>(ref this.lastJobGiverKey, "lastJobGiverKey", -1, false);
     if (Scribe.mode == LoadSaveMode.PostLoadInit && this.lastJobGiverKey != -1 && !this.lastJobGiverThinkTree.TryGetThinkNodeWithSaveKey(this.lastJobGiverKey, out this.lastJobGiver))
     {
         Log.Warning("Could not find think node with key " + this.lastJobGiverKey);
     }
     Scribe_References.Look <Pawn>(ref this.meleeThreat, "meleeThreat", false);
     Scribe_References.Look <Thing>(ref this.enemyTarget, "enemyTarget", false);
     Scribe_References.Look <Thing>(ref this.knownExploder, "knownExploder", false);
     Scribe_References.Look <Thing>(ref this.lastMannedThing, "lastMannedThing", false);
     Scribe_Defs.Look <ThinkTreeDef>(ref this.lastJobGiverThinkTree, "lastJobGiverThinkTree");
     Scribe_TargetInfo.Look(ref this.lastAttackedTarget, "lastAttackedTarget");
     Scribe_Collections.Look <int, int>(ref this.thinkData, "thinkData", LookMode.Value, LookMode.Value);
     Scribe_Values.Look <bool>(ref this.activeInt, "active", true, false);
     Scribe_Values.Look <JobTag>(ref this.lastJobTag, "lastJobTag", JobTag.Misc, false);
     Scribe_Values.Look <int>(ref this.lastIngestTick, "lastIngestTick", -99999, false);
     Scribe_Values.Look <int>(ref this.nextApparelOptimizeTick, "nextApparelOptimizeTick", -99999, false);
     Scribe_Values.Look <int>(ref this.lastEngageTargetTick, "lastEngageTargetTick", 0, false);
     Scribe_Values.Look <int>(ref this.lastAttackTargetTick, "lastAttackTargetTick", 0, false);
     Scribe_Values.Look <bool>(ref this.canFleeIndividual, "canFleeIndividual", false, false);
     Scribe_Values.Look <int>(ref this.exitMapAfterTick, "exitMapAfterTick", -99999, false);
     Scribe_Values.Look <IntVec3>(ref this.forcedGotoPosition, "forcedGotoPosition", IntVec3.Invalid, false);
     Scribe_Values.Look <int>(ref this.lastMeleeThreatHarmTick, "lastMeleeThreatHarmTick", 0, false);
     Scribe_Values.Look <int>(ref this.lastAssignedInteractTime, "lastAssignedInteractTime", -99999, false);
     Scribe_Values.Look <int>(ref this.lastInventoryRawFoodUseTick, "lastInventoryRawFoodUseTick", 0, false);
     Scribe_Values.Look <int>(ref this.lastDisturbanceTick, "lastDisturbanceTick", -99999, false);
     Scribe_Values.Look <bool>(ref this.wantsToTradeWithColony, "wantsToTradeWithColony", false, false);
     Scribe_Values.Look <int>(ref this.canLovinTick, "canLovinTick", -99999, false);
     Scribe_Values.Look <int>(ref this.canSleepTick, "canSleepTick", -99999, false);
     Scribe_Values.Look <bool>(ref this.nextMoveOrderIsWait, "nextMoveOrderIsWait", true, false);
     Scribe_Values.Look <int>(ref this.lastTakeCombatEnhancingDrugTick, "lastTakeCombatEnhancingDrugTick", -99999, false);
     Scribe_Values.Look <int>(ref this.lastHarmTick, "lastHarmTick", -99999, false);
     Scribe_Values.Look <bool>(ref this.anyCloseHostilesRecently, "anyCloseHostilesRecently", false, false);
     Scribe_Deep.Look <PawnDuty>(ref this.duty, "duty", new object[0]);
     Scribe_Deep.Look <MentalStateHandler>(ref this.mentalStateHandler, "mentalStateHandler", new object[]
     {
         this.pawn
     });
     Scribe_Deep.Look <MentalBreaker>(ref this.mentalBreaker, "mentalBreaker", new object[]
     {
         this.pawn
     });
     Scribe_Deep.Look <InspirationHandler>(ref this.inspirationHandler, "inspirationHandler", new object[]
     {
         this.pawn
     });
     Scribe_Deep.Look <PriorityWork>(ref this.priorityWork, "priorityWork", new object[]
     {
         this.pawn
     });
     Scribe_Values.Look <int>(ref this.applyBedThoughtsTick, "applyBedThoughtsTick", 0, false);
     Scribe_Values.Look <bool>(ref this.applyBedThoughtsOnLeave, "applyBedThoughtsOnLeave", false, false);
     Scribe_Values.Look <bool>(ref this.willJoinColonyIfRescued, "willJoinColonyIfRescued", false, false);
     Scribe_Values.Look <bool>(ref this.wildManEverReachedOutside, "wildManEverReachedOutside", false, false);
     if (Scribe.mode == LoadSaveMode.PostLoadInit)
     {
         BackCompatibility.MindStatePostLoadInit(this);
     }
 }
 public override void PostExposeData()
 {
     Scribe_Values.Look <int>(ref warmupTicksLeft, "warmupTicksLeft");
     Scribe_TargetInfo.Look(ref targetedTile, "targetedTile");
     base.PostExposeData();
 }
        public void ExposeData()
        {
            ILoadReferenceable refee = (ILoadReferenceable)commTarget;

            Scribe_References.Look(ref refee, "commTarget");
            commTarget = (ICommunicable)refee;
            Scribe_References.Look(ref verbToUse, "verbToUse");
            Scribe_References.Look(ref bill, "bill");
            Scribe_References.Look(ref lord, "lord");
            Scribe_References.Look(ref quest, "quest");
            Scribe_Defs.Look(ref def, "def");
            //Scribe_Values.Look(ref loadID, "loadID", 0);
            Scribe_TargetInfo.Look(ref targetA, "targetA");
            Scribe_TargetInfo.Look(ref targetB, "targetB");
            Scribe_TargetInfo.Look(ref targetC, "targetC");
            Scribe_TargetInfo.Look(ref globalTarget, "globalTarget");
            Scribe_Collections.Look(ref targetQueueA, "targetQueueA", LookMode.Undefined);
            Scribe_Collections.Look(ref targetQueueB, "targetQueueB", LookMode.Undefined);
            Scribe_Values.Look(ref count, "count", -1);
            Scribe_Collections.Look(ref countQueue, "countQueue", LookMode.Undefined);
            Scribe_Values.Look(ref startTick, "startTick", -1);
            Scribe_Values.Look(ref expiryInterval, "expiryInterval", -1);
            Scribe_Values.Look(ref checkOverrideOnExpire, "checkOverrideOnExpire", defaultValue: false);
            Scribe_Values.Look(ref playerForced, "playerForced", defaultValue: false);
            Scribe_Collections.Look(ref placedThings, "placedThings", LookMode.Undefined);
            Scribe_Values.Look(ref maxNumMeleeAttacks, "maxNumMeleeAttacks", int.MaxValue);
            Scribe_Values.Look(ref maxNumStaticAttacks, "maxNumStaticAttacks", int.MaxValue);
            Scribe_Values.Look(ref exitMapOnArrival, "exitMapOnArrival", defaultValue: false);
            Scribe_Values.Look(ref failIfCantJoinOrCreateCaravan, "failIfCantJoinOrCreateCaravan", defaultValue: false);
            Scribe_Values.Look(ref killIncappedTarget, "killIncappedTarget", defaultValue: false);
            Scribe_Values.Look(ref haulOpportunisticDuplicates, "haulOpportunisticDuplicates", defaultValue: false);
            Scribe_Values.Look(ref haulMode, "haulMode", HaulMode.Undefined);
            Scribe_Defs.Look(ref plantDefToSow, "plantDefToSow");
            Scribe_Values.Look(ref locomotionUrgency, "locomotionUrgency", LocomotionUrgency.Jog);
            Scribe_Values.Look(ref ignoreDesignations, "ignoreDesignations", defaultValue: false);
            Scribe_Values.Look(ref canBash, "canBash", defaultValue: false);
            Scribe_Values.Look(ref canUseRangedWeapon, "canUseRangedWeapon", defaultValue: true);
            Scribe_Values.Look(ref haulDroppedApparel, "haulDroppedApparel", defaultValue: false);
            Scribe_Values.Look(ref restUntilHealed, "restUntilHealed", defaultValue: false);
            Scribe_Values.Look(ref ignoreJoyTimeAssignment, "ignoreJoyTimeAssignment", defaultValue: false);
            Scribe_Values.Look(ref overeat, "overeat", defaultValue: false);
            Scribe_Values.Look(ref attackDoorIfTargetLost, "attackDoorIfTargetLost", defaultValue: false);
            Scribe_Values.Look(ref takeExtraIngestibles, "takeExtraIngestibles", 0);
            Scribe_Values.Look(ref expireRequiresEnemiesNearby, "expireRequiresEnemiesNearby", defaultValue: false);
            Scribe_Values.Look(ref collideWithPawns, "collideWithPawns", defaultValue: false);
            Scribe_Values.Look(ref forceSleep, "forceSleep", defaultValue: false);
            Scribe_Defs.Look(ref interaction, "interaction");
            Scribe_Values.Look(ref endIfCantShootTargetFromCurPos, "endIfCantShootTargetFromCurPos", defaultValue: false);
            Scribe_Values.Look(ref endIfCantShootInMelee, "endIfCantShootInMelee", defaultValue: false);
            Scribe_Values.Look(ref checkEncumbrance, "checkEncumbrance", defaultValue: false);
            Scribe_Values.Look(ref followRadius, "followRadius", 0f);
            Scribe_Values.Look(ref endAfterTendedOnce, "endAfterTendedOnce", defaultValue: false);
            Scribe_Defs.Look(ref workGiverDef, "workGiverDef");
            //Scribe_Defs.Look(ref jobGiverThinkTree, "jobGiverThinkTree");
            Scribe_Values.Look(ref doUntilGatheringEnded, "doUntilGatheringEnded", defaultValue: false);
            Scribe_Values.Look(ref psyfocusTargetLast, "psyfocusTargetLast", 0f);
            Scribe_Values.Look(ref wasOnMeditationTimeAssignment, "wasOnMeditationTimeAssignment", defaultValue: false);
            Scribe_Values.Look(ref reactingToMeleeThreat, "reactingToMeleeThreat", defaultValue: false);
            Scribe_References.Look(ref ability, "ability");
            //if (Scribe.mode == LoadSaveMode.Saving)
            //{
            //    jobGiverKey = ((jobGiver != null) ? jobGiver.UniqueSaveKey : (-1));
            //}
            //Scribe_Values.Look(ref jobGiverKey, "lastJobGiverKey", -1);
            //if (Scribe.mode == LoadSaveMode.PostLoadInit && jobGiverKey != -1 && !jobGiverThinkTree.TryGetThinkNodeWithSaveKey(jobGiverKey, out jobGiver))
            //{
            //    Log.Warning("Could not find think node with key " + jobGiverKey);
            //}
            if (Scribe.mode == LoadSaveMode.PostLoadInit && verbToUse != null && verbToUse.BuggedAfterLoading)
            {
                verbToUse = null;
                Log.Warning(string.Concat(GetType(), " had a bugged verbToUse after loading."));
            }
        }
Example #20
0
        public static void Look <T>(ref ThreadSafeLinkedList <T> list, bool saveDestroyedThings, string label, LookMode lookMode = LookMode.Undefined, params object[] ctorArgs)
        {
            if (lookMode == LookMode.Undefined && !Scribe_Universal.TryResolveLookMode(typeof(T), out lookMode))
            {
                Log.Error(string.Concat("LookList call with a list of ", typeof(T), " must have lookMode set explicitly."));
            }
            else if (Scribe.EnterNode(label))
            {
                try
                {
                    if (Scribe.mode == LoadSaveMode.Saving)
                    {
                        if (list == null)
                        {
                            Scribe.saver.WriteAttribute("IsNull", "True");
                            return;
                        }
                        foreach (T item8 in list)
                        {
                            switch (lookMode)
                            {
                            case LookMode.Value:
                            {
                                T value5 = item8;
                                Scribe_Values.Look(ref value5, "li", default(T), forceSave: true);
                                break;
                            }

                            case LookMode.LocalTargetInfo:
                            {
                                LocalTargetInfo value4 = (LocalTargetInfo)(object)item8;
                                Scribe_TargetInfo.Look(ref value4, saveDestroyedThings, "li");
                                break;
                            }

                            case LookMode.TargetInfo:
                            {
                                TargetInfo value3 = (TargetInfo)(object)item8;
                                Scribe_TargetInfo.Look(ref value3, saveDestroyedThings, "li");
                                break;
                            }

                            case LookMode.GlobalTargetInfo:
                            {
                                GlobalTargetInfo value2 = (GlobalTargetInfo)(object)item8;
                                Scribe_TargetInfo.Look(ref value2, saveDestroyedThings, "li");
                                break;
                            }

                            case LookMode.Def:
                            {
                                Def value = (Def)(object)item8;
                                Scribe_Defs.Look(ref value, "li");
                                break;
                            }

                            case LookMode.BodyPart:
                            {
                                BodyPartRecord part = (BodyPartRecord)(object)item8;
                                Scribe_BodyParts.Look(ref part, "li");
                                break;
                            }

                            case LookMode.Deep:
                            {
                                T target = item8;
                                Scribe_Deep.Look(ref target, saveDestroyedThings, "li", ctorArgs);
                                break;
                            }

                            case LookMode.Reference:
                            {
                                ILoadReferenceable refee = (ILoadReferenceable)(object)item8;
                                Scribe_References.Look(ref refee, "li", saveDestroyedThings);
                                break;
                            }
                            }
                        }
                    }
                    else if (Scribe.mode == LoadSaveMode.LoadingVars)
                    {
                        XmlNode      curXmlParent = Scribe.loader.curXmlParent;
                        XmlAttribute xmlAttribute = curXmlParent.Attributes["IsNull"];
                        if (xmlAttribute != null && xmlAttribute.Value.ToLower() == "true")
                        {
                            if (lookMode == LookMode.Reference)
                            {
                                Scribe.loader.crossRefs.loadIDs.RegisterLoadIDListReadFromXml(null, null);
                            }
                            list = null;
                            return;
                        }
                        switch (lookMode)
                        {
                        case LookMode.Value:
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            foreach (XmlNode childNode in curXmlParent.ChildNodes)
                            {
                                T item = ScribeExtractor.ValueFromNode(childNode, default(T));
                                list.Add(item);
                            }
                            break;

                        case LookMode.Deep:
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            foreach (XmlNode childNode2 in curXmlParent.ChildNodes)
                            {
                                T item7 = ScribeExtractor.SaveableFromNode <T>(childNode2, ctorArgs);
                                list.Add(item7);
                            }
                            break;

                        case LookMode.Def:
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            foreach (XmlNode childNode3 in curXmlParent.ChildNodes)
                            {
                                T item6 = ScribeExtractor.DefFromNodeUnsafe <T>(childNode3);
                                list.Add(item6);
                            }
                            break;

                        case LookMode.BodyPart:
                        {
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            int num4 = 0;
                            foreach (XmlNode childNode4 in curXmlParent.ChildNodes)
                            {
                                T item5 = (T)(object)ScribeExtractor.BodyPartFromNode(childNode4, num4.ToString(), null);
                                list.Add(item5);
                                num4++;
                            }
                            break;
                        }

                        case LookMode.LocalTargetInfo:
                        {
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            int num3 = 0;
                            foreach (XmlNode childNode5 in curXmlParent.ChildNodes)
                            {
                                T item4 = (T)(object)ScribeExtractor.LocalTargetInfoFromNode(childNode5, num3.ToString(), LocalTargetInfo.Invalid);
                                list.Add(item4);
                                num3++;
                            }
                            break;
                        }

                        case LookMode.TargetInfo:
                        {
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            int num2 = 0;
                            foreach (XmlNode childNode6 in curXmlParent.ChildNodes)
                            {
                                T item3 = (T)(object)ScribeExtractor.TargetInfoFromNode(childNode6, num2.ToString(), TargetInfo.Invalid);
                                list.Add(item3);
                                num2++;
                            }
                            break;
                        }

                        case LookMode.GlobalTargetInfo:
                        {
                            list = new ThreadSafeLinkedList <T>(curXmlParent.ChildNodes.Count);
                            int num = 0;
                            foreach (XmlNode childNode7 in curXmlParent.ChildNodes)
                            {
                                T item2 = (T)(object)ScribeExtractor.GlobalTargetInfoFromNode(childNode7, num.ToString(), GlobalTargetInfo.Invalid);
                                list.Add(item2);
                                num++;
                            }
                            break;
                        }

                        case LookMode.Reference:
                        {
                            List <string> list2 = new List <string>(curXmlParent.ChildNodes.Count);
                            foreach (XmlNode childNode8 in curXmlParent.ChildNodes)
                            {
                                list2.Add(childNode8.InnerText);
                            }
                            Scribe.loader.crossRefs.loadIDs.RegisterLoadIDListReadFromXml(list2, "");
                            break;
                        }
                        }
                    }
                    else
                    {
                        if (Scribe.mode != LoadSaveMode.ResolvingCrossRefs)
                        {
                            return;
                        }
                        switch (lookMode)
                        {
                        case LookMode.Reference:
                            list = TakeResolvedRefList <T>(Scribe.loader.crossRefs, "");
                            break;

                        case LookMode.LocalTargetInfo:
                            if (list != null)
                            {
                                for (int j = 0; j < list.Count; j++)
                                {
                                    list[j] = (T)(object)ScribeExtractor.ResolveLocalTargetInfo((LocalTargetInfo)(object)list[j], j.ToString());
                                }
                            }
                            break;

                        case LookMode.TargetInfo:
                            if (list != null)
                            {
                                for (int k = 0; k < list.Count; k++)
                                {
                                    list[k] = (T)(object)ScribeExtractor.ResolveTargetInfo((TargetInfo)(object)list[k], k.ToString());
                                }
                            }
                            break;

                        case LookMode.GlobalTargetInfo:
                            if (list != null)
                            {
                                for (int i = 0; i < list.Count; i++)
                                {
                                    list[i] = (T)(object)ScribeExtractor.ResolveGlobalTargetInfo((GlobalTargetInfo)(object)list[i], i.ToString());
                                }
                            }
                            break;
                        }
                        return;
                    }
                }
                finally
                {
                    Scribe.ExitNode();
                }
            }
            else if (Scribe.mode == LoadSaveMode.LoadingVars)
            {
                if (lookMode == LookMode.Reference)
                {
                    Scribe.loader.crossRefs.loadIDs.RegisterLoadIDListReadFromXml(null, label);
                }
                list = null;
            }
        }