B_FireHydrant.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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.utils.model_dir_util.BoundingBoxVector;
  8. import net.minecraft.block.Block;
  9. import net.minecraft.block.material.Material;
  10. import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
  11. import net.minecraft.entity.EntityLivingBase;
  12. import net.minecraft.entity.player.EntityPlayer;
  13. import net.minecraft.init.Items;
  14. import net.minecraft.item.ItemStack;
  15. import net.minecraft.tileentity.TileEntity;
  16. import net.minecraft.util.ChatComponentText;
  17. import net.minecraft.world.World;
  18. public class B_FireHydrant extends EBaseTileBlock {
  19. protected RenderResource RenderResourceData;
  20. public B_FireHydrant() {
  21. super(Material.wood, TE_RenderResourceSpecifiedTileEntity.class);
  22. setBasicProperty(3.0F, 0.1F, 5.0F, Block.soundTypeMetal);
  23. DirUtil.FastDefine_4Dir();
  24. Init();
  25. }
  26. protected void Init(){
  27. DirUtil.DefineRelBoundingBox(new BoundingBoxVector(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0625F));
  28. RenderResourceData = new RenderResource();
  29. RenderResourceData.LoadBlockResource("firehydrant", "firehydrant_tex");
  30. }
  31. @Override
  32. public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack){
  33. DirUtil.FastPlaceConv_4Dir(world, x, y, z, player, itemStack);
  34. }
  35. @Override
  36. public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int smeta)
  37. {
  38. return side;
  39. }
  40. @Override
  41. public TileEntitySpecialRenderer GetTileRenderer(){
  42. return new TileRenderResourceSpecifiedRenderer();
  43. }
  44. @Override
  45. public TileEntity createNewTileEntity(World world, int meta) {
  46. return new TE_RenderResourceSpecifiedTileEntity(RenderResourceData);
  47. }
  48. @Override
  49. public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
  50. {
  51. world.extinguishFire(player,x,y,z,2);
  52. ItemStack held = player.getHeldItem();
  53. if(held == null){return false;}
  54. if(held.isItemEqual(new ItemStack(Items.bucket,1))){
  55. player.setCurrentItemOrArmor(0,new ItemStack(Items.water_bucket,1));
  56. if(!world.isRemote){
  57. player.addChatMessage(new ChatComponentText(ZJinJaDecoration.I18N.translateKey("cmsg.playerGetWaterFromFireHydrant")));
  58. }
  59. }else{
  60. if(!world.isRemote) {
  61. player.addChatMessage(new ChatComponentText(
  62. ZJinJaDecoration.I18N.translateKey("cmsg.playerNeedBucketToGetWaterFromFireHydrant")));
  63. }
  64. }
  65. return true;
  66. }
  67. }