protected Cannon(IEnergyProvider source, int baseDamage, IEnumerable <int> baseAffectedDistances, PlayerDamageType playerDamageType, params ZoneLocation[] affectedZones) { this.source = source; this.baseDamage = baseDamage; this.baseAffectedDistances = baseAffectedDistances; this.playerDamageType = playerDamageType; this.affectedZones = affectedZones; }
public void Update() { Point16 check = Utility.TileEntityTopLeft(position); if (TileEntity.ByPosition.ContainsKey(check)) { TileEntity te = TileEntity.ByPosition[check]; if (IO == IO.In && te is IEnergyProvider) { IEnergyProvider provider = (IEnergyProvider)te; long delta = grid.energy.ReceiveEnergy(Utility.Min(grid.energy.GetMaxReceive(), provider.GetEnergyStorage().GetMaxExtract(), provider.GetEnergy())); provider.GetEnergyStorage().ModifyEnergyStored(-delta); Net.SendGridEnergy(position, delta); } else if (IO == IO.Out && te is IEnergyReceiver) { IEnergyReceiver receiver = (IEnergyReceiver)te; long delta = -grid.energy.ExtractEnergy(Utility.Min(grid.energy.GetMaxExtract(), receiver.GetEnergyStorage().GetMaxReceive(), receiver.GetCapacity() - receiver.GetEnergy())); receiver.GetEnergyStorage().ModifyEnergyStored(-delta); Net.SendGridEnergy(position, delta); } } }
public Runner(ILiquidProvider liquidProvider, IEnergyProvider energyProvider, IKettle kettle) { LiquidProvider = liquidProvider; EnergyProvider = energyProvider; Kettle = kettle; }
protected LaserCannon(IEnergyProvider source, int baseDamage, PlayerDamageType playerDamageType, ZoneLocation currentZone) : base(source, baseDamage, new [] { 1, 2, 3 }, playerDamageType, currentZone) { }
public static float GetProgress(IEnergyProvider storage) => storage.GetEnergyStorage().GetEnergy() / (float)storage.GetEnergyStorage().GetCapacity();
private static string FormatCapacity(IEnergyProvider node) { return(node.AmountAvailable + "/" + node.TotalAvailable); }
private static string FormatDischarge(IEnergyProvider node) { return(node.MaxRate - node.RateAvailable + "/" + node.MaxRate); }