Esempio n. 1
0
        private void OnEnable()
        {
            if (_runStartUpOnEnable)
            {
                if (!IsInitialized)
                {
                    Initialize();
                }

                if (_fromSave)
                {
                    if (_savedData == null)
                    {
                        ReadySaveData();
                    }

                    ColorManager.SetColorFromSave(_savedData.BodyColor.Vector4ToColor());
                    GaspodCollectorStorage.SetStorageAmount(_savedData.GaspodAmount);
                    PowerManager.LoadSaveData(_savedData.Batteries);
                    DisplayManager.OnStorageAmountChange(_savedData.GaspodAmount);
                    ReattachBeaconAfterLoad();
                    QuickLogger.Info($"Loaded {Mod.FriendlyName}");
                }

                _runStartUpOnEnable = false;
            }
        }
Esempio n. 2
0
        private void UpdateMass()
        {
            float massEmpty = QPatch.Configuration.Config.CollectorEmptyMass;
            float massFull  = QPatch.Configuration.Config.CollectorFullMass;

            if (GaspodCollectorStorage != null)
            {
                this.rigidbody.mass =
                    (massFull - massEmpty) * (GaspodCollectorStorage.GetStorageAmount() /
                                              (float)QPatch.Configuration.Config.StorageLimit) + massEmpty;
            }
        }
Esempio n. 3
0
        internal void Save(SaveData saveData)
        {
            var prefabIdentifier = GetComponent <PrefabIdentifier>();
            var id = prefabIdentifier.Id;

            if (_savedData == null)
            {
                _savedData = new SaveDataEntry();
            }
            _savedData.ID           = id;
            _savedData.GaspodAmount = GaspodCollectorStorage.GetStorageAmount();
            _savedData.BodyColor    = ColorManager.GetColor().ColorToVector4();
            _savedData.Batteries    = PowerManager.GetBatteries();
            saveData.Entries.Add(_savedData);
        }
Esempio n. 4
0
        public override void OnProtoDeserialize(ProtobufSerializer serializer)
        {
            if (_savedData == null)
            {
                ReadySaveData();
                _fromSave = true;
            }

            if (!IsInitialized)
            {
                Initialize();
            }

            GaspodCollectorStorage.SetStorageAmount(_savedData.GaspodAmount);
            PowerManager.LoadSaveData(_savedData.Batteries);
            DisplayManager.OnStorageAmountChange(_savedData.GaspodAmount);
            ReattachBeaconAfterLoad();
            ColorManager.SetColorFromSave(_savedData.BodyColor.Vector4ToColor());
            QuickLogger.Info($"Loaded {Mod.FriendlyName}");
        }
Esempio n. 5
0
        public override bool CanDeconstruct(out string reason)
        {
            if (IsBeaconAttached())
            {
                reason = GaspodCollectorBuildable.RemoveBeacon();
                return(false);
            }

            if (GaspodCollectorStorage != null && GaspodCollectorStorage.GetStorageAmount() > 0)
            {
                reason = GaspodCollectorBuildable.NotEmpty();
                return(false);
            }

            if (PowerManager != null && PowerManager.HasPower())
            {
                reason = GaspodCollectorBuildable.HasBatteries();
                return(false);
            }

            reason = string.Empty;
            return(true);
        }