From 4501e9373f7249f7164480b8ccd391f623b29c07 Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Sun, 8 Sep 2013 16:45:28 -0400 Subject: [PATCH] Finished Merging Changes to Trapdoor Merged together the different changes we had made to Transdimensional Trapdoors. Cleaned up the rendering and tile entity code a bit, it should be a little more understandable now. --- .../mod_pocketDim/blocks/TransTrapdoor.java | 35 ++++- .../mod_pocketDim/blocks/dimHatch.java | 128 ------------------ .../mod_pocketDim/mod_pocketDim.java | 8 +- .../tileentities/TileEntityTransTrapdoor.java | 91 +++++-------- .../mod_pocketDimClient/ClientProxy.java | 2 +- ...TrapDoor.java => RenderTransTrapdoor.java} | 81 +++++------ 6 files changed, 104 insertions(+), 241 deletions(-) delete mode 100644 StevenDimDoors/mod_pocketDim/blocks/dimHatch.java rename StevenDimDoors/mod_pocketDimClient/{RenderDimTrapDoor.java => RenderTransTrapdoor.java} (84%) diff --git a/StevenDimDoors/mod_pocketDim/blocks/TransTrapdoor.java b/StevenDimDoors/mod_pocketDim/blocks/TransTrapdoor.java index ee7e2c4..55eb613 100644 --- a/StevenDimDoors/mod_pocketDim/blocks/TransTrapdoor.java +++ b/StevenDimDoors/mod_pocketDim/blocks/TransTrapdoor.java @@ -4,9 +4,11 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.BlockTrapDoor; +import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.Entity; +import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.core.DDTeleporter; @@ -14,8 +16,9 @@ import StevenDimDoors.mod_pocketDim.core.DimLink; import StevenDimDoors.mod_pocketDim.core.LinkTypes; import StevenDimDoors.mod_pocketDim.core.NewDimData; import StevenDimDoors.mod_pocketDim.core.PocketManager; +import StevenDimDoors.mod_pocketDim.tileentities.TileEntityTransTrapdoor; -public class TransTrapdoor extends BlockTrapDoor implements IDimDoor +public class TransTrapdoor extends BlockTrapDoor implements IDimDoor, ITileEntityProvider { public TransTrapdoor(int blockID, Material material) @@ -56,10 +59,31 @@ public class TransTrapdoor extends BlockTrapDoor implements IDimDoor public void onBlockAdded(World world, int x, int y, int z) { this.placeDimDoor(world, x, y, z); - //world.setBlockTileEntity(x, y, z, this.createNewTileEntity(world)); - //this.updateAttachedTile(world, x, y, z); + world.setBlockTileEntity(x, y, z, this.createNewTileEntity(world)); + this.updateAttachedTile(world, x, y, z); + } + + public void updateTick(World world, int x, int y, int z, Random random) + { + TileEntityTransTrapdoor tile = (TileEntityTransTrapdoor) world.getBlockTileEntity(x, y, z); + tile.hasRift = PocketManager.getLink(x, y, z, world) != null; + } + + @Override + public TileEntity createNewTileEntity(World world) + { + return new TileEntityTransTrapdoor(); } + public void updateAttachedTile(World world, int x, int y, int z) + { + TileEntity tile = world.getBlockTileEntity(x, y, z); + if (tile instanceof TileEntityTransTrapdoor) + { + TileEntityTransTrapdoor trapdoorTile = (TileEntityTransTrapdoor) tile; + trapdoorTile.hasRift = (PocketManager.getLink(x, y, z, world) != null); + } + } @Override public void placeDimDoor(World world, int x, int y, int z) @@ -86,4 +110,9 @@ public class TransTrapdoor extends BlockTrapDoor implements IDimDoor { return Block.trapdoor.blockID; } + + public static boolean isTrapdoorOnBlock(int metadata) + { + return (metadata & 8) == 0; + } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/blocks/dimHatch.java b/StevenDimDoors/mod_pocketDim/blocks/dimHatch.java deleted file mode 100644 index c1f8551..0000000 --- a/StevenDimDoors/mod_pocketDim/blocks/dimHatch.java +++ /dev/null @@ -1,128 +0,0 @@ -package StevenDimDoors.mod_pocketDim.blocks; - -import java.util.Random; - -import net.minecraft.block.BlockTrapDoor; -import net.minecraft.block.ITileEntityProvider; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import StevenDimDoors.mod_pocketDim.mod_pocketDim; -import StevenDimDoors.mod_pocketDim.core.PocketManager; -import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoor; -import StevenDimDoors.mod_pocketDim.tileentities.TileEntityTransTrapdoor; -import StevenDimDoors.mod_pocketDim.world.PocketProvider; - -public class dimHatch extends BlockTrapDoor implements IDimDoor, ITileEntityProvider -{ - - public dimHatch(int par1,int par2, Material par2Material) - { - super(par1, Material.iron); - this.setCreativeTab(mod_pocketDim.dimDoorsCreativeTab); - // this.setTextureFile("/PocketBlockTextures.png"); - // this.blockIndexInTexture = 16; - } - - public void registerIcons(IconRegister par1IconRegister) - { - this.blockIcon = par1IconRegister.registerIcon(mod_pocketDim.modid + ":" + this.getUnlocalizedName2()); - - } - - public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) - { - - { - int var10 = par1World.getBlockMetadata(par2, par3, par4); - par1World.setBlockMetadataWithNotify(par2, par3, par4, var10 ^ 4,2); - par1World.playAuxSFXAtEntity(par5EntityPlayer, 1003, par2, par3, par4, 0); - return true; - } - } - - //Teleports the player to the exit link of that dimension, assuming it is a pocket - public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) - { - int num = par1World.getBlockMetadata(par2, par3, par4); - - if (!par1World.isRemote&&(num>3&&num<8||num>11)&&par1World.provider instanceof PocketProvider) - { - this.onPoweredBlockChange(par1World, par2, par3, par4, false); - - /* FIXME: No point in fixing the following code when it's going to be rewritten later anyway. ~SenseiKiwi - - NewDimData newDimData = (NewDimData) dimHelper.PocketManager.dimList.get(par1World.provider.dimensionId); - ILinkData exitLink=newDimData.exitDimLink; - exitLink.locDimID=par1World.provider.dimensionId; - PocketManager.instance.traverseDimDoor(par1World, exitLink, par5Entity);*/ - } - } - - public void onPoweredBlockChange(World par1World, int par2, int par3, int par4, boolean par5) - { - int var6 = par1World.getBlockMetadata(par2, par3, par4); - boolean var7 = (var6 & 4) > 0; - - if (var7 != par5) - { - par1World.setBlockMetadataWithNotify(par2, par3, par4, var6 ^ 4,2); - par1World.playAuxSFXAtEntity((EntityPlayer)null, 1003, par2, par3, par4, 0); - } - } - - public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) - { - TileEntityTransTrapdoor tile = (TileEntityTransTrapdoor) par1World.getBlockTileEntity(par2, par3, par4); - tile.hasRift = PocketManager.getLink(par2, par3, par4, par1World)!=null; - tile.metaData = par1World.getBlockMetadata(par2, par3, par4); - tile.isShut = this.isTrapdoorOpen(par4); - } - @Override - public TileEntity createNewTileEntity(World world) - { - - return new TileEntityTransTrapdoor(); - } - - public dimHatch updateAttachedTile(World world, int x, int y, int z) - { - TileEntity tile = world.getBlockTileEntity(x, y, z); - if (tile instanceof TileEntityTransTrapdoor) - { - TileEntityTransTrapdoor dimTile = (TileEntityTransTrapdoor) tile; - dimTile.hasRift = PocketManager.getLink(x, y, z, world)!=null; - dimTile.metaData = world.getBlockMetadata(x, y, z); - dimTile.isShut = this.isTrapdoorOpen( world.getBlockMetadata(x, y, z)); - } - return this; - } - @Override - public void enterDimDoor(World world, int x, int y, int z, Entity entity) { - // TODO Auto-generated method stub - - } - - @Override - public void placeDimDoor(World world, int x, int y, int z) { - // TODO Auto-generated method stub - - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) - { - world.setBlockTileEntity(x, y, z, this.createNewTileEntity(world)); - this.updateAttachedTile(world, x, y, z); - } - @Override - public int getDrops() { - // TODO Auto-generated method stub - return 0; - } - - -} \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java index 8f061a0..c1335a6 100644 --- a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java +++ b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java @@ -17,10 +17,10 @@ import StevenDimDoors.mod_pocketDim.blocks.BlockDimWallPerm; import StevenDimDoors.mod_pocketDim.blocks.BlockLimbo; import StevenDimDoors.mod_pocketDim.blocks.BlockRift; import StevenDimDoors.mod_pocketDim.blocks.DimensionalDoor; +import StevenDimDoors.mod_pocketDim.blocks.TransTrapdoor; import StevenDimDoors.mod_pocketDim.blocks.TransientDoor; import StevenDimDoors.mod_pocketDim.blocks.UnstableDoor; import StevenDimDoors.mod_pocketDim.blocks.WarpDoor; -import StevenDimDoors.mod_pocketDim.blocks.TransTrapdoor; import StevenDimDoors.mod_pocketDim.core.PocketManager; import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; import StevenDimDoors.mod_pocketDim.items.ItemBlockDimWall; @@ -38,8 +38,8 @@ import StevenDimDoors.mod_pocketDim.ticking.MobMonolith; import StevenDimDoors.mod_pocketDim.ticking.MonolithSpawner; import StevenDimDoors.mod_pocketDim.ticking.RiftRegenerator; import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoor; -import StevenDimDoors.mod_pocketDim.tileentities.TileEntityTransTrapdoor; import StevenDimDoors.mod_pocketDim.tileentities.TileEntityRift; +import StevenDimDoors.mod_pocketDim.tileentities.TileEntityTransTrapdoor; import StevenDimDoors.mod_pocketDim.world.BiomeGenLimbo; import StevenDimDoors.mod_pocketDim.world.BiomeGenPocket; import StevenDimDoors.mod_pocketDim.world.GatewayGenerator; @@ -95,7 +95,7 @@ public class mod_pocketDim public static Block blockLimbo; public static DimensionalDoor dimensionalDoor; public static Block blockDimWall; - public static Block transTrapdoor; + public static TransTrapdoor transTrapdoor; public static Block blockDimWallPerm; public static BlockRift blockRift; @@ -168,7 +168,7 @@ public class mod_pocketDim blockLimbo = new BlockLimbo(properties.LimboBlockID, 15, Material.iron, properties.LimboDimensionID, decay).setHardness(.2F).setUnlocalizedName("BlockLimbo").setLightValue(.0F); unstableDoor = (new UnstableDoor(properties.UnstableDoorID, Material.iron, properties).setHardness(.2F).setUnlocalizedName("chaosDoor").setLightValue(.0F) ); dimensionalDoor = (DimensionalDoor) (new DimensionalDoor(properties.DimensionalDoorID, Material.iron, properties).setHardness(1.0F).setResistance(2000.0F) .setUnlocalizedName("dimDoor")); - transTrapdoor = (new TransTrapdoor(properties.TransTrapdoorID, Material.wood)).setHardness(1.0F) .setUnlocalizedName("dimHatch"); + transTrapdoor = (TransTrapdoor) (new TransTrapdoor(properties.TransTrapdoorID, Material.wood).setHardness(1.0F) .setUnlocalizedName("dimHatch")); itemDimDoor = (new ItemDimensionalDoor(properties.DimensionalDoorItemID, Material.iron)).setUnlocalizedName("itemDimDoor"); itemExitDoor = (new ItemWarpDoor(properties.WarpDoorItemID, Material.wood)).setUnlocalizedName("itemDimDoorWarp"); diff --git a/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java b/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java index ad8dff1..f7a8791 100644 --- a/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java +++ b/StevenDimDoors/mod_pocketDim/tileentities/TileEntityTransTrapdoor.java @@ -7,72 +7,49 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class TileEntityTransTrapdoor extends TileEntity - { public boolean hasRift; - public boolean isShut; - public int metaData; - - - - + + @Override public boolean shouldRefresh(int oldID, int newID, int oldMeta, int newMeta, World world, int x, int y, int z) - { - if(newID==0&&PocketManager.getLink(x, y, z, world)!=null) + { + if (newID == 0 && PocketManager.getLink(x, y, z, world) != null) { world.setBlock(x, y, z, mod_pocketDim.blockRift.blockID); } - return true; - } - - public boolean canUpdate() - { - return true; - } - - public void updateEntity() - { - System.out.println(this.worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); + return true; + } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) - { - super.readFromNBT(nbt); - int i = nbt.getInteger(("Size")); + @Override + public boolean canUpdate() + { + return true; + } - try - { - this.hasRift = nbt.getBoolean("hasRift"); - this.isShut = nbt.getBoolean("isShut"); - - this.metaData = nbt.getInteger("metaData"); - - - + @Override + public void updateEntity() + { + + } - + @Override + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + try + { + this.hasRift = nbt.getBoolean("hasRift"); + } + catch (Exception e) + { - } - catch (Exception e) - { - - } - } + } + } - @Override - public void writeToNBT(NBTTagCompound nbt) - { - int i = 0; - super.writeToNBT(nbt); - nbt.setBoolean("hasRift", this.hasRift); - nbt.setBoolean("isShut", this.isShut); - - - nbt.setInteger("metaData", this.metaData); - - - - } + @Override + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + nbt.setBoolean("hasRift", this.hasRift); + } } diff --git a/StevenDimDoors/mod_pocketDimClient/ClientProxy.java b/StevenDimDoors/mod_pocketDimClient/ClientProxy.java index b4ef347..bfc4140 100644 --- a/StevenDimDoors/mod_pocketDimClient/ClientProxy.java +++ b/StevenDimDoors/mod_pocketDimClient/ClientProxy.java @@ -16,7 +16,7 @@ public class ClientProxy extends CommonProxy { //MinecraftForgeClient.preloadTexture(BLOCK_PNG); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDimDoor.class, new RenderDimDoor()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTransTrapdoor.class, new RenderDimTrapDoor()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTransTrapdoor.class, new RenderTransTrapdoor()); //This code activates the new rift rendering, as well as a bit of code in TileEntityRift //ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRift.class, new RenderRift()); diff --git a/StevenDimDoors/mod_pocketDimClient/RenderDimTrapDoor.java b/StevenDimDoors/mod_pocketDimClient/RenderTransTrapdoor.java similarity index 84% rename from StevenDimDoors/mod_pocketDimClient/RenderDimTrapDoor.java rename to StevenDimDoors/mod_pocketDimClient/RenderTransTrapdoor.java index 8d90e6e..7a8b8d9 100644 --- a/StevenDimDoors/mod_pocketDimClient/RenderDimTrapDoor.java +++ b/StevenDimDoors/mod_pocketDimClient/RenderTransTrapdoor.java @@ -12,33 +12,31 @@ import org.lwjgl.opengl.GL11; import StevenDimDoors.mod_pocketDim.DDProperties; import StevenDimDoors.mod_pocketDim.mod_pocketDim; -import StevenDimDoors.mod_pocketDim.blocks.dimHatch; -import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoor; +import StevenDimDoors.mod_pocketDim.blocks.TransTrapdoor; import StevenDimDoors.mod_pocketDim.tileentities.TileEntityTransTrapdoor; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class RenderDimTrapDoor extends TileEntitySpecialRenderer +public class RenderTransTrapdoor extends TileEntitySpecialRenderer { - FloatBuffer field_76908_a = GLAllocation.createDirectFloatBuffer(16); - - public RenderDimTrapDoor() + private FloatBuffer field_76908_a = GLAllocation.createDirectFloatBuffer(16); + private static DDProperties properties = null; + + public RenderTransTrapdoor() { if (properties == null) properties = DDProperties.instance(); } - - private static DDProperties properties = null; /** * Renders the dimdoor. */ - public void renderDimHatchTileEntity(TileEntityTransTrapdoor tile, double x, double y, double z, float par8) + public void renderTransTrapdoorTileEntity(TileEntityTransTrapdoor tile, double x, double y, double z, float par8) { try { - ( (dimHatch) mod_pocketDim.dimHatch).updateAttachedTile(tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord); + mod_pocketDim.transTrapdoor.updateAttachedTile(tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord); } catch(Exception e) { @@ -52,10 +50,8 @@ public class RenderDimTrapDoor extends TileEntitySpecialRenderer //float distance = (float) tile.getDistanceFrom(playerX, playerY, playerZ); GL11.glDisable(GL11.GL_LIGHTING); - Random rand = new Random(31100L); - float var13 = 0.75F; - - + Random random = new Random(31100L); + int metadata = tile.worldObj.getBlockMetadata(tile.xCoord, tile.yCoord, tile.zCoord); for (int count = 0; count < 16; ++count) { @@ -82,8 +78,6 @@ public class RenderDimTrapDoor extends TileEntitySpecialRenderer var16 = .5F; } - - GL11.glTranslatef( (float)(Minecraft.getSystemTime() % 200000L) / 200000.0F,0, 0.0F); GL11.glTranslatef(0, (float)(Minecraft.getSystemTime() % 200000L) / 200000.0F, 0.0F); @@ -115,13 +109,10 @@ public class RenderDimTrapDoor extends TileEntitySpecialRenderer GL11.glTranslatef(0.5F, 0.5F, 0.5F); GL11.glBegin(GL11.GL_QUADS); - - - - float var21 = rand.nextFloat() * 0.5F + 0.1F; - float var22 = rand.nextFloat() * 0.4F + 0.4F; - float var23 = rand.nextFloat() * 0.6F + 0.5F; + float var21 = random.nextFloat() * 0.5F + 0.1F; + float var22 = random.nextFloat() * 0.4F + 0.4F; + float var23 = random.nextFloat() * 0.6F + 0.5F; if (count == 0) { @@ -129,29 +120,9 @@ public class RenderDimTrapDoor extends TileEntitySpecialRenderer var22 = 1.0F; } GL11.glColor4d(var21 * var17, var22 * var17, var23 * var17, 1.0F); - if(tile.metaData>7) + if (TransTrapdoor.isTrapdoorOnBlock(metadata)) { - if(tile.isShut) - { - GL11.glVertex3d(x, y+0.85, z); - GL11.glVertex3d(x, y+0.85, z+1); - GL11.glVertex3d(x+1 , y+0.85 , z+1); - GL11.glVertex3d(x+1 , y+0.85 , z); - } - else - { - GL11.glVertex3d(x, y+0.95, z); - GL11.glVertex3d(x, y+0.95, z+1); - GL11.glVertex3d(x+1 , y+0.95 , z+1); - GL11.glVertex3d(x+1 , y+0.95 , z); - - } - - - } - else - { - if(tile.isShut) + if (TransTrapdoor.isTrapdoorOpen(metadata)) { GL11.glVertex3d(x, y+0.2, z); GL11.glVertex3d(x, y+0.2, z+1); @@ -165,11 +136,25 @@ public class RenderDimTrapDoor extends TileEntitySpecialRenderer GL11.glVertex3d(x+1 , y+0.15 , z+1); GL11.glVertex3d(x+1 , y+0.15 , z); } - } - + else + { + if (TransTrapdoor.isTrapdoorOpen(metadata)) + { + GL11.glVertex3d(x, y+0.95, z); + GL11.glVertex3d(x, y+0.95, z+1); + GL11.glVertex3d(x+1 , y+0.95 , z+1); + GL11.glVertex3d(x+1 , y+0.95 , z); + } + else + { + GL11.glVertex3d(x, y+0.85, z); + GL11.glVertex3d(x, y+0.85, z+1); + GL11.glVertex3d(x+1 , y+0.85 , z+1); + GL11.glVertex3d(x+1 , y+0.85 , z); + } + } GL11.glEnd(); - GL11.glPopMatrix(); GL11.glMatrixMode(GL11.GL_MODELVIEW); } @@ -194,7 +179,7 @@ public class RenderDimTrapDoor extends TileEntitySpecialRenderer { if (properties.DoorRenderingEnabled) { - this.renderDimHatchTileEntity((TileEntityTransTrapdoor)par1TileEntity, par2, par4, par6, par8); + this.renderTransTrapdoorTileEntity((TileEntityTransTrapdoor)par1TileEntity, par2, par4, par6, par8); } } }