001 package net.minecraft.world.gen.feature; 002 003 import java.util.Random; 004 import net.minecraft.block.Block; 005 import net.minecraft.world.World; 006 007 public class WorldGenLiquids extends WorldGenerator 008 { 009 /** The ID of the liquid block used in this liquid generator. */ 010 private int liquidBlockId; 011 012 public WorldGenLiquids(int par1) 013 { 014 this.liquidBlockId = par1; 015 } 016 017 public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) 018 { 019 if (par1World.getBlockId(par3, par4 + 1, par5) != Block.stone.blockID) 020 { 021 return false; 022 } 023 else if (par1World.getBlockId(par3, par4 - 1, par5) != Block.stone.blockID) 024 { 025 return false; 026 } 027 else if (par1World.getBlockId(par3, par4, par5) != 0 && par1World.getBlockId(par3, par4, par5) != Block.stone.blockID) 028 { 029 return false; 030 } 031 else 032 { 033 int var6 = 0; 034 035 if (par1World.getBlockId(par3 - 1, par4, par5) == Block.stone.blockID) 036 { 037 ++var6; 038 } 039 040 if (par1World.getBlockId(par3 + 1, par4, par5) == Block.stone.blockID) 041 { 042 ++var6; 043 } 044 045 if (par1World.getBlockId(par3, par4, par5 - 1) == Block.stone.blockID) 046 { 047 ++var6; 048 } 049 050 if (par1World.getBlockId(par3, par4, par5 + 1) == Block.stone.blockID) 051 { 052 ++var6; 053 } 054 055 int var7 = 0; 056 057 if (par1World.isAirBlock(par3 - 1, par4, par5)) 058 { 059 ++var7; 060 } 061 062 if (par1World.isAirBlock(par3 + 1, par4, par5)) 063 { 064 ++var7; 065 } 066 067 if (par1World.isAirBlock(par3, par4, par5 - 1)) 068 { 069 ++var7; 070 } 071 072 if (par1World.isAirBlock(par3, par4, par5 + 1)) 073 { 074 ++var7; 075 } 076 077 if (var6 == 3 && var7 == 1) 078 { 079 par1World.setBlockWithNotify(par3, par4, par5, this.liquidBlockId); 080 par1World.scheduledUpdatesAreImmediate = true; 081 Block.blocksList[this.liquidBlockId].updateTick(par1World, par3, par4, par5, par2Random); 082 par1World.scheduledUpdatesAreImmediate = false; 083 } 084 085 return true; 086 } 087 } 088 }