public override void OnUpdate() { if (this.isRunning) { if (base.vessel.situation != Vessel.Situations.LANDED && base.vessel.situation != Vessel.Situations.PRELAUNCH && !this.HasSurfaceConatct(this.impactTrans)) { ScreenMessages.PostScreenMessage("You are not landed!", 5f, ScreenMessageStyle.UPPER_CENTER); this.isRunning = false; this.stat = "Not landed"; this.RetractAnim(); } else if (MBToolbox.AmountAvailable(this.input, base.part) < (double)(this.inPerSec * TimeWarp.deltaTime)) { ScreenMessages.PostScreenMessage("Not enough" + this.input, 5f, ScreenMessageStyle.UPPER_CENTER); this.isRunning = false; this.stat = "Not enough " + this.input; this.RetractAnim(); } else if (base.vessel.srfSpeed > (double)this.maxSpeed) { ScreenMessages.PostScreenMessage("Too fast!", 5f, ScreenMessageStyle.UPPER_CENTER); this.isRunning = false; this.stat = "Too fast!"; } else { MBToolbox.RequestResource(this.input, (double)(this.inPerSec * TimeWarp.deltaTime), base.part); double free = MBToolbox.FreeSpaceAvailable(this.resource, base.part); double d = (double)(this.unitPerSec * TimeWarp.deltaTime / this.maxSpeed) * base.vessel.srfSpeed; this.rat = MBToolbox.AddResource(this.resource, d, base.part); Debug.Log("Free space available: " + free.ToString()); Debug.Log("d: " + d.ToString()); Debug.Log("rat: " + rat.ToString()); double free2 = MBToolbox.FreeSpaceAvailable(this.resource, base.part); if (free == 0) { ScreenMessages.PostScreenMessage("Not enough space for the resources!", 5f, ScreenMessageStyle.UPPER_CENTER); this.isRunning = false; this.stat = "Not enough free space"; this.RetractAnim(); } } } }
public static double magicResourceTransfer(string resName, double amount, Part from, Part to) { return(MBToolbox.AddResource(resName, MBToolbox.RequestResource(resName, amount, from), to)); }