summaryrefslogtreecommitdiff
path: root/ihl/i_hate_liquids/BlockDynamicLiquidPlus.java
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
committerFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
commit05c78126859231a68e199dc34613689bd0978e2f (patch)
tree050bea104a18c72905095d29f31bec2935a27a24 /ihl/i_hate_liquids/BlockDynamicLiquidPlus.java
Initial commit
Diffstat (limited to 'ihl/i_hate_liquids/BlockDynamicLiquidPlus.java')
-rw-r--r--ihl/i_hate_liquids/BlockDynamicLiquidPlus.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/ihl/i_hate_liquids/BlockDynamicLiquidPlus.java b/ihl/i_hate_liquids/BlockDynamicLiquidPlus.java
new file mode 100644
index 0000000..7b7a8d7
--- /dev/null
+++ b/ihl/i_hate_liquids/BlockDynamicLiquidPlus.java
@@ -0,0 +1,81 @@
+package ihl.i_hate_liquids;
+
+import java.util.Random;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import ihl.IHLModInfo;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockLiquid;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+public class BlockDynamicLiquidPlus extends BlockLiquid{
+
+ public BlockDynamicLiquidPlus(Material material)
+ {
+ super(material);
+ this.enableStats = false;
+ //this.setCreativeTab(CreativeTabs.tabMisc);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister)
+ {
+ this.blockIcon = par1IconRegister.registerIcon(IHLModInfo.MODID+":metalShards");
+ }
+
+ @Override
+ public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
+ return this.blockIcon;
+ }
+
+ @Override
+ public void updateTick(World world, int x, int y, int z, Random p_149674_5_)
+ {
+ if(!world.isRemote)
+ {
+ int meta = world.getBlockMetadata(x, y, z);
+ if(meta>=7)
+ {
+ world.setBlockToAir(x,y,z);
+ return;
+ }
+ int meta2=16;
+ int fd;
+ Block block;
+ int xz[] = {0,-1,0,1,0};
+ for(int i=0;i<=3;i++)
+ {
+ fd=getFlowDecay(world,x+xz[i], y, z+xz[i+1]);
+ if(fd!=-1 && meta2>fd)
+ {
+ meta2=fd;
+ }
+ }
+ if(meta2==16)
+ {
+ world.setBlockMetadataWithNotify(x,y,z,meta+1,3);
+ }
+ else if(meta2>=6)
+ {
+ world.setBlockToAir(x,y,z);
+ return;
+ }
+ else
+ {
+ world.setBlockMetadataWithNotify(x,y,z,meta2+1,3);
+ }
+ world.scheduleBlockUpdate(x, y, z, this,20);
+ }
+ }
+
+ private int getFlowDecay(World par1World, int par2, int par3, int par4)
+ {
+ Block block = par1World.getBlock(par2, par3, par4);
+ return block.getMaterial().isLiquid() ? par1World.getBlockMetadata(par2, par3, par4) : -1;
+ }
+}