summaryrefslogtreecommitdiff
path: root/ihl/tunneling_shield
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2017-02-12 20:43:03 +0300
committerFoghrye4 <foghrye4@gmail.com>2017-02-12 20:43:03 +0300
commit5cb4c6e24033cf337812390d99a6817d24d21eab (patch)
tree695789855920199efd4702a7bb3e4bacfe58b9f0 /ihl/tunneling_shield
parent8f22398517206aed21a7fd840f463332429fae35 (diff)
Removed explosion radius limitations. Explosion calculation optimized (reduced memory usage). One more detonator and explosive pack recipe. GT6 recipes for both chemical reactors and cryogenic distiller. Max stack size of muffle furnace is limited to 32. A lot of old features are removed.
Diffstat (limited to 'ihl/tunneling_shield')
-rw-r--r--ihl/tunneling_shield/BlockItemRender.java206
-rw-r--r--ihl/tunneling_shield/DriverBlock.java109
-rw-r--r--ihl/tunneling_shield/DriverContainer.java79
-rw-r--r--ihl/tunneling_shield/DriverEntity.java69
-rw-r--r--ihl/tunneling_shield/DriverGui.java102
-rw-r--r--ihl/tunneling_shield/DriverModel.java161
-rw-r--r--ihl/tunneling_shield/DriverRender.java50
-rw-r--r--ihl/tunneling_shield/DriverRenderEntity.java147
-rw-r--r--ihl/tunneling_shield/DriverTileEntity.java1136
-rw-r--r--ihl/tunneling_shield/HorizontalMiningPipe.java276
-rw-r--r--ihl/tunneling_shield/HydrotransportPulpRegeneratorContainer.java100
-rw-r--r--ihl/tunneling_shield/HydrotransportPulpRegeneratorGui.java59
-rw-r--r--ihl/tunneling_shield/HydrotransportPulpRegeneratorTileEntity.java273
-rw-r--r--ihl/tunneling_shield/IMultiBlock.java7
-rw-r--r--ihl/tunneling_shield/MultiBlockSpacerBlock.java223
15 files changed, 0 insertions, 2997 deletions
diff --git a/ihl/tunneling_shield/BlockItemRender.java b/ihl/tunneling_shield/BlockItemRender.java
deleted file mode 100644
index 27b0f04..0000000
--- a/ihl/tunneling_shield/BlockItemRender.java
+++ /dev/null
@@ -1,206 +0,0 @@
-package ihl.tunneling_shield;
-
-import ic2.core.block.RenderBlockDefault;
-import ihl.items_blocks.IHLItemBlock;
-import ihl.model.IHLModelRenderer;
-import net.minecraft.block.Block;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.entity.EntityClientPlayerMP;
-import net.minecraft.client.model.ModelBase;
-import net.minecraft.client.model.ModelRenderer;
-import net.minecraft.client.renderer.RenderBlocks;
-import net.minecraft.client.renderer.entity.RenderManager;
-import net.minecraft.client.renderer.entity.RenderPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.ResourceLocation;
-import net.minecraftforge.client.IItemRenderer;
-import org.lwjgl.opengl.GL11;
-
-public class BlockItemRender implements IItemRenderer{
- private ModelBase model;
- private ResourceLocation tex;
- private int renderFrom=0;
- private int renderTo=0;
- private RenderBlockDefault rbd;
- private float amendment=0.0F;
- private float inventoryOffset=0.0F;
- private boolean renderHand;
-
-public BlockItemRender()
-{
- rbd=new RenderBlockDefault();
-}
-
-public BlockItemRender(ModelBase model1, ResourceLocation texture, int renderFrom1, int renderTo1, float amendment1, float inventoryOffset1)
-{
- this.model=model1;
- this.tex=texture;
- this.renderFrom=renderFrom1;
- this.renderTo=renderTo1;
- this.amendment=amendment1;
- this.inventoryOffset=inventoryOffset1;
- this.renderHand=false;
-}
-
-public BlockItemRender(ModelBase model1, ResourceLocation texture, int renderFrom1, int renderTo1, float amendment1, float inventoryOffset1, boolean renderHand1)
-{
- this.model=model1;
- this.tex=texture;
- this.renderFrom=renderFrom1;
- this.renderTo=renderTo1;
- this.amendment=amendment1;
- this.inventoryOffset=inventoryOffset1;
- this.renderHand=renderHand1;
-}
-
-@Override
-public boolean handleRenderType(ItemStack item, ItemRenderType type) {
- switch (type) {
- case ENTITY:
- return true;
- case EQUIPPED:
- return true;
- case EQUIPPED_FIRST_PERSON:
- return true;
- case INVENTORY:
- return true;
- default:
- return false;
- }
-}
-
-@Override
-public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
- return true;
-}
-
-@Override
-public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
- if(tex!=null)
- {
- Minecraft.getMinecraft().renderEngine.bindTexture(tex);
- }
- GL11.glPushMatrix();
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- IHLItemBlock bItem =(IHLItemBlock) item.getItem();
- Block block = bItem.getBlockContained();
- GL11.glScalef(1F, -1F+amendment, -1F);
- switch (type) {
- case ENTITY:
- GL11.glTranslatef(0,-1.5F,0);
- if(model!=null)
- {
- for(int i = this.renderFrom;i<model.boxList.size()-this.renderTo;i++)
- {
- if(model.boxList.get(i) instanceof ModelRenderer)
- {
- ModelRenderer piece = (ModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- else if(model.boxList.get(i) instanceof IHLModelRenderer)
- {
- IHLModelRenderer piece = (IHLModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- }
- }
- else
- {
- rbd.renderInventoryBlock(block, 3, 0, new RenderBlocks());
- }
- GL11.glPopMatrix();
- break;
- case EQUIPPED:
- GL11.glTranslatef(0.25F,-2F,-0.75F);
- if(model!=null)
- {
- for(int i = this.renderFrom;i<model.boxList.size()-this.renderTo;i++)
- {
- if(model.boxList.get(i) instanceof ModelRenderer)
- {
- ModelRenderer piece = (ModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- else if(model.boxList.get(i) instanceof IHLModelRenderer)
- {
- IHLModelRenderer piece = (IHLModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- }
- }
- else
- {
- rbd.renderInventoryBlock(block, 3, 0, new RenderBlocks());
- }
- GL11.glPopMatrix();
- break;
- case EQUIPPED_FIRST_PERSON:
- if(this.renderHand)
- {
- RenderPlayer var25;
- EntityClientPlayerMP var3 = Minecraft.getMinecraft().thePlayer;
- Minecraft.getMinecraft().getTextureManager().bindTexture(var3.getLocationSkin());
- var25 = (RenderPlayer)RenderManager.instance.getEntityRenderObject(Minecraft.getMinecraft().thePlayer);
- GL11.glRotatef(135F, 1.0F, 0.0F, 0.0F);
- GL11.glRotatef(35F, 0.0F, 1.0F, 0.0F);
- var25.renderFirstPersonArm(Minecraft.getMinecraft().thePlayer);
- GL11.glRotatef(-35F, 0.0F, 1.0F, 0.0F);
- GL11.glRotatef(-135F, 1.0F, 0.0F, 0.0F);
- Minecraft.getMinecraft().renderEngine.bindTexture(tex);
- GL11.glTranslatef(0.0F,0.2F,0F);
- }
- GL11.glTranslatef(-0.25F,-2.0F-amendment,0F);
- if(model!=null)
- {
- for(int i = this.renderFrom;i<model.boxList.size()-this.renderTo;i++)
- {
- if(model.boxList.get(i) instanceof ModelRenderer)
- {
- ModelRenderer piece = (ModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- else if(model.boxList.get(i) instanceof IHLModelRenderer)
- {
- IHLModelRenderer piece = (IHLModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- }
- }
- else
- {
- rbd.renderInventoryBlock(block, 3, 0, new RenderBlocks());
- }
- GL11.glPopMatrix();
- break;
- case INVENTORY:
- GL11.glRotatef(15F, 0F, 1F, 0F);
- GL11.glTranslatef(0.0F,-1.0F+inventoryOffset,0F);
- if(model!=null)
- {
- for(int i = this.renderFrom;i<model.boxList.size()-this.renderTo;i++)
- {
- if(model.boxList.get(i) instanceof ModelRenderer)
- {
- ModelRenderer piece = (ModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- else if(model.boxList.get(i) instanceof IHLModelRenderer)
- {
- IHLModelRenderer piece = (IHLModelRenderer) model.boxList.get(i);
- piece.render(1.0F/16.0F);
- }
- }
- }
- else
- {
-
- rbd.renderInventoryBlock(block, 3, 0, new RenderBlocks());
- }
- GL11.glDisable(GL11.GL_BLEND);
- GL11.glPopMatrix();
- break;
- default:
- }
-}
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/DriverBlock.java b/ihl/tunneling_shield/DriverBlock.java
deleted file mode 100644
index e39205f..0000000
--- a/ihl/tunneling_shield/DriverBlock.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package ihl.tunneling_shield;
-import ic2.api.item.IC2Items;
-import ic2.core.IC2;
-import ihl.IHLModInfo;
-import java.util.Random;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import net.minecraft.block.BlockContainer;
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-
-public class DriverBlock extends BlockContainer {
-
- public DriverBlock(Material p_i45386_1_) {
- super(p_i45386_1_);
- }
-
- @Override
- public void onBlockPreDestroy(World world, int x, int y, int z, int meta)
- {
- if(IC2.platform.isSimulating())
- {
- DriverTileEntity te = (DriverTileEntity)world.getTileEntity(x,y,z);
- te.cleanUp();
- }
- }
-
- @Override
- public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
- {
- return IC2Items.getItem("machine").getItem();
- }
-
- @Override
- public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int flag)
- {
- ItemStack result = IC2Items.getItem("machine").copy();
- this.dropBlockAsItem(world, x, y, z, result);
- }
-
- @Override
- public TileEntity createNewTileEntity(World world, int var2) {
- return new DriverTileEntity();
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(IIconRegister par1IconRegister)
- {
- this.blockIcon = par1IconRegister.registerIcon(IHLModInfo.MODID + ":driver");
- }
-
- @Override
- public boolean hasTileEntity(int metadata)
- {
- return true;
- }
-
-
- @Override
- public boolean onBlockActivated(World world,int x,int y,int z,EntityPlayer entityPlayer,int i,float pos_x,float pos_y,float pos_z){
- if(world.getTileEntity(x,y,z) instanceof DriverTileEntity)
- {
- DriverTileEntity var10 = (DriverTileEntity)world.getTileEntity(x,y,z);
- if (var10 == null || entityPlayer.isSneaking()) {
- return false;
- }
- else
- {
- return var10.getGui(entityPlayer);
- }
- }
- return false;
- }
-
- /**
- * The type of render function that is called for this block
- */
- @Override
- public int getRenderType()
- {
- return -2;
- }
-
- /**
- * Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two
- * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
- */
- @Override
- public boolean isOpaqueCube()
- {
- return false;
- }
-
- /**
- * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
- */
- @Override
- public boolean renderAsNormalBlock()
- {
- return false;
- }
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/DriverContainer.java b/ihl/tunneling_shield/DriverContainer.java
deleted file mode 100644
index ee14de8..0000000
--- a/ihl/tunneling_shield/DriverContainer.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package ihl.tunneling_shield;
-
-import ic2.core.ContainerBase;
-import ic2.core.slot.SlotInvSlot;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.ICrafting;
-import net.minecraft.inventory.Slot;
-
-public class DriverContainer extends ContainerBase<DriverTileEntity> {
-
- protected DriverTileEntity tileEntity;
- public int lastStorage = -1;
- private final static int height=166;
-
- public DriverContainer(EntityPlayer entityPlayer, DriverTileEntity tileEntity1){
- super(tileEntity1);
- this.tileEntity = tileEntity1;
- int col;
-
- for (col = 0; col < 3; ++col)
- {
- for (int col1 = 0; col1 < 9; ++col1)
- {
- this.addSlotToContainer(new Slot(entityPlayer.inventory, col1 + col * 9 + 9, 8 + col1 * 18, height + -82 + col * 18));
- }
- }
-
- for (col = 0; col < 9; ++col)
- {
- this.addSlotToContainer(new Slot(entityPlayer.inventory, col, 8 + col * 18, height + -24));
- }
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.dischargeSlot, 0, 26, 26));
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.miningPipesSlot, 0, 48, 26));
- for(int row=0;row<=3;row++)
- {
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.upgradeSlot, row, 152, 8+row*18));
- }
- }
-
- @Override
- public void detectAndSendChanges()
- {
- super.detectAndSendChanges();
- for (int i = 0; i < this.crafters.size(); ++i)
- {
- ICrafting icrafting = (ICrafting)this.crafters.get(i);
-
- if (this.tileEntity.getStored() != this.lastStorage)
- {
- icrafting.sendProgressBarUpdate(this, 0, (this.tileEntity.getStored()>>15) & Short.MAX_VALUE);
- icrafting.sendProgressBarUpdate(this, 1, (short)(this.tileEntity.getStored() & Short.MAX_VALUE));
-
- }
- }
-
- this.lastStorage = this.tileEntity.getStored();
- }
-
- @Override
- public void updateProgressBar(int index, int value)
- {
- super.updateProgressBar(index, value);
-
- switch (index)
- {
- case 0:
- this.tileEntity.setStored(value<<15);
- break;
- case 1:
- this.tileEntity.setStored(this.tileEntity.getStored()+value);
- break;
- }
- }
-
- @Override
- public boolean canInteractWith(EntityPlayer var1) {
- return tileEntity.isUseableByPlayer(var1);
- }
-}
diff --git a/ihl/tunneling_shield/DriverEntity.java b/ihl/tunneling_shield/DriverEntity.java
deleted file mode 100644
index e7e1c90..0000000
--- a/ihl/tunneling_shield/DriverEntity.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package ihl.tunneling_shield;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.world.World;
-
-public class DriverEntity extends Entity {
-
- public DriverTileEntity parent;
-
- public DriverEntity(World arg0)
- {
- super(arg0);
- this.ignoreFrustumCheck = true;
- this.motionX = 0.0D;
- this.motionY = 0.0D;
- this.motionZ = 0.0D;
- this.noClip=true;
- }
-
- public DriverEntity(World arg0, DriverTileEntity te, int x, int y, int z)
- {
- super(arg0);
- this.parent=te;
- this.motionX = 0.0D;
- this.motionY = 0.0D;
- this.motionZ = 0.0D;
- this.lastTickPosX = this.prevPosX = this.posX = x;
- this.lastTickPosY = this.prevPosY = this.posY = y;
- this.lastTickPosZ = this.prevPosZ = this.posZ = z;
- this.ignoreFrustumCheck = true;
- }
-
- @Override
- public boolean isInRangeToRenderDist(double par1)
- {
- return true;
- }
-
-
- @Override
- public void onUpdate()
- {
- super.onUpdate();
-
- if(this.parent!=null)
- {
- this.motionX = 0.0D;
- this.motionY = 0.0D;
- this.motionZ = 0.0D;
- this.lastTickPosX = this.prevPosX = this.posX =this.parent.xCoord+this.parent.getModelShiftAmount()*this.parent.mX();
- this.lastTickPosY = this.prevPosY = this.posY =(this.parent.yCoord);
- this.lastTickPosZ = this.prevPosZ = this.posZ =this.parent.zCoord+this.parent.getModelShiftAmount()*this.parent.mZ();
- }
- else
- {
- this.setDead();
- }
- }
-
- @Override
- protected void entityInit() {}
-
- @Override
- protected void readEntityFromNBT(NBTTagCompound nbt) {}
-
- @Override
- protected void writeEntityToNBT(NBTTagCompound nbt) {}
-}
diff --git a/ihl/tunneling_shield/DriverGui.java b/ihl/tunneling_shield/DriverGui.java
deleted file mode 100644
index 446c9f1..0000000
--- a/ihl/tunneling_shield/DriverGui.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package ihl.tunneling_shield;
-
-import cpw.mods.fml.relauncher.Side;
-
-import cpw.mods.fml.relauncher.SideOnly;
-import ic2.core.IC2;
-import net.minecraft.client.gui.GuiButton;
-import net.minecraft.client.gui.inventory.GuiContainer;
-import net.minecraft.util.ResourceLocation;
-import net.minecraft.util.StatCollector;
-
-import org.lwjgl.opengl.GL11;
-
-@SideOnly(Side.CLIENT)
-public class DriverGui extends GuiContainer {
- private static final ResourceLocation background = new ResourceLocation("ihl", "textures/gui/GUIDriver.png");
- private DriverContainer container;
-
- public DriverGui (DriverContainer container1) {
- //the container is instanciated and passed to the superclass for handling
- super(container1);
- this.container=container1;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void initGui()
- {
- super.initGui();
- int x = (width - xSize) / 2;
- int y = (height - ySize) / 2;
- this.buttonList.add(new GuiButton(0, x+6, y+62, 20, 20, "R"));
- this.buttonList.add(new GuiButton(1, x+6, y+42, 20, 20, "A"));
- }
-
- @Override
- public void actionPerformed(GuiButton button)
- {
- super.actionPerformed(button);
- if (button.id == 0)
- {
- IC2.network.get().initiateClientTileEntityEvent(this.container.tileEntity, 0);
- }
- if (button.id == 1)
- {
- IC2.network.get().initiateClientTileEntityEvent(this.container.tileEntity, 1);
- }
- }
-
- @Override
- protected void drawGuiContainerForegroundLayer(int param1, int param2) {
- //the parameters for drawString are: string, x, y, color
- String title = StatCollector.translateToLocal("ihl.gui.ts02");
- fontRendererObj.drawStringWithShadow(title, 8, 8, 16767839);
- String reverseModeOn;
- if(this.container.tileEntity.reverseModeOn)
- {
- reverseModeOn = StatCollector.translateToLocal("ihl.gui.ts02reverse_on");
- fontRendererObj.drawStringWithShadow(reverseModeOn, 30, 68, 16767839);
- }
- else
- {
- reverseModeOn = StatCollector.translateToLocal("ihl.gui.ts02reverse_off");
- fontRendererObj.drawString(reverseModeOn, 30, 68, 8947848);
- }
-
- String autoReverseModeOn;
- if(this.container.tileEntity.autoReverseModeOn)
- {
- autoReverseModeOn = StatCollector.translateToLocal("ihl.gui.ts02auto_reverse_on");
- fontRendererObj.drawStringWithShadow(autoReverseModeOn, 30, 48, 16767839);
- }
- else
- {
- autoReverseModeOn = StatCollector.translateToLocal("ihl.gui.ts02auto_reverse_off");
- fontRendererObj.drawString(autoReverseModeOn, 30, 48, 8947848);
- }
- //draws "Inventory" or your regional equivalent
- //fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 4210752);
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.mc.renderEngine.bindTexture(background);
- //charge
- if (this.container.tileEntity.getStored() > 0)
- {
- int chargeLevel=Math.min(Math.round(this.container.tileEntity.getStored()*13.0F/this.container.tileEntity.maxStorage),13);
- this.drawTexturedModalRect(11, 28+13-chargeLevel, xSize, 13-chargeLevel, 7, chargeLevel);
- }
-
-
- }
-
- @Override
- protected void drawGuiContainerBackgroundLayer(float par1, int par2,
- int par3) {
- //draw your Gui here, only thing you need to change is the path
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.mc.renderEngine.bindTexture(background);
- int x = (width - xSize) / 2;
- int y = (height - ySize) / 2;
- this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
- }
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/DriverModel.java b/ihl/tunneling_shield/DriverModel.java
deleted file mode 100644
index edb8aa8..0000000
--- a/ihl/tunneling_shield/DriverModel.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package ihl.tunneling_shield;
-
-import net.minecraft.client.model.ModelBase;
-import net.minecraft.client.model.ModelRenderer;
-import net.minecraft.entity.Entity;
-
-public class DriverModel extends ModelBase {
- //fields
- ModelRenderer Shield;
- ModelRenderer ShieldA;
- ModelRenderer ShieldB;
- ModelRenderer ShieldC;
- ModelRenderer AdvancedShieldA;
-
- ModelRenderer Base;
- ModelRenderer ShaftA;
- ModelRenderer ShaftB;
-
- public DriverModel()
- {
- textureWidth = 512;
- textureHeight = 256;
- setTextureOffset("ShieldB.Shape1", 0, 84);
- setTextureOffset("ShieldB.Shape2", 0, 84);
- setTextureOffset("ShieldB.Shape3", 0, 84);
- setTextureOffset("ShieldB.Shape4", 0, 84);
- setTextureOffset("ShieldC.Shape1", 0, 84);
- setTextureOffset("ShieldC.Shape2", 0, 84);
- setTextureOffset("ShieldC.Shape3", 0, 84);
- setTextureOffset("ShieldC.Shape4", 0, 84);
- setTextureOffset("ShieldA.Shape1", 0, 132);
- setTextureOffset("ShieldA.Shape2", 0, 132);
- setTextureOffset("ShieldA.Shape3", 0, 132);
-
- setTextureOffset("AdvancedShieldA.Shape1", 173, 132);
- setTextureOffset("AdvancedShieldA.Shape2", 173, 132);
- setTextureOffset("AdvancedShieldA.Shape3", 173, 132);
-
- setTextureOffset("Shield.Shape1", 0, 0);
- setTextureOffset("Shield.Shape2", 0, 0);
- setTextureOffset("Shield.Shape3", 0, 0);
- setTextureOffset("Shield.Shape4", 98, 84);
- setTextureOffset("Shield.Shape5", 98, 84);
- setTextureOffset("Shield.Shape6", 0, 0);
- setTextureOffset("Shield.Shape7", 0, 0);
- setTextureOffset("Shield.Shape8", 98, 84);
- setTextureOffset("Shield.Shape9", 0, 0);
- setTextureOffset("Shield.Shape10", 0, 0);
- setTextureOffset("Shield.Shape11", 98, 84);
-
- setTextureOffset("Base.Base1", 80, 0);
- setTextureOffset("Base.Base2", 83, 0);
- setTextureOffset("Base.Base3", 98, 0);
- setTextureOffset("Base.Base4", 98, 0);
- setTextureOffset("Base.Base5", 98, 4);
- setTextureOffset("Base.Base6", 98, 4);
- setTextureOffset("Base.Base7", 103, 1);
- setTextureOffset("Base.Base8", 98, 0);
- setTextureOffset("Base.Base9", 98, 0);
- setTextureOffset("Base.Base10", 98, 0);
- setTextureOffset("Base.Base11", 98, 0);
- setTextureOffset("Base.Base12", 98, 0);
- setTextureOffset("Base.Base13", 99, 3);
- setTextureOffset("ShaftA.ShapeA", 144, 0);
- setTextureOffset("ShaftB.ShapeA", 144, 0);
-
- ShieldB = new ModelRenderer(this, "ShieldB");
- ShieldB.setRotationPoint(0F, 16F, 0F);
- setRotation(ShieldB, 0F, 0F, 0F);
- ShieldB.mirror = true;
- ShieldB.addBox("Shape1", -7F, -36F, 9F, 14, 16, 12);
- ShieldB.addBox("Shape2", 20F, -7F, 9F, 16, 14, 12);
- ShieldB.addBox("Shape3", -36F, -7F, 9F, 16, 14, 12);
- ShieldB.addBox("Shape4", -7F, 20F, 9F, 14, 16, 12);
- ShieldC = new ModelRenderer(this, "ShieldB");
- ShieldC.setRotationPoint(0F, 16F, 0F);
- setRotation(ShieldC, 0F, 0F, 0F);
- ShieldC.mirror = true;
- ShieldC.addBox("Shape1", -7F, -36F, 9F, 14, 16, 12);
- ShieldC.addBox("Shape2", 20F, -7F, 9F, 16, 14, 12);
- ShieldC.addBox("Shape3", -36F, -7F, 9F, 16, 14, 12);
- ShieldC.addBox("Shape4", -7F, 20F, 9F, 14, 16, 12);
- ShieldA = new ModelRenderer(this, "ShieldA");
- ShieldA.setRotationPoint(0F, 16F, 0F);
- setRotation(ShieldA, 0F, 0F, 0F);
- ShieldA.mirror = true;
- ShieldA.addBox("Shape1", -36F, -8F, 10F, 72, 16, 12);
- ShieldA.addBox("Shape2", -8F, -36F, 10F, 16, 28, 12);
- ShieldA.addBox("Shape3", -8F, 8F, 10F, 16, 28, 12);
-
- AdvancedShieldA = new ModelRenderer(this, "AdvancedShieldA");
- AdvancedShieldA.setRotationPoint(0F, 16F, 0F);
- setRotation(AdvancedShieldA, 0F, 0F, 0F);
- AdvancedShieldA.mirror = true;
- AdvancedShieldA.addBox("Shape1", -36F, -8F, 10F, 72, 16, 12);
- AdvancedShieldA.addBox("Shape2", -8F, -36F, 10F, 16, 28, 12);
- AdvancedShieldA.addBox("Shape3", -8F, 8F, 10F, 16, 28, 12);
-
- Shield = new ModelRenderer(this, "Shield");
- Shield.setRotationPoint(0F, 16F, 0F);
- setRotation(Shield, 0F, 0F, 0F);
- Shield.mirror = true;
- Shield.addBox("Shape1", -6F, -6F, 8F, 12, 12, 2);
- Shield.addBox("Shape2", -8F, -35F, 11F, 7, 70, 12);
- Shield.addBox("Shape3", 1F, -35F, 11F, 7, 70, 12);
- Shield.addBox("Shape4", -2F, -36F, 20F, 2, 36, 4);
- Shield.addBox("Shape5", 0F, 0F, 20F, 2, 36, 4);
- Shield.addBox("Shape6", -35F, 1F, 11F, 27, 7, 12);
- Shield.addBox("Shape7", -35F, -8F, 11F, 27, 7, 12);
- Shield.addBox("Shape8", -36F, 0F, 20F, 28, 2, 4);
- Shield.addBox("Shape9", 8F, 1F, 11F, 27, 7, 12);
- Shield.addBox("Shape10", 8F, -8F, 11F, 27, 7, 12);
- Shield.addBox("Shape11", 8F, -2F, 20F, 28, 2, 4);
-
- Base = new ModelRenderer(this, "Base");
- Base.setRotationPoint(-8F, 16F, 0F);
- setRotation(Base, 0F, 0F, 0F);
- Base.mirror = true;
- Base.addBox("Base1", 0F, 7F, -8F, 16, 1, 16);
- Base.addBox("Base2", 1F, -7F, -7F, 14, 13, 15);
- Base.addBox("Base3", 0F, -6F, -6F, 1, 1, 13);
- Base.addBox("Base4", 2F, -8F, -6F, 1, 1, 13);
- Base.addBox("Base5", 0F, -4F, -6F, 1, 7, 14);
- Base.addBox("Base6", 15F, -4F, -6F, 1, 7, 14);
- Base.addBox("Base7", 5F, -8F, -6F, 6, 1, 14);
- Base.addBox("Base8", 3F, 6F, -7F, 10, 1, 15);
- Base.addBox("Base9", 0F, 4F, -6F, 1, 1, 13);
- Base.addBox("Base10", 13F, -8F, -6F, 1, 1, 13);
- Base.addBox("Base11", 15F, -6F, -6F, 1, 1, 13);
- Base.addBox("Base12", 15F, 4F, -6F, 1, 1, 13);
- Base.addBox("Base13", 3F, -5F, -8F, 10, 9, 1);
-
- ShaftA = new ModelRenderer(this, "ShaftA");
- ShaftA.setRotationPoint(0F, 16F, 0F);
- setRotation(ShaftA, 0F, 0F, 0F);
- ShaftA.mirror = true;
- ShaftA.addBox("ShapeA", -5F, -5F, -0F, 10, 10, 8);
-
- ShaftB = new ModelRenderer(this, "ShaftB");
- ShaftB.setRotationPoint(0F, 16F, 0F);
- setRotation(ShaftB, 0F, 0F, 0F);
- ShaftB.mirror = true;
- ShaftB.addBox("ShapeA", -5F, -5F, -8F, 10, 10, 8);
-
- }
-
- private void setRotation(ModelRenderer model, float x, float y, float z)
- {
- model.rotateAngleX = x;
- model.rotateAngleY = y;
- model.rotateAngleZ = z;
- }
-
- @Override
- public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
- {
- super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
- }
-}
-
-
diff --git a/ihl/tunneling_shield/DriverRender.java b/ihl/tunneling_shield/DriverRender.java
deleted file mode 100644
index e2c6802..0000000
--- a/ihl/tunneling_shield/DriverRender.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package ihl.tunneling_shield;
-import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.ResourceLocation;
-import org.lwjgl.opengl.GL11;
-import ihl.IHLModInfo;
-
-public class DriverRender extends TileEntitySpecialRenderer{
-private DriverModel model = new DriverModel();
-private ResourceLocation tex = new ResourceLocation(IHLModInfo.MODID+":textures/blocks/shield.png");
-
-public DriverRender(){}
-
-public void renderAModelAt(DriverTileEntity tile, double d, double d1, double d2, float f) {
-int rotation = 0;
-if(tile.getWorldObj() != null)
-{
- switch (tile.getFacing())
- {
- case 2:
- rotation = 0;
- break;
- case 5:
- rotation = 1;
- break;
- case 3:
- rotation = 2;
- break;
- case 4:
- rotation = 3;
- break;
- default:
- rotation = 0;
- }
-}
-bindTexture(tex); //texture
-GL11.glPushMatrix();
-GL11.glTranslatef((float)d + 0.5F, (float)d1 + 1.5F, (float)d2 + 0.5F);
-GL11.glScalef(1.0F, -1F, -1F);
-GL11.glRotatef(rotation*90, 0.0F, 1.0F, 0.0F);
-model.Base.render(1.0F/16.0F);
-GL11.glPopMatrix(); //end
-}
-
-@Override
-public void renderTileEntityAt(TileEntity par1TileEntity, double par2, double par4, double par6, float par8)
-{
-this.renderAModelAt((DriverTileEntity)par1TileEntity, par2, par4, par6, par8);
-}
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/DriverRenderEntity.java b/ihl/tunneling_shield/DriverRenderEntity.java
deleted file mode 100644
index 40ed977..0000000
--- a/ihl/tunneling_shield/DriverRenderEntity.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package ihl.tunneling_shield;
-import net.minecraft.client.renderer.entity.Render;
-import net.minecraft.entity.Entity;
-import net.minecraft.util.ResourceLocation;
-
-import org.lwjgl.opengl.GL11;
-
-import ihl.IHLModInfo;
-
-public class DriverRenderEntity extends Render{
-
- private DriverModel model = new DriverModel();
- private ResourceLocation tex = new ResourceLocation(IHLModInfo.MODID+":textures/blocks/shield.png");
- private float rotationAmount=1F;
- private float rotationAmount2=0F;
- public DriverRenderEntity()
- {
- super();
- }
-
- @Override
- public void doRender(Entity entity, double x, double y, double z, float arg4, float arg5)
- {
- double d;
- double d1;
- double d2;
- if(((DriverEntity)entity).parent!=null)
- {
- DriverTileEntity tile = ((DriverEntity)entity).parent;
- float shift=tile.getModelShiftAmount();
- d=x-entity.lastTickPosX+tile.xCoord;
- d1=y-entity.lastTickPosY+tile.yCoord;
- d2=z-entity.lastTickPosZ+tile.zCoord;
- int rotation = 0;
- if(tile.getWorldObj() != null)
- {
- switch (tile.getFacing())
- {
- case 2:
- rotation = 0;
- break;
- case 5:
- rotation = 1;
- break;
- case 3:
- rotation = 2;
- break;
- case 4:
- rotation = 3;
- break;
- default:
- rotation = 0;
- }
- }
- bindTexture(tex);
- GL11.glPushMatrix();
- GL11.glTranslatef((float)d + 0.5F, (float)d1 + 1.5F, (float)d2 + 0.5F);
- GL11.glScalef(1.0F, -1F, -1F);
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- GL11.glRotatef(rotation*90, 0.0F, 1.0F, 0.0F);
- if(tile.hasShield && tile.getActive() && tile.shaftDestroyedAtA==0)
- {
- rotationAmount+=0.01F;
- }
- rotationAmount2 += 0.01F;
- if(tile.hasShield)
- {
- if(tile.shaftDestroyedAtA==0)
- {
- model.ShieldB.rotateAngleZ=rotationAmount+(float)Math.PI/8.0F;
- model.ShieldB.offsetZ=shift;
- model.ShieldB.render(1.0F/16.0F);
-
- model.ShieldC.rotateAngleZ=rotationAmount+3*(float)Math.PI/8.0F;
- model.ShieldC.offsetZ=shift;
- model.ShieldC.render(1.0F/16.0F);
-
- if(tile.advancedShield)
- {
- model.AdvancedShieldA.rotateAngleZ=rotationAmount+(float)Math.PI/4.0F;
- model.AdvancedShieldA.offsetZ=shift;
- model.AdvancedShieldA.render(1.0F/16.0F);
- }
- else
- {
- model.ShieldA.rotateAngleZ=rotationAmount+(float)Math.PI/4.0F;
- model.ShieldA.offsetZ=shift;
- model.ShieldA.render(1.0F/16.0F);
- }
-
- model.Shield.rotateAngleZ=rotationAmount;
- model.Shield.offsetZ=shift;
- model.Shield.render(1.0F/16.0F);
- GL11.glScalef(1.0F, 1.0F, 1.0F + shift);
- model.ShaftA.offsetZ=0.5F;
- model.ShaftB.offsetZ=0.5F;
- model.ShaftA.rotateAngleZ=rotationAmount;
- model.ShaftB.rotateAngleZ=rotationAmount;
- model.ShaftA.render(1.0F/16.0F);
- model.ShaftB.render(1.0F/16.0F);
- }
- else
- {
- model.ShieldB.rotateAngleZ=rotationAmount+(float)Math.PI/8.0F;
- model.ShieldC.rotateAngleZ=rotationAmount+3*(float)Math.PI/8.0F;
- model.ShieldA.rotateAngleZ=rotationAmount+(float)Math.PI/4.0F;
- model.AdvancedShieldA.rotateAngleZ=rotationAmount+(float)Math.PI/4.0F;
- model.Shield.rotateAngleZ=rotationAmount;
- model.ShaftA.rotateAngleZ=rotationAmount;
-
- model.ShieldB.offsetZ=shift;
- model.ShieldB.render(1.0F/16.0F);
-
- model.ShieldC.offsetZ=shift;
- model.ShieldC.render(1.0F/16.0F);
-
- if(tile.advancedShield)
- {
- model.AdvancedShieldA.offsetZ=shift;
- model.AdvancedShieldA.render(1.0F/16.0F);
- }
- else
- {
- model.ShieldA.offsetZ=shift;
- model.ShieldA.render(1.0F/16.0F);
- }
-
- model.Shield.offsetZ=shift;
- model.Shield.render(1.0F/16.0F);
- GL11.glScalef(1.0F, 1.0F, tile.shaftDestroyedAtA*2);
- model.ShaftB.offsetZ=0.5F-0.2F/tile.shaftDestroyedAtA;
- model.ShaftB.rotateAngleZ=rotationAmount2;
- model.ShaftB.render(1.0F/16.0F);
- GL11.glScalef(1.0F, 1.0F, (shift-tile.shaftDestroyedAtB)/tile.shaftDestroyedAtA);
- model.ShaftA.offsetZ=0.5F*(tile.shaftDestroyedAtB+0.5F)/(shift-tile.shaftDestroyedAtB);
- model.ShaftA.render(1.0F/16.0F);
- }
- }
- GL11.glPopMatrix(); //end
- }
- }
-
- @Override
- protected ResourceLocation getEntityTexture(Entity arg0) {
- return this.tex;
- }
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/DriverTileEntity.java b/ihl/tunneling_shield/DriverTileEntity.java
deleted file mode 100644
index f547dec..0000000
--- a/ihl/tunneling_shield/DriverTileEntity.java
+++ /dev/null
@@ -1,1136 +0,0 @@
-package ihl.tunneling_shield;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import ic2.api.energy.event.EnergyTileLoadEvent;
-import ic2.api.energy.event.EnergyTileUnloadEvent;
-import ic2.api.energy.tile.IEnergySink;
-import ic2.api.item.IC2Items;
-import ic2.api.network.INetworkClientTileEntityEventListener;
-import ic2.api.recipe.RecipeOutput;
-import ic2.api.recipe.Recipes;
-import ic2.core.ContainerBase;
-import ic2.core.IC2;
-import ic2.core.IHasGui;
-import ic2.core.Ic2Items;
-import ic2.core.audio.AudioSource;
-import ic2.core.audio.PositionSpec;
-import ic2.core.block.TileEntityInventory;
-import ic2.core.block.invslot.InvSlotConsumableId;
-import ic2.core.block.invslot.InvSlot;
-import ic2.core.block.invslot.InvSlotUpgrade;
-import ic2.core.block.invslot.InvSlot.Access;
-import ic2.core.upgrade.IUpgradableBlock;
-import ic2.core.upgrade.UpgradableProperty;
-import ic2.core.util.StackUtil;
-import ihl.IHLMod;
-import ihl.utils.IHLInvSlotDischarge;
-import ihl.utils.IHLUtils;
-import net.minecraft.block.Block;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLiving;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.AxisAlignedBB;
-import net.minecraft.util.DamageSource;
-import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.common.util.ForgeDirection;
-
-public class DriverTileEntity extends TileEntityInventory implements IEnergySink, IHasGui, INetworkClientTileEntityEventListener, IUpgradableBlock, IMultiBlock {
-
- private AudioSource audioSource;
- private AudioSource startAS;
- private AudioSource loopAS;
- private AudioSource stopAS;
- private int startUpCounter=0;
- public final InvSlotConsumableId miningPipesSlot;
- public final InvSlotUpgrade upgradeSlot;
- public final IHLInvSlotDischarge dischargeSlot;
- public int tier;
- private int defaultTier;
- public int maxStorage;
- private int defaultMaxStorage;
- public boolean hasShield=false;
- private boolean prevHasShield=false;
- public int shaftDestroyedAtA=0;
- private int prevShaftDestroyedAtA=0;
- public int shaftDestroyedAtB=0;
- private int prevShaftDestroyedAtB=0;
- public int modelShift=0;
- public int modelShiftSpeed;
- private int defaultModelShiftSpeed;
- public int blockShift=1;
- private int lastBlockShift=1;
- private double energy = 0;
- private double energyConsume;
- private double defaultEnergyConsume;
- private boolean addedToEnergyNet=false;
- public int xShaftMin, xShaftMax, yShaft, zShaftMin, zShaftMax, xShieldMin, xShieldMax, yShieldMin, yShieldMax, zShieldMin, zShieldMax;
- private int updateChecksum=0;
- private boolean renderHelperExist=false;
- public DriverEntity renderHelper;
- public boolean reverseModeOn=false;
- public boolean autoReverseModeOn=true;
- private float lastModelShiftAmount=1F;
- private List<Block> blockBlackList = new ArrayList<Block>();
- private List<Block> blockWhiteList = new ArrayList<Block>();
- public boolean advancedShield=false;
-
- public DriverTileEntity()
- {
- super();
- this.miningPipesSlot = new InvSlotConsumableId(this, "miningPipesSlot", 1, 12, new Item[] {Ic2Items.miningPipe.getItem()});
- this.upgradeSlot = new InvSlotUpgrade(this, "upgrade", 2, 4);
- this.dischargeSlot = new IHLInvSlotDischarge(this, 1, Access.IO, this.tier, InvSlot.InvSide.BOTTOM);
- this.defaultTier=IHLMod.config.ts02DefaultTier;
- this.defaultMaxStorage=IHLMod.config.ts02DefaultMaxEnergyStorage;
- this.defaultModelShiftSpeed=IHLMod.config.ts02DefaultSpeed;
- this.defaultEnergyConsume=IHLMod.config.ts02DefaultOperationEUCost;
- this.tier=this.defaultTier;
- this.maxStorage=this.defaultMaxStorage;
- this.modelShiftSpeed=this.defaultModelShiftSpeed;
- this.energyConsume=this.defaultEnergyConsume;
- for(int i6=0;i6<IHLMod.config.ts02BlockBlackListString.length;i6++)
- {
- String blockName = IHLMod.config.ts02BlockBlackListString[i6];
- Block block = Block.getBlockFromName(blockName);
- if(block==null)
- {
- ItemStack stack = IC2Items.getItem(blockName);
- if(stack!=null)
- {
- block = StackUtil.getBlock(stack);
- }
- }
- if(block!=null)
- {
- blockBlackList.add(block);
- }
- }
- for(int i7=0;i7<IHLMod.config.ts02BlockWhiteListString.length;i7++)
- {
- String blockName = IHLMod.config.ts02BlockWhiteListString[i7];
- Block block = Block.getBlockFromName(blockName);
- if(block==null)
- {
- ItemStack stack = IC2Items.getItem(blockName);
- if(stack!=null)
- {
- block = StackUtil.getBlock(stack);
- }
- }
- if(block!=null)
- {
- blockWhiteList.add(block);
- }
-
- }
- blockWhiteList.add(IHLMod.multiBlockSpacerBlock);
- blockWhiteList.add(IHLMod.horizontalMiningPipeX);
- blockWhiteList.add(IHLMod.horizontalMiningPipeZ);
- blockWhiteList.add(Blocks.air);
- }
-
- @Override
- public List<String> getNetworkedFields()
- {
- List<String> fields = super.getNetworkedFields();
- fields.add("hasShield");
- fields.add("modelShift");
- fields.add("shaftDestroyedAtA");
- fields.add("shaftDestroyedAtB");
- fields.add("tier");
- fields.add("modelShiftSpeed");
- fields.add("maxStorage");
- fields.add("reverseModeOn");
- fields.add("autoReverseModeOn");
- fields.add("advancedShield");
- return fields;
- }
-
- public String getShieldSoundFile()
- {
- return "Machines/MinerOp.ogg";
- }
-
- public String getStartSoundFile()
- {
- return "Machines/IHL Tunneling Shield/TS02Start.ogg";
- }
-
- public String getLoopSoundFile()
- {
- return "Machines/IHL Tunneling Shield/TS02Loop.ogg";
- }
-
- public String getStopSoundFile()
- {
- return "Machines/IHL Tunneling Shield/TS02Stop.ogg";
- }
-
- @Override
- public void onLoaded()
- {
- super.onLoaded();
- if (IC2.platform.isSimulating()&&!this.addedToEnergyNet)
- {
- MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
- this.addedToEnergyNet = true;
- }
- if (IC2.platform.isRendering() && (this.startAS==null||this.loopAS==null||this.stopAS==null))
- {
- this.startAS = IC2.audioManager.createSource(this, PositionSpec.Center, this.getStartSoundFile(),false,false, 0.5F);
- this.loopAS = IC2.audioManager.createSource(this, PositionSpec.Center, this.getLoopSoundFile(),true,false, 0.5F);
- this.stopAS = IC2.audioManager.createSource(this, PositionSpec.Center, this.getStopSoundFile(),false,false, 0.5F);
- }
- }
-
- @Override
- public void onUnloaded()
- {
- super.onUnloaded();
-
- if (IC2.platform.isRendering() && this.audioSource != null)
- {
- this.audioSource.stop();
- this.audioSource = null;
- this.startAS.stop();
- this.loopAS.stop();
- this.stopAS.stop();
- this.startAS = null;
- this.loopAS = null;
- this.stopAS = null;
- IC2.audioManager.removeSources(this);
- }
-
- if (IC2.platform.isSimulating()&&this.addedToEnergyNet)
- {
- MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
- this.addedToEnergyNet = false;
- }
- }
-
-
- @SuppressWarnings("unchecked")
- @Override
- public void updateEntityClient()
- {
- super.updateEntityClient();
- updateEntityServer();
- if(!this.renderHelperExist)
- {
- List<DriverEntity> deList = this.worldObj.getEntitiesWithinAABB(DriverEntity.class, this.getOperationZone());
- if(deList.size()>0)
- {
- Iterator<DriverEntity> dei = deList.iterator();
- while(dei.hasNext())
- {
- DriverEntity rh=dei.next();
- if(!rh.isDead)
- {
- this.renderHelper=rh;
- rh.parent=this;
- this.renderHelperExist=true;
- break;
- }
- }
- if(!this.renderHelperExist)
- {
- this.renderHelper=new DriverEntity(this.worldObj, this, this.xCoord+this.blockShift*this.mX(), this.yCoord, this.zCoord+this.blockShift*this.mZ());
- this.renderHelperExist=true;
- }
- }
- else
- {
- this.renderHelper=new DriverEntity(this.worldObj, this, this.xCoord+this.blockShift*this.mX(), this.yCoord, this.zCoord+this.blockShift*this.mZ());
- this.renderHelper.parent=this;
- this.renderHelperExist=true;
- }
- }
-
- if(this.renderHelper!=null && !this.renderHelper.isDead && !this.worldObj.loadedEntityList.contains(this.renderHelper))
- {
- this.worldObj.spawnEntityInWorld(this.renderHelper);
- }
- if(this.audioSource==null && this.renderHelper!=null)this.audioSource = IC2.audioManager.createSource(this.renderHelper, PositionSpec.Center, this.getShieldSoundFile(),true,false, 1.0F);
- if(this.audioSource!=null)
- {
- this.audioSource.updatePosition();
- }
- if(this.audioSource!=null)
- {
- if(this.getActive())
- {
- if(this.startUpCounter>62)
- {
- this.startUpCounter=0;
- }
- if(this.startUpCounter==0)
- {
- this.stopAS.stop();
- this.startAS.play();
- }
- if(this.startUpCounter<60)
- {
- this.startUpCounter++;
- }
- else if(this.startUpCounter==60)
- {
- this.startAS.stop();
- this.loopAS.play();
- this.audioSource.play();
- this.startUpCounter++;
- }
- }
- else if(this.startUpCounter>0)
- {
- this.startAS.stop();
- this.loopAS.stop();
- this.audioSource.stop();
- this.stopAS.play();
- if(this.startUpCounter<100)
- {
- this.startUpCounter++;
- }
- else
- {
- this.startUpCounter=0;
- this.stopAS.stop();
- }
- }
- }
- else if(!this.getActive() && this.audioSource!=null)
- {
- this.audioSource.stop();
- }
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void updateEntityServer()
- {
- if (IC2.platform.isSimulating())
- {
- this.setOverclockRates();
- }
- if(this.dischargeSlot.tier!=this.tier)
- {
- this.dischargeSlot.tier=this.tier;
- }
- int xyz[]={0,0,1,0,-1,-1,1,1,-1,2,0,2,1,2,-1,-2,0,-2,1,-2,-1,0};
- boolean freeToDigForward = true;
- boolean freeToMoveBack = true;
- if(this.blockShift>=127)
- {
- freeToDigForward = false;
- if(this.autoReverseModeOn && !this.reverseModeOn && this.worldObj.isRemote)
- {
- this.reverseModeOn=true;
- IC2.network.get().initiateClientTileEntityEvent(this, 0);
- }
- }
- else
- {
- for(int i = 0;i<21;i++)
- {
- Block block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift+1)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift+1)*this.mZ());
- if(this.blockBlackList.contains(block))
- {
- freeToDigForward = false;
- }
- }
- }
-
- if(this.blockShift<=3)
- {
- freeToMoveBack = false;
- }
- else
- {
- for(int i = 0;i<21;i++)
- {
- Block block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-3)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-3)*this.mZ());
- if(block.getCollisionBoundingBoxFromPool(worldObj, this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-3)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-3)*this.mZ())!=null && !block.getMaterial().isLiquid() && !this.blockWhiteList.contains(block))
- {
- freeToMoveBack = false;
- }
- block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ());
- if(block.getCollisionBoundingBoxFromPool(worldObj, this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ())!=null && !block.getMaterial().isLiquid() && !this.blockWhiteList.contains(block))
- {
- freeToMoveBack = false;
- }
- }
- }
-
- if(IC2.platform.isSimulating())
- {
- if(this.hasShield && this.shaftDestroyedAtA==0 && this.energy>=this.energyConsume)
- {
- if(this.reverseModeOn && freeToMoveBack)
- {
- this.energy-=this.energyConsume;
- this.setActive(true);
- }
- else if((!this.reverseModeOn) && freeToDigForward && this.miningPipesSlot.get()!=null && this.miningPipesSlot.get().stackSize>=1)
- {
- this.energy-=this.energyConsume;
- this.setActive(true);
- }
- else
- {
- this.setActive(false);
- }
- }
- else
- {
- this.setActive(false);
- }
- }
- if(this.getActive())
- {
- double velocity;
- if(this.reverseModeOn && this.modelShift>0)
- {
- this.modelShift--;
- List<Entity> entityList = this.worldObj.getEntitiesWithinAABB(Entity.class, this.getShieldBladesZone(0D));
- velocity = -0.5D;
- if(entityList.size()>0)
- {
- for(int i0=0;i0<entityList.size();i0++)
- {
- entityList.get(i0).addVelocity(velocity*mX(), 0.25D, velocity*mZ());
- }
- }
- }
- else
- {
- this.modelShift++;
- List<EntityLivingBase> entityLivingList = this.worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.getShieldBladesZone(2.5D));
- float damage = 800F/(this.modelShiftSpeed);
- velocity = 0.1D*damage;
- if(entityLivingList.size()>0)
- {
- for(int i1=0;i1<entityLivingList.size();i1++)
- {
- entityLivingList.get(i1).attackEntityFrom(DamageSource.fallingBlock, damage);
- entityLivingList.get(i1).addVelocity(velocity*mX(), 0.25D*velocity, velocity*mZ());
- }
- }
- List<EntityLiving> entityLivingList2 = this.worldObj.getEntitiesWithinAABB(EntityLiving.class, this.getShieldBladesZone(2.5D));
- velocity*=0.1D;
- if(entityLivingList2.size()>0)
- {
- for(int i2=0;i2<entityLivingList2.size();i2++)
- {
- entityLivingList2.get(i2).attackEntityFrom(DamageSource.fallingBlock, damage);
- entityLivingList2.get(i2).addVelocity(velocity*mX(), 0.25D*velocity, velocity*mZ());
- }
- }
- }
- }
- this.blockShift=Math.round(this.getModelShiftAmount()+1.0F+(this.reverseModeOn?2.0F:0));
- if (IC2.platform.isSimulating())
- {
- if (this.prevHasShield!= this.hasShield)
- {
- IC2.network.get().updateTileEntityField(this, "hasShield");
- this.prevHasShield = this.hasShield;
- }
- if (this.prevShaftDestroyedAtA!= this.shaftDestroyedAtA)
- {
- IC2.network.get().updateTileEntityField(this, "shaftDestroyedAtA");
- this.prevShaftDestroyedAtA=this.shaftDestroyedAtA;
- }
- if (this.prevShaftDestroyedAtB!= this.shaftDestroyedAtB)
- {
- IC2.network.get().updateTileEntityField(this, "shaftDestroyedAtB");
- this.prevShaftDestroyedAtB=this.shaftDestroyedAtB;
- }
- if(this.getDemandedEnergy() > 1.0D)
- {
- double amount = this.dischargeSlot.discharge(this.getDemandedEnergy(), false);
- this.energy += amount;
- }
- if(this.energy>this.maxStorage)
- {
- this.energy=this.maxStorage;
- }
- }
-
- if(this.blockShift!=this.lastBlockShift)
- {
- if(this.getActive() && this.reverseModeOn && IC2.platform.isSimulating() && this.lastModelShiftAmount-this.getModelShiftAmount()<1F)
- {
- if(this.miningPipesSlot.get()==null)
- {
- this.miningPipesSlot.put(Ic2Items.miningPipe.copy());
- }
- else if(this.miningPipesSlot.get().stackSize<64)
- {
- this.miningPipesSlot.get().stackSize++;
- }
- else
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj,this.xCoord,this.yCoord+1,this.zCoord,this.miningPipesSlot.get()));
- this.miningPipesSlot.put(Ic2Items.miningPipe.copy());
- }
- this.lastModelShiftAmount-=1F;
- }
- else if(this.getActive() && IC2.platform.isSimulating() && this.getModelShiftAmount()-this.lastModelShiftAmount>1F)
- {
- this.miningPipesSlot.consume(1);
- this.lastModelShiftAmount+=1F;
- IC2.network.get().updateTileEntityField(this, "modelShift");
- }
- this.defineTechBlockVariables();
- if(this.getActive() && IC2.platform.isSimulating())
- {
- if(this.reverseModeOn)
- {
- for(int i = 0;i<21;i++)
- {
- if(this.blockShift>=2)
- {
- this.worldObj.setBlockToAir(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift)*this.mZ());
- }
- if(this.blockShift>=3)
- {
- Block block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ());
- if(block!=IHLMod.multiBlockSpacerBlock && block!=IHLMod.horizontalMiningPipeX && block!=IHLMod.horizontalMiningPipeZ)
- {
- this.harvestDrops(block, this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ(), this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-3)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-3)*this.mZ(), IHLMod.multiBlockSpacerBlock);
- }
- else
- {
- this.worldObj.setBlock(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ(), IHLMod.multiBlockSpacerBlock);
- }
- }
- }
- }
- else
- {
- for(int i = 0;i<21;i++)
- {
- Block block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+this.blockShift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+this.blockShift*this.mZ());
- this.harvestMiningDrops(block, this.xCoord+xyz[i+1]*this.mZ()+this.blockShift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+this.blockShift*this.mZ(), this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ(), IHLMod.multiBlockSpacerBlock);
- if(this.blockShift>=3)
- {
- if(i!=0)
- {
- this.worldObj.setBlockToAir(this.xCoord+xyz[i+1]*this.mZ()+(this.blockShift-2)*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+(this.blockShift-2)*this.mZ());
- }
- else
- {
- this.worldObj.setBlock(this.xCoord+(this.blockShift-2)*this.mX(), this.yCoord, this.zCoord+(this.blockShift-2)*this.mZ(), this.mX()!=0?IHLMod.horizontalMiningPipeZ:IHLMod.horizontalMiningPipeX);
- }
- }
-
- }
- }
- }
- this.lastBlockShift=this.blockShift;
- }
- }
-
- private void harvestMiningDrops(Block block, int x, int y, int z, int x1, int y1, int z1, Block setToBlock)
- {
- if(block!=null && block!=Blocks.air && block!=Blocks.bedrock)
- {
- int meta = worldObj.getBlockMetadata(x, y, z);
- ArrayList<ItemStack> drops = block.getDrops(this.worldObj, x, y, z, meta, 0);
- if(drops.size()>0)
- {
- if(!this.advancedShield || !this.handleDropsByHydrotransport(drops))
- {
- for(int i1=0;i1<drops.size();i1++)
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, x1, y1, z1, drops.get(i1)));
- }
- }
- }
- }
- this.worldObj.setBlock(x, y, z, setToBlock);
- }
-
- public void setOverclockRates()
- {
- int speedUp=0;
- int tierUp=0;
- int capacityUp=0;
- int checksum=0;
- for(int i=0;i<this.upgradeSlot.size();i++)
- {
- if(this.upgradeSlot.get(i)!=null)
- {
- if(this.upgradeSlot.get(i).getItemDamage()==IC2Items.getItem("overclockerUpgrade").getItemDamage())
- {
- speedUp+=this.upgradeSlot.get(i).stackSize;
- }
- if(this.upgradeSlot.get(i).getItemDamage()==IC2Items.getItem("transformerUpgrade").getItemDamage())
- {
- tierUp+=this.upgradeSlot.get(i).stackSize;
- }
- if(this.upgradeSlot.get(i).getItemDamage()==IC2Items.getItem("energyStorageUpgrade").getItemDamage())
- {
- capacityUp+=this.upgradeSlot.get(i).stackSize;
- }
- }
- }
- checksum=speedUp*4096+tierUp*64+capacityUp;
- if(this.updateChecksum!=checksum)
- {
- double correction = this.reverseModeOn?0.1D:1D;
- float newModelShiftSpeed=(float)Math.max(correction*this.defaultModelShiftSpeed*Math.pow(0.7D, speedUp),10D);
- this.modelShift=Math.round(this.modelShift*newModelShiftSpeed/this.modelShiftSpeed);
- this.modelShiftSpeed=Math.round(newModelShiftSpeed);
- this.tier=this.defaultTier+tierUp;
- IC2.network.get().updateTileEntityField(this, "tier");
- this.maxStorage=this.defaultMaxStorage + capacityUp*10000;
- IC2.network.get().updateTileEntityField(this, "maxStorage");
- this.energyConsume=Math.min(correction*this.defaultEnergyConsume*Math.pow(1.6D, speedUp),this.maxStorage);
- IC2.network.get().updateTileEntityField(this, "modelShift");
- IC2.network.get().updateTileEntityField(this, "modelShiftSpeed");
- this.updateChecksum=checksum;
- };
- }
-
- @Override
- public void writeToNBT(NBTTagCompound var1) {
- super.writeToNBT(var1);
- var1.setDouble("energy", this.energy);
- var1.setBoolean("hasShield", this.hasShield);
- var1.setBoolean("autoReverseModeOn", this.autoReverseModeOn);
- var1.setBoolean("reverseModeOn", this.reverseModeOn);
- var1.setBoolean("advancedShield", this.advancedShield);
- var1.setInteger("modelShift", this.modelShift);
- var1.setInteger("shaftDestroyedAtA", this.shaftDestroyedAtA);
- var1.setInteger("shaftDestroyedAtB", this.shaftDestroyedAtB);
- var1.setInteger("modelShiftSpeed", this.modelShiftSpeed);
- }
-
- @Override
- public void readFromNBT(NBTTagCompound var1) {
- super.readFromNBT(var1);
- this.hasShield=var1.getBoolean("hasShield");
- this.autoReverseModeOn=var1.getBoolean("autoReverseModeOn");
- this.reverseModeOn=var1.getBoolean("reverseModeOn");
- this.advancedShield=var1.getBoolean("advancedShield");
- this.modelShift=var1.getInteger("modelShift");
- this.modelShiftSpeed=var1.getInteger("modelShiftSpeed");
- this.energy=var1.getDouble("energy");
- this.shaftDestroyedAtA=var1.getInteger("shaftDestroyedAtA");
- this.shaftDestroyedAtB=var1.getInteger("shaftDestroyedAtB");
- if(this.hasShield)
- {
- if(!MultiBlockSpacerBlock.teList.contains(this))
- {
- MultiBlockSpacerBlock.teList.add(this);
- }
- if(this.mX()==0)
- {
- if(!HorizontalMiningPipe.teList.contains(this))
- {
- HorizontalMiningPipe.teList.add(this);
- }
- }
- else
- {
- if(!HorizontalMiningPipe.teList.contains(this))
- {
- HorizontalMiningPipe.teList.add(this);
- }
- }
- }
- float shift=(float)this.modelShift/(float)this.modelShiftSpeed+1.0F;
- this.lastBlockShift=this.blockShift=Math.round(shift);
- this.defineTechBlockVariables();
- this.lastModelShiftAmount=this.getModelShiftAmount();
- }
-
- @Override
- public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) {
- return !this.hasShield && this.getFacing()!=(short)side;
- }
-
- @Override
- public short getFacing() {
- return super.getFacing();
- }
-
- @Override
- public void setFacing(short facing) {
- short newFacing = (short) Math.max(2, facing);
- super.setFacing(newFacing);
- }
-
- @Override
- public boolean wrenchCanRemove(EntityPlayer entityPlayer) {
- return true;
- }
-
- @Override
- public float getWrenchDropRate() {
- return 1.0F;
- }
-
- @Override
- public ItemStack getWrenchDrop(EntityPlayer entityPlayer) {
- this.cleanUp();
- if(this.hasShield)
- {
- if(this.advancedShield)
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord+(this.blockShift-2)*this.mX(), this.yCoord, this.zCoord+(this.blockShift-2)*this.mZ(), IHLUtils.getThisModItemStack("advancedShieldAssemblyUnitBlock")));
- }
- else
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord+(this.blockShift-2)*this.mX(), this.yCoord, this.zCoord+(this.blockShift-2)*this.mZ(), IHLUtils.getThisModItemStack("IHLShieldAssemblyUnitBlock")));
- }
- }
- if(this.miningPipesSlot.get()!=null)this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord+1, this.zCoord, this.miningPipesSlot.get()));
- if(this.dischargeSlot.get()!=null)this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord+1, this.zCoord, this.dischargeSlot.get()));
- if(this.upgradeSlot.get(0)!=null)this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord+1, this.zCoord, this.upgradeSlot.get(0)));
- if(this.upgradeSlot.get(1)!=null)this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord+1, this.zCoord, this.upgradeSlot.get(1)));
- if(this.upgradeSlot.get(2)!=null)this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord+1, this.zCoord, this.upgradeSlot.get(2)));
- if(this.upgradeSlot.get(3)!=null)this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord, this.yCoord+1, this.zCoord, this.upgradeSlot.get(3)));
- return new ItemStack(IHLMod.driverBlock,1);
- }
-
- @Override
- public String getInventoryName() {
- return "IHL TS-002";
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public GuiScreen getGui(EntityPlayer arg0, boolean arg1) {
- return new DriverGui(new DriverContainer(arg0, this));
- }
-
- @Override
- public ContainerBase<DriverTileEntity> getGuiContainer(EntityPlayer arg0) {
- return new DriverContainer(arg0, this);
- }
-
- @Override
- public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction)
- {
- return true;
- }
-
- public boolean getGui(EntityPlayer player)
- {
- return this instanceof IHasGui ? (IC2.platform.isSimulating() ? IC2.platform.launchGui(player, this) : true) : false;
- }
-
- public boolean canPlaceShield()
- {
- if(this.hasShield)
- {
- return false;
- }
- Block block;
- int xyz[]={0,0,1,0,-1,-1,1,1,-1,2,0,2,1,2,-1,-2,0,-2,1,-2,-1,0};
- for(int i = 0;i<21;i++)
- {
- block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+this.mZ());
- if(!block.isAir(this.worldObj, this.xCoord+xyz[i+1]*this.mZ()+this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+this.mZ()))
- {
- return false;
- }
- }
- return true;
- }
-
- public int mX()
- {
- switch(this.getFacing())
- {
- case 4:
- return -1;
- case 5:
- return 1;
- default:
- return 0;
- }
- }
-
- public int mZ()
- {
- switch(this.getFacing())
- {
- case 3:
- return 1;
- case 2:
- return -1;
- case 4:
- return 0;
- case 5:
- return 0;
- default:
- return -1;
- }
- }
-
- public float getModelShiftAmount() {
- return (float)this.modelShift/(float)this.modelShiftSpeed;
- }
-
- private AxisAlignedBB getOperationZone()
- {
- int x=this.xCoord;
- int y=this.yCoord;
- int z=this.zCoord;
- double extension=this.getModelShiftAmount()+1.0D;
- return AxisAlignedBB.getBoundingBox(x + extension*Math.min(this.mX(),0)-2.0D, y-2.0D, z + extension*Math.min(this.mZ(),0)-2.0D, x + 3.0D + extension*Math.max(this.mX(),0), y + 3.0D, z + 3.0D + extension*Math.max(this.mZ(),0));
- }
-
- private AxisAlignedBB getShieldBladesZone(double offset)
- {
- double extension=this.getModelShiftAmount()+offset;
- double xShieldMinD=this.xCoord+extension*this.mX()-1D*Math.max(this.mX(), 0)-2D*Math.abs(this.mZ());
- double xShieldMaxD=this.xCoord+extension*this.mX()-1D*Math.min(this.mX(), 0)+3D*Math.abs(this.mZ());
- double yShieldMinD=this.yCoord-2D;
- double yShieldMaxD=this.yCoord+3D;
- double zShieldMinD=this.zCoord+extension*this.mZ()-1D*Math.max(this.mZ(), 0)-2D*Math.abs(this.mX());
- double zShieldMaxD=this.zCoord+extension*this.mZ()-1D*Math.min(this.mZ(), 0)+3D*Math.abs(this.mX());
- return AxisAlignedBB.getBoundingBox(xShieldMinD, yShieldMinD, zShieldMinD, xShieldMaxD, yShieldMaxD, zShieldMaxD);
- }
-
- public int getStored() {
- return Math.round((float)this.energy);
- }
-
- public void setStored(int value) {
- this.energy=value;
- }
-
- @Override
- public void onGuiClosed(EntityPlayer arg0) {}
-
- public void installShield() {
- if(IC2.platform.isSimulating())
- {
- this.hasShield=true;
- int x=this.xCoord;
- int y=this.yCoord;
- int z=this.zCoord;
- MultiBlockSpacerBlock.teList.add(this);
- this.defineTechBlockVariables();
- if(this.mX()==0)
- {
- HorizontalMiningPipe.teList.add(this);
- }
- else
- {
- HorizontalMiningPipe.teList.add(this);
- }
-
- int xyz[]={0,0,1,0,-1,-1,1,1,-1,2,0,2,1,2,-1,-2,0,-2,1,-2,-1,0};
- for(int i1 = 0;i1<21;i1++)
- {
- this.worldObj.setBlock(x+xyz[i1+1]*this.mZ()+this.mX(), y+xyz[i1], z+xyz[i1+1]*this.mX()+this.mZ(), IHLMod.multiBlockSpacerBlock, 0, 3);
- }
- }
- }
-
- public boolean isShaftCoord(int x, int y, int z)
- {
- if(IC2.platform.isSimulating() && y==this.yShaft && x>=this.xShaftMin && x<=this.xShaftMax && z>=this.zShaftMin && z<=this.zShaftMax)
- {
- int sda = (x-this.xCoord)*this.mX()+(z-this.zCoord)*this.mZ();
- if(this.shaftDestroyedAtA==0 && this.shaftDestroyedAtB==0)
- {
- this.shaftDestroyedAtA=this.shaftDestroyedAtB=sda;
- }
- else if(sda>this.shaftDestroyedAtB)
- {
- for(int i4=this.shaftDestroyedAtB;i4<sda;i4++)
- {
- int x1=this.xCoord+i4*mX();
- int y1=this.yCoord;
- int z1=this.zCoord+i4*mZ();
- Block block=this.worldObj.getBlock(x1, y1, z1);
- if(block instanceof HorizontalMiningPipe)
- {
- this.harvestDrops(block, x1, y1, z1, x1, y1, z1, Blocks.air);
- }
- }
- this.shaftDestroyedAtB=sda;
- }
- else if(sda<this.shaftDestroyedAtA)
- {
- for(int i4=sda;i4<this.shaftDestroyedAtA;i4++)
- {
- int x1=this.xCoord+i4*mX();
- int y1=this.yCoord;
- int z1=this.zCoord+i4*mZ();
- Block block=this.worldObj.getBlock(x1, y1, z1);
- if(block instanceof HorizontalMiningPipe)
- {
- this.harvestDrops(block, x1, y1, z1, x1, y1, z1, Blocks.air);
- }
- }
- this.shaftDestroyedAtA=sda;
- }
- return true;
- }
- return false;
- }
-
- @Override
- public boolean isAPartOfStructure(int x, int y, int z, boolean onBlockBeak)
- {
- if(IC2.platform.isSimulating() && y>=this.yShieldMin && y<=this.yShieldMax && x>=this.xShieldMin && x<=this.xShieldMax && z>=this.zShieldMin && z<=this.zShieldMax)
- {
- if(onBlockBeak)
- {
- this.hasShield=false;
- this.advancedShield=false;
- this.modelShift=0;
- this.lastBlockShift=this.blockShift=1;
- this.shaftDestroyedAtA=0;
- IC2.network.get().updateTileEntityField(this, "modelShift");
- IC2.network.get().updateTileEntityField(this, "advancedShield");
- this.cleanUp();
- }
- return true;
- }
- return false;
- }
-
- public boolean isShaftCoordNN(int x, int y, int z)
- {
- if(y==this.yShaft && x>=this.xShaftMin && x<=this.xShaftMax && z>=this.zShaftMin && z<=this.zShaftMax)
- {
- return true;
- }
- return false;
- }
-
- public void cleanUp()
- {
- int xyz[]={0,0,1,0,-1,-1,1,1,-1,2,0,2,1,2,-1,-2,0,-2,1,-2,-1,0};
- for(int shift = 0;shift<=this.blockShift+1;shift++)
- {
- for(int i = 0;i<21;i++)
- {
- Block block = this.worldObj.getBlock(this.xCoord+xyz[i+1]*this.mZ()+shift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+shift*this.mZ());
- if(block instanceof HorizontalMiningPipe)
- {
- ArrayList<ItemStack> drops = block.getDrops(this.worldObj, this.xCoord+xyz[i+1]*this.mZ()+shift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+shift*this.mZ(), 0, 3);
- if(drops.size()>0)
- {
- for(int i1=0;i1<drops.size();i1++)
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, this.xCoord+xyz[i+1]*this.mZ()+shift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+shift*this.mZ(), drops.get(i1)));
- }
- }
- this.worldObj.setBlockToAir(this.xCoord+xyz[i+1]*this.mZ()+shift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+shift*this.mZ());
- }
- else if(block instanceof MultiBlockSpacerBlock)
- {
- this.worldObj.setBlockToAir(this.xCoord+xyz[i+1]*this.mZ()+shift*this.mX(), this.yCoord+xyz[i], this.zCoord+xyz[i+1]*this.mX()+shift*this.mZ());
- }
- }
- }
- }
-
- private boolean handleDropsByHydrotransport(ArrayList<ItemStack> drops)
- {
- ForgeDirection direction = ForgeDirection.getOrientation(this.getFacing()).getOpposite();
- TileEntity te = worldObj.getTileEntity(xCoord+direction.offsetX, yCoord+direction.offsetY, zCoord+direction.offsetZ);
- if(te instanceof HydrotransportPulpRegeneratorTileEntity)
- {
- HydrotransportPulpRegeneratorTileEntity hprte = (HydrotransportPulpRegeneratorTileEntity) te;
- if(hprte.getActive())
- {
- ArrayList<ItemStack> drops1 = new ArrayList<ItemStack>();
- Iterator<ItemStack> dropsIterator = drops.iterator();
- while(dropsIterator.hasNext())
- {
- ItemStack stack = dropsIterator.next();
- RecipeOutput maceratorOut = Recipes.macerator.getOutputFor(stack, false);
- if(maceratorOut!=null && !maceratorOut.items.isEmpty())
- {
- Iterator<ItemStack> maceratorOutIterator = maceratorOut.items.iterator();
- while(maceratorOutIterator.hasNext())
- {
- drops1.add(maceratorOutIterator.next().copy());
- }
- }
- else
- {
- drops1.add(stack);
- }
- }
- if(hprte.outputSlot.canAdd(drops1))
- {
- hprte.outputSlot.add(drops1);
- }
- else
- {
- for(int i1=0;i1<drops1.size();i1++)
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, xCoord+direction.offsetX, yCoord+direction.offsetY, zCoord+direction.offsetZ, drops1.get(i1)));
- }
- }
- return true;
- }
- }
- return false;
- }
-
- @Override
- public void onNetworkEvent(EntityPlayer player, int event)
- {
- switch(event)
- {
- case 0:
- this.reverseModeOn=!this.reverseModeOn;
- IC2.network.get().updateTileEntityField(this, "reverseModeOn");
- this.updateChecksum=-1;
- this.setOverclockRates();
- break;
- case 1:
- this.autoReverseModeOn=!this.autoReverseModeOn;
- IC2.network.get().updateTileEntityField(this, "autoReverseModeOn");
- break;
- default:
- break;
- }
- }
-
- public void defineTechBlockVariables()
- {
- this.xShaftMin=this.xCoord+this.blockShift*Math.min(this.mX(), 0);
- this.xShaftMax=this.xCoord+this.blockShift*Math.max(this.mX(), 0);
- this.yShaft=this.yCoord;
- this.zShaftMin=this.zCoord+this.blockShift*Math.min(this.mZ(), 0);
- this.zShaftMax=this.zCoord+this.blockShift*Math.max(this.mZ(), 0);
- this.xShieldMin=this.xCoord+this.blockShift*this.mX()-3*Math.max(this.mX(), 0)-2*Math.abs(this.mZ());
- this.xShieldMax=this.xCoord+this.blockShift*this.mX()-3*Math.min(this.mX(), 0)+2*Math.abs(this.mZ());
- this.yShieldMin=this.yCoord-2;
- this.yShieldMax=this.yCoord+2;
- this.zShieldMin=this.zCoord+this.blockShift*this.mZ()-3*Math.max(this.mZ(), 0)-2*Math.abs(this.mX());
- this.zShieldMax=this.zCoord+this.blockShift*this.mZ()-3*Math.min(this.mZ(), 0)+2*Math.abs(this.mX());
- }
-
- public void harvestDrops(Block block, int x, int y, int z, int x1, int y1, int z1, Block setToBlock)
- {
- if(block!=null && block!=Blocks.air && block!=Blocks.bedrock)
- {
- int meta = worldObj.getBlockMetadata(x, y, z);
- ArrayList<ItemStack> drops = block.getDrops(this.worldObj, x, y, z, meta, 0);
- if(drops.size()>0)
- {
- for(int i1=0;i1<drops.size();i1++)
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, x1, y1, z1, drops.get(i1)));
- }
- }
- }
- this.worldObj.setBlock(x, y, z, setToBlock);
- }
-
- //1.7.10 API
- @Override
- public double getDemandedEnergy()
- {
- return this.maxStorage - this.energy;
- }
-
- @Override
- public int getSinkTier()
- {
- return this.tier;
- }
-
- @Override
- public double injectEnergy(ForgeDirection directionFrom, double amount, double voltage)
- {
- if (this.energy >= this.maxStorage)
- {
- return amount;
- }
- else
- {
- this.energy += amount;
- return 0.0D;
- }
- }
-
- @Override
- public double getEnergy() {
- return this.energy;
- }
-
- @Override
- public boolean useEnergy(double amount)
- {
- if (this.energy >= amount)
- {
- this.energy -= amount;
- return true;
- }
- else
- {
- return false;
- }
- }
-
- @Override
- public boolean shouldRenderInPass(int pass)
- {
- return pass==0;
- }
-
- @Override
- public boolean getIsInvalid()
- {
- return this.isInvalid();
- }
-
- public void installAdvancedShield()
- {
- this.installShield();
- this.advancedShield=true;
- IC2.network.get().updateTileEntityField(this, "advancedShield");
- }
-
- public ItemStack getOutput(int arg0)
- {
- return null;
- }
-
- public int getOutputSize() {
- return 0;
- }
-
- public void setOutput(int arg0, ItemStack arg1)
- {
- }
-
- @Override
- public Set<UpgradableProperty> getUpgradableProperties()
- {
- Set<UpgradableProperty> properties = new HashSet<UpgradableProperty>();
- properties.add(UpgradableProperty.EnergyStorage);
- properties.add(UpgradableProperty.Processing);
- properties.add(UpgradableProperty.Transformer);
- return properties;
- }
-}
diff --git a/ihl/tunneling_shield/HorizontalMiningPipe.java b/ihl/tunneling_shield/HorizontalMiningPipe.java
deleted file mode 100644
index 9409d27..0000000
--- a/ihl/tunneling_shield/HorizontalMiningPipe.java
+++ /dev/null
@@ -1,276 +0,0 @@
-package ihl.tunneling_shield;
-import ic2.core.IC2;
-import ic2.core.Ic2Items;
-import ic2.core.audio.PositionSpec;
-import ic2.core.item.tool.ItemToolWrench;
-import ihl.IHLMod;
-import java.util.ArrayList;
-import java.util.Random;
-
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-import net.minecraft.world.Explosion;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-
-public class HorizontalMiningPipe extends Block {
-
- public static ArrayList<DriverTileEntity> teList = new ArrayList<DriverTileEntity>();
-
- public HorizontalMiningPipe() {
- super(Material.iron);
- this.setBlockBounds(0.1875F, 0.1875F, 0.1875F, 0.8125F, 0.8125F, 0.8125F);
- }
-
- public HorizontalMiningPipe(int meta) {
- super(Material.iron);
- this.setBlockBounds(0.1875F*meta, 0.1875F, 0.1875F*(1-meta), 0.8125F+0.1875F*(1-meta), 0.8125F, 0.8125F+0.1875F*meta);
- }
-
- @Override
- public boolean canHarvestBlock(EntityPlayer player, int meta)
- {
- return true;
- }
-
- @Override
- public Item getItem(World world, int x, int y, int z)
- {
- return Ic2Items.miningPipe.getItem();
- }
-
- @Override
- public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
- {
- return Ic2Items.miningPipe.getItem();
- }
-
- @Override
- public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int flag)
- {
- ItemStack result = Ic2Items.miningPipe;
- result.stackSize=1;
- this.dropBlockAsItem(world, x, y, z, result);
- }
-
-
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister par1IconRegister)
- {
- this.blockIcon = par1IconRegister.registerIcon("ic2:machine/blockMiningPipe");
- }
-
- @Override
- public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
- return this.blockIcon;
- }
-
- /**
- * The type of render function that is called for this block
- */
- @Override
- public int getRenderType()
- {
- return -2;
- }
-
- /**
- * Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two
- * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
- */
- @Override
- public boolean isOpaqueCube()
- {
- return false;
- }
-
- /**
- * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
- */
- @Override
- public boolean renderAsNormalBlock()
- {
- return false;
- }
-
- @Override
- public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion)
- {
- super.onBlockDestroyedByExplosion(world, x, y, z, explosion);
- this.checkIfMachinePart(world, x, y, z);
- }
-
- @Override
- public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta)
- {
- super.onBlockDestroyedByPlayer(world, x, y, z, meta);
- this.checkIfMachinePart(world, x, y, z);
- }
-
- private void checkIfMachinePart(World world, int x, int y, int z)
- {
- if(teList.size()>0)
- {
- for (int i=0;i<teList.size();i++)
- {
- if(teList.get(i)!=null && !teList.get(i).isInvalid())
- {
- if(teList.get(i).isShaftCoord(x, y, z))
- {
- return;
- }
- }
- else
- {
- teList.remove(i);
- i--;
- }
- }
- }
- }
-
- private void checkIfMachinePartNN(World world, int x, int y, int z)
- {
- boolean setToAir=true;
- if(teList.size()>0)
- {
- for (int i=0;i<teList.size();i++)
- {
- if(teList.get(i)!=null)
- {
- if(teList.get(i).isShaftCoordNN(x, y, z) && teList.get(i).hasShield)
- {
- setToAir=false;
- }
- }
- else
- {
- teList.remove(i);
- i--;
- }
- }
- }
- if(setToAir)
- {
- world.setBlockToAir(x, y, z);
- }
- }
-
-
- @Override
- public void onBlockAdded(World world, int x, int y,int z)
- {
- world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
- }
-
- @Override
- public void onNeighborBlockChange(World world, int x, int y,int z, Block block)
- {
- this.updateTick(world, x, y, z, world.rand);
- }
-
- @Override
- public void updateTick(World world, int x, int y,int z, Random rand)
- {
- world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
- this.checkIfMachinePartNN(world, x, y, z);
-
- }
-
- @Override
- public int tickRate(World world)
- {
- return 200;
- }
-
- @Override
- public boolean onBlockActivated(World world,int x,int y,int z,EntityPlayer entityPlayer,int i,float pos_x,float pos_y,float pos_z)
- {
- ItemStack currentIS = entityPlayer.inventory.getCurrentItem();
- if(currentIS!=null)
- {
- if(currentIS.getItem() instanceof ItemToolWrench && entityPlayer.inventory.hasItem(Ic2Items.miningPipe.getItem()))
- {
- if(((ItemToolWrench)currentIS.getItem()).canTakeDamage(currentIS, 10))
- {
- if (IC2.platform.isRendering())
- {
- IC2.audioManager.playOnce(entityPlayer, PositionSpec.Hand, "Tools/wrench.ogg", true, 1.0F);
- }
- if(IC2.platform.isSimulating())
- {
- if(teList.size()>0)
- {
- for (int i3=0;i3<teList.size();i3++)
- {
- DriverTileEntity t = teList.get(i3);
- if(t!=null)
- {
- if(t.isShaftCoordNN(x, y, z) && t.hasShield)
- {
- int xA=t.xCoord+t.shaftDestroyedAtA*t.mX();
- int zA=t.zCoord+t.shaftDestroyedAtA*t.mZ();
- int xB=t.xCoord+t.shaftDestroyedAtB*t.mX();
- int zB=t.zCoord+t.shaftDestroyedAtB*t.mZ();
- if(t.shaftDestroyedAtA!=0 && t.shaftDestroyedAtA==t.shaftDestroyedAtB)
- {
- if(Math.abs(x-xA+z-zA)==1)
- {
- if(world.setBlock(xA, y, zA, t.mX()!=0?IHLMod.horizontalMiningPipeZ:IHLMod.horizontalMiningPipeX))
- {
- t.shaftDestroyedAtA=t.shaftDestroyedAtB=0;
- entityPlayer.inventory.consumeInventoryItem(Ic2Items.miningPipe.getItem());
- entityPlayer.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- }
- else if(t.shaftDestroyedAtA!=0)
- {
- if(Math.abs(x-xA+z-zA)==1)
- {
- if(world.setBlock(xA, y, zA, t.mX()!=0?IHLMod.horizontalMiningPipeZ:IHLMod.horizontalMiningPipeX))
- {
- t.shaftDestroyedAtA++;
- entityPlayer.inventory.consumeInventoryItem(Ic2Items.miningPipe.getItem());
- entityPlayer.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- if(Math.abs(x-xB+z-zB)==1)
- {
- if(world.setBlock(xB, y, zB, t.mX()!=0?IHLMod.horizontalMiningPipeZ:IHLMod.horizontalMiningPipeX))
- {
- t.shaftDestroyedAtB--;
- entityPlayer.inventory.consumeInventoryItem(Ic2Items.miningPipe.getItem());
- entityPlayer.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- }
- }
- }
- else
- {
- teList.remove(i);
- i--;
- }
- }
- }
- ((ItemToolWrench)currentIS.getItem()).damage(currentIS, 10, entityPlayer);
- }
- }
- return true;
- }
- }
- return false;
- }
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/HydrotransportPulpRegeneratorContainer.java b/ihl/tunneling_shield/HydrotransportPulpRegeneratorContainer.java
deleted file mode 100644
index 82445d7..0000000
--- a/ihl/tunneling_shield/HydrotransportPulpRegeneratorContainer.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package ihl.tunneling_shield;
-
-import java.util.List;
-
-import ic2.core.ContainerBase;
-import ic2.core.IC2;
-import ic2.core.slot.SlotInvSlot;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.ICrafting;
-import net.minecraft.inventory.Slot;
-import net.minecraftforge.fluids.FluidStack;
-
-public class HydrotransportPulpRegeneratorContainer extends ContainerBase<HydrotransportPulpRegeneratorTileEntity> {
-
- protected HydrotransportPulpRegeneratorTileEntity tileEntity;
- public int lastFluidAmount = -1;
- public int lastNumberOfFluids = -1;
- public short lastProgress = -1;
- public short lastTemperature = -1;
- private int lastEnergy = -1;
- @SuppressWarnings("unused")
- private List<FluidStack> fluidTankFluidList;
- private final static int height=166;
-
- public HydrotransportPulpRegeneratorContainer(EntityPlayer entityPlayer, HydrotransportPulpRegeneratorTileEntity tileEntity1){
- super(tileEntity1);
- this.tileEntity = tileEntity1;
- fluidTankFluidList=tileEntity.fluidTank.getFluidList();
- int col,row;
- for (col = 0; col < 3; ++col)
- {
- for (int col1 = 0; col1 < 9; ++col1)
- {
- this.addSlotToContainer(new Slot(entityPlayer.inventory, col1 + col * 9 + 9, 8 + col1 * 18, height + -82 + col * 18));
- }
- }
- for (col = 0; col < 9; ++col)
- {
- this.addSlotToContainer(new Slot(entityPlayer.inventory, col, 8 + col * 18, height + -24));
- }
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.drainInputSlot, 0, 32, 13));
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.emptyFluidItemsSlot, 0, 32, 51));
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.dischargeSlot, 0, 8, 32));
- for(col=0;col<4;col++)
- {
- for(row=0;row<3;row++)
- {
- this.addSlotToContainer(new SlotInvSlot(tileEntity1.outputSlot, col+row*4, 92+col*18, 13+row*18));
- }
- }
- }
-
- @Override
- public void detectAndSendChanges()
- {
- super.detectAndSendChanges();
- for (int i = 0; i < this.crafters.size(); ++i)
- {
- ICrafting icrafting = (ICrafting)this.crafters.get(i);
-
- if (this.tileEntity.fluidTank.getFluidAmount() != this.lastFluidAmount || this.tileEntity.fluidTank.getNumberOfFluids() != this.lastNumberOfFluids)
- {
- IC2.network.get().sendContainerField(this, "fluidTankFluidList");
- }
- if (this.tileEntity.progress != this.lastProgress)
- {
- icrafting.sendProgressBarUpdate(this, 0, this.tileEntity.progress);
- }
- if (this.tileEntity.getEnergy() != this.lastEnergy )
- {
- icrafting.sendProgressBarUpdate(this, 1, this.tileEntity.getEnergy());
- }
- }
-
- this.lastNumberOfFluids = this.tileEntity.fluidTank.getNumberOfFluids();
- this.lastFluidAmount = this.tileEntity.fluidTank.getFluidAmount();
- this.lastProgress = this.tileEntity.progress;
- this.lastEnergy = this.tileEntity.getEnergy();
- }
-
- @Override
- public void updateProgressBar(int index, int value)
- {
- super.updateProgressBar(index, value);
- switch (index)
- {
- case 0:
- this.tileEntity.progress=(short) value;
- break;
- case 1:
- this.tileEntity.setEnergy(value);
- break;
- }
- }
-
- @Override
- public boolean canInteractWith(EntityPlayer var1) {
- return tileEntity.isUseableByPlayer(var1);
- }
-}
diff --git a/ihl/tunneling_shield/HydrotransportPulpRegeneratorGui.java b/ihl/tunneling_shield/HydrotransportPulpRegeneratorGui.java
deleted file mode 100644
index bd86dd7..0000000
--- a/ihl/tunneling_shield/HydrotransportPulpRegeneratorGui.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package ihl.tunneling_shield;
-
-import cpw.mods.fml.relauncher.Side;
-
-import cpw.mods.fml.relauncher.SideOnly;
-import net.minecraft.client.gui.inventory.GuiContainer;
-import net.minecraft.util.ResourceLocation;
-import org.lwjgl.opengl.GL11;
-import ihl.utils.IHLRenderUtils;
-
-@SideOnly(Side.CLIENT)
-public class HydrotransportPulpRegeneratorGui extends GuiContainer {
- private static final ResourceLocation background = new ResourceLocation("ihl", "textures/gui/GUIHydrotransportPulpRegenerator.png");
- private HydrotransportPulpRegeneratorContainer container;
-
- public HydrotransportPulpRegeneratorGui (HydrotransportPulpRegeneratorContainer container1) {
- //the container is instanciated and passed to the superclass for handling
- super(container1);
- this.container=container1;
- }
-
- @Override
- protected void drawGuiContainerForegroundLayer(int par1, int par2) {
- int xOffset = (this.width - xSize) / 2;
- int yOffset = (this.height - ySize) / 2;
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.mc.renderEngine.bindTexture(background);
- int i1;
- if (this.container.tileEntity.getEnergy() > 0D)
- {
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.9F);
- i1 = Math.min(this.container.tileEntity.getGUIEnergy(12),12);
- this.drawTexturedModalRect(12, 16 + 12 - i1, 179, 13 - i1, 13, i1 + 1);
- }
- if (this.container.tileEntity.progress > 0)
- {
- i1 = Math.min(this.container.tileEntity.gaugeProgressScaled(18),18);
- this.drawTexturedModalRect(73, 34, 197, 0, i1 + 1, 13);
- }
- if (this.container.tileEntity.fluidTank.getFluidAmount() > 0)
- {
- IHLRenderUtils.instance.renderIHLFluidTank(this.container.tileEntity.fluidTank, 57, 16, 69, 63, zLevel, par1, par2, xOffset, yOffset);
- }
- this.mc.renderEngine.bindTexture(background);
- }
-
- @Override
- protected void drawGuiContainerBackgroundLayer(float par1, int par2,
- int par3) {
- //draw your Gui here, only thing you need to change is the path
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.mc.renderEngine.bindTexture(background);
- int x = (width - xSize) / 2;
- int y = (height - ySize) / 2;
- this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
- }
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/HydrotransportPulpRegeneratorTileEntity.java b/ihl/tunneling_shield/HydrotransportPulpRegeneratorTileEntity.java
deleted file mode 100644
index dc5e114..0000000
--- a/ihl/tunneling_shield/HydrotransportPulpRegeneratorTileEntity.java
+++ /dev/null
@@ -1,273 +0,0 @@
-package ihl.tunneling_shield;
-
-import java.util.List;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.inventory.ISidedInventory;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidStack;
-import net.minecraftforge.fluids.FluidTankInfo;
-import net.minecraftforge.fluids.IFluidHandler;
-import ic2.api.Direction;
-import ic2.core.ContainerBase;
-import ic2.core.block.invslot.InvSlot;
-import ic2.core.block.invslot.InvSlotConsumableLiquid;
-import ic2.core.block.invslot.InvSlotOutput;
-import ihl.processing.invslots.InvSlotConsumableLiquidIHL;
-import ihl.processing.metallurgy.BasicElectricMotorTileEntity;
-import ihl.utils.IHLFluidTank;
-import ihl.utils.IHLUtils;
-
-public class HydrotransportPulpRegeneratorTileEntity extends BasicElectricMotorTileEntity implements IFluidHandler
-{
- public final InvSlotConsumableLiquidIHL drainInputSlot;
- public final InvSlotOutput emptyFluidItemsSlot;
- public final InvSlotOutput outputSlot;
- final IHLFluidTank fluidTank = new IHLFluidTank(2000);
- private int timer=0;
-
- public HydrotransportPulpRegeneratorTileEntity() {
- super();
- this.drainInputSlot = new InvSlotConsumableLiquidIHL(this, "drainInput", -1, InvSlot.Access.I, 1, InvSlot.InvSide.TOP, InvSlotConsumableLiquid.OpType.Drain);
- this.emptyFluidItemsSlot = new InvSlotOutput(this, "fluidCellsOutput", 2, 1);
- this.outputSlot = new InvSlotOutput(this, "output", 3, 12);
- this.operationLength=26;
- }
-
- @Override
- public void readFromNBT(NBTTagCompound nbttagcompound)
- {
- super.readFromNBT(nbttagcompound);
- this.fluidTank.readFromNBT(nbttagcompound.getCompoundTag("fluidTank"));
- }
-
- @Override
- public void writeToNBT(NBTTagCompound nbttagcompound)
- {
- super.writeToNBT(nbttagcompound);
- NBTTagCompound fluidTankTag = new NBTTagCompound();
- this.fluidTank.writeToNBT(fluidTankTag);
- nbttagcompound.setTag("fluidTank", fluidTankTag);
- }
-
- @Override
- public ItemStack getWrenchDrop(EntityPlayer player)
- {
- return IHLUtils.getThisModItemStack("hydrotransportPulpRegenerator");
- }
-
- @Override
- public void updateEntityServer()
- {
- super.updateEntityServer();
- ForgeDirection direction = ForgeDirection.getOrientation(this.getFacing());
- TileEntity te = worldObj.getTileEntity(xCoord+direction.offsetX,yCoord+direction.offsetY,zCoord+direction.offsetZ);
- if(!this.getActive() && this.fluidTank.getFluid()!=null && isMachineOperational())
- {
- if(te instanceof DriverTileEntity)
- {
- this.setActive(true);
- }
- }
- else if(this.getActive())
- {
- timer++;
- if(!(te instanceof DriverTileEntity) || this.fluidTank.getFluid()==null || !isMachineOperational())
- {
- this.setActive(false);
- }
- }
- if(timer>100)
- {
- this.fluidTank.drain(1, true);
- this.energy-=1d;
- timer=0;
- }
- if(timer%10==0)
- {
- if(te instanceof DriverTileEntity)
- {
- DriverTileEntity dte = (DriverTileEntity) te;
- if(dte.getActive())
- {
- this.fluidTank.drain(1, true);
- }
- }
- }
- IHLUtils.handleFluidSlotsBehaviour(null, drainInputSlot, emptyFluidItemsSlot, fluidTank);
- }
-
- @Override
- public void operate()
- {
- ForgeDirection direction = ForgeDirection.getOrientation(this.getFacing()).getOpposite();
- TileEntity te = worldObj.getTileEntity(xCoord+direction.offsetX, yCoord+direction.offsetY,zCoord+direction.offsetZ);
- int i0=0;
- for(int i1=i0;i1<outputSlot.size();i1++)
- {
- if(outputSlot.get(i1)!=null)
- {
- i0=i1;
- }
- }
- if(te instanceof ISidedInventory)
- {
- ISidedInventory si = (ISidedInventory)te;
- for(int i=0;i<si.getSizeInventory();i++)
- {
- if(outputSlot.get(i0)==null)
- {
- break;
- }
- if(si.canInsertItem(i, outputSlot.get(i0), Direction.fromForgeDirection(direction).toSideValue()))
- {
- if(si.getStackInSlot(i)==null)
- {
- si.setInventorySlotContents(i, outputSlot.get(i0));
- outputSlot.put(i0,null);
- }
- else if(IHLUtils.isItemStacksIsEqual(si.getStackInSlot(i),outputSlot.get(i0),true))
- {
- int stackSizeBefore = si.getStackInSlot(i).stackSize;
- si.getStackInSlot(i).stackSize+=outputSlot.get(i0).stackSize;
- if(si.getStackInSlot(i).stackSize>si.getInventoryStackLimit())
- {
- si.getStackInSlot(i).stackSize=si.getInventoryStackLimit();
- outputSlot.get(i0).stackSize-=si.getInventoryStackLimit()-stackSizeBefore;
- if(outputSlot.get(i0).stackSize<=0)
- {
- outputSlot.put(i0,null);
- }
- }
- else
- {
- outputSlot.put(i0,null);
- }
- }
-
- }
- }
- }
- else if(te instanceof IInventory)
- {
- IInventory si = (IInventory)te;
- for(int i=0;i<si.getSizeInventory();i++)
- {
- if(outputSlot.get(i0)==null)
- {
- break;
- }
- if(si.isItemValidForSlot(i, outputSlot.get(i0)))
- {
- if(si.getStackInSlot(i)==null)
- {
- si.setInventorySlotContents(i, outputSlot.get(i0));
- outputSlot.put(i0,null);
- }
- else if(IHLUtils.isItemStacksIsEqual(si.getStackInSlot(i),outputSlot.get(i0),true))
- {
- int stackSizeBefore = si.getStackInSlot(i).stackSize;
- si.getStackInSlot(i).stackSize+=outputSlot.get(i0).stackSize;
- if(si.getStackInSlot(i).stackSize>si.getInventoryStackLimit())
- {
- si.getStackInSlot(i).stackSize=si.getInventoryStackLimit();
- outputSlot.get(i0).stackSize-=si.getInventoryStackLimit()-stackSizeBefore;
- if(outputSlot.get(i0).stackSize<=0)
- {
- outputSlot.put(i0,null);
- }
- }
- else
- {
- outputSlot.put(i0,null);
- }
- }
- }
- }
- }
- else
- {
- for(int i1=i0;i1<outputSlot.size();i1++)
- {
- if(outputSlot.get(i1)!=null)
- {
- this.worldObj.spawnEntityInWorld(new EntityItem(this.worldObj, xCoord+direction.offsetX+0.5d, yCoord+direction.offsetY+0.5d,zCoord+direction.offsetZ+0.5d, outputSlot.get(i1)));
- outputSlot.put(i1, null);
- break;
- }
- }
- }
- }
-
- private boolean isMachineOperational()
- {
- return this.energy>=this.energyConsume;
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public List[] getInput()
- {
- return null;
- }
-
- @Override
- public boolean canOperate()
- {
- return !this.outputSlot.isEmpty();
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public GuiScreen getGui(EntityPlayer player, boolean arg1) {
- return new HydrotransportPulpRegeneratorGui(new HydrotransportPulpRegeneratorContainer(player, this));
- }
-
- @Override
- public ContainerBase<?> getGuiContainer(EntityPlayer player) {
- return new HydrotransportPulpRegeneratorContainer(player, this);
- }
-
- @Override
- public boolean canDrain(ForgeDirection arg0, Fluid arg1) {
- return false;
- }
-
- @Override
- public boolean canFill(ForgeDirection arg0, Fluid arg1)
- {
- return true;
- }
-
- @Override
- public FluidStack drain(ForgeDirection arg0, FluidStack arg1, boolean arg2) {
- return null;
- }
-
- @Override
- public FluidStack drain(ForgeDirection arg0, int arg1, boolean arg2) {
- return null;
- }
-
- @Override
- public int fill(ForgeDirection arg0, FluidStack resource, boolean doFill)
- {
- return this.fluidTank.fill(resource, doFill);
- }
-
- @Override
- public FluidTankInfo[] getTankInfo(ForgeDirection arg0)
- {
- return new FluidTankInfo[] {this.fluidTank.getInfo()};
- }
-
-} \ No newline at end of file
diff --git a/ihl/tunneling_shield/IMultiBlock.java b/ihl/tunneling_shield/IMultiBlock.java
deleted file mode 100644
index e4d32d7..0000000
--- a/ihl/tunneling_shield/IMultiBlock.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package ihl.tunneling_shield;
-
-public interface IMultiBlock
-{
- public boolean isAPartOfStructure(int x, int y, int z, boolean onBlockBeak);
- public boolean getIsInvalid();
-}
diff --git a/ihl/tunneling_shield/MultiBlockSpacerBlock.java b/ihl/tunneling_shield/MultiBlockSpacerBlock.java
deleted file mode 100644
index 79e5955..0000000
--- a/ihl/tunneling_shield/MultiBlockSpacerBlock.java
+++ /dev/null
@@ -1,223 +0,0 @@
-package ihl.tunneling_shield;
-
-import ic2.core.IC2;
-import ic2.core.IHasGui;
-import ic2.core.audio.PositionSpec;
-import ic2.core.item.tool.ItemToolWrench;
-import ihl.utils.IHLUtils;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Random;
-import java.util.Set;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.Explosion;
-import net.minecraft.world.World;
-
-public class MultiBlockSpacerBlock extends Block {
-
- public static Set<IMultiBlock> teList = new HashSet<IMultiBlock>();
-
- public MultiBlockSpacerBlock()
- {
- super(Material.iron);
- }
-
- /**
- * The type of render function that is called for this block
- */
- @Override
- public int getRenderType()
- {
- return -2;
- }
-
- @Override
- public ArrayList<ItemStack> getDrops(World world,int x, int y, int z, int meta, int flag)
- {
- return new ArrayList<ItemStack>();
- }
- @Override
- public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion)
- {
- super.onBlockDestroyedByExplosion(world, x, y, z, explosion);
- this.checkIfMachinePart(world, x, y, z);
- }
-
- @Override
- public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta)
- {
- super.onBlockDestroyedByPlayer(world, x, y, z, meta);
- this.checkIfMachinePart(world, x, y, z);
- }
-
- private boolean checkIfMachinePart(World world, int x, int y, int z)
- {
- if(!teList.isEmpty())
- {
- Iterator<IMultiBlock> i = MultiBlockSpacerBlock.teList.iterator();
- while(i.hasNext())
- {
- IMultiBlock te = i.next();
- if(te!=null && !te.getIsInvalid())
- {
- if(te.isAPartOfStructure(x, y, z, true))
- {
- return true;
- }
- }
- else
- {
- teList.remove(i);
- }
- }
- }
- return false;
- }
-
- private IMultiBlock getLinkedTileEntity(World world, int x, int y, int z)
- {
- if(!teList.isEmpty())
- {
- Iterator<IMultiBlock> i = MultiBlockSpacerBlock.teList.iterator();
- while(i.hasNext())
- {
- IMultiBlock te = i.next();
- if(te!=null && !te.getIsInvalid())
- {
- if(te.isAPartOfStructure(x, y, z, false))
- {
- return te;
- }
- }
- else
- {
- teList.remove(i);
- }
- }
- }
- return null;
- }
-
- /**
- * Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two
- * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
- */
- @Override
- public boolean isOpaqueCube()
- {
- return false;
- }
-
- /**
- * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
- */
- @Override
- public boolean renderAsNormalBlock()
- {
- return false;
- }
-
- @Override
- public void onBlockAdded(World world, int x, int y,int z)
- {
- world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
- }
-
- @Override
- public void onNeighborBlockChange(World world, int x, int y,int z, Block block)
- {
- this.updateTick(world, x, y, z, world.rand);
- }
-
-@Override
-public void updateTick(World world, int x, int y,int z, Random rand)
-{
- world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
- if(!world.isRemote)
- {
- boolean setToAir=true;
- if(teList.size()>0)
- {
- if(!teList.isEmpty())
- {
- Iterator<IMultiBlock> i = MultiBlockSpacerBlock.teList.iterator();
- while(i.hasNext())
- {
- IMultiBlock te = i.next();
- if(te!=null && !te.getIsInvalid())
- {
- if(te.isAPartOfStructure(x, y, z, false))
- {
- setToAir=false;
- }
- }
- else
- {
- teList.remove(i);
- }
- }
- }
- }
- if(setToAir)
- {
- world.setBlockToAir(x, y, z);
- }
- }
-}
-
- @Override
- public int tickRate(World world)
- {
- return 200;
- }
-
- @Override
- public boolean onBlockActivated(World world,int x,int y,int z,EntityPlayer entityPlayer,int i,float pos_x,float pos_y,float pos_z)
- {
- IMultiBlock te = this.getLinkedTileEntity(world, x, y, z);
- ItemStack currentIS = entityPlayer.inventory.getCurrentItem();
- if(currentIS!=null)
- {
- if(currentIS.getItem() instanceof ItemToolWrench)
- {
- if(((ItemToolWrench)currentIS.getItem()).canTakeDamage(currentIS, 10))
- {
- if (IC2.platform.isRendering())
- {
- IC2.audioManager.playOnce(entityPlayer, PositionSpec.Hand, "Tools/wrench.ogg", true, 1.0F);
- }
- else if(IC2.platform.isSimulating())
- {
- if(te instanceof DriverTileEntity)
- {
- DriverTileEntity dte =(DriverTileEntity) te;
- if(dte.hasShield)
- {
- if(dte.advancedShield)
- {
- world.spawnEntityInWorld(new EntityItem(world, x, y, z, IHLUtils.getThisModItemStack("advancedShieldAssemblyUnitBlock")));
- }
- else
- {
- world.spawnEntityInWorld(new EntityItem(world, x, y, z, IHLUtils.getThisModItemStack("IHLShieldAssemblyUnitBlock")));
- }
- }
- dte.isAPartOfStructure(x, y, z, true);
- world.setBlockToAir(x, y, z);
- }
- ((ItemToolWrench)currentIS.getItem()).damage(currentIS, 10, entityPlayer);
- }
- }
- return true;
- }
- }
- return te instanceof IHasGui ? (IC2.platform.isSimulating() ? IC2.platform.launchGui(entityPlayer, (IHasGui)te) : true) : false;
- }
-} \ No newline at end of file