diff --git a/src/main/java/com/hbm/blocks/machine/MachineICFController.java b/src/main/java/com/hbm/blocks/machine/MachineICFController.java index ab5e4797d..321d8307d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineICFController.java +++ b/src/main/java/com/hbm/blocks/machine/MachineICFController.java @@ -1,9 +1,12 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map.Entry; +import com.hbm.blocks.ILookOverlay; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart; @@ -11,6 +14,8 @@ import com.hbm.lib.RefStrings; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.TileEntityICFController; +import com.hbm.util.BobMathUtil; +import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import cpw.mods.fml.relauncher.Side; @@ -28,9 +33,10 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineICFController extends BlockContainer { +public class MachineICFController extends BlockContainer implements ILookOverlay { @SideOnly(Side.CLIENT) private IIcon iconFront; @@ -207,4 +213,14 @@ public class MachineICFController extends BlockContainer { PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, x, y, z), (EntityPlayerMP) player); } } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + TileEntity te = world.getTileEntity(x, y, z); + if(!(te instanceof TileEntityICFController)) return; + TileEntityICFController icf = (TileEntityICFController) te; + List text = new ArrayList(); + text.add(BobMathUtil.getShortNumber(icf.getPower()) + "/" + BobMathUtil.getShortNumber(icf.getMaxPower()) + "HE"); + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java index aa11fb99a..1d1871c2e 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityTickingBase.java @@ -1,13 +1,15 @@ package com.hbm.tileentity; +import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidTank; -public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements INBTPacketReceiver { +public abstract class TileEntityTickingBase extends TileEntityLoadedBase implements INBTPacketReceiver, IBufPacketReceiver { public TileEntityTickingBase() { } @@ -22,16 +24,28 @@ public abstract class TileEntityTickingBase extends TileEntityLoadedBase impleme //was it update? onUpdate? updateTile? did it have any args? //shit i don't know man @Override - public abstract void updateEntity(); + public abstract void updateEntity(); - public void networkPack(NBTTagCompound nbt, int range) { + @Deprecated public void networkPack(NBTTagCompound nbt, int range) { if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - public void networkUnpack(NBTTagCompound nbt) { } + @Deprecated public void networkUnpack(NBTTagCompound nbt) { } @Deprecated public void handleButtonPacket(int value, int meta) { } + + public void networkPackNT(int range) { + if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + } + + @Override public void serialize(ByteBuf buf) { + buf.writeBoolean(muffled); + } + + @Override public void deserialize(ByteBuf buf) { + this.muffled = buf.readBoolean(); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java index c4e34d4fe..1d481dbc2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICF.java @@ -13,6 +13,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @@ -43,6 +44,23 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider } } + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return slot < 5; + } + + @Override + public boolean canExtractItem(int slot, ItemStack stack, int side) { + return slot > 5; + } + + public static final int[] io = new int[] {0, 1, 2, 3, 4, 6, 7, 8, 9, 10}; + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + return io; + } + @Override public boolean isUseableByPlayer(EntityPlayer player) { if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java index 9c43e6970..3db737fc1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityICFController.java @@ -8,6 +8,8 @@ import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.util.fauxpointtwelve.BlockPos; import api.hbm.energymk2.IEnergyReceiverMK2; +import io.netty.buffer.ByteBuf; +import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; public class TileEntityICFController extends TileEntityTickingBase implements IEnergyReceiverMK2 { @@ -51,13 +53,13 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE for(BlockPos capacitor : capacitors) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { pos.mutate(capacitor.getX() + offset.offsetX, capacitor.getY() + offset.offsetY, capacitor.getZ() + offset.offsetZ); - if(emitters.contains(pos)) { this.emitterCount++; break; } + if(emitters.contains(pos)) { this.capacitorCount++; break; } } } for(BlockPos turbo : turbochargers) { for(ForgeDirection offset : ForgeDirection.VALID_DIRECTIONS) { pos.mutate(turbo.getX() + offset.offsetX, turbo.getY() + offset.offsetY, turbo.getZ() + offset.offsetZ); - if(capacitors.contains(pos)) { this.emitterCount++; break; } + if(capacitors.contains(pos)) { this.turbochargerCount++; break; } } } @@ -72,11 +74,73 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE @Override public void updateEntity() { + if(!worldObj.isRemote) { + + if(this.assembled) { + for(BlockPos pos : ports) { + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + BlockPos portPos = pos.offset(dir); + if(this.getMaxPower() > 0) this.trySubscribe(worldObj, portPos.getX(), portPos.getY(), portPos.getZ(), dir); + } + } + } + + this.networkPackNT(50); + } + } + + @Override public void serialize(ByteBuf buf) { + super.serialize(buf); + buf.writeLong(power); + buf.writeInt(capacitorCount); + buf.writeInt(turbochargerCount); + } + + @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); + this.power = buf.readLong(); + this.capacitorCount = buf.readInt(); + this.turbochargerCount = buf.readInt(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.assembled = nbt.getBoolean("assembled"); + this.cellCount = nbt.getInteger("cellCount"); + this.emitterCount = nbt.getInteger("emitterCount"); + this.capacitorCount = nbt.getInteger("capacitorCount"); + this.turbochargerCount = nbt.getInteger("turbochargerCount"); + + ports.clear(); + int portCount = nbt.getInteger("portCount"); + for(int i = 0; i < portCount; i++) { + int[] port = nbt.getIntArray("p" + i); + ports.add(new BlockPos(port[0], port[1], port[2])); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("assembled", assembled); + nbt.setInteger("cellCount", cellCount); + nbt.setInteger("emitterCount", emitterCount); + nbt.setInteger("capacitorCount", capacitorCount); + nbt.setInteger("turbochargerCount", turbochargerCount); + + nbt.setInteger("portCount", ports.size()); + for(int i = 0; i < ports.size(); i++) { + BlockPos pos = ports.get(i); + nbt.setIntArray("p" + i, new int[] { pos.getX(), pos.getY(), pos.getZ() }); + } } @Override public long getPower() { - return power; + return Math.min(power, this.getMaxPower()); } @Override diff --git a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png index f78c497db..102032523 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png and b/src/main/resources/assets/hbm/textures/gui/reactors/gui_icf.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_compound.png b/src/main/resources/assets/hbm/textures/items/bolt_compound.png deleted file mode 100644 index faa421927..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/bolt_compound.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png b/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png deleted file mode 100644 index de6eb68e6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/bolt_dura_steel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bolt_tungsten.png b/src/main/resources/assets/hbm/textures/items/bolt_tungsten.png deleted file mode 100644 index 5a41b624c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/bolt_tungsten.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet.png b/src/main/resources/assets/hbm/textures/items/icf_pellet.png new file mode 100644 index 000000000..eeccd7437 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png new file mode 100644 index 000000000..735ce8e55 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_bg.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png new file mode 100644 index 000000000..904314bbc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_empty.png differ diff --git a/src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png b/src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png new file mode 100644 index 000000000..b45d12aeb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/icf_pellet_shape.png differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_diamond.png b/src/main/resources/assets/hbm/textures/items/wafer_diamond.png deleted file mode 100644 index 10db83af1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_diamond.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_gold.png b/src/main/resources/assets/hbm/textures/items/wafer_gold.png deleted file mode 100644 index 8668da72d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_lapis.png b/src/main/resources/assets/hbm/textures/items/wafer_lapis.png deleted file mode 100644 index 3d6760a26..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_lapis.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_silicon.png b/src/main/resources/assets/hbm/textures/items/wafer_silicon.png deleted file mode 100644 index 54fce1d7f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_silicon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wafer_spark.png b/src/main/resources/assets/hbm/textures/items/wafer_spark.png deleted file mode 100644 index b03364725..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wafer_spark.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_alt.png b/src/main/resources/assets/hbm/textures/items/wand_alt.png deleted file mode 100644 index 101d7a866..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png b/src/main/resources/assets/hbm/textures/items/wand_d_alt.png deleted file mode 100644 index 3524021be..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_d_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wand_s_alt.png b/src/main/resources/assets/hbm/textures/items/wand_s_alt.png deleted file mode 100644 index 749e4431f..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wand_s_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_0.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_0.png deleted file mode 100644 index d0940180c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zündschlüssel_0.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_1.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_1.png deleted file mode 100644 index d3923bf82..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zündschlüssel_1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_2.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_2.png deleted file mode 100644 index 0927803ea..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zündschlüssel_2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_3.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_3.png deleted file mode 100644 index 1076a75d6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zündschlüssel_3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/zündschlüssel_4.png b/src/main/resources/assets/hbm/textures/items/zündschlüssel_4.png deleted file mode 100644 index e99d634fe..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/zündschlüssel_4.png and /dev/null differ