Wires now transfer energy from all mods and manages it as EU. (#686)
* Wires now transfer energy from all mods and manages it as EU. Multipart will fire in hell. * Fix TechReborn to work with latest RebornCore
This commit is contained in:
parent
23419451e7
commit
6f54e3801f
35 changed files with 258 additions and 134 deletions
|
@ -102,7 +102,7 @@ dependencies {
|
|||
if(!f.exists()){
|
||||
f.mkdir()
|
||||
}
|
||||
compile 'RebornCore:RebornCore-1.9.4:+:dev'
|
||||
compile 'RebornCore:RebornCore-1.9.4:2.6.0.54:dev'
|
||||
deobfCompile "mezz.jei:jei_1.9.4:+"
|
||||
// compile "net.darkhax.tesla:Tesla:1.9.4-1.1.0.24:deobf"
|
||||
deobfCompile "slimeknights.mantle:Mantle:1.9.4-0.10.1.jenkins142"
|
||||
|
|
|
@ -43,16 +43,16 @@ public class StackToolTipEvent
|
|||
color = TextFormatting.YELLOW;
|
||||
}
|
||||
event.getToolTip().add(color + ""
|
||||
+ PowerSystem.getLocaliszedPower(
|
||||
+ PowerSystem.getLocalizedPower(
|
||||
(int) ((IEnergyInterfaceItem) event.getItemStack().getItem()).getEnergy(event.getItemStack()))
|
||||
+ TextFormatting.LIGHT_PURPLE + " stored");
|
||||
event.getToolTip().add(Color.GREEN + ""
|
||||
+ PowerSystem.getLocaliszedPower(
|
||||
+ PowerSystem.getLocalizedPower(
|
||||
(int) ((IEnergyInterfaceItem) event.getItemStack().getItem()).getMaxPower(event.getItemStack()))
|
||||
+ TextFormatting.LIGHT_PURPLE + " max");
|
||||
event.getToolTip()
|
||||
.add(TextFormatting.GREEN + "" + percentage + "%" + TextFormatting.LIGHT_PURPLE + " charged");
|
||||
event.getToolTip().add(Color.GREEN + "" + PowerSystem.getLocaliszedPower(
|
||||
event.getToolTip().add(Color.GREEN + "" + PowerSystem.getLocalizedPower(
|
||||
(int) ((IEnergyInterfaceItem) event.getItemStack().getItem()).getMaxTransfer(event.getItemStack()))
|
||||
+ TextFormatting.LIGHT_PURPLE + " /tick in/out");
|
||||
}
|
||||
|
|
|
@ -60,11 +60,11 @@ public class GuiAESU extends GuiContainer
|
|||
{
|
||||
this.fontRendererObj.drawString(I18n.translateToLocal("tile.techreborn.aesu.name"), 40, 10,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerAesu.euOut) + " /tick", 10, 20,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerAesu.euOut) + " /tick", 10, 20,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerAesu.storedEu) + " ", 10, 30,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerAesu.storedEu) + " ", 10, 30,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerAesu.euChange) + " change", 10, 40,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerAesu.euChange) + " change", 10, 40,
|
||||
Color.WHITE.getRGB());
|
||||
}
|
||||
|
||||
|
|
|
@ -66,9 +66,9 @@ public class GuiBatbox extends GuiContainer
|
|||
|
||||
this.fontRendererObj.drawString(I18n.translateToLocalFormatted("container.inventory", new Object[0]), 8,
|
||||
this.ySize - 96 + 2, 4210752);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(generator.getMaxPower()), 25, this.ySize - 140,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(generator.getMaxPower()), 25, this.ySize - 140,
|
||||
4210752);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerGenerator.energy), 25, this.ySize - 150,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerGenerator.energy), 25, this.ySize - 150,
|
||||
4210752);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ public class GuiDieselGenerator extends GuiContainer
|
|||
this.fontRendererObj.drawString(containerDieselGenerator.fluid + "", 10, 30, 16448255);
|
||||
|
||||
this.fontRendererObj.drawString("Power Amount", 10, 40, 16448255);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerDieselGenerator.energy) + "", 10, 50,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerDieselGenerator.energy) + "", 10, 50,
|
||||
16448255);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public class GuiFusionReactor extends GuiContainer
|
|||
this.fontRendererObj.drawString(I18n.translateToLocalFormatted("container.inventory", new Object[0]), 8,
|
||||
this.ySize - 96 + 2, 4210752);
|
||||
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerFusionReactor.energy), 11, 8, 16448255);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerFusionReactor.energy), 11, 8, 16448255);
|
||||
this.fontRendererObj.drawString("Coils: " + (containerFusionReactor.coilStatus == 1 ? "Yes" : "No"), 11, 16,
|
||||
16448255);
|
||||
if (containerFusionReactor.neededEU > 1 && containerFusionReactor.tickTime < 1)
|
||||
|
|
|
@ -65,7 +65,7 @@ public class GuiGenerator extends GuiContainer
|
|||
this.fontRendererObj.drawString(I18n.translateToLocalFormatted("container.inventory", new Object[0]), 8,
|
||||
this.ySize - 96 + 2, 4210752);
|
||||
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerGenerator.energy), 25, this.ySize - 150,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerGenerator.energy), 25, this.ySize - 150,
|
||||
4210752);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,11 +85,11 @@ public class GuiIDSU extends GuiContainer
|
|||
{
|
||||
this.fontRendererObj.drawString(I18n.translateToLocal("tile.techreborn.idsu.name"), 75, 10,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerIDSU.euOut) + "/tick", 10, 22,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerIDSU.euOut) + "/tick", 10, 22,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerIDSU.storedEu), 10, 32,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerIDSU.storedEu), 10, 32,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerIDSU.euChange) + " change", 10, 42,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerIDSU.euChange) + " change", 10, 42,
|
||||
Color.WHITE.getRGB());
|
||||
}
|
||||
|
||||
|
|
|
@ -43,14 +43,14 @@ public class GuiLESU extends GuiContainer
|
|||
{
|
||||
this.fontRendererObj.drawString(I18n.translateToLocal("tile.techreborn.lesu.name"), 40, 10,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerLesu.euOut) + "/t", 10, 20,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerLesu.euOut) + "/t", 10, 20,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerLesu.storedEu), 10, 30,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerLesu.storedEu), 10, 30,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerLesu.euChange) + " change", 10, 40,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerLesu.euChange) + " change", 10, 40,
|
||||
Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(containerLesu.connectedBlocks + " blocks", 10, 50, Color.WHITE.getRGB());
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerLesu.euStorage) + " max", 10, 60,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerLesu.euStorage) + " max", 10, 60,
|
||||
Color.WHITE.getRGB());
|
||||
}
|
||||
|
||||
|
|
|
@ -69,9 +69,9 @@ public class GuiMFE extends GuiContainer
|
|||
|
||||
this.fontRendererObj.drawString(I18n.translateToLocalFormatted("container.inventory", new Object[0]), this.xSize - 60,
|
||||
this.ySize - 96 + 2, 4210752);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(generator.getMaxPower()), 110, this.ySize - 150,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(generator.getMaxPower()), 110, this.ySize - 150,
|
||||
4210752);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerGenerator.energy), 110, this.ySize - 160,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerGenerator.energy), 110, this.ySize - 160,
|
||||
4210752);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,9 +69,9 @@ public class GuiMFSU extends GuiContainer
|
|||
|
||||
this.fontRendererObj.drawString(I18n.translateToLocalFormatted("container.inventory", new Object[0]), this.xSize - 60,
|
||||
this.ySize - 96 + 2, 4210752);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(generator.getMaxPower()), 110, this.ySize - 150,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(generator.getMaxPower()), 110, this.ySize - 150,
|
||||
4210752);
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocaliszedPower(containerGenerator.energy), 110, this.ySize - 160,
|
||||
this.fontRendererObj.drawString(PowerSystem.getLocalizedPower(containerGenerator.energy), 110, this.ySize - 160,
|
||||
4210752);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,8 +80,8 @@ public class ChargeHud
|
|||
{
|
||||
color = Color.DARK_RED;
|
||||
}
|
||||
mc.fontRendererObj.drawString(color + PowerSystem.getLocaliszedPower(CurrentCharge) + "/"
|
||||
+ PowerSystem.getLocaliszedPower(MaxCharge), 20, y, 0);
|
||||
mc.fontRendererObj.drawString(color + PowerSystem.getLocalizedPower(CurrentCharge) + "/"
|
||||
+ PowerSystem.getLocalizedPower(MaxCharge), 20, y, 0);
|
||||
y += 20;
|
||||
}
|
||||
|
||||
|
@ -108,8 +108,8 @@ public class ChargeHud
|
|||
{
|
||||
color = Color.DARK_RED;
|
||||
}
|
||||
mc.fontRendererObj.drawString(color + PowerSystem.getLocaliszedPower(CurrentCharge) + "/"
|
||||
+ PowerSystem.getLocaliszedPower(MaxCharge), 20, y, 0);
|
||||
mc.fontRendererObj.drawString(color + PowerSystem.getLocalizedPower(CurrentCharge) + "/"
|
||||
+ PowerSystem.getLocalizedPower(MaxCharge), 20, y, 0);
|
||||
y += 20;
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ public class ChargeHud
|
|||
{
|
||||
color = Color.DARK_RED;
|
||||
}
|
||||
mc.fontRendererObj.drawString(color + PowerSystem.getLocaliszedPower(CurrentCharge) + "/" + PowerSystem.getLocaliszedPower(MaxCharge), 20, y, 0);
|
||||
mc.fontRendererObj.drawString(color + PowerSystem.getLocalizedPower(CurrentCharge) + "/" + PowerSystem.getLocalizedPower(MaxCharge), 20, y, 0);
|
||||
}
|
||||
}
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
|
|
|
@ -35,8 +35,7 @@ public class ItemBlockAesu extends ItemBlock
|
|||
if (stack != null && stack.hasTagCompound())
|
||||
{
|
||||
if (stack.getTagCompound().getCompoundTag("tileEntity") != null)
|
||||
list.add(PowerSystem
|
||||
.getLocaliszedPower(stack.getTagCompound().getCompoundTag("tileEntity").getInteger("energy")));
|
||||
list.add(PowerSystem.getLocalizedPower(stack.getTagCompound().getCompoundTag("tileEntity").getInteger("energy")));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ public class ItemDebugTool extends ItemTextureBase implements ITexturedItem
|
|||
{
|
||||
playerIn.addChatComponentMessage(
|
||||
new TextComponentString(TextFormatting.GREEN + "Power" + TextFormatting.BLUE
|
||||
+ PowerSystem.getLocaliszedPower(((IEnergyInterfaceTile) tile).getEnergy())));
|
||||
+ PowerSystem.getLocalizedPower(((IEnergyInterfaceTile) tile).getEnergy())));
|
||||
}
|
||||
return EnumActionResult.SUCCESS;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package techreborn.parts.powerCables;
|
||||
|
||||
import cofh.api.energy.IEnergyProvider;
|
||||
import cofh.api.energy.IEnergyReceiver;
|
||||
import ic2.api.energy.tile.*;
|
||||
import ic2.api.tile.IEnergyStorage;
|
||||
import net.darkhax.tesla.api.ITeslaProducer;
|
||||
import net.darkhax.tesla.capability.TeslaCapabilities;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
|
@ -26,7 +32,9 @@ import net.minecraftforge.common.property.ExtendedBlockState;
|
|||
import net.minecraftforge.common.property.IExtendedBlockState;
|
||||
import net.minecraftforge.common.property.IUnlistedProperty;
|
||||
import net.minecraftforge.common.property.Properties;
|
||||
import net.minecraftforge.fml.common.Loader;
|
||||
import reborncore.api.power.IEnergyInterfaceTile;
|
||||
import reborncore.common.RebornCoreConfig;
|
||||
import reborncore.common.misc.Functions;
|
||||
import reborncore.common.misc.vecmath.Vecs3dCube;
|
||||
import reborncore.common.util.WorldUtils;
|
||||
|
@ -36,6 +44,7 @@ import reborncore.mcmultipart.multipart.*;
|
|||
import reborncore.mcmultipart.raytrace.PartMOP;
|
||||
import techreborn.parts.TechRebornParts;
|
||||
import techreborn.parts.walia.IPartWaliaProvider;
|
||||
import techreborn.power.EnergyUtils;
|
||||
import techreborn.utils.damageSources.ElectrialShockSource;
|
||||
|
||||
import java.util.*;
|
||||
|
@ -190,6 +199,7 @@ public class CableMultipart extends Multipart
|
|||
nearByChange();
|
||||
}
|
||||
|
||||
|
||||
public boolean shouldConnectTo(EnumFacing dir) {
|
||||
if (dir != null) {
|
||||
if (internalShouldConnectTo(dir)) {
|
||||
|
@ -199,9 +209,25 @@ public class CableMultipart extends Multipart
|
|||
}
|
||||
} else {
|
||||
TileEntity tile = getNeighbourTile(dir);
|
||||
|
||||
if (tile instanceof IEnergyInterfaceTile) {
|
||||
if(tile != null) {
|
||||
EnumFacing facing = dir.getOpposite();
|
||||
if (tile instanceof IEnergyInterfaceTile &&
|
||||
((IEnergyInterfaceTile) tile).canAcceptEnergy(facing)) {
|
||||
return true;
|
||||
} else if (tile instanceof IEnergyReceiver &&
|
||||
((IEnergyReceiver) tile).canConnectEnergy(facing) &&
|
||||
RebornCoreConfig.getRebornPower().rf()) {
|
||||
return true;
|
||||
} else if (Loader.isModLoaded("IC2") &&
|
||||
RebornCoreConfig.getRebornPower().eu() &&
|
||||
(tile instanceof IEnergySource ||
|
||||
tile instanceof IEnergyEmitter ||
|
||||
tile instanceof IEnergyAcceptor)) {
|
||||
return true;
|
||||
} else if (Loader.isModLoaded("Tesla") &&
|
||||
tile.hasCapability(TeslaCapabilities.CAPABILITY_CONSUMER, facing)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -258,6 +284,82 @@ public class CableMultipart extends Multipart
|
|||
if (getWorld().getTotalWorldTime() % 80 == 0) {
|
||||
checkConnectedSides();
|
||||
}
|
||||
|
||||
for(EnumFacing connection : connectedSides.keySet()) {
|
||||
BlockPos blockPos = connectedSides.get(connection);
|
||||
TileEntity tileEntity = getWorld().getTileEntity(blockPos);
|
||||
if(tileEntity == null) continue;
|
||||
EnumFacing opposite = connection.getOpposite();
|
||||
|
||||
//TODO rewrite for new version
|
||||
if(tileEntity instanceof IEnergyInterfaceTile) {
|
||||
IEnergyInterfaceTile interfaceTile = (IEnergyInterfaceTile) tileEntity;
|
||||
if(interfaceTile.canProvideEnergy(opposite)) {
|
||||
double extractedEU = interfaceTile.useEnergy(getCableType().transferRate, true);
|
||||
double dispatched = EnergyUtils.dispatchWiresEnergyPacket(getWorld(), getPos(), extractedEU, blockPos);
|
||||
interfaceTile.useEnergy(dispatched);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(Loader.isModLoaded("IC2") && RebornCoreConfig.getRebornPower().eu()) {
|
||||
if (tileEntity instanceof IEnergySource) {
|
||||
IEnergySource source = (IEnergySource) tileEntity;
|
||||
if(source.emitsEnergyTo((emitter, from) -> true, opposite)) {
|
||||
double extractedEU = source.getOfferedEnergy();
|
||||
if (extractedEU > getCableType().transferRate)
|
||||
extractedEU = getCableType().transferRate;
|
||||
double dispatched = EnergyUtils.dispatchWiresEnergyPacket(getWorld(), getPos(), extractedEU, blockPos);
|
||||
source.drawEnergy(dispatched);
|
||||
continue;
|
||||
}
|
||||
} else if(tileEntity instanceof IEnergyStorage) {
|
||||
IEnergyStorage storage = (IEnergyStorage) tileEntity;
|
||||
double extractedEU = storage.getStored();
|
||||
if(extractedEU > getCableType().transferRate)
|
||||
extractedEU = getCableType().transferRate;
|
||||
double dispatched = EnergyUtils.dispatchWiresEnergyPacket(getWorld(), getPos(), extractedEU, blockPos);
|
||||
storage.setStored((int) (extractedEU - dispatched));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(RebornCoreConfig.getRebornPower().rf()) {
|
||||
if (tileEntity instanceof IEnergyProvider) {
|
||||
IEnergyProvider provider = (IEnergyProvider) tileEntity;
|
||||
if (provider.canConnectEnergy(opposite)) {
|
||||
int extractedRF = provider.extractEnergy(opposite,
|
||||
getCableType().transferRate * RebornCoreConfig.euPerRF, true);
|
||||
double extractedEU = extractedRF / (RebornCoreConfig.euPerRF * 1f);
|
||||
double dispatched = EnergyUtils.dispatchWiresEnergyPacket(getWorld(), getPos(), extractedEU, blockPos);
|
||||
provider.extractEnergy(opposite, (int) (dispatched * RebornCoreConfig.euPerRF), false);
|
||||
continue;
|
||||
}
|
||||
} else if(tileEntity instanceof cofh.api.energy.IEnergyStorage) {
|
||||
cofh.api.energy.IEnergyStorage energyStorage = (cofh.api.energy.IEnergyStorage) tileEntity;
|
||||
int extractedRF = energyStorage.extractEnergy(
|
||||
getCableType().transferRate * RebornCoreConfig.euPerRF, true);
|
||||
double extractedEU = extractedRF / (RebornCoreConfig.euPerRF * 1f);
|
||||
if (extractedEU > getCableType().transferRate)
|
||||
extractedEU = getCableType().transferRate;
|
||||
double dispatched = EnergyUtils.dispatchWiresEnergyPacket(getWorld(), getPos(), extractedEU, blockPos);
|
||||
energyStorage.extractEnergy((int) (dispatched * RebornCoreConfig.euPerRF), false);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(Loader.isModLoaded("Tesla") && RebornCoreConfig.getRebornPower().tesla()) {
|
||||
if(tileEntity.hasCapability(TeslaCapabilities.CAPABILITY_PRODUCER, opposite)) {
|
||||
ITeslaProducer producer = tileEntity.getCapability(TeslaCapabilities.CAPABILITY_PRODUCER, opposite);
|
||||
double extractedRF = producer.takePower(getCableType().transferRate * RebornCoreConfig.euPerRF, true);
|
||||
double extractedEU = extractedRF / (RebornCoreConfig.euPerRF * 1F);
|
||||
double dispatched = EnergyUtils.dispatchWiresEnergyPacket(getWorld(), getPos(), extractedEU, blockPos);
|
||||
producer.takePower((long) (dispatched * RebornCoreConfig.euPerRF), false);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,18 +24,43 @@ import java.util.Arrays;
|
|||
import java.util.Collection;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
public class PowerNet {
|
||||
|
||||
public class EnergyUtils {
|
||||
|
||||
/**
|
||||
* Same as {@link #dispatchEnergyPacketRecursively(World, ArrayList, BlockPos, boolean, double)}
|
||||
* Dispatches energy to available neighbours
|
||||
* @param world world
|
||||
* @param source source position
|
||||
* @param tile controller
|
||||
* @param amount amount of energy
|
||||
* @return amount of energy dispatched
|
||||
*/
|
||||
public static double dispatchEnergyToNeighbours(World world, BlockPos source, IEnergyInterfaceTile tile, double amount) {
|
||||
double energyLeft = amount;
|
||||
for(EnumFacing facing : EnumFacing.VALUES) {
|
||||
if(tile.canProvideEnergy(facing)) {
|
||||
PowerNetReceiver receiver = getReceiver(world, facing.getOpposite(), source.offset(facing));
|
||||
if(receiver != null) energyLeft -= receiver.receiveEnergy(energyLeft, false);
|
||||
if(energyLeft == 0) return energyLeft;
|
||||
}
|
||||
}
|
||||
return amount - energyLeft;
|
||||
}
|
||||
|
||||
/**
|
||||
* Same as {@link #dispatchWiresEnergyPacketRecursively(World, ArrayList, BlockPos, boolean, double)}
|
||||
* But not simulated and excluding source block
|
||||
* @param world the world to dispatch in
|
||||
* @param energyAmount energy units to dispatch
|
||||
* @return dispatched energy units
|
||||
* @deprecated for internal use only
|
||||
*
|
||||
* WARNING: For internal use in wires only
|
||||
*/
|
||||
public static double dispatchEnergyPacket(World world, BlockPos source, double energyAmount) {
|
||||
return dispatchEnergyPacketRecursively(world, Lists.newArrayList(source), source, false, energyAmount);
|
||||
public static double dispatchWiresEnergyPacket(World world, BlockPos source, double energyAmount, BlockPos... excludes) {
|
||||
ArrayList<BlockPos> exclude = new ArrayList<>(excludes.length + 1);
|
||||
exclude.addAll(Arrays.asList(excludes));
|
||||
exclude.add(source);
|
||||
return dispatchWiresEnergyPacketRecursively(world, exclude, source, false, energyAmount);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,8 +71,11 @@ public class PowerNet {
|
|||
* @param maxEnergy energy units to dispatch
|
||||
* @param simulate true if dispatch is only simulated
|
||||
* @return dispatched energy units
|
||||
* @deprecated for internal use only
|
||||
*
|
||||
* WARNING: For internal use in wires only
|
||||
*/
|
||||
public static double dispatchEnergyPacketRecursively(World world, ArrayList<BlockPos> excludes, BlockPos blockPos, boolean simulate, final double maxEnergy) {
|
||||
public static double dispatchWiresEnergyPacketRecursively(World world, ArrayList<BlockPos> excludes, BlockPos blockPos, boolean simulate, final double maxEnergy) {
|
||||
double energyLeft = maxEnergy;
|
||||
Collection<EnumFacing> connections = Lists.newArrayList(EnumFacing.VALUES);
|
||||
|
||||
|
@ -75,7 +103,7 @@ public class PowerNet {
|
|||
EnumCableType cableType = cable.getCableType();
|
||||
double transferRate = cableType.transferRate;
|
||||
double maxPacket = transferRate > maxEnergy ? maxEnergy : transferRate;
|
||||
energyLeft -= dispatchEnergyPacketRecursively(world, excludes, offsetPos, simulate, maxPacket);
|
||||
energyLeft -= dispatchWiresEnergyPacketRecursively(world, excludes, offsetPos, simulate, maxPacket);
|
||||
if(energyLeft == 0) {
|
||||
if(selfCable != null)
|
||||
selfCable.lastEnergyPacket = maxEnergy * 1.3F;
|
||||
|
@ -140,10 +168,8 @@ public class PowerNet {
|
|||
PowerNetReceiver rfReceiver = getRFReceiver(tileEntity, side);
|
||||
if (rfReceiver != null) return rfReceiver;
|
||||
}
|
||||
if(RebornCoreConfig.getRebornPower().internal()) {
|
||||
PowerNetReceiver internalReceiver = getInternalReceiver(tileEntity, side);
|
||||
if (internalReceiver != null) return internalReceiver;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
@ -45,7 +45,7 @@ public class TilePump extends TilePowerAcceptor implements IFluidHandler {
|
|||
public void addInfo(List<String> info, boolean isRealTile) {
|
||||
super.addInfo(info, isRealTile);
|
||||
info.add(TextFormatting.LIGHT_PURPLE + "Eu per extract " + TextFormatting.GREEN
|
||||
+ PowerSystem.getLocaliszedPower(ConfigTechReborn.pumpExtractEU));
|
||||
+ PowerSystem.getLocalizedPower(ConfigTechReborn.pumpExtractEU));
|
||||
info.add(TextFormatting.LIGHT_PURPLE + "Speed: " + TextFormatting.GREEN
|
||||
+ "1000mb/5 sec");
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ import reborncore.common.util.ItemUtils;
|
|||
import techreborn.api.reactor.FusionReactorRecipe;
|
||||
import techreborn.api.reactor.FusionReactorRecipeHelper;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileEntityFusionController extends TilePowerAcceptor implements IInventoryProvider
|
||||
{
|
||||
|
@ -276,7 +276,7 @@ public class TileEntityFusionController extends TilePowerAcceptor implements IIn
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0 && hasStartedCrafting) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.fluids.*;
|
||||
|
@ -18,7 +17,7 @@ import reborncore.common.util.Inventory;
|
|||
import reborncore.common.util.Tank;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchable, IFluidHandler, IInventoryProvider
|
||||
{
|
||||
|
@ -157,7 +156,7 @@ public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchabl
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import reborncore.common.powerSystem.TilePowerAcceptor;
|
|||
import reborncore.common.util.Inventory;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileDragonEggSiphoner extends TilePowerAcceptor implements IWrenchable,IInventoryProvider
|
||||
{
|
||||
|
@ -38,7 +38,7 @@ public class TileDragonEggSiphoner extends TilePowerAcceptor implements IWrencha
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.fluids.*;
|
||||
|
@ -17,7 +16,7 @@ import reborncore.common.util.Inventory;
|
|||
import reborncore.common.util.Tank;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -176,7 +175,7 @@ public class TileGasTurbine extends TilePowerAcceptor implements IWrenchable, IF
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import reborncore.common.blocks.BlockMachineBase;
|
|||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import reborncore.common.util.Inventory;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileGenerator extends TilePowerAcceptor implements IWrenchable,IInventoryProvider
|
||||
{
|
||||
|
@ -71,7 +71,7 @@ public class TileGenerator extends TilePowerAcceptor implements IWrenchable,IInv
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import reborncore.api.power.EnumPowerTier;
|
|||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileHeatGenerator extends TilePowerAcceptor implements IWrenchable
|
||||
{
|
||||
|
@ -48,7 +48,7 @@ public class TileHeatGenerator extends TilePowerAcceptor implements IWrenchable
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import reborncore.api.power.EnumPowerTier;
|
|||
import reborncore.common.blocks.BlockMachineBase;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileLightningRod extends TilePowerAcceptor {
|
||||
|
||||
|
@ -53,7 +53,7 @@ public class TileLightningRod extends TilePowerAcceptor {
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.fluids.*;
|
||||
|
@ -17,7 +16,7 @@ import reborncore.common.util.Inventory;
|
|||
import reborncore.common.util.Tank;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
@ -180,7 +179,7 @@ public class TileSemifluidGenerator extends TilePowerAcceptor implements IWrench
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import net.minecraft.util.ITickable;
|
|||
import reborncore.api.power.EnumPowerTier;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.blocks.generator.BlockSolarPanel;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -44,7 +44,7 @@ public class TileSolarPanel extends TilePowerAcceptor implements ITickable
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ public class TileSolarPanel extends TilePowerAcceptor implements ITickable
|
|||
{
|
||||
// FIXME: 25/02/2016
|
||||
// info.add(TextFormatting.LIGHT_PURPLE + "Power gen/tick " +
|
||||
// TextFormatting.GREEN + PowerSystem.getLocaliszedPower(
|
||||
// TextFormatting.GREEN + PowerSystem.getLocalizedPower(
|
||||
// powerToAdd)) ;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@ import net.minecraft.init.Blocks;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -20,7 +19,7 @@ import reborncore.common.util.Inventory;
|
|||
import reborncore.common.util.Tank;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileThermalGenerator extends TilePowerAcceptor implements IWrenchable, IFluidHandler,IInventoryProvider
|
||||
{
|
||||
|
@ -176,7 +175,7 @@ public class TileThermalGenerator extends TilePowerAcceptor implements IWrenchab
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ import net.minecraft.init.Blocks;
|
|||
import net.minecraft.util.EnumFacing;
|
||||
import reborncore.api.power.EnumPowerTier;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
/**
|
||||
* Created by modmuss50 on 25/02/2016.
|
||||
|
@ -31,7 +31,7 @@ public class TileWaterMill extends TilePowerAcceptor
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ package techreborn.tiles.generator;
|
|||
import net.minecraft.util.EnumFacing;
|
||||
import reborncore.api.power.EnumPowerTier;
|
||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
/**
|
||||
* Created by modmuss50 on 25/02/2016.
|
||||
|
@ -28,7 +28,7 @@ public class TileWindMill extends TilePowerAcceptor
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import reborncore.api.power.EnumPowerTier;
|
|||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.init.ModBlocks;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
public class TileIDSU extends TilePowerAcceptor implements IWrenchable
|
||||
{
|
||||
|
@ -145,7 +145,7 @@ public class TileIDSU extends TilePowerAcceptor implements IWrenchable
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import reborncore.api.power.EnumPowerTier;
|
|||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import reborncore.common.util.Inventory;
|
||||
import techreborn.config.ConfigTechReborn;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
@ -77,7 +77,7 @@ public class TileLesu extends TilePowerAcceptor
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,15 +9,10 @@ import java.util.List;
|
|||
/**
|
||||
* Created by modmuss50 on 14/03/2016.
|
||||
*/
|
||||
public class TileBatBox extends TileEnergyStorage implements IListInfoProvider
|
||||
{
|
||||
public class TileBatBox extends TileEnergyStorage {
|
||||
|
||||
public TileBatBox()
|
||||
{
|
||||
public TileBatBox() {
|
||||
super("BatBox", 2, ModBlocks.batBox, EnumPowerTier.LOW, 32, 32, 40000);
|
||||
}
|
||||
@Override public void addInfo(List<String> info, boolean isRealTile)
|
||||
{
|
||||
info.add("Batbox");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package techreborn.tiles.storage;
|
||||
|
||||
import reborncore.api.IListInfoProvider;
|
||||
import reborncore.common.IWrenchable;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -13,13 +14,14 @@ import reborncore.common.powerSystem.PoweredItem;
|
|||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||
import reborncore.common.util.Inventory;
|
||||
import techreborn.blocks.storage.BlockEnergyStorage;
|
||||
import techreborn.power.PowerNet;
|
||||
import techreborn.power.EnergyUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Rushmead
|
||||
*/
|
||||
public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable, ITickable, IInventoryProvider
|
||||
{
|
||||
public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable, ITickable, IInventoryProvider, IListInfoProvider {
|
||||
|
||||
public Inventory inventory;
|
||||
public String name;
|
||||
|
@ -28,8 +30,8 @@ public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable,
|
|||
public int maxInput;
|
||||
public int maxOutput;
|
||||
public int maxStorage;
|
||||
public TileEnergyStorage(String name, int invSize, Block wrenchDrop, EnumPowerTier tier, int maxInput, int maxOuput, int maxStorage)
|
||||
{
|
||||
|
||||
public TileEnergyStorage(String name, int invSize, Block wrenchDrop, EnumPowerTier tier, int maxInput, int maxOuput, int maxStorage) {
|
||||
super(1);
|
||||
inventory = new Inventory(invSize, "Tile" + name, 64, this);
|
||||
this.wrenchDrop = wrenchDrop;
|
||||
|
@ -40,22 +42,29 @@ public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable,
|
|||
this.maxStorage = maxStorage;
|
||||
}
|
||||
|
||||
@Override public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, EnumFacing side)
|
||||
{
|
||||
@Override
|
||||
public void addInfo(List<String> info, boolean isRealTile) {
|
||||
info.add(name);
|
||||
super.addInfo(info, isRealTile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, EnumFacing side) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override public EnumFacing getFacing()
|
||||
{
|
||||
@Override
|
||||
public EnumFacing getFacing() {
|
||||
return getFacingEnum();
|
||||
}
|
||||
|
||||
@Override public boolean wrenchCanRemove(EntityPlayer entityPlayer)
|
||||
{
|
||||
@Override
|
||||
public boolean wrenchCanRemove(EntityPlayer entityPlayer) {
|
||||
return entityPlayer.isSneaking();
|
||||
}
|
||||
|
||||
@Override public void updateEntity() {
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
if (inventory.getStackInSlot(0) != null) {
|
||||
ItemStack stack = inventory.getStackInSlot(0);
|
||||
if (!(stack.getItem() instanceof IEnergyItemInfo)) {
|
||||
|
@ -85,7 +94,7 @@ public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable,
|
|||
|
||||
if (!worldObj.isRemote && getEnergy() > 0) {
|
||||
double maxOutput = getEnergy() > getMaxOutput() ? getMaxOutput() : getEnergy();
|
||||
useEnergy(PowerNet.dispatchEnergyPacket(worldObj, getPos(), maxOutput));
|
||||
useEnergy(EnergyUtils.dispatchEnergyToNeighbours(worldObj, getPos(), this, maxOutput));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -95,54 +104,53 @@ public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable,
|
|||
worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockEnergyStorage.FACING, enumFacing));
|
||||
}
|
||||
|
||||
@Override public float getWrenchDropRate()
|
||||
{
|
||||
@Override
|
||||
public float getWrenchDropRate() {
|
||||
return 1.0F;
|
||||
}
|
||||
|
||||
@Override public ItemStack getWrenchDrop(EntityPlayer entityPlayer)
|
||||
{
|
||||
@Override
|
||||
public ItemStack getWrenchDrop(EntityPlayer entityPlayer) {
|
||||
return new ItemStack(wrenchDrop);
|
||||
}
|
||||
|
||||
@Override public double getMaxPower()
|
||||
{
|
||||
@Override
|
||||
public double getMaxPower() {
|
||||
return maxStorage;
|
||||
}
|
||||
|
||||
@Override public boolean canAcceptEnergy(EnumFacing direction)
|
||||
{
|
||||
@Override
|
||||
public boolean canAcceptEnergy(EnumFacing direction) {
|
||||
|
||||
return getFacingEnum() != direction;
|
||||
}
|
||||
|
||||
@Override public EnumFacing getFacingEnum()
|
||||
{
|
||||
@Override
|
||||
public EnumFacing getFacingEnum() {
|
||||
Block block = worldObj.getBlockState(pos).getBlock();
|
||||
if (block instanceof BlockEnergyStorage)
|
||||
{
|
||||
if (block instanceof BlockEnergyStorage) {
|
||||
return ((BlockEnergyStorage) block).getFacing(worldObj.getBlockState(pos));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public boolean canProvideEnergy(EnumFacing direction)
|
||||
{
|
||||
@Override
|
||||
public boolean canProvideEnergy(EnumFacing direction) {
|
||||
return getFacing() == direction;
|
||||
}
|
||||
|
||||
@Override public double getMaxOutput()
|
||||
{
|
||||
@Override
|
||||
public double getMaxOutput() {
|
||||
return maxOutput;
|
||||
}
|
||||
|
||||
@Override public double getMaxInput()
|
||||
{
|
||||
@Override
|
||||
public double getMaxInput() {
|
||||
return maxInput;
|
||||
}
|
||||
|
||||
@Override public EnumPowerTier getTier()
|
||||
{
|
||||
@Override
|
||||
public EnumPowerTier getTier() {
|
||||
return tier;
|
||||
}
|
||||
|
||||
|
@ -150,4 +158,5 @@ public class TileEnergyStorage extends TilePowerAcceptor implements IWrenchable,
|
|||
public Inventory getInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
}
|
|
@ -6,11 +6,9 @@ import techreborn.init.ModBlocks;
|
|||
/**
|
||||
* Created by modmuss50 on 14/03/2016.
|
||||
*/
|
||||
public class TileMFE extends TileEnergyStorage
|
||||
{
|
||||
public class TileMFE extends TileEnergyStorage {
|
||||
|
||||
public TileMFE()
|
||||
{
|
||||
public TileMFE() {
|
||||
super("MFE", 2, ModBlocks.mfe, EnumPowerTier.MEDIUM, 512, 512, 4000000);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,11 +6,10 @@ import techreborn.init.ModBlocks;
|
|||
/**
|
||||
* Created by modmuss50 on 14/03/2016.
|
||||
*/
|
||||
public class TileMFSU extends TileEnergyStorage
|
||||
{
|
||||
public class TileMFSU extends TileEnergyStorage {
|
||||
|
||||
public TileMFSU()
|
||||
{
|
||||
public TileMFSU() {
|
||||
super("MFSU", 2, ModBlocks.mfsu, EnumPowerTier.HIGH, 2048, 2048, 40000000);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue