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