Jump to content

Enkey

Members
  • Posts

    58
  • Joined

  • Last visited

Everything posted by Enkey

  1. Oh ... I thought I have to do it through Tile entity to store the block bounds for every block... Anyway thanks again!
  2. Thanks! I didn't realize that it is called before placement. But I changed it like so: package testmod; 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.IconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class BlockDirWTileEntity extends BlockContainer { public BlockDirWTileEntity(int id) { super(id, Material.rock); } public boolean isOpaqueCube(){ return false; } public boolean renderAsNormalBlock(){ return false; } public TileEntity createNewTileEntity(World world) { return new TileEntityDirWTileEntity(); } public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack) { TileEntityDirWTileEntity TE = (TileEntityDirWTileEntity)par1World.getBlockTileEntity(par2, par3, par4); int metadata = TE.getBlockMetadata(); TE.setBoundsForBlock(metadata); } public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) { int j1 = par9 & 3; byte b0 = 0; switch (par5) { case 0: case 1: b0 = 0; break; case 2: case 3: b0 = 8; break; case 4: case 5: b0 = 4; } return j1 | b0; } @SideOnly(Side.CLIENT) public void registerIcons(IconRegister par1) { this.blockIcon = par1.registerIcon(Main.modid + ":" + this.getUnlocalizedName().substring(5)); } } package testmod; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; public class TileEntityDirWTileEntity extends TileEntity { public void setBoundsForBlock(int par1){ Block block = getBlockType(); switch (par1) { case 0: block.setBlockBounds(0.3125F,0.0F,0.3125F,0.5625F,1.0F,0.5625F); break; case 4: block.setBlockBounds(0.0F,0.3125F,0.3125F,1.0F,0.5625F,0.5625F); break; case 8: block.setBlockBounds(0.3125F,0.3125F,0.0F,0.5625F,0.5625F,1.0F); break; default: System.out.println("Bad metadata!"); } } } and when I place a block it change the block bounds for every block (DirWTileEntity). How can I prevent that?
  3. Oh that was generated by Eclipse, but I changed it to public and nothing changed. It's first time doing something with tile entity for me, so I have something wrong there probably.
  4. (English is not my native language, BTW) Hello, I am trying to learn modding so I am doing just a testing mod. I wanted to make a block which would rotate like wood log on placement, but it would change the bounding box of the block, too. So I am trying to do it by Tile Entity, but minecraft crashes at testmod.BlockDirWTileEntity.onBlockPlaced(BlockDirWTileEntity.java:30) Code: Class for the Block: package testmod; 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.IconRegister; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; public class BlockDirWTileEntity extends BlockContainer { protected BlockDirWTileEntity(int id) { super(id, Material.rock); } public TileEntity createNewTileEntity(World world) { return new TileEntityDirWTileEntity(); } public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9) { int j1 = par9 & 3; byte b0 = 0; TileEntityDirWTileEntity tileentity = (TileEntityDirWTileEntity)par1World.getBlockTileEntity(par2, par3, par4); tileentity.setBoundsForBlock(par5); //Here it crashes switch (par5) { case 0: case 1: b0 = 0; break; case 2: case 3: b0 = 8; break; case 4: case 5: b0 = 4; } return j1 | b0; } @SideOnly(Side.CLIENT) public void registerIcons(IconRegister par1) { this.blockIcon = par1.registerIcon(Main.modid + ":" + this.getUnlocalizedName().substring(5)); } } Class for the Tile Entity (here I just wanted to figure out what is what): package testmod; import net.minecraft.tileentity.TileEntity; public class TileEntityDirWTileEntity extends TileEntity { public void setBoundsForBlock(int par1){ switch (par1) { case 0: System.out.println("case 0"); break; case 1: System.out.println("case 1"); break; case 2: System.out.println("case 2"); break; case 3: System.out.println("case 3"); break; case 4: System.out.println("case 4"); break; case 5: System.out.println("case 5"); } } } So what am I missing? Thanks for your help!
  5. Oh... Everyone said it should be in src\minecraft\mods\... but its probably different for me because I have the workbench setted up like Pahimar. So thank you very much! It works now
  6. Hey guys, I am learning to mod so I am doing my first testing mod in 1.5 (already have made one testing mod in 1.4.7) and I have the same problem with the textures (error with missing texture) and I tried everything I found on the internet and it still does not work. So here is my code for my blocks and items: And I have the textures at: mcp\src\minecraft\mods\first\textures\blocks\ mcp\src\minecraft\mods\first\textures\items\ and I am sure that the names are correct. Please help, I am really stuck on that
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.