void AddTank(double value) { PartResource partResource = resource; //Debug.LogWarning ("[MFT] Adding tank from API " + name + " amount: " + value); maxAmountExpression = null; ConfigNode node = new ConfigNode("RESOURCE"); node.AddValue("name", name); node.AddValue("amount", value); node.AddValue("maxAmount", value); #if DEBUG print(node.ToString()); #endif partResource = part.AddResource(node); partResource.enabled = true; module.RaiseResourceListChanged(); // Update symmetry counterparts. if (HighLogic.LoadedSceneIsEditor && propagate) { foreach (Part sym in part.symmetryCounterparts) { PartResource symResc = sym.AddResource(node); symResc.enabled = true; PartMessageService.Send <PartResourceListChanged> (this, sym); } } }
void DeleteTank() { PartResource partResource = resource; // Delete it //Debug.LogWarning ("[MFT] Deleting tank from API " + name); maxAmountExpression = null; part.Resources.list.Remove(partResource); PartModule.DestroyImmediate(partResource); module.RaiseResourceListChanged(); //print ("Removed."); // Update symmetry counterparts. if (HighLogic.LoadedSceneIsEditor && propagate) { foreach (Part sym in part.symmetryCounterparts) { PartResource symResc = sym.Resources[name]; sym.Resources.list.Remove(symResc); PartModule.DestroyImmediate(symResc); PartMessageService.Send <PartResourceListChanged> (this, sym); } } //print ("Sym removed"); }
public override void OnAwake() { Log.post(this.ClassName + " OnAwake-callback: "); base.OnAwake(); PartMessageService.Register(this); }
void UpdateTank(double value) { PartResource partResource = resource; if (value > partResource.maxAmount) { // If expanding, modify it to be less than overfull double maxQty = module.AvailableVolume * utilization + partResource.maxAmount; if (maxQty < value) { value = maxQty; } } // Do nothing if unchanged if (value == partResource.maxAmount) { return; } //Debug.LogWarning ("[MFT] Updating tank from API " + name + " amount: " + value); maxAmountExpression = null; // Keep the same fill fraction double newAmount = value * fillFraction; partResource.maxAmount = value; module.RaiseResourceMaxChanged(partResource, value); //print ("Set new maxAmount"); if (newAmount != partResource.amount) { partResource.amount = newAmount; module.RaiseResourceInitialChanged(partResource, newAmount); } // Update symmetry counterparts. if (HighLogic.LoadedSceneIsEditor && propagate) { foreach (Part sym in part.symmetryCounterparts) { PartResource symResc = sym.Resources[name]; symResc.maxAmount = value; PartMessageService.Send <PartResourceMaxAmountChanged> (this, sym, symResc, value); if (newAmount != symResc.amount) { symResc.amount = newAmount; PartMessageService.Send <PartResourceInitialAmountChanged> (this, sym, symResc, newAmount); } } } //print ("Symmetry set"); }
public override void OnAwake() { base.OnAwake(); PartMessageService.Register(this); if (GameSceneFilter.AnyInitializing.IsLoaded()) { LoadTextureSets(); } InitializeTextureSet(); }
public override void OnAwake() { enabled = false; if (CompatibilityChecker.IsWin64()) { compatible = false; Events["HideUI"].active = false; Events["ShowUI"].active = false; return; } PartMessageService.Register(this); // Initialize utilization from the settings file utilization = MFSSettings.partUtilizationDefault; }
protected new void SetSymCounterpartsAmount(double amount) { if (part == null) { return; } foreach (Part sym in part.symmetryCounterparts) { if (sym == part) { continue; } PartResource symResource = sym.Resources[resource.info.name]; symResource.amount = amount; PartMessageService.Send <PartResourceInitialAmountChanged>(this, sym, symResource, symResource.amount); } }
private void OnSliderChanged(IUIObject obj) { // ReSharper disable once CompareOfFloatsByEqualityOperator if (oldSliderValue == slider.Value) { return; } oldSliderValue = slider.Value; SIPrefix prefix = resource.maxAmount.GetSIPrefix(); resource.amount = prefix.Round(slider.Value * resource.maxAmount, digits: 4); PartMessageService.Send <PartResourceInitialAmountChanged>(this, part, resource, resource.amount); if (scene == UI_Scene.Editor) { SetSymCounterpartsAmount(resource.amount); } resourceAmnt.Text = resource.amount.ToString("F1"); GameEvents.onEditorShipModified.Fire(EditorLogic.fetch.ship); }
//---------------------------------------------------------------------------------------------- public override void OnAwake() { Log.post(this.ClassName + " OnAwake-callback: "); base.OnAwake(); PartMessageService.Register(this); loadLiftingGasOptions(); // check liftingGas validity. If invalid: set to default if (!liftingGasOptions.Any(a => a.displayName == liftingGas)) { Log.post("no valid lifting gas selected. Set to default", LogLevel.LOG_WARNING); if (liftingGasOptions.Count > 0) { liftingGas = liftingGasOptions.First <LiftingGas>(lgo => !lgo.deprecated).displayName; Log.post("liftinggas set to: " + liftingGas, LogLevel.LOG_INFORMATION); } else { Log.post("no valid lifting gas option found.", LogLevel.LOG_ERROR); } } }
public override void OnAwake() { base.OnAwake(); PartMessageService.Register(this); //this.RegisterOnUpdateEditor(OnUpdateEditor); }
void Awake() { PartMessageService.Register <ExShipInfo>(this); }
public override void OnAwake() { PartMessageService.Register(this); }
public NodeTransformable(Part part, AttachNode node) { this.part = part; this.node = node; PartMessageService.Register(this); }