Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

jx759000

Members
  • Joined

  • Last visited

Everything posted by jx759000

  1. I got it to work. I had to call an instance and modify my tileentity. Thanks for all the help.
  2. Why was WorldObj Null? I'm having the exact same problem.
  3. When I right click on the block on the client(and server), nothing happens. Here's some updated code. Block DFurnace client // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) braces deadcode //blockIndexInTexture; = Regular/Side in the situation //if(l == 1) = Top texture //if(l == 0) = Bottom Texture //if(i == 3) = Front Texture/Off //blockIndexInTexture + 16; = Active Texture/On //blockIndexInTexture - 1; = Off Texture/Off //l = BlockID package net.minecraft.src; import java.util.Random; import net.minecraft.src.forge.*; public class BlockDFurnace extends BlockContainer { protected BlockDFurnace(int i, boolean flag) { super(i, Material.rock); dFurnaceRand = new Random(); isActive = flag; blockIndexInTexture = 45; } public int idDropped(int i, Random random) { return mod_DFurnace.DFurnace.blockID; } public void onBlockAdded(World world, int i, int j, int k) { super.onBlockAdded(world, i, j, k); setDefaultDirection(world, i, j, k); } private void setDefaultDirection(World par1World, int par2, int par3, int par4) { if (!par1World.isRemote) { int var5 = par1World.getBlockId(par2, par3, par4 - 1); int var6 = par1World.getBlockId(par2, par3, par4 + 1); int var7 = par1World.getBlockId(par2 - 1, par3, par4); int var8 = par1World.getBlockId(par2 + 1, par3, par4); byte var9 = 3; if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) { var9 = 3; } if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) { var9 = 2; } if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) { var9 = 5; } if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) { var9 = 4; } par1World.setBlockMetadataWithNotify(par2, par3, par4, var9); } } public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { if (par5 == 1) { return mod_DFurnace.dFurnaceSide; } else if (par5 == 0) { return mod_DFurnace.dFurnaceSide; } else { int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); return par5 != var6 ? mod_DFurnace.dFurnaceSide : (this.isActive ? mod_DFurnace.dFurnaceFrontOn : mod_DFurnace.dFurnaceFront); } } public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { if (this.isActive) { int var6 = par1World.getBlockMetadata(par2, par3, par4); float var7 = (float)par2 + 0.5F; float var8 = (float)par3 + 0.0F + par5Random.nextFloat() * 6.0F / 16.0F; float var9 = (float)par4 + 0.5F; float var10 = 0.52F; float var11 = par5Random.nextFloat() * 0.6F - 0.3F; if (var6 == 4) { par1World.spawnParticle("smoke", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); } else if (var6 == 5) { par1World.spawnParticle("smoke", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); } else if (var6 == 2) { par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D); } else if (var6 == 3) { par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D); } } } public int getBlockTextureFromSide(int par1) { return par1 == 1 ? mod_DFurnace.dFurnaceSide : (par1 == 0 ? mod_DFurnace.dFurnaceSide : (par1 == 3 ? mod_DFurnace.dFurnaceFront : mod_DFurnace.dFurnaceSide)); } public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, mod_DFurnace mod) { if (world.isRemote) { return true; } else { entityplayer.openGui(mod, 1, world, i, j, k); System.out.println("Block Activated"); } return true; } public static void updateDFurnaceBlockState(boolean flag, World world, int i, int j, int k) { int l = world.getBlockMetadata(i, j, k); TileEntity tileentity = world.getBlockTileEntity(i, j, k); keepDFurnaceInventory = true; if(flag) { world.setBlockWithNotify(i, j, k, mod_DFurnace.DFurnaceOn.blockID); } else { world.setBlockWithNotify(i, j, k, mod_DFurnace.DFurnace.blockID); } keepDFurnaceInventory = false; world.setBlockMetadataWithNotify(i, j, k, l); if(tileentity != null) { tileentity.validate(); world.setBlockTileEntity(i, j, k, tileentity); } } public TileEntity getBlockEntity() { return new TileEntityDFurnace(); } public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving) { int l = MathHelper.floor_double((double)((entityliving.rotationYaw * 4F) / 360F) + 0.5D) & 3; if(l == 0) { world.setBlockMetadataWithNotify(i, j, k, 2); } if(l == 1) { world.setBlockMetadataWithNotify(i, j, k, 5); } if(l == 2) { world.setBlockMetadataWithNotify(i, j, k, 3); } if(l == 3) { world.setBlockMetadataWithNotify(i, j, k, 4); } } public void onBlockRemoval(World par1World, int par2, int par3, int par4) { if (!keepDFurnaceInventory) { TileEntityDFurnace var5 = (TileEntityDFurnace)par1World.getBlockTileEntity(par2, par3, par4); if (var5 != null) { for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6) { ItemStack var7 = var5.getStackInSlot(var6); if (var7 != null) { float var8 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; float var9 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; float var10 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; while (var7.stackSize > 0) { int var11 = this.dFurnaceRand.nextInt(21) + 10; if (var11 > var7.stackSize) { var11 = var7.stackSize; } var7.stackSize -= var11; EntityItem var12 = new EntityItem(par1World, (double)((float)par2 + var8), (double)((float)par3 + var9), (double)((float)par4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage())); if (var7.hasTagCompound()) { var12.item.setTagCompound((NBTTagCompound)var7.getTagCompound().copy()); } float var13 = 0.05F; var12.motionX = (double)((float)this.dFurnaceRand.nextGaussian() * var13); var12.motionY = (double)((float)this.dFurnaceRand.nextGaussian() * var13 + 0.2F); var12.motionZ = (double)((float)this.dFurnaceRand.nextGaussian() * var13); par1World.spawnEntityInWorld(var12); } } } } } super.onBlockRemoval(par1World, par2, par3, par4); } private Random dFurnaceRand; private final boolean isActive; private static boolean keepDFurnaceInventory = false; } mod_DFurnace client package net.minecraft.src; import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.src.forge.*; public class mod_DFurnace extends NetworkMod implements IGuiHandler{ public static Block DFurnace; public static Block DFurnaceOn; public static int dFurnaceSide = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceSide.png"); public static int dFurnaceFront = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceOff.png"); public static int dFurnaceFrontOn = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceOn.png"); public mod_DFurnace(){ ModLoader.registerBlock(DFurnace); ModLoader.addName(DFurnace, "Diamond Furnace"); ModLoader.registerTileEntity(net.minecraft.src.TileEntityDFurnace.class, "DFurnace"); ModLoader.addRecipe(new ItemStack(DFurnace, 1), new Object[]{"XXX","X X","XXX", Character.valueOf('X'), Block.blockDiamond}); ModLoader.registerBlock(DFurnaceOn); ModLoader.addName(DFurnaceOn, "Diamond Furnace On"); ModLoader.registerTileEntity(net.minecraft.src.TileEntityDFurnace.class, "DFurnaceOn"); ModLoader.setInGUIHook(this, true, true); ModLoader.setInGameHook(this, true, true); //MinecraftForge.setGuiHandler(this, this); } { DFurnace = new BlockDFurnace(246, false).setHardness(0F).setResistance(0F).setStepSound(Block.soundMetalFootstep).setBlockName("Diamond Furnace"); DFurnaceOn = new BlockDFurnace(247, true).setHardness(0F).setResistance(0F).setStepSound(Block.soundMetalFootstep).setBlockName("Diamond Furnace On"); } public String getVersion() { return null; } public void load() { MinecraftForge.setGuiHandler(this, this); } @Override public boolean onTickInGame(float f, Minecraft minecraft) { if(minecraft.currentScreen == null) { lastGuiOpen = null; } return true; } @Override public boolean onTickInGUI(float f, Minecraft minecraft, GuiScreen guiscreen) { if((guiscreen instanceof GuiContainerCreative) && !(lastGuiOpen instanceof GuiContainerCreative) && !minecraft.theWorld.isRemote) { Container container = ((GuiContainer)guiscreen).inventorySlots; List list = ((ContainerCreative)container).itemList; int i = 0; list.add(new ItemStack(DFurnace, 1, i)); } lastGuiOpen = guiscreen; return true; } private static GuiScreen lastGuiOpen; @Override public Object getGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tileEntity = player.worldObj.getBlockTileEntity(x, y, z); if (ID == 1){ return new GuiDFurnace(player.inventory, new TileEntityDFurnace()); } return true; } } EDIT: I got the gui's to work, but this returns null public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer) { return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; } Does anyone know why this happens
  4. I'm trying to make a custom furnace using Minecraft Forge. I've followed the fml tutorial for server, but nothing works. Here's some code mod_DFurnace client package net.minecraft.src; import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.src.forge.*; public class mod_DFurnace extends BaseMod /*implements IGuiHandler*/{ public static Block DFurnace; public static Block DFurnaceOn; public static int dFurnaceSide = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceSide.png"); public static int dFurnaceFront = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceOff.png"); public static int dFurnaceFrontOn = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceOn.png"); public mod_DFurnace(){ ModLoader.registerBlock(DFurnace); ModLoader.addName(DFurnace, "Diamond Furnace"); ModLoader.registerTileEntity(net.minecraft.src.TileEntityDFurnace.class, "DFurnace"); ModLoader.addRecipe(new ItemStack(DFurnace, 1), new Object[]{"XXX","X X","XXX", Character.valueOf('X'), Block.blockDiamond}); ModLoader.registerBlock(DFurnaceOn); ModLoader.addName(DFurnaceOn, "Diamond Furnace On"); ModLoader.registerTileEntity(net.minecraft.src.TileEntityDFurnace.class, "DFurnaceOn"); ModLoader.setInGUIHook(this, true, true); ModLoader.setInGameHook(this, true, true); //MinecraftForge.setGuiHandler(this, this); } { DFurnace = new BlockDFurnace(246, false).setHardness(0F).setResistance(0F).setStepSound(Block.soundMetalFootstep).setBlockName("Diamond Furnace"); DFurnaceOn = new BlockDFurnace(247, true).setHardness(0F).setResistance(0F).setStepSound(Block.soundMetalFootstep).setBlockName("Diamond Furnace On"); } public String getVersion() { return null; } public void load() { } @Override public boolean onTickInGame(float f, Minecraft minecraft) { if(minecraft.currentScreen == null) { lastGuiOpen = null; } return true; } @Override public boolean onTickInGUI(float f, Minecraft minecraft, GuiScreen guiscreen) { if((guiscreen instanceof GuiContainerCreative) && !(lastGuiOpen instanceof GuiContainerCreative) && !minecraft.theWorld.isRemote) { Container container = ((GuiContainer)guiscreen).inventorySlots; List list = ((ContainerCreative)container).itemList; int i = 0; list.add(new ItemStack(DFurnace, 1, i)); } lastGuiOpen = guiscreen; return true; } private static GuiScreen lastGuiOpen; /* public Object getGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntityDFurnace tileEntity = (TileEntityDFurnace)world.getBlockTileEntity(x, y, z); if (tileEntity != null) { return new GuiDFurnace(player.inventory, ((TileEntityDFurnace)tileEntity)); } return null; } */ } BlockDFurnace Client // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) braces deadcode //blockIndexInTexture; = Regular/Side in the situation //if(l == 1) = Top texture //if(l == 0) = Bottom Texture //if(i == 3) = Front Texture/Off //blockIndexInTexture + 16; = Active Texture/On //blockIndexInTexture - 1; = Off Texture/Off //l = BlockID package net.minecraft.src; import java.util.Random; public class BlockDFurnace extends BlockContainer { protected BlockDFurnace(int i, boolean flag) { super(i, Material.rock); dFurnaceRand = new Random(); isActive = flag; blockIndexInTexture = 45; } public int idDropped(int i, Random random) { return mod_DFurnace.DFurnace.blockID; } public void onBlockAdded(World world, int i, int j, int k) { super.onBlockAdded(world, i, j, k); setDefaultDirection(world, i, j, k); } private void setDefaultDirection(World par1World, int par2, int par3, int par4) { if (!par1World.isRemote) { int var5 = par1World.getBlockId(par2, par3, par4 - 1); int var6 = par1World.getBlockId(par2, par3, par4 + 1); int var7 = par1World.getBlockId(par2 - 1, par3, par4); int var8 = par1World.getBlockId(par2 + 1, par3, par4); byte var9 = 3; if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) { var9 = 3; } if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) { var9 = 2; } if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) { var9 = 5; } if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) { var9 = 4; } par1World.setBlockMetadataWithNotify(par2, par3, par4, var9); } } public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { if (par5 == 1) { return mod_DFurnace.dFurnaceSide; } else if (par5 == 0) { return mod_DFurnace.dFurnaceSide; } else { int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); return par5 != var6 ? mod_DFurnace.dFurnaceSide : (this.isActive ? mod_DFurnace.dFurnaceFrontOn : mod_DFurnace.dFurnaceFront); } } public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { if (this.isActive) { int var6 = par1World.getBlockMetadata(par2, par3, par4); float var7 = (float)par2 + 0.5F; float var8 = (float)par3 + 0.0F + par5Random.nextFloat() * 6.0F / 16.0F; float var9 = (float)par4 + 0.5F; float var10 = 0.52F; float var11 = par5Random.nextFloat() * 0.6F - 0.3F; if (var6 == 4) { par1World.spawnParticle("smoke", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); } else if (var6 == 5) { par1World.spawnParticle("smoke", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); } else if (var6 == 2) { par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D); } else if (var6 == 3) { par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D); } } } public int getBlockTextureFromSide(int par1) { return par1 == 1 ? mod_DFurnace.dFurnaceSide : (par1 == 0 ? mod_DFurnace.dFurnaceSide : (par1 == 3 ? mod_DFurnace.dFurnaceFront : mod_DFurnace.dFurnaceSide)); } public boolean blockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, mod_DFurnace mod, int x, int y, int z) { if (par1World.isRemote) { return true; } else { TileEntityDFurnace var6 = (TileEntityDFurnace)par1World.getBlockTileEntity(par2, par3, par4); if (var6 != null) { par5EntityPlayer.openGui(mod, 123, par1World, x, y, z); } return true; } } public static void updateDFurnaceBlockState(boolean flag, World world, int i, int j, int k) { int l = world.getBlockMetadata(i, j, k); TileEntity tileentity = world.getBlockTileEntity(i, j, k); keepDFurnaceInventory = true; if(flag) { world.setBlockWithNotify(i, j, k, mod_DFurnace.DFurnaceOn.blockID); } else { world.setBlockWithNotify(i, j, k, mod_DFurnace.DFurnace.blockID); } keepDFurnaceInventory = false; world.setBlockMetadataWithNotify(i, j, k, l); if(tileentity != null) { tileentity.validate(); world.setBlockTileEntity(i, j, k, tileentity); } } public TileEntity getBlockEntity() { return new TileEntityDFurnace(); } public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving) { int l = MathHelper.floor_double((double)((entityliving.rotationYaw * 4F) / 360F) + 0.5D) & 3; if(l == 0) { world.setBlockMetadataWithNotify(i, j, k, 2); } if(l == 1) { world.setBlockMetadataWithNotify(i, j, k, 5); } if(l == 2) { world.setBlockMetadataWithNotify(i, j, k, 3); } if(l == 3) { world.setBlockMetadataWithNotify(i, j, k, 4); } } public void onBlockRemoval(World par1World, int par2, int par3, int par4) { if (!keepDFurnaceInventory) { TileEntityDFurnace var5 = (TileEntityDFurnace)par1World.getBlockTileEntity(par2, par3, par4); if (var5 != null) { for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6) { ItemStack var7 = var5.getStackInSlot(var6); if (var7 != null) { float var8 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; float var9 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; float var10 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; while (var7.stackSize > 0) { int var11 = this.dFurnaceRand.nextInt(21) + 10; if (var11 > var7.stackSize) { var11 = var7.stackSize; } var7.stackSize -= var11; EntityItem var12 = new EntityItem(par1World, (double)((float)par2 + var8), (double)((float)par3 + var9), (double)((float)par4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage())); if (var7.hasTagCompound()) { var12.item.setTagCompound((NBTTagCompound)var7.getTagCompound().copy()); } float var13 = 0.05F; var12.motionX = (double)((float)this.dFurnaceRand.nextGaussian() * var13); var12.motionY = (double)((float)this.dFurnaceRand.nextGaussian() * var13 + 0.2F); var12.motionZ = (double)((float)this.dFurnaceRand.nextGaussian() * var13); par1World.spawnEntityInWorld(var12); } } } } } super.onBlockRemoval(par1World, par2, par3, par4); } private Random dFurnaceRand; private final boolean isActive; private static boolean keepDFurnaceInventory = false; } mod_DFurnace server package net.minecraft.src; import net.minecraft.src.forge.*; public class mod_DFurnace extends BaseMod implements IGuiHandler{ public static IGuiHandler handler; public static Block DFurnace; public static Block DFurnaceOn; public static int dFurnaceSide = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceSide.png"); public static int dFurnaceFront = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceOff.png"); public static int dFurnaceFrontOn = ModLoader.addOverride("/terrain.png", "/dfurnace/DFurnaceOn.png"); public mod_DFurnace(){ ModLoader.registerBlock(DFurnace); ModLoader.addName(DFurnace, "Diamond Furnace"); ModLoader.registerTileEntity(net.minecraft.src.TileEntityDFurnace.class, "DFurnace"); ModLoader.addRecipe(new ItemStack(DFurnace, 1), new Object[]{"XXX","X X","XXX", Character.valueOf('X'), Block.blockDiamond}); ModLoader.registerBlock(DFurnaceOn); ModLoader.addName(DFurnaceOn, "Diamond Furnace On"); ModLoader.registerTileEntity(net.minecraft.src.TileEntityDFurnace.class, "DFurnaceOn"); MinecraftForge.setGuiHandler(this, handler); } { DFurnace = new BlockDFurnace(246, false).setHardness(0F).setResistance(0F).setStepSound(Block.soundMetalFootstep).setBlockName("Diamond Furnace"); DFurnaceOn = new BlockDFurnace(247, true).setHardness(0F).setResistance(0F).setStepSound(Block.soundMetalFootstep).setBlockName("Diamond Furnace On"); } public String getVersion() { return null; } public void load() { } //public static ContainerDFurnace container; @Override public Object getGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tileEntity = world.getBlockTileEntity(x, y, z); if (tileEntity != null) { return new ContainerDFurnace(player.inventory, ((TileEntityDFurnace)tileEntity)); } return null; } } BlockDFurnace Server // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) braces deadcode //blockIndexInTexture; = Regular/Side in the situation //if(l == 1) = Top texture //if(l == 0) = Bottom Texture //if(i == 3) = Front Texture/Off //blockIndexInTexture + 16; = Active Texture/On //blockIndexInTexture - 1; = Off Texture/Off //l = BlockID package net.minecraft.src; import java.util.Random; import net.minecraft.src.forge.IGuiHandler; import net.minecraft.src.forge.MinecraftForge; public class BlockDFurnace extends BlockContainer { protected BlockDFurnace(int i, boolean flag) { super(i, Material.rock); dFurnaceRand = new Random(); isActive = flag; blockIndexInTexture = 45; } public int idDropped(int i, Random random) { return mod_DFurnace.DFurnace.blockID; } public void onBlockAdded(World world, int i, int j, int k) { super.onBlockAdded(world, i, j, k); setDefaultDirection(world, i, j, k); } private void setDefaultDirection(World par1World, int par2, int par3, int par4) { if (!par1World.isRemote) { int var5 = par1World.getBlockId(par2, par3, par4 - 1); int var6 = par1World.getBlockId(par2, par3, par4 + 1); int var7 = par1World.getBlockId(par2 - 1, par3, par4); int var8 = par1World.getBlockId(par2 + 1, par3, par4); byte var9 = 3; if (Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) { var9 = 3; } if (Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) { var9 = 2; } if (Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) { var9 = 5; } if (Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) { var9 = 4; } par1World.setBlockMetadataWithNotify(par2, par3, par4, var9); } } public int getBlockTexture(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { if (par5 == 1) { return mod_DFurnace.dFurnaceSide; } else if (par5 == 0) { return mod_DFurnace.dFurnaceSide; } else { int var6 = par1IBlockAccess.getBlockMetadata(par2, par3, par4); return par5 != var6 ? mod_DFurnace.dFurnaceSide : (this.isActive ? mod_DFurnace.dFurnaceFrontOn : mod_DFurnace.dFurnaceFront); } } public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { if (this.isActive) { int var6 = par1World.getBlockMetadata(par2, par3, par4); float var7 = (float)par2 + 0.5F; float var8 = (float)par3 + 0.0F + par5Random.nextFloat() * 6.0F / 16.0F; float var9 = (float)par4 + 0.5F; float var10 = 0.52F; float var11 = par5Random.nextFloat() * 0.6F - 0.3F; if (var6 == 4) { par1World.spawnParticle("smoke", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 - var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); } else if (var6 == 5) { par1World.spawnParticle("smoke", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var10), (double)var8, (double)(var9 + var11), 0.0D, 0.0D, 0.0D); } else if (var6 == 2) { par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 - var10), 0.0D, 0.0D, 0.0D); } else if (var6 == 3) { par1World.spawnParticle("smoke", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D); par1World.spawnParticle("flame", (double)(var7 + var11), (double)var8, (double)(var9 + var10), 0.0D, 0.0D, 0.0D); } } } public int getBlockTextureFromSide(int par1) { return par1 == 1 ? mod_DFurnace.dFurnaceSide : (par1 == 0 ? mod_DFurnace.dFurnaceSide : (par1 == 3 ? mod_DFurnace.dFurnaceFront : mod_DFurnace.dFurnaceSide)); } public boolean blockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer,IGuiHandler handler, mod_DFurnace mod, int x, int y, int z, TileEntityFurnace tileentityfurnace) { if (par1World.isRemote) { return true; } else { TileEntityDFurnace var6 = (TileEntityDFurnace)par1World.getBlockTileEntity(par2, par3, par4); if (var6 != null) { par5EntityPlayer.openGui(mod, 123, par1World, x, y, z); } return true; } } public static void updateDFurnaceBlockState(boolean flag, World world, int i, int j, int k) { int l = world.getBlockMetadata(i, j, k); TileEntity tileentity = world.getBlockTileEntity(i, j, k); keepDFurnaceInventory = true; if(flag) { world.setBlockWithNotify(i, j, k, mod_DFurnace.DFurnaceOn.blockID); } else { world.setBlockWithNotify(i, j, k, mod_DFurnace.DFurnace.blockID); } keepDFurnaceInventory = false; world.setBlockMetadataWithNotify(i, j, k, l); if(tileentity != null) { tileentity.validate(); world.setBlockTileEntity(i, j, k, tileentity); } } public TileEntity getBlockEntity() { return new TileEntityDFurnace(); } public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving) { int l = MathHelper.floor_double((double)((entityliving.rotationYaw * 4F) / 360F) + 0.5D) & 3; if(l == 0) { world.setBlockMetadataWithNotify(i, j, k, 2); } if(l == 1) { world.setBlockMetadataWithNotify(i, j, k, 5); } if(l == 2) { world.setBlockMetadataWithNotify(i, j, k, 3); } if(l == 3) { world.setBlockMetadataWithNotify(i, j, k, 4); } } public void onBlockRemoval(World par1World, int par2, int par3, int par4) { if (!keepDFurnaceInventory) { TileEntityDFurnace var5 = (TileEntityDFurnace)par1World.getBlockTileEntity(par2, par3, par4); if (var5 != null) { for (int var6 = 0; var6 < var5.getSizeInventory(); ++var6) { ItemStack var7 = var5.getStackInSlot(var6); if (var7 != null) { float var8 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; float var9 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; float var10 = this.dFurnaceRand.nextFloat() * 0.8F + 0.1F; while (var7.stackSize > 0) { int var11 = this.dFurnaceRand.nextInt(21) + 10; if (var11 > var7.stackSize) { var11 = var7.stackSize; } var7.stackSize -= var11; EntityItem var12 = new EntityItem(par1World, (double)((float)par2 + var8), (double)((float)par3 + var9), (double)((float)par4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage())); if (var7.hasTagCompound()) { var12.item.setTagCompound((NBTTagCompound)var7.getTagCompound().copy()); } float var13 = 0.05F; var12.motionX = (double)((float)this.dFurnaceRand.nextGaussian() * var13); var12.motionY = (double)((float)this.dFurnaceRand.nextGaussian() * var13 + 0.2F); var12.motionZ = (double)((float)this.dFurnaceRand.nextGaussian() * var13); par1World.spawnEntityInWorld(var12); } } } } } super.onBlockRemoval(par1World, par2, par3, par4); } private Random dFurnaceRand; private final boolean isActive; private static boolean keepDFurnaceInventory = false; }

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.