Posted January 28, 20169 yr So, trying to make some pipes. Well it works great! You just can't go west. If you go west, 1000 becomes some random negative value. Hmmm. @Override public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { if (worldObj.getTileEntity(xCoord + 1, yCoord, zCoord) instanceof TileEntityLiquid && from != ForgeDirection.EAST && worldObj.getTileEntity(xCoord + 1, yCoord, zCoord) != null) { ((TileEntityLiquid) worldObj.getTileEntity(xCoord + 1, yCoord, zCoord)).fill(ForgeDirection.WEST, resource.copy(), doFill); } if (worldObj.getTileEntity(xCoord - 1, yCoord, zCoord) instanceof TileEntityLiquid && from != ForgeDirection.WEST && worldObj.getTileEntity(xCoord - 1, yCoord, zCoord) != null) { ((TileEntityLiquid) worldObj.getTileEntity(xCoord - 1, yCoord, zCoord)).fill(ForgeDirection.EAST, resource.copy(), doFill); } if (worldObj.getTileEntity(xCoord, yCoord + 1, zCoord) instanceof TileEntityLiquid && from != ForgeDirection.UP && worldObj.getTileEntity(xCoord, yCoord + 1, zCoord) != null) { ((TileEntityLiquid) worldObj.getTileEntity(xCoord, yCoord + 1, zCoord)).fill(ForgeDirection.DOWN, resource.copy(), doFill); } if (worldObj.getTileEntity(xCoord, yCoord - 1, zCoord) instanceof TileEntityLiquid && from != ForgeDirection.DOWN && worldObj.getTileEntity(xCoord, yCoord - 1, zCoord) != null) { ((TileEntityLiquid) worldObj.getTileEntity(xCoord, yCoord - 1, zCoord)).fill(ForgeDirection.UP, resource.copy(), doFill); } if (worldObj.getTileEntity(xCoord, yCoord, zCoord + 1) instanceof TileEntityLiquid && from != ForgeDirection.SOUTH && worldObj.getTileEntity(xCoord, yCoord, zCoord + 1) != null) { ((TileEntityLiquid) worldObj.getTileEntity(xCoord, yCoord, zCoord + 1)).fill(ForgeDirection.NORTH, resource.copy(), doFill); } if (worldObj.getTileEntity(xCoord, yCoord, zCoord - 1) instanceof TileEntityLiquid && from != ForgeDirection.NORTH && worldObj.getTileEntity(xCoord, yCoord, zCoord - 1) != null) { ((TileEntityLiquid) worldObj.getTileEntity(xCoord, yCoord, zCoord - 1)).fill(ForgeDirection.SOUTH, resource.copy(), doFill); } return tank.fill(resource, doFill); } clarification, each pipe has it's own tank, but they are all symbolic to the "network tank." Basically, if theres 1000 buckets in the network, each pipe has 1000 buckets in it's tank. Fill and drain commands are networked across all pipes. Draw 1 mB from 1 pipe, all pipes go down 1 mB. Any help? [shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]
January 28, 20169 yr How do you know '1000 becomes some random negative value'? Show us how you debugged that, it may help us. Also, instanceof already does null checks, so you can remove those getTileEntity() != null calls. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
January 28, 20169 yr Author The pipe block has this code: @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par5, float par6, float par7, float par8) { if(!world.isRemote) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityLiquid) { player.addChatMessage(new ChatComponentText("Network is holding " + ((TileEntityLiquid)tile).getTankInfo(ForgeDirection.UNKNOWN)[0].fluid.amount)); return true; } return false; } return false; } [shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]
January 28, 20169 yr Author [CHAT] Network is holding -1540044424 [16:21:19] [Client thread/INFO]: [CHAT] Network is holding -1540044424 [16:21:19] [Client thread/INFO]: [CHAT] Network is holding -403279352 [16:21:20] [Client thread/INFO]: [CHAT] Network is holding -171803008 [shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]
January 28, 20169 yr Author I ended up replacing the code with the east code and changed a few values. It's fixed now. [shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]
January 28, 20169 yr Btw you code doesn't need to be as complex. The ForgeDirection class has XYZ offset values and it also has a getOpposite() property. The following would work on any side sent (You may want to check for the UNKNOWN side): ((TileEntityLiquid) worldObj.getTileEntity(xCoord + from.offsetX, yCoord + from.offsetY, zCoord + from.offsetZ)).fill(from.getOpposite(), resource.copy(), doFill); -Stu MCI Craft (Curse) | MCI Craft (Website)
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.