aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/common/blocks/Block_TFFTMultiHatch.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/common/blocks/Block_TFFTMultiHatch.java')
-rw-r--r--src/main/java/common/blocks/Block_TFFTMultiHatch.java101
1 files changed, 78 insertions, 23 deletions
diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java
index eda34c8ce3..d2780c8c4b 100644
--- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java
+++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java
@@ -1,8 +1,6 @@
package common.blocks;
-import client.renderer.ConduitRenderer;
import client.renderer.HatchRenderer;
-import common.Blocks;
import common.itemBlocks.IB_TFFTMultiHatch;
import common.tileentities.TE_TFFTMultiHatch;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -11,7 +9,6 @@ import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
-import kekztech.KekzCore;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -22,9 +19,11 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
+import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
+import thaumcraft.common.tiles.TileJarFillable;
import java.util.List;
@@ -80,12 +79,49 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
@Override
public IIcon getIcon(IBlockAccess blockAccess, int x, int y, int z, int side) {
- if(side != 3) {
- return casing;
+ final TileEntity te = blockAccess.getTileEntity(x, y, z);
+ if(te instanceof TE_TFFTMultiHatch) {
+ final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te;
+ if(hatchTE.hasFacingOnSide((byte) side)) {
+ final int meta = blockAccess.getBlockMetadata(x, y, z);
+ if(hatchTE.isOutputting()) {
+ return overlayOn[meta];
+ } else {
+ return overlayOff[meta];
+ }
+ } else {
+ return casing;
+ }
} else {
- return overlayOff[blockAccess.getBlockMetadata(x, y, z)];
+ return casing;
}
}
+ // ========= Leagris stuff
+ @Override
+ public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) {
+ return true;
+ }
+
+ @Override
+ public int getLightOpacity(IBlockAccess world, int x, int y, int z) {
+ return 255;
+ }
+
+ @Override
+ public int getLightValue() {
+ return 0;
+ }
+
+ @Override
+ public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour) {
+ return false;
+ }
+
+ //============== Leagris over
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
@Override
@SideOnly(Side.CLIENT)
@@ -109,8 +145,8 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
}
@Override
- public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
- // Code block taken from GregTech's BaseMetaTileEntity.class
+ public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float p_149727_7_, float p_149727_8_, float p_149727_9_) {
+ // Code block taken from GregTech's api.metatileentity.BaseMetaTileEntity.class
if (GT_Utility.isStackInList(player.getHeldItem(), GregTech_API.sScrewdriverList)) {
if (GT_ModHandler.damageOrDechargeItem(player.getHeldItem(), 1, 200, player)) {
final TileEntity te = world.getTileEntity(x, y, z);
@@ -123,30 +159,49 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock {
}
}
return true;
+ } else if (GT_Utility.isStackInList(player.getHeldItem(), GregTech_API.sWrenchList)) {
+ if (GT_ModHandler.damageOrDechargeItem(player.getHeldItem(), 1, 200, player)) {
+ final TileEntity te = world.getTileEntity(x, y, z);
+ if(te instanceof TE_TFFTMultiHatch) {
+ ((TE_TFFTMultiHatch) te).setFacingToSide((byte) side);
+ GT_Utility.sendSoundToPlayers(world, GregTech_API.sSoundList.get(100), 1.0F, -1.0F, x, y, z);
+ }
+ }
+ return true;
}
return false;
}
- @Override
- public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase ent, ItemStack stack) {
+ public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase placer, ItemStack stack) {
+ final int yaw = MathHelper.floor_double((double)(placer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
+ final int pitch = MathHelper.floor_double((double)(placer.rotationPitch * 4.0F / 360.0F) + 0.5D) & 3;
final TileEntity te = world.getTileEntity(x, y, z);
if (te instanceof TE_TFFTMultiHatch) {
- final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te;
- for(int i = 0; i < 6; i++) {
- final ForgeDirection d = ForgeDirection.getOrientation(i);
- final Block n = world.getBlock(x + d.offsetX, y + d.offsetY, z + d.offsetZ);
- KekzCore.LOGGER.info("Block on side " + i + " is " + n.getUnlocalizedName());
- // Always implement your tiered blocks as sub-blocks so you don't have to do this
- if(n.equals(Blocks.tfftStorageField1)
- || n.equals(Blocks.tfftStorageField2)
- || n.equals(Blocks.tfftStorageField3)
- || n.equals(Blocks.tfftStorageField4)
- || n.equals(Blocks.tfftStorageField5)) {
- KekzCore.LOGGER.info("Found Storage Field at side: " + i);
- hatchTE.setFacingOnSide((byte) ForgeDirection.OPPOSITES[i], true);
+ if(pitch == 0 || pitch == 2) {
+ if (yaw == 0) {
+ ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 2);
+ }
+
+ if (yaw == 1) {
+ ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 5);
+ }
+
+ if (yaw == 2) {
+ ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 3);
+ }
+
+ if (yaw == 3) {
+ ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 4);
+ }
+ } else {
+ if(pitch == 1) {
+ ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 1);
+ } else {
+ ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 0);
}
}
}
+
}
}