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:
Archengius 2016-07-21 21:51:55 +07:00 committed by Modmuss50
parent 23419451e7
commit 6f54e3801f
35 changed files with 258 additions and 134 deletions

View file

@ -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"

View file

@ -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");
}

View file

@ -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());
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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)

View file

@ -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);
}
}

View file

@ -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());
}

View file

@ -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());
}

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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);

View file

@ -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")));
}
}

View file

@ -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;
}

View file

@ -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;
}
}
}
}
}

View file

@ -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;
@ -128,22 +156,20 @@ public class PowerNet {
public static PowerNetReceiver getReceiver(World world, EnumFacing side, BlockPos pos) {
TileEntity tileEntity = world.getTileEntity(pos);
if(Loader.isModLoaded("IC2") && RebornCoreConfig.getRebornPower().eu()) {
if (Loader.isModLoaded("IC2") && RebornCoreConfig.getRebornPower().eu()) {
PowerNetReceiver ic2receiver = getIC2Receiver(tileEntity, side);
if(ic2receiver != null) return ic2receiver;
if (ic2receiver != null) return ic2receiver;
}
if(Loader.isModLoaded("Tesla") && RebornCoreConfig.getRebornPower().tesla()) {
if (Loader.isModLoaded("Tesla") && RebornCoreConfig.getRebornPower().tesla()) {
PowerNetReceiver teslaReceiver = getTeslaReceiver(tileEntity, side);
if(teslaReceiver != null) return teslaReceiver;
if (teslaReceiver != null) return teslaReceiver;
}
if(RebornCoreConfig.getRebornPower().rf()) {
if (RebornCoreConfig.getRebornPower().rf()) {
PowerNetReceiver rfReceiver = getRFReceiver(tileEntity, side);
if(rfReceiver != null) return rfReceiver;
if (rfReceiver != null) return rfReceiver;
}
if(RebornCoreConfig.getRebornPower().internal()) {
PowerNetReceiver internalReceiver = getInternalReceiver(tileEntity, side);
if(internalReceiver != null) return internalReceiver;
}
if (internalReceiver != null) return internalReceiver;
return null;
}

View file

@ -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");
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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)) ;
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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");
}
}

View file

@ -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;
}
}

View file

@ -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);
}

View file

@ -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);
}
}