protected bool consume_energy() { if (ShuttingOff) { consumption_rate = 0; } else if (SelfSustaining && Rate >= MinimumRate) { consumption_rate = 1; } else { socket.RequestTransfer(CurrentEnergyDemand * TimeWarp.fixedDeltaTime); if (!socket.TransferResource()) { return(false); } consumption_rate = socket.Ratio; if (consumption_rate < MinimumRate) { Utils.Message("Not enough energy"); socket.Clear(); } } update_rate(Mathf.Min(consumption_rate, next_rate)); return(true); }
protected virtual void consume_energy() { if (State != AnimatorState.Closing && State != AnimatorState.Opening) { return; } socket.RequestTransfer(EnergyConsumption * TimeWarp.fixedDeltaTime); if (!socket.TransferResource()) { return; } speed_multiplier = socket.Ratio; if (speed_multiplier < 0.01f) { speed_multiplier = 0; } update_sound_params(); update_emitter(); }
public bool TransferResource(float rate = 1f) { Pump.RequestTransfer(rate * URate * TimeWarp.fixedDeltaTime); return(Pump.TransferResource()); }