Example #1
0
 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;
 }
Example #2
0
        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);
                }
            }
        }
Example #3
0
 public Runner(ILiquidProvider liquidProvider, IEnergyProvider energyProvider, IKettle kettle)
 {
     LiquidProvider = liquidProvider;
     EnergyProvider = energyProvider;
     Kettle         = kettle;
 }
Example #4
0
 protected LaserCannon(IEnergyProvider source, int baseDamage, PlayerDamageType playerDamageType, ZoneLocation currentZone)
     : base(source, baseDamage, new [] { 1, 2, 3 }, playerDamageType, currentZone)
 {
 }
Example #5
0
 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);
 }