/** * Handles right click on cauldron block * * @param event The RightClickEvent that was handled. * @param stack The item stack */ private void handleCauldronRightClick(@Nonnull RightClickBlock event, @Nonnull ItemStack stack) { EntityPlayer player = event.getEntityPlayer(); World world = event.getWorld(); //TODO: Water sploosh sound event if(!world.isRemote && !stack.isEmpty()) { IBlockState blockCauldronState = event.getWorld().getBlockState(event.getPos()); int fillLevel = blockCauldronState.getValue(BlockCauldron.LEVEL); if (fillLevel > 0 && stack.getItem() instanceof ItemWolfArmor) { ItemWolfArmor itemWolfArmor = (ItemWolfArmor) stack.getItem(); if (itemWolfArmor.getMaterial().getCanBeDyed() && itemWolfArmor.getHasColor(stack)) { itemWolfArmor.removeColor(stack); Blocks.CAULDRON.setWaterLevel(event.getWorld(), event.getPos(), blockCauldronState, fillLevel - 1); player.addStat(StatList.ARMOR_CLEANED); event.setResult(Event.Result.ALLOW); event.setCanceled(true); } } } }
@Override public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); if (block instanceof BlockCauldron && side == 1 && itemStack.getItemDamage() == 0) { int waterLevel = BlockCauldron.func_150027_b(meta); if (waterLevel == 0) return false; ItemStack newItem = new ItemStack(ModBlocks.heavyChain, 1, 3); itemStack.stackSize--; EntityItem itemEntity = new EntityItem(world, x + .5, y + 1.5, z + .5, newItem); itemEntity.playSound("random.splash", 0.25F, 1.0F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.4F); world.spawnEntityInWorld(itemEntity); return true; } return super.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); }
@Override public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); if (block instanceof BlockCauldron && side == 1 && itemStack.getItemDamage() == 0) { int waterLevel = BlockCauldron.func_150027_b(meta); if (waterLevel == 0) return false; ItemStack newItem = new ItemStack(ModBlocks.latticeMetal, 1, 1); itemStack.stackSize--; EntityItem itemEntity = new EntityItem(world, x + .5, y + 1.5, z + .5, newItem); itemEntity.playSound("random.splash", 0.25F, 1.0F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.4F); world.spawnEntityInWorld(itemEntity); return true; } return super.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); }
@Override public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); if (block instanceof BlockCauldron && side == 1 && itemStack.getItemDamage() == 0) { int waterLevel = BlockCauldron.func_150027_b(meta); if (waterLevel == 0) return false; ItemStack newItem = new ItemStack(ModBlocks.lightChain, 1, 3); itemStack.stackSize--; EntityItem itemEntity = new EntityItem(world, x + .5, y + 1.5, z + .5, newItem); itemEntity.playSound("random.splash", 0.25F, 1.0F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.4F); world.spawnEntityInWorld(itemEntity); return true; } return super.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); }
@Override public boolean onItemUse (ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { if (side != 1) return false; Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); if (block instanceof BlockCauldron) { int waterLevel = BlockCauldron.func_150027_b(meta); if (waterLevel == 0) return false; int index = getPatternIndex(world); if (index == -1) return false; PatternConfig pattern = GardenContainers.config.getPattern(index); if (pattern == null) return false; ItemStack stamp = new ItemStack(ModItems.potteryPattern, 1, pattern.getId()); itemStack.stackSize--; world.spawnEntityInWorld(new EntityItem(world, x + .5, y + 1.5, z + .5, stamp)); return true; } return false; }
@SubscribeEvent public void onPlayerInteractBlock(PlayerInteractEvent.RightClickBlock event) { if (event.getWorld().isRemote || event.getEntityPlayer().isSneaking()) return; // Check if item is washable and currently dyed. ItemStack stack = event.getItemStack(); if (!(stack.getItem() instanceof IDyeableItem) || !((IDyeableItem)stack.getItem()).canWash(stack) || !NbtUtils.has(stack, "display", "color")) return; // Check if block is a cauldron. IBlockState state = event.getWorld().getBlockState(event.getPos()); if (!(state.getBlock() instanceof BlockCauldron)) return; BlockCauldron block = (BlockCauldron)state.getBlock(); // Check if water is in the cauldron. int level = state.getValue(BlockCauldron.LEVEL); if (level <= 0) return; // Remove the color from the item! NbtUtils.remove(stack, "display", "color"); // Use up some water from the cauldron! block.setWaterLevel(event.getWorld(), event.getPos(), state, level - 1); // Increase "armor cleaned" statistic! Wheee! event.getEntityPlayer().addStat(StatList.ARMOR_CLEANED); // Cancel the event, as the item / cauldron was used. event.setCanceled(true); }
public boolean func_78612_b(Block p_78612_1_, int p_78612_2_, int p_78612_3_, int p_78612_4_) { int var5 = p_78612_1_.func_71857_b(); if(var5 == -1) { return false; } else { p_78612_1_.func_71902_a(this.field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_); this.func_83018_a(p_78612_1_); return var5 == 0?this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 4?this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 31?this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 1?this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 2?this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 20?this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 11?this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 39?this.func_96445_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 5?this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 13?this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 9?this.func_78586_a((BlockRailBase)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 19?this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 23?this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 6?this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 3?this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 8?this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 7?this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 10?this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 27?this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 32?this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 12?this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 29?this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 30?this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 14?this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 15?this.func_78610_x((BlockRedstoneRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 36?this.func_94176_a((BlockRedstoneLogic)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 37?this.func_94171_a((BlockComparator)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 16?this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false):(var5 == 17?this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true):(var5 == 18?this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 21?this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 24?this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 33?this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 35?this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 25?this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 26?this.func_78567_v((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 28?this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 34?this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):(var5 == 38?this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_):false)))))))))))))))))))))))))))))))))))))); } }
@Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { GL11.glPushMatrix(); GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.5F, -0.4F, -0.5F); GL11.glTranslatef(0F, -0.1F, 0F); renderer.renderBlockCauldron((BlockCauldron)block, 0, 0, 0); GL11.glPopMatrix(); }
@Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { renderer.renderBlockCauldron((BlockCauldron)block, x, y, z); TileEntityFluidReactor te = (TileEntityFluidReactor)world.getTileEntity(x, y, z); FluidTankInfo[] tanks = te.getTankInfo(null); float productHeight = this.renderFluid(world, x, y, z, 0, 0, tanks[0].fluid, tanks[0].capacity*tanks.length, renderer); this.renderFluid(world, x, y, z, 0, productHeight, tanks[1].fluid, tanks[1].capacity*tanks.length, renderer); this.renderFluid(world, x, y, z, 0.5F, productHeight, tanks[2].fluid, tanks[2].capacity*tanks.length, renderer); return true; }
/** * Render block cauldron */ public boolean renderBlockCauldron(BlockCauldron p_147785_1_, int p_147785_2_, int p_147785_3_, int p_147785_4_) { this.renderStandardBlock(p_147785_1_, p_147785_2_, p_147785_3_, p_147785_4_); Tessellator var5 = Tessellator.instance; var5.setBrightness(p_147785_1_.getBlockBrightness(this.blockAccess, p_147785_2_, p_147785_3_, p_147785_4_)); int var6 = p_147785_1_.colorMultiplier(this.blockAccess, p_147785_2_, p_147785_3_, p_147785_4_); float var7 = (float)(var6 >> 16 & 255) / 255.0F; float var8 = (float)(var6 >> 8 & 255) / 255.0F; float var9 = (float)(var6 & 255) / 255.0F; float var11; if (EntityRenderer.anaglyphEnable) { float var15 = (var7 * 30.0F + var8 * 59.0F + var9 * 11.0F) / 100.0F; var11 = (var7 * 30.0F + var8 * 70.0F) / 100.0F; float var16 = (var7 * 30.0F + var9 * 70.0F) / 100.0F; var7 = var15; var8 = var11; var9 = var16; } var5.setColorOpaque_F(var7, var8, var9); IIcon var151 = p_147785_1_.getBlockTextureFromSide(2); var11 = 0.125F; this.renderFaceXPos(p_147785_1_, (double)((float)p_147785_2_ - 1.0F + var11), (double)p_147785_3_, (double)p_147785_4_, var151); this.renderFaceXNeg(p_147785_1_, (double)((float)p_147785_2_ + 1.0F - var11), (double)p_147785_3_, (double)p_147785_4_, var151); this.renderFaceZPos(p_147785_1_, (double)p_147785_2_, (double)p_147785_3_, (double)((float)p_147785_4_ - 1.0F + var11), var151); this.renderFaceZNeg(p_147785_1_, (double)p_147785_2_, (double)p_147785_3_, (double)((float)p_147785_4_ + 1.0F - var11), var151); IIcon var161 = BlockCauldron.func_150026_e("inner"); this.renderFaceYPos(p_147785_1_, (double)p_147785_2_, (double)((float)p_147785_3_ - 1.0F + 0.25F), (double)p_147785_4_, var161); this.renderFaceYNeg(p_147785_1_, (double)p_147785_2_, (double)((float)p_147785_3_ + 1.0F - 0.75F), (double)p_147785_4_, var161); int var13 = this.blockAccess.getBlockMetadata(p_147785_2_, p_147785_3_, p_147785_4_); if (var13 > 0) { IIcon var14 = BlockLiquid.func_149803_e("water_still"); int wc = CustomColorizer.getFluidColor(Blocks.water, this.blockAccess, p_147785_2_, p_147785_3_, p_147785_4_); float wr = (float)(wc >> 16 & 255) / 255.0F; float wg = (float)(wc >> 8 & 255) / 255.0F; float wb = (float)(wc & 255) / 255.0F; var5.setColorOpaque_F(wr, wg, wb); this.renderFaceYPos(p_147785_1_, (double)p_147785_2_, (double)((float)p_147785_3_ - 1.0F + BlockCauldron.func_150025_c(var13)), (double)p_147785_4_, var14); } return true; }
public boolean renderBlockByRenderType(Block p_147805_1_, int p_147805_2_, int p_147805_3_, int p_147805_4_) { int l = p_147805_1_.getRenderType(); if (l == -1) { return false; } else { p_147805_1_.setBlockBoundsBasedOnState(this.blockAccess, p_147805_2_, p_147805_3_, p_147805_4_); this.setRenderBoundsFromBlock(p_147805_1_); switch (l) { //regex: ' : \(l == ([\d]+) \?' replace: ';\ncase \1: return' ::: IMPORTANT: REMEMBER THIS ON FIRST line! case 0 : return this.renderStandardBlock(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 4: return this.renderBlockLiquid(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 31: return this.renderBlockLog(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 1: return this.renderCrossedSquares(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 40: return this.renderBlockDoublePlant((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 2: return this.renderBlockTorch(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 20: return this.renderBlockVine(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 11: return this.renderBlockFence((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 39: return this.renderBlockQuartz(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 5: return this.renderBlockRedstoneWire(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 13: return this.renderBlockCactus(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 9: return this.renderBlockMinecartTrack((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 19: return this.renderBlockStem(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 23: return this.renderBlockLilyPad(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 6: return this.renderBlockCrops(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 3: return this.renderBlockFire((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 8: return this.renderBlockLadder(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 7: return this.renderBlockDoor(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 10: return this.renderBlockStairs((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 27: return this.renderBlockDragonEgg((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 32: return this.renderBlockWall((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 12: return this.renderBlockLever(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 29: return this.renderBlockTripWireSource(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 30: return this.renderBlockTripWire(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 14: return this.renderBlockBed(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 15: return this.renderBlockRepeater((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 36: return this.renderBlockRedstoneDiode((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 37: return this.renderBlockRedstoneComparator((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 16: return this.renderPistonBase(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) ; case 17: return this.renderPistonExtension(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) ; case 18: return this.renderBlockPane((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 41: return this.renderBlockStainedGlassPane(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 21: return this.renderBlockFenceGate((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 24: return this.renderBlockCauldron((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 33: return this.renderBlockFlowerpot((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 35: return this.renderBlockAnvil((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 25: return this.renderBlockBrewingStand((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 26: return this.renderBlockEndPortalFrame((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 28: return this.renderBlockCocoa((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 34: return this.renderBlockBeacon((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ; case 38: return this.renderBlockHopper((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_); default: return FMLRenderAccessLibrary.renderWorldBlock(this, blockAccess, p_147805_2_, p_147805_3_, p_147805_4_, p_147805_1_, l); } } }
public boolean renderBlockCauldron(BlockCauldron p_147785_1_, int p_147785_2_, int p_147785_3_, int p_147785_4_) { this.renderStandardBlock(p_147785_1_, p_147785_2_, p_147785_3_, p_147785_4_); Tessellator tessellator = Tessellator.instance; tessellator.setBrightness(p_147785_1_.getMixedBrightnessForBlock(this.blockAccess, p_147785_2_, p_147785_3_, p_147785_4_)); int l = p_147785_1_.colorMultiplier(this.blockAccess, p_147785_2_, p_147785_3_, p_147785_4_); float f = (float)(l >> 16 & 255) / 255.0F; float f1 = (float)(l >> 8 & 255) / 255.0F; float f2 = (float)(l & 255) / 255.0F; float f4; if (EntityRenderer.anaglyphEnable) { float f3 = (f * 30.0F + f1 * 59.0F + f2 * 11.0F) / 100.0F; f4 = (f * 30.0F + f1 * 70.0F) / 100.0F; float f5 = (f * 30.0F + f2 * 70.0F) / 100.0F; f = f3; f1 = f4; f2 = f5; } tessellator.setColorOpaque_F(f, f1, f2); IIcon iicon1 = p_147785_1_.getBlockTextureFromSide(2); f4 = 0.125F; this.renderFaceXPos(p_147785_1_, (double)((float)p_147785_2_ - 1.0F + f4), (double)p_147785_3_, (double)p_147785_4_, iicon1); this.renderFaceXNeg(p_147785_1_, (double)((float)p_147785_2_ + 1.0F - f4), (double)p_147785_3_, (double)p_147785_4_, iicon1); this.renderFaceZPos(p_147785_1_, (double)p_147785_2_, (double)p_147785_3_, (double)((float)p_147785_4_ - 1.0F + f4), iicon1); this.renderFaceZNeg(p_147785_1_, (double)p_147785_2_, (double)p_147785_3_, (double)((float)p_147785_4_ + 1.0F - f4), iicon1); IIcon iicon2 = BlockCauldron.getCauldronIcon("inner"); this.renderFaceYPos(p_147785_1_, (double)p_147785_2_, (double)((float)p_147785_3_ - 1.0F + 0.25F), (double)p_147785_4_, iicon2); this.renderFaceYNeg(p_147785_1_, (double)p_147785_2_, (double)((float)p_147785_3_ + 1.0F - 0.75F), (double)p_147785_4_, iicon2); int i1 = this.blockAccess.getBlockMetadata(p_147785_2_, p_147785_3_, p_147785_4_); if (i1 > 0) { IIcon iicon = BlockLiquid.getLiquidIcon("water_still"); this.renderFaceYPos(p_147785_1_, (double)p_147785_2_, (double)((float)p_147785_3_ - 1.0F + BlockCauldron.getRenderLiquidLevel(i1)), (double)p_147785_4_, iicon); } return true; }
public boolean func_78615_a(BlockCauldron p_78615_1_, int p_78615_2_, int p_78615_3_, int p_78615_4_) { this.func_78570_q(p_78615_1_, p_78615_2_, p_78615_3_, p_78615_4_); Tessellator var5 = Tessellator.field_78398_a; var5.func_78380_c(p_78615_1_.func_71874_e(this.field_78669_a, p_78615_2_, p_78615_3_, p_78615_4_)); float var6 = 1.0F; int var7 = p_78615_1_.func_71920_b(this.field_78669_a, p_78615_2_, p_78615_3_, p_78615_4_); float var8 = (float)(var7 >> 16 & 255) / 255.0F; float var9 = (float)(var7 >> 8 & 255) / 255.0F; float var10 = (float)(var7 & 255) / 255.0F; float var12; if(EntityRenderer.field_78517_a) { float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F; var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F; float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F; var8 = var11; var9 = var12; var10 = var13; } var5.func_78386_a(var6 * var8, var6 * var9, var6 * var10); Icon var16 = p_78615_1_.func_71851_a(2); var12 = 0.125F; this.func_78605_f(p_78615_1_, (double)((float)p_78615_2_ - 1.0F + var12), (double)p_78615_3_, (double)p_78615_4_, var16); this.func_78573_e(p_78615_1_, (double)((float)p_78615_2_ + 1.0F - var12), (double)p_78615_3_, (double)p_78615_4_, var16); this.func_78622_d(p_78615_1_, (double)p_78615_2_, (double)p_78615_3_, (double)((float)p_78615_4_ - 1.0F + var12), var16); this.func_78611_c(p_78615_1_, (double)p_78615_2_, (double)p_78615_3_, (double)((float)p_78615_4_ + 1.0F - var12), var16); Icon var17 = BlockCauldron.func_94375_b("inner"); this.func_78617_b(p_78615_1_, (double)p_78615_2_, (double)((float)p_78615_3_ - 1.0F + 0.25F), (double)p_78615_4_, var17); this.func_78613_a(p_78615_1_, (double)p_78615_2_, (double)((float)p_78615_3_ + 1.0F - 0.75F), (double)p_78615_4_, var17); int var14 = this.field_78669_a.func_72805_g(p_78615_2_, p_78615_3_, p_78615_4_); if(var14 > 0) { Icon var15 = BlockFluid.func_94424_b("water_still"); if(var14 > 3) { var14 = 3; } this.func_78617_b(p_78615_1_, (double)p_78615_2_, (double)((float)p_78615_3_ - 1.0F + (6.0F + (float)var14 * 3.0F) / 16.0F), (double)p_78615_4_, var15); } return true; }
/** * Renders the block at the given coordinates using the block's rendering type */ public boolean renderBlockByRenderType(Block par1Block, int par2, int par3, int par4) { int l = par1Block.getRenderType(); if (l == -1) { return false; } else { par1Block.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4); this.setRenderBoundsFromBlock(par1Block); switch (l) { //regex: ' : \(l == ([\d]+) \?' replace: ';\ncase \1: return' ::: IMPORTANT: REMEMBER THIS ON FIRST line! case 0: return this.renderStandardBlock(par1Block, par2, par3, par4); case 4: return this.renderBlockFluids(par1Block, par2, par3, par4); case 31: return this.renderBlockLog(par1Block, par2, par3, par4); case 1: return this.renderCrossedSquares(par1Block, par2, par3, par4); case 2: return this.renderBlockTorch(par1Block, par2, par3, par4); case 20: return this.renderBlockVine(par1Block, par2, par3, par4); case 11: return this.renderBlockFence((BlockFence)par1Block, par2, par3, par4); case 39: return this.renderBlockQuartz(par1Block, par2, par3, par4); case 5: return this.renderBlockRedstoneWire(par1Block, par2, par3, par4); case 13: return this.renderBlockCactus(par1Block, par2, par3, par4); case 9: return this.renderBlockMinecartTrack((BlockRailBase)par1Block, par2, par3, par4); case 19: return this.renderBlockStem(par1Block, par2, par3, par4); case 23: return this.renderBlockLilyPad(par1Block, par2, par3, par4); case 6: return this.renderBlockCrops(par1Block, par2, par3, par4); case 3: return this.renderBlockFire((BlockFire)par1Block, par2, par3, par4); case 8: return this.renderBlockLadder(par1Block, par2, par3, par4); case 7: return this.renderBlockDoor(par1Block, par2, par3, par4); case 10: return this.renderBlockStairs((BlockStairs)par1Block, par2, par3, par4); case 27: return this.renderBlockDragonEgg((BlockDragonEgg)par1Block, par2, par3, par4); case 32: return this.renderBlockWall((BlockWall)par1Block, par2, par3, par4); case 12: return this.renderBlockLever(par1Block, par2, par3, par4); case 29: return this.renderBlockTripWireSource(par1Block, par2, par3, par4); case 30: return this.renderBlockTripWire(par1Block, par2, par3, par4); case 14: return this.renderBlockBed(par1Block, par2, par3, par4); case 15: return this.renderBlockRepeater((BlockRedstoneRepeater)par1Block, par2, par3, par4); case 36: return this.renderBlockRedstoneLogic((BlockRedstoneLogic)par1Block, par2, par3, par4); case 37: return this.renderBlockComparator((BlockComparator)par1Block, par2, par3, par4); case 16: return this.renderPistonBase(par1Block, par2, par3, par4, false); case 17: return this.renderPistonExtension(par1Block, par2, par3, par4, true); case 18: return this.renderBlockPane((BlockPane)par1Block, par2, par3, par4); case 21: return this.renderBlockFenceGate((BlockFenceGate)par1Block, par2, par3, par4); case 24: return this.renderBlockCauldron((BlockCauldron)par1Block, par2, par3, par4); case 33: return this.renderBlockFlowerpot((BlockFlowerPot)par1Block, par2, par3, par4); case 35: return this.renderBlockAnvil((BlockAnvil)par1Block, par2, par3, par4); case 25: return this.renderBlockBrewingStand((BlockBrewingStand)par1Block, par2, par3, par4); case 26: return this.renderBlockEndPortalFrame((BlockEndPortalFrame)par1Block, par2, par3, par4); case 28: return this.renderBlockCocoa((BlockCocoa)par1Block, par2, par3, par4); case 34: return this.renderBlockBeacon((BlockBeacon)par1Block, par2, par3, par4); case 38: return this.renderBlockHopper((BlockHopper)par1Block, par2, par3, par4); default: return FMLRenderAccessLibrary.renderWorldBlock(this, blockAccess, par2, par3, par4, par1Block, l); } } }
/** * Render block cauldron */ public boolean renderBlockCauldron(BlockCauldron par1BlockCauldron, int par2, int par3, int par4) { this.renderStandardBlock(par1BlockCauldron, par2, par3, par4); Tessellator tessellator = Tessellator.instance; tessellator.setBrightness(par1BlockCauldron.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); float f = 1.0F; int l = par1BlockCauldron.colorMultiplier(this.blockAccess, par2, par3, par4); float f1 = (float)(l >> 16 & 255) / 255.0F; float f2 = (float)(l >> 8 & 255) / 255.0F; float f3 = (float)(l & 255) / 255.0F; float f4; if (EntityRenderer.anaglyphEnable) { float f5 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; f4 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; float f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; f1 = f5; f2 = f4; f3 = f6; } tessellator.setColorOpaque_F(f * f1, f * f2, f * f3); Icon icon = par1BlockCauldron.getBlockTextureFromSide(2); f4 = 0.125F; this.renderFaceXPos(par1BlockCauldron, (double)((float)par2 - 1.0F + f4), (double)par3, (double)par4, icon); this.renderFaceXNeg(par1BlockCauldron, (double)((float)par2 + 1.0F - f4), (double)par3, (double)par4, icon); this.renderFaceZPos(par1BlockCauldron, (double)par2, (double)par3, (double)((float)par4 - 1.0F + f4), icon); this.renderFaceZNeg(par1BlockCauldron, (double)par2, (double)par3, (double)((float)par4 + 1.0F - f4), icon); Icon icon1 = BlockCauldron.getCauldronIcon("inner"); this.renderFaceYPos(par1BlockCauldron, (double)par2, (double)((float)par3 - 1.0F + 0.25F), (double)par4, icon1); this.renderFaceYNeg(par1BlockCauldron, (double)par2, (double)((float)par3 + 1.0F - 0.75F), (double)par4, icon1); int i1 = this.blockAccess.getBlockMetadata(par2, par3, par4); if (i1 > 0) { Icon icon2 = BlockFluid.getFluidIcon("water_still"); if (i1 > 3) { i1 = 3; } this.renderFaceYPos(par1BlockCauldron, (double)par2, (double)((float)par3 - 1.0F + (6.0F + (float)i1 * 3.0F) / 16.0F), (double)par4, icon2); } return true; }
@Override public boolean renderWorldBlock(IBlockAccess blockAccess, int x, int y, int z, Block par1BlockCauldron, int modelId, RenderBlocks renderer) { renderer.renderBlockCauldron((BlockCauldron) par1BlockCauldron, x, y, z); Tessellator tessellator = Tessellator.instance; PotionCauldron pc = (PotionCauldron) par1BlockCauldron; TileEntityCauldron c = (TileEntityCauldron) blockAccess.getBlockTileEntity(x, y, z); int l = c.readNBTData(x, y, z, "color"); int i1 = c.readNBTData(x, y, z, "height"); if (i1 > 3) { i1 = 3; } float f = (float) (l >> 16 & 255) / 255.0F; float f1 = (float) (l >> 8 & 255) / 255.0F; float f2 = (float) (l & 255) / 255.0F; float f9 = 1.0F; float f4 = 1.0F; if (i1 > 0) { Icon icon2 = pc.water; if (i1 > 3) { i1 = 3; } tessellator.setColorOpaque_F(f4 * f9 * f, f4 * f9 * f1, f4 * f9 * f2); renderer.renderFaceYPos(par1BlockCauldron, (double) x, (double) ((float) y - 1.0F + (6.0F + (float) i1 * 3.0F) / 16.0F), (double) z, icon2); } return true; }