Exemple #1
0
        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));
 }