From 05c78126859231a68e199dc34613689bd0978e2f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Mon, 11 Apr 2016 19:44:54 +0300 Subject: Initial commit --- ihl/i_hate_liquids/BlockDynamicLiquidPlus.java | 81 ++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 ihl/i_hate_liquids/BlockDynamicLiquidPlus.java (limited to 'ihl/i_hate_liquids/BlockDynamicLiquidPlus.java') 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; + } +} -- cgit v1.2.3