Merge branch 'Prototik-ibatteryobject' into 6.0.x
This commit is contained in:
commit
5c8bd331d3
12 changed files with 253 additions and 169 deletions
|
@ -16,6 +16,9 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
|
||||
public class JavaTools {
|
||||
public static double bounds(double value, double min, double max) {
|
||||
return Math.max(min, Math.min(value, max));
|
||||
}
|
||||
|
||||
public static <T> T[] concat(T[] first, T[] second) {
|
||||
T[] result = Arrays.copyOf(first, first.length + second.length);
|
||||
|
|
134
api/buildcraft/api/mj/BatteryObject.java
Executable file
134
api/buildcraft/api/mj/BatteryObject.java
Executable file
|
@ -0,0 +1,134 @@
|
|||
package buildcraft.api.mj;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import buildcraft.api.core.JavaTools;
|
||||
|
||||
public class BatteryObject implements IBatteryObject {
|
||||
protected Field f;
|
||||
protected Object o;
|
||||
protected MjBattery b;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double getEnergyRequested() {
|
||||
try {
|
||||
return JavaTools.bounds(b.maxCapacity() - f.getDouble(o), b.minimumConsumption(), b.maxReceivedPerCycle());
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double addEnergy(double mj) {
|
||||
return addEnergy(mj, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double addEnergy(double mj, boolean ignoreCycleLimit) {
|
||||
try {
|
||||
double contained = f.getDouble(o);
|
||||
double maxAccepted = b.maxCapacity() - contained + b.minimumConsumption();
|
||||
if (!ignoreCycleLimit && maxAccepted > b.maxReceivedPerCycle()) {
|
||||
maxAccepted = b.maxReceivedPerCycle();
|
||||
}
|
||||
double used = Math.min(maxAccepted, mj);
|
||||
if (used > 0) {
|
||||
f.setDouble(o, Math.min(contained + used, b.maxCapacity()));
|
||||
return used;
|
||||
}
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double getEnergyStored() {
|
||||
try {
|
||||
return f.getDouble(o);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void setEnergyStored(double mj) {
|
||||
try {
|
||||
f.setDouble(o, mj);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double maxCapacity() {
|
||||
return b.maxCapacity();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double minimumConsumption() {
|
||||
return b.minimumConsumption();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public double maxReceivedPerCycle() {
|
||||
return b.maxReceivedPerCycle();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public BatteryObject reconfigure(final double maxCapacity, final double maxReceivedPerCycle, final double minimumConsumption) {
|
||||
b = new MjBattery() {
|
||||
@Override
|
||||
public double maxCapacity() {
|
||||
return maxCapacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double maxReceivedPerCycle() {
|
||||
return maxReceivedPerCycle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double minimumConsumption() {
|
||||
return minimumConsumption;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Annotation> annotationType() {
|
||||
return MjBattery.class;
|
||||
}
|
||||
};
|
||||
return this;
|
||||
}
|
||||
}
|
78
api/buildcraft/api/mj/IBatteryObject.java
Normal file
78
api/buildcraft/api/mj/IBatteryObject.java
Normal file
|
@ -0,0 +1,78 @@
|
|||
/**
|
||||
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
|
||||
* http://www.mod-buildcraft.com
|
||||
*
|
||||
* BuildCraft is distributed under the terms of the Minecraft Mod Public
|
||||
* License 1.0, or MMPL. Please check the contents of the license located in
|
||||
* http://www.mod-buildcraft.com/MMPL-1.0.txt
|
||||
*/
|
||||
package buildcraft.api.mj;
|
||||
|
||||
public interface IBatteryObject {
|
||||
/**
|
||||
* @return Current energy requirement for keeping machine state
|
||||
*/
|
||||
double getEnergyRequested();
|
||||
|
||||
/**
|
||||
* Add energy to this battery
|
||||
*
|
||||
* @param mj Energy amount
|
||||
* @return Used energy
|
||||
*/
|
||||
double addEnergy(double mj);
|
||||
|
||||
/**
|
||||
* Add energy to this battery
|
||||
*
|
||||
* @param mj Energy amount
|
||||
* @param ignoreCycleLimit Force add all energy even if "maxReceivedPerCycle" limit is reached
|
||||
* @return Used energy
|
||||
*/
|
||||
double addEnergy(double mj, boolean ignoreCycleLimit);
|
||||
|
||||
/**
|
||||
* @return Current stored energy amount in this battery
|
||||
*/
|
||||
double getEnergyStored();
|
||||
|
||||
/**
|
||||
* Set current stored energy amount.
|
||||
* Doesn't use it for your machines! Decrease your battery field directly.
|
||||
*
|
||||
* @param mj New energy amount
|
||||
*/
|
||||
void setEnergyStored(double mj);
|
||||
|
||||
/**
|
||||
* Can be overrided via {@link #reconfigure(double, double, double)}
|
||||
*
|
||||
* @return Maximal energy amount for this battery.
|
||||
*/
|
||||
double maxCapacity();
|
||||
|
||||
/**
|
||||
* Can be overrided via {@link #reconfigure(double, double, double)}
|
||||
*
|
||||
* @return Minimal energy amount for keep your machine in active state
|
||||
*/
|
||||
double minimumConsumption();
|
||||
|
||||
/**
|
||||
* Can be overrided via {@link #reconfigure(double, double, double)}
|
||||
*
|
||||
* @return Maximal energy received per one tick
|
||||
*/
|
||||
double maxReceivedPerCycle();
|
||||
|
||||
/**
|
||||
* Allow to dynamically reconfigure your battery.
|
||||
* Usually it's not very good change battery parameters for already present machines, but if you want...
|
||||
*
|
||||
* @param maxCapacity {@link #maxCapacity()}
|
||||
* @param maxReceivedPerCycle {@link #maxReceivedPerCycle()}
|
||||
* @param minimumConsumption {@link #minimumConsumption()}
|
||||
* @return Current battery object instance
|
||||
*/
|
||||
IBatteryObject reconfigure(final double maxCapacity, final double maxReceivedPerCycle, final double minimumConsumption);
|
||||
}
|
13
api/buildcraft/api/mj/IBatteryProvider.java
Normal file
13
api/buildcraft/api/mj/IBatteryProvider.java
Normal file
|
@ -0,0 +1,13 @@
|
|||
/**
|
||||
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
|
||||
* http://www.mod-buildcraft.com
|
||||
*
|
||||
* BuildCraft is distributed under the terms of the Minecraft Mod Public
|
||||
* License 1.0, or MMPL. Please check the contents of the license located in
|
||||
* http://www.mod-buildcraft.com/MMPL-1.0.txt
|
||||
*/
|
||||
package buildcraft.api.mj;
|
||||
|
||||
public interface IBatteryProvider {
|
||||
IBatteryObject getMjBattery();
|
||||
}
|
|
@ -8,7 +8,6 @@
|
|||
*/
|
||||
package buildcraft.api.mj;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -28,166 +27,19 @@ public final class MjAPI {
|
|||
BatteryKind kind;
|
||||
}
|
||||
|
||||
public interface IBatteryProvider {
|
||||
BatteryObject getMjBattery();
|
||||
}
|
||||
|
||||
public static class BatteryObject {
|
||||
private Field f;
|
||||
private Object o;
|
||||
private MjBattery b;
|
||||
|
||||
/**
|
||||
* @return Current energy requirement for keeping machine state
|
||||
*/
|
||||
public double getEnergyRequested() {
|
||||
try {
|
||||
double contained = f.getDouble(o);
|
||||
double max = b.maxCapacity();
|
||||
return Math.max(Math.min(max - contained, b.maxReceivedPerCycle()), b.minimumConsumption());
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add energy to this battery
|
||||
*
|
||||
* @param mj Energy amount
|
||||
* @return Used energy
|
||||
*/
|
||||
public double addEnergy(double mj) {
|
||||
return addEnergy(mj, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add energy to this battery
|
||||
*
|
||||
* @param mj Energy amount
|
||||
* @param ignoreCycleLimit Force add all energy even if "maxReceivedPerCycle" limit is reached
|
||||
* @return Used energy
|
||||
*/
|
||||
public double addEnergy(double mj, boolean ignoreCycleLimit) {
|
||||
try {
|
||||
double contained = f.getDouble(o);
|
||||
double maxAccepted = b.maxCapacity() - contained + b.minimumConsumption();
|
||||
if (!ignoreCycleLimit && maxAccepted > b.maxReceivedPerCycle()) {
|
||||
maxAccepted = b.maxReceivedPerCycle();
|
||||
}
|
||||
double used = Math.min(maxAccepted, mj);
|
||||
if (used > 0) {
|
||||
f.setDouble(o, Math.min(contained + used, b.maxCapacity()));
|
||||
return used;
|
||||
}
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Current stored energy amount in this battery
|
||||
*/
|
||||
public double getEnergyStored() {
|
||||
try {
|
||||
return f.getDouble(o);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set current stored energy amount.
|
||||
* Doesn't use it for your machines! Decrease your battery field directly.
|
||||
*
|
||||
* @param mj New energy amount
|
||||
*/
|
||||
public void setEnergyStored(double mj) {
|
||||
try {
|
||||
f.setDouble(o, mj);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be overrided via {@link #reconfigure(double, double, double)}
|
||||
*
|
||||
* @return Maximal energy amount for this battery.
|
||||
*/
|
||||
public double maxCapacity() {
|
||||
return b.maxCapacity();
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be overrided via {@link #reconfigure(double, double, double)}
|
||||
*
|
||||
* @return Minimal energy amount for keep your machine in active state
|
||||
*/
|
||||
public double minimumConsumption() {
|
||||
return b.minimumConsumption();
|
||||
}
|
||||
|
||||
/**
|
||||
* Can be overrided via {@link #reconfigure(double, double, double)}
|
||||
*
|
||||
* @return Maximal energy received per one tick
|
||||
*/
|
||||
public double maxReceivedPerCycle() {
|
||||
return b.maxReceivedPerCycle();
|
||||
}
|
||||
|
||||
/**
|
||||
* Allow to dynamically reconfigure your battery.
|
||||
* Usually it's not very good change battery parameters for already present machines, but if you want...
|
||||
*
|
||||
* @param maxCapacity {@link #maxCapacity()}
|
||||
* @param maxReceivedPerCycle {@link #maxReceivedPerCycle()}
|
||||
* @param minimumConsumption {@link #minimumConsumption()}
|
||||
* @return Current battery object instance
|
||||
*/
|
||||
public BatteryObject reconfigure(final double maxCapacity, final double maxReceivedPerCycle, final double minimumConsumption) {
|
||||
b = new MjBattery() {
|
||||
@Override
|
||||
public double maxCapacity() {
|
||||
return maxCapacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double maxReceivedPerCycle() {
|
||||
return maxReceivedPerCycle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double minimumConsumption() {
|
||||
return minimumConsumption;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends Annotation> annotationType() {
|
||||
return MjBattery.class;
|
||||
}
|
||||
};
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deactivate constructor
|
||||
*/
|
||||
private MjAPI() {
|
||||
}
|
||||
|
||||
public static BatteryObject getMjBattery(Object o) {
|
||||
public static IBatteryObject getMjBattery(Object o) {
|
||||
if (o == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (o instanceof IBatteryProvider) {
|
||||
BatteryObject battery = ((IBatteryProvider) o).getMjBattery();
|
||||
IBatteryObject battery = ((IBatteryProvider) o).getMjBattery();
|
||||
if (battery != null) {
|
||||
return battery;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ public class MjAPILegacy implements IPowerReceptor {
|
|||
private final PowerHandler powerHandler;
|
||||
private final World world;
|
||||
|
||||
protected MjAPILegacy(World world, MjAPI.BatteryObject battery, PowerHandler.Type type) {
|
||||
protected MjAPILegacy(World world, IBatteryObject battery, PowerHandler.Type type) {
|
||||
if (battery == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ public class MjAPILegacy implements IPowerReceptor {
|
|||
this.powerHandler = new PowerHandler(this, type, battery);
|
||||
}
|
||||
|
||||
public static MjAPILegacy from(World world, MjAPI.BatteryObject battery, PowerHandler.Type type) {
|
||||
public static MjAPILegacy from(World world, IBatteryObject battery, PowerHandler.Type type) {
|
||||
return new MjAPILegacy(world, battery, type);
|
||||
}
|
||||
|
||||
|
@ -40,8 +40,8 @@ public class MjAPILegacy implements IPowerReceptor {
|
|||
return new MjAPILegacy(tileEntity.getWorldObj(), battery(tileEntity), type);
|
||||
}
|
||||
|
||||
private static MjAPI.BatteryObject battery(Object object) {
|
||||
MjAPI.BatteryObject battery = MjAPI.getMjBattery(object);
|
||||
private static IBatteryObject battery(Object object) {
|
||||
IBatteryObject battery = MjAPI.getMjBattery(object);
|
||||
if (battery == null) {
|
||||
throw new IllegalArgumentException(String.format("Object %s not using MjAPI, can't create legacy wrapper", object));
|
||||
}
|
||||
|
|
|
@ -13,6 +13,9 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import buildcraft.api.core.SafeTimeTracker;
|
||||
import buildcraft.api.mj.BatteryObject;
|
||||
import buildcraft.api.mj.IBatteryObject;
|
||||
import buildcraft.api.mj.IBatteryProvider;
|
||||
import buildcraft.api.mj.MjAPI;
|
||||
import buildcraft.api.mj.MjBattery;
|
||||
|
||||
|
@ -32,7 +35,7 @@ import buildcraft.api.mj.MjBattery;
|
|||
* @see IPowerReceptor
|
||||
* @see IPowerEmitter
|
||||
*/
|
||||
public final class PowerHandler implements MjAPI.IBatteryProvider {
|
||||
public final class PowerHandler implements IBatteryProvider {
|
||||
|
||||
public static enum Type {
|
||||
|
||||
|
@ -132,7 +135,7 @@ public final class PowerHandler implements MjAPI.IBatteryProvider {
|
|||
private PerditionCalculator perdition;
|
||||
private final PowerReceiver receiver;
|
||||
private final Type type;
|
||||
private MjAPI.BatteryObject battery;
|
||||
private IBatteryObject battery;
|
||||
// Tracking
|
||||
private double averageLostPower = 0;
|
||||
private double averageReceivedPower = 0;
|
||||
|
@ -148,8 +151,8 @@ public final class PowerHandler implements MjAPI.IBatteryProvider {
|
|||
this.receiver = new PowerReceiver();
|
||||
this.perdition = DEFAULT_PERDITION;
|
||||
|
||||
if (battery instanceof MjAPI.BatteryObject) {
|
||||
this.battery = (MjAPI.BatteryObject) battery;
|
||||
if (battery instanceof IBatteryObject) {
|
||||
this.battery = (BatteryObject) battery;
|
||||
} else if (battery != null) {
|
||||
this.battery = MjAPI.getMjBattery(battery);
|
||||
} else {
|
||||
|
@ -182,7 +185,7 @@ public final class PowerHandler implements MjAPI.IBatteryProvider {
|
|||
}
|
||||
|
||||
@Override
|
||||
public MjAPI.BatteryObject getMjBattery() {
|
||||
public IBatteryObject getMjBattery() {
|
||||
return battery;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import net.minecraft.util.ChatComponentText;
|
|||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import buildcraft.api.core.NetworkData;
|
||||
import buildcraft.api.mj.IBatteryObject;
|
||||
import buildcraft.api.mj.MjAPI;
|
||||
import buildcraft.api.mj.MjBattery;
|
||||
import buildcraft.api.power.IPowerReceptor;
|
||||
|
@ -121,7 +122,7 @@ public class TileEnergyConverter extends TileBuildCraft implements IPowerRecepto
|
|||
if (tile instanceof TileEnergyConverter) {
|
||||
continue;
|
||||
}
|
||||
MjAPI.BatteryObject object = MjAPI.getMjBattery(tile);
|
||||
IBatteryObject object = MjAPI.getMjBattery(tile);
|
||||
if (object != null && mjStored > 0) {
|
||||
double wantToUse = Math.min(mjStored, object.getEnergyRequested());
|
||||
object.addEnergy(wantToUse);
|
||||
|
|
|
@ -14,8 +14,8 @@ import net.minecraft.tileentity.TileEntity;
|
|||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import buildcraft.api.mj.IBatteryObject;
|
||||
import buildcraft.api.mj.MjAPI;
|
||||
import buildcraft.api.mj.MjAPI.BatteryObject;
|
||||
import buildcraft.api.power.IPowerEmitter;
|
||||
import buildcraft.api.power.IPowerReceptor;
|
||||
import buildcraft.api.power.PowerHandler;
|
||||
|
@ -74,7 +74,7 @@ public class TileEnergyReceiver extends TileBuildCraft implements IPipeConnectio
|
|||
energyStored = 0;
|
||||
}
|
||||
} else if (tile != null) {
|
||||
BatteryObject battery = MjAPI.getMjBattery(tile);
|
||||
IBatteryObject battery = MjAPI.getMjBattery(tile);
|
||||
|
||||
if (battery != null) {
|
||||
battery.addEnergy(energyStored);
|
||||
|
|
|
@ -22,8 +22,8 @@ import buildcraft.BuildCraftEnergy;
|
|||
import buildcraft.api.core.NetworkData;
|
||||
import buildcraft.api.gates.IOverrideDefaultTriggers;
|
||||
import buildcraft.api.gates.ITrigger;
|
||||
import buildcraft.api.mj.IBatteryObject;
|
||||
import buildcraft.api.mj.MjAPI;
|
||||
import buildcraft.api.mj.MjAPI.BatteryObject;
|
||||
import buildcraft.api.power.IPowerEmitter;
|
||||
import buildcraft.api.power.IPowerReceptor;
|
||||
import buildcraft.api.power.PowerHandler;
|
||||
|
@ -307,7 +307,7 @@ public abstract class TileEngine extends TileBuildCraft implements IPowerRecepto
|
|||
extractEnergy(receptor.getMinEnergyReceived(), needed, true);
|
||||
}
|
||||
} else {
|
||||
BatteryObject battery = MjAPI.getMjBattery(tile);
|
||||
IBatteryObject battery = MjAPI.getMjBattery(tile);
|
||||
|
||||
battery.addEnergy(extractEnergy(0, battery.maxReceivedPerCycle(),
|
||||
true));
|
||||
|
|
|
@ -21,8 +21,8 @@ import buildcraft.BuildCraftCore;
|
|||
import buildcraft.BuildCraftTransport;
|
||||
import buildcraft.api.core.SafeTimeTracker;
|
||||
import buildcraft.api.gates.ITrigger;
|
||||
import buildcraft.api.mj.IBatteryObject;
|
||||
import buildcraft.api.mj.MjAPI;
|
||||
import buildcraft.api.mj.MjAPI.BatteryObject;
|
||||
import buildcraft.api.power.IPowerEmitter;
|
||||
import buildcraft.api.power.IPowerReceptor;
|
||||
import buildcraft.api.power.PowerHandler.PowerReceiver;
|
||||
|
@ -202,7 +202,7 @@ public class PipeTransportPower extends PipeTransport {
|
|||
internalPower[i] -= watts;
|
||||
} else if (tiles[j] != null) {
|
||||
// Look for the simplified power framework
|
||||
BatteryObject battery = MjAPI.getMjBattery(tiles [j]);
|
||||
IBatteryObject battery = MjAPI.getMjBattery(tiles [j]);
|
||||
|
||||
if (battery != null) {
|
||||
watts = (internalPower[i] / totalPowerQuery)
|
||||
|
@ -250,7 +250,7 @@ public class PipeTransportPower extends PipeTransport {
|
|||
}
|
||||
|
||||
if (tile != null) {
|
||||
BatteryObject battery = MjAPI.getMjBattery(tile);
|
||||
IBatteryObject battery = MjAPI.getMjBattery(tile);
|
||||
|
||||
if (battery != null) {
|
||||
requestEnergy(dir, battery.getEnergyRequested());
|
||||
|
|
|
@ -17,8 +17,8 @@ import buildcraft.BuildCraftTransport;
|
|||
import buildcraft.api.gates.GateExpansionController;
|
||||
import buildcraft.api.gates.IAction;
|
||||
import buildcraft.api.gates.IGateExpansion;
|
||||
import buildcraft.api.mj.IBatteryObject;
|
||||
import buildcraft.api.mj.MjAPI;
|
||||
import buildcraft.api.mj.MjAPI.BatteryObject;
|
||||
import buildcraft.transport.TileGenericPipe;
|
||||
import buildcraft.transport.triggers.ActionEnergyPulsar;
|
||||
import buildcraft.transport.triggers.ActionSingleEnergyPulse;
|
||||
|
@ -97,7 +97,7 @@ public final class GateExpansionPulsar extends GateExpansionBuildcraft implement
|
|||
return;
|
||||
}
|
||||
|
||||
BatteryObject battery = MjAPI.getMjBattery(pipeTile);
|
||||
IBatteryObject battery = MjAPI.getMjBattery(pipeTile);
|
||||
|
||||
if (battery != null && (!singlePulse || !hasPulsed)) {
|
||||
((TileGenericPipe) pipeTile).pipe.gate.setPulsing(true);
|
||||
|
|
Loading…
Reference in a new issue