mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-12 16:27:37 +00:00
Fixed Mana Fluxfield to power every RF receiver
This commit is contained in:
1 parent
733f1d2388
commit
addef399d2
3 files changed
+50
-63
No files matched your search
@@ -1,51 +0,0 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
/**
|
||||
* Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
|
||||
*
|
||||
* A reference implementation is provided {@link TileEnergyHandler}.
|
||||
*
|
||||
* @author King Lemming
|
||||
*
|
||||
*/
|
||||
public interface IEnergyHandler extends IEnergyConnection {
|
||||
|
||||
/**
|
||||
* Add energy to an IEnergyHandler, internal distribution is left entirely to the IEnergyHandler.
|
||||
*
|
||||
* @param from
|
||||
* Orientation the energy is received from.
|
||||
* @param maxReceive
|
||||
* Maximum amount of energy to receive.
|
||||
* @param simulate
|
||||
* If TRUE, the charge will only be simulated.
|
||||
* @return Amount of energy that was (or would have been, if simulated) received.
|
||||
*/
|
||||
int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate);
|
||||
|
||||
/**
|
||||
* Remove energy from an IEnergyHandler, internal distribution is left entirely to the IEnergyHandler.
|
||||
*
|
||||
* @param from
|
||||
* Orientation the energy is extracted from.
|
||||
* @param maxExtract
|
||||
* Maximum amount of energy to extract.
|
||||
* @param simulate
|
||||
* If TRUE, the extraction will only be simulated.
|
||||
* @return Amount of energy that was (or would have been, if simulated) extracted.
|
||||
*/
|
||||
int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate);
|
||||
|
||||
/**
|
||||
* Returns the amount of energy currently stored.
|
||||
*/
|
||||
int getEnergyStored(ForgeDirection from);
|
||||
|
||||
/**
|
||||
* Returns the maximum amount of energy that can be stored.
|
||||
*/
|
||||
int getMaxEnergyStored(ForgeDirection from);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package cofh.api.energy;
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
/**
|
||||
* Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
|
||||
* <p>
|
||||
* A reference implementation is provided {@link TileEnergyHandler}.
|
||||
*
|
||||
* @author King Lemming
|
||||
*
|
||||
*/
|
||||
public interface IEnergyReceiver extends IEnergyConnection {
|
||||
|
||||
/**
|
||||
* Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver.
|
||||
*
|
||||
* @param from
|
||||
* Orientation the energy is received from.
|
||||
* @param maxReceive
|
||||
* Maximum amount of energy to receive.
|
||||
* @param simulate
|
||||
* If TRUE, the charge will only be simulated.
|
||||
* @return Amount of energy that was (or would have been, if simulated) received.
|
||||
*/
|
||||
int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate);
|
||||
|
||||
/**
|
||||
* Returns the amount of energy currently stored.
|
||||
*/
|
||||
int getEnergyStored(ForgeDirection from);
|
||||
|
||||
/**
|
||||
* Returns the maximum amount of energy that can be stored.
|
||||
*/
|
||||
int getMaxEnergyStored(ForgeDirection from);
|
||||
|
||||
}
|
||||
@@ -17,7 +17,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import vazkii.botania.api.mana.IManaReceiver;
|
||||
import vazkii.botania.common.block.tile.TileMod;
|
||||
import cofh.api.energy.IEnergyConnection;
|
||||
import cofh.api.energy.IEnergyHandler;
|
||||
import cofh.api.energy.IEnergyReceiver;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
|
||||
@Optional.Interface(iface = "cofh.api.energy.IEnergyConnection", modid = "CoFHAPI|energy")
|
||||
@@ -30,7 +30,7 @@ public class TileRFGenerator extends TileMod implements IManaReceiver, IEnergyCo
|
||||
int mana = 0;
|
||||
|
||||
// Thanks to skyboy for help with this cuz I'm a noob with RF
|
||||
private IEnergyHandler[] handlerCache;
|
||||
private IEnergyReceiver[] receiverCache;
|
||||
private boolean deadCache;
|
||||
|
||||
@Override
|
||||
@@ -38,7 +38,7 @@ public class TileRFGenerator extends TileMod implements IManaReceiver, IEnergyCo
|
||||
public void validate() {
|
||||
super.validate();
|
||||
deadCache = true;
|
||||
handlerCache = null;
|
||||
receiverCache = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -57,9 +57,9 @@ public class TileRFGenerator extends TileMod implements IManaReceiver, IEnergyCo
|
||||
|
||||
@Optional.Method(modid = "CoFHAPI|energy")
|
||||
protected final int transmitEnergy(int energy) {
|
||||
if (handlerCache != null)
|
||||
for(int i = handlerCache.length; i-- > 0;) {
|
||||
IEnergyHandler tile = handlerCache[i];
|
||||
if (receiverCache != null)
|
||||
for(int i = receiverCache.length; i-- > 0;) {
|
||||
IEnergyReceiver tile = receiverCache[i];
|
||||
if (tile == null)
|
||||
continue;
|
||||
|
||||
@@ -104,13 +104,13 @@ public class TileRFGenerator extends TileMod implements IManaReceiver, IEnergyCo
|
||||
|
||||
@Optional.Method(modid = "CoFHAPI|energy")
|
||||
private void addCache(TileEntity tile, int side) {
|
||||
if(handlerCache != null)
|
||||
handlerCache[side] = null;
|
||||
if(receiverCache != null)
|
||||
receiverCache[side] = null;
|
||||
|
||||
if(tile instanceof IEnergyHandler && ((IEnergyHandler)tile).canConnectEnergy(ForgeDirection.VALID_DIRECTIONS[side])) {
|
||||
if(handlerCache == null)
|
||||
handlerCache = new IEnergyHandler[6];
|
||||
handlerCache[side] = (IEnergyHandler)tile;
|
||||
if(tile instanceof IEnergyReceiver && ((IEnergyReceiver)tile).canConnectEnergy(ForgeDirection.VALID_DIRECTIONS[side])) {
|
||||
if(receiverCache == null)
|
||||
receiverCache = new IEnergyReceiver[6];
|
||||
receiverCache[side] = (IEnergyReceiver)tile;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user