B_H7FTDSignM.java 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.zjinja.mcmod.decor.elements.blocks;
  2. import com.zjinja.mcmod.decor.ZJinJaDecoration;
  3. import com.zjinja.mcmod.decor.element_base.EBaseTileBlock;
  4. import com.zjinja.mcmod.decor.element_templates.renderer.TileRenderResourceSpecifiedRenderer;
  5. import com.zjinja.mcmod.decor.elements.te.TE_RenderResourceSpecifiedTileEntity;
  6. import com.zjinja.mcmod.decor.misc.RenderResource;
  7. import com.zjinja.mcmod.decor.registers.GeneralRegister;
  8. import com.zjinja.mcmod.decor.utils.model_dir_util.BoundingBoxVector;
  9. import com.zjinja.mcmod.decor.utils.model_dir_util.OffsetVector;
  10. import com.zjinja.mcmod.decor.utils.model_dir_util.PlaceSideEnum;
  11. import net.minecraft.block.Block;
  12. import net.minecraft.block.material.Material;
  13. import net.minecraft.client.renderer.texture.IIconRegister;
  14. import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
  15. import net.minecraft.entity.EntityLivingBase;
  16. import net.minecraft.item.ItemStack;
  17. import net.minecraft.tileentity.TileEntity;
  18. import net.minecraft.world.World;
  19. public class B_H7FTDSignM extends EBaseTileBlock {
  20. private RenderResource RenderResourceData;
  21. public B_H7FTDSignM(String texture) {
  22. super(Material.wood, TE_RenderResourceSpecifiedTileEntity.class);
  23. setBasicProperty(1.0F, 0.3F, 10.0F, Block.soundTypeGlass);
  24. DirUtil.FastDefine_4Dir();
  25. DirUtil.DefineRelBoundingBox(new BoundingBoxVector(0.5F, 0.25F, 0.0F, 1.0F, 0.6875F, 0.0625F));
  26. RenderResourceData = new RenderResource();
  27. RenderResourceData.LoadBlockResource("h7ftdsign", texture);
  28. }
  29. @Override
  30. public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side){
  31. if(side < 2) return false;
  32. int meta = PlaceSideEnum.TransToRotation(PlaceSideEnum.valueOf(side));
  33. OffsetVector ov = DirUtil.CalcOffsetFromRelOffset(meta, 1,0,0);
  34. int nsx = x + ov.getIntX();
  35. int nsy = y + ov.getIntY();
  36. int nsz = z + ov.getIntZ();
  37. return world.isAirBlock(nsx, nsy, nsz);
  38. }
  39. @Override
  40. public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack){
  41. DirUtil.FastPlaceConv_4Dir(world, x, y, z, player, itemStack);
  42. int meta = world.getBlockMetadata(x, y, z);
  43. OffsetVector ov = DirUtil.CalcOffsetFromRelOffset(meta, 1,0,0);
  44. int nsx = x + ov.getIntX();
  45. int nsy = y + ov.getIntY();
  46. int nsz = z + ov.getIntZ();
  47. Block SlaveBlock = ZJinJaDecoration.proxy.Registry.GetBlockByName("h7ftdsigns");
  48. world.setBlock(nsx, nsy, nsz, SlaveBlock, meta, 2);
  49. }
  50. @Override
  51. public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int smeta)
  52. {
  53. return side;
  54. }
  55. @Override
  56. public TileEntitySpecialRenderer GetTileRenderer(){
  57. return new TileRenderResourceSpecifiedRenderer();
  58. }
  59. @Override
  60. public TileEntity createNewTileEntity(World world, int meta) {
  61. return new TE_RenderResourceSpecifiedTileEntity(RenderResourceData);
  62. }
  63. @Override
  64. public void breakBlock(World world, int x, int y, int z, Block block, int meta){
  65. OffsetVector ov = DirUtil.CalcOffsetFromRelOffset(meta, 1,0,0);
  66. int nsx = x + ov.getIntX();
  67. int nsy = y + ov.getIntY();
  68. int nsz = z + ov.getIntZ();
  69. super.breakBlock(world, x, y, z,block, meta);
  70. world.setBlockToAir(nsx, nsy, nsz);
  71. }
  72. }