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

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