Ejemplo n.º 1
0
        public void OnProtoSerialize(ProtobufSerializer serializer)
        {
            QuickLogger.Debug($"Saving {_prefabId.Id} Data");

            if (!Directory.Exists(SaveDirectory))
            {
                Directory.CreateDirectory(SaveDirectory);
            }

            var saveData = new SaveData
            {
                BodyColor               = _currentBodyColor.ColorToVector4(),
                Batteries               = PowerManager.Save(),
                PowerState              = PowerManager.GetPowerState(),
                ChargeMode              = PowerManager.GetChargeMode(),
                ToggleMode              = AnimationManager.GetBoolHash(ToggleHash),
                AutoActivate            = GetAutoActivate(),
                BaseDrainProtection     = GetBaseDrainProtection(),
                BaseDrainProtectionGoal = GetBasePowerProtectionGoal(),
                AutoActivateAt          = GetAutoActivateAt()
            };

            var output = JsonConvert.SerializeObject(saveData, Formatting.Indented);

            File.WriteAllText(SaveFile, output);
            LoadData.CleanOldSaveData();
            BaseManager.SaveBases();
            QuickLogger.Debug($"Saved {_prefabId.Id} Data");
        }
Ejemplo n.º 2
0
        internal void SetAutoActivate(bool value)
        {
            _autoActivate = value;

            if (value)
            {
                if (PowerManager.GetChargeMode() == PowerToggleStates.TrickleMode)
                {
                    PowerManager.SetChargeMode(PowerToggleStates.ChargeMode);
                }

                AddToManager();
            }
            else
            {
                BaseManager.RemovePowerStorage(this);
            }

            AnimationManager.SetBoolHash(AutoActiveHash, value);
            QuickLogger.Debug($"Auto Activate: {GetAutoActivate()}", true);
        }
Ejemplo n.º 3
0
 internal void SyncAll()
 {
     Manager.SyncUnits(PowerManager.GetPowerState(), PowerManager.GetChargeMode(), GetAutoActivate(), GetBaseDrainProtection());
 }