package com.zjinja.mcmod.decor.elements.blocks; import com.zjinja.mcmod.decor.ZJinJaDecoration; import com.zjinja.mcmod.decor.element_base.EBaseTileBlock; import com.zjinja.mcmod.decor.element_templates.renderer.TileRenderResourceSpecifiedRenderer; import com.zjinja.mcmod.decor.elements.te.TE_RenderResourceSpecifiedTileEntity; import com.zjinja.mcmod.decor.misc.RenderResource; import com.zjinja.mcmod.decor.registers.GeneralRegister; import com.zjinja.mcmod.decor.utils.model_dir_util.BoundingBoxVector; import com.zjinja.mcmod.decor.utils.model_dir_util.OffsetVector; import com.zjinja.mcmod.decor.utils.model_dir_util.PlaceSideEnum; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class B_H7FTDSignM extends EBaseTileBlock { private RenderResource RenderResourceData; public B_H7FTDSignM(String texture) { super(Material.wood, TE_RenderResourceSpecifiedTileEntity.class); setBasicProperty(1.0F, 0.3F, 10.0F, Block.soundTypeGlass); DirUtil.FastDefine_4Dir(); DirUtil.DefineRelBoundingBox(new BoundingBoxVector(0.5F, 0.25F, 0.0F, 1.0F, 0.6875F, 0.0625F)); RenderResourceData = new RenderResource(); RenderResourceData.LoadBlockResource("h7ftdsign", texture); } @Override public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side){ if(side < 2) return false; int meta = PlaceSideEnum.TransToRotation(PlaceSideEnum.valueOf(side)); OffsetVector ov = DirUtil.CalcOffsetFromRelOffset(meta, 1,0,0); int nsx = x + ov.getIntX(); int nsy = y + ov.getIntY(); int nsz = z + ov.getIntZ(); return world.isAirBlock(nsx, nsy, nsz); } @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack){ DirUtil.FastPlaceConv_4Dir(world, x, y, z, player, itemStack); int meta = world.getBlockMetadata(x, y, z); OffsetVector ov = DirUtil.CalcOffsetFromRelOffset(meta, 1,0,0); int nsx = x + ov.getIntX(); int nsy = y + ov.getIntY(); int nsz = z + ov.getIntZ(); Block SlaveBlock = ZJinJaDecoration.proxy.Registry.GetBlockByName("h7ftdsigns"); world.setBlock(nsx, nsy, nsz, SlaveBlock, meta, 2); } @Override public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int smeta) { return side; } @Override public TileEntitySpecialRenderer GetTileRenderer(){ return new TileRenderResourceSpecifiedRenderer(); } @Override public TileEntity createNewTileEntity(World world, int meta) { return new TE_RenderResourceSpecifiedTileEntity(RenderResourceData); } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta){ OffsetVector ov = DirUtil.CalcOffsetFromRelOffset(meta, 1,0,0); int nsx = x + ov.getIntX(); int nsy = y + ov.getIntY(); int nsz = z + ov.getIntZ(); super.breakBlock(world, x, y, z,block, meta); world.setBlockToAir(nsx, nsy, nsz); } }