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