From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../java/jp/plusplus/fbs/block/BlockMirror.java | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/block/BlockMirror.java (limited to 'src/main/java/jp/plusplus/fbs/block/BlockMirror.java') diff --git a/src/main/java/jp/plusplus/fbs/block/BlockMirror.java b/src/main/java/jp/plusplus/fbs/block/BlockMirror.java new file mode 100644 index 0000000..731c0b9 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/block/BlockMirror.java @@ -0,0 +1,134 @@ +package jp.plusplus.fbs.block; + +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.Registry; +import jp.plusplus.fbs.particle.EntityGlowFX; +import jp.plusplus.fbs.tileentity.TileEntityExtractingFurnace; +import jp.plusplus.fbs.tileentity.TileEntityMirror; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.ITileEntityProvider; +import net.minecraft.block.material.Material; +import net.minecraft.client.particle.EffectRenderer; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import shift.mceconomy2.api.MCEconomyAPI; +import shift.sextiarysector.block.BlockMonitor; + +import java.util.ArrayList; +import java.util.Random; + +import static net.minecraftforge.common.util.ForgeDirection.UP; + +/** + * Createdby pluslus_Fon 2015/06/24. + */ +public class BlockMirror extends BlockBase implements ITileEntityProvider{ + + public BlockMirror() { + super(Material.rock); + setBlockName("mirror"); + setBlockTextureName("mirror"); + setHardness(3.5F); + setStepSound(soundTypeGlass); + infoName="mirror"; + infoRow=1; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMirror(); + } + @Override + public boolean canPlaceTorchOnTop(World par1World, int par2, int par3, int par4){ + return false; + } + + @Override + public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) { + MCEconomyAPI.openShopGui(Registry.shopMCE2Id, par5EntityPlayer, par1World, par2, par3, par4); + return true; + } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack item) { + int l = MathHelper.floor_double((double) (entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + + if (l == 0) { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + world.setBlock(x, y + 1, z, BlockCore.mirror); + world.setBlockMetadataWithNotify(x, y + 1, z, 2 | 8, 2); + } + + if (l == 1) { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + world.setBlock(x,y+1,z, BlockCore.mirror); + world.setBlockMetadataWithNotify(x, y+1, z, 5|8, 2); + } + + if (l == 2) { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + world.setBlock(x,y+1,z, BlockCore.mirror); + world.setBlockMetadataWithNotify(x, y+1, z, 3|8, 2); + } + + if (l == 3) { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + world.setBlock(x,y+1,z, BlockCore.mirror); + world.setBlockMetadataWithNotify(x, y+1, z, 4|8, 2); + } + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x,y,z); + + } + public void breakBlock(World world, int x, int y, int z, Block p_149749_5_, int meta) { + world.removeTileEntity(x,y,z); + if((meta&8)!=0 && world.getBlock(x,y-1,z)==BlockCore.mirror) world.func_147480_a(x,y-1,z, true); + else if(world.getBlock(x,y+1,z)==BlockCore.mirror) world.func_147480_a(x,y+1,z, false); + } + + public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune){ + if((metadata&8)!=0) return new ArrayList(); + return super.getDrops(world, x,y,z,metadata,fortune); + } + + public boolean canPlaceBlockAt(World world, int x, int y, int z) { + return world.getBlock(x, y, z).isReplaceable(world, x, y, z) && world.getBlock(x, y+1, z).isReplaceable(world, x, y+1, z); + } + + @Override + public int getRenderType(){ + return FBS.renderMirrorId; + } + @Override + public boolean renderAsNormalBlock(){ + return false; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess p_149646_1_, int p_149646_2_, int p_149646_3_, int p_149646_4_, int p_149646_5_) { + return true; + } +} \ No newline at end of file -- cgit v1.2.3