Redirect a lot of functions through WorldProvider for Mystcraft, allowing them to be overriden by the provider.
This commit is contained in:
parent
6b78512a48
commit
cf3bc6a9d9
4 changed files with 435 additions and 31 deletions
|
@ -23,7 +23,19 @@
|
||||||
/**
|
/**
|
||||||
* boolean; if true updates scheduled by scheduleBlockUpdate happen immediately
|
* boolean; if true updates scheduled by scheduleBlockUpdate happen immediately
|
||||||
*/
|
*/
|
||||||
@@ -167,6 +181,7 @@
|
@@ -132,6 +146,11 @@
|
||||||
|
* Gets the biome for a given set of x/z coordinates
|
||||||
|
*/
|
||||||
|
public BiomeGenBase getBiomeGenForCoords(int par1, int par2)
|
||||||
|
+ {
|
||||||
|
+ return provider.getBiomeGenForCoords(par1, par2);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public BiomeGenBase getBiomeGenForCoordsBody(int par1, int par2)
|
||||||
|
{
|
||||||
|
if (this.blockExists(par1, 0, par2))
|
||||||
|
{
|
||||||
|
@@ -167,6 +186,7 @@
|
||||||
this.chunkProvider = this.createChunkProvider();
|
this.chunkProvider = this.createChunkProvider();
|
||||||
this.calculateInitialSkylight();
|
this.calculateInitialSkylight();
|
||||||
this.calculateInitialWeather();
|
this.calculateInitialWeather();
|
||||||
|
@ -31,7 +43,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public World(ISaveHandler par1ISaveHandler, String par2Str, WorldSettings par3WorldSettings, WorldProvider par4WorldProvider, Profiler par5Profiler)
|
public World(ISaveHandler par1ISaveHandler, String par2Str, WorldSettings par3WorldSettings, WorldProvider par4WorldProvider, Profiler par5Profiler)
|
||||||
@@ -213,6 +228,7 @@
|
@@ -213,6 +233,7 @@
|
||||||
|
|
||||||
this.calculateInitialSkylight();
|
this.calculateInitialSkylight();
|
||||||
this.calculateInitialWeather();
|
this.calculateInitialWeather();
|
||||||
|
@ -39,7 +51,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -269,7 +285,8 @@
|
@@ -269,7 +290,8 @@
|
||||||
*/
|
*/
|
||||||
public boolean isAirBlock(int par1, int par2, int par3)
|
public boolean isAirBlock(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +61,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -278,7 +295,8 @@
|
@@ -278,7 +300,8 @@
|
||||||
public boolean blockHasTileEntity(int par1, int par2, int par3)
|
public boolean blockHasTileEntity(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
int var4 = this.getBlockId(par1, par2, par3);
|
int var4 = this.getBlockId(par1, par2, par3);
|
||||||
|
@ -59,7 +71,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1012,7 +1030,7 @@
|
@@ -980,7 +1003,7 @@
|
||||||
|
*/
|
||||||
|
public boolean isDaytime()
|
||||||
|
{
|
||||||
|
- return this.skylightSubtracted < 4;
|
||||||
|
+ return provider.isDaytime();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -1012,7 +1035,7 @@
|
||||||
int var12 = this.getBlockMetadata(var8, var9, var10);
|
int var12 = this.getBlockMetadata(var8, var9, var10);
|
||||||
Block var13 = Block.blocksList[var11];
|
Block var13 = Block.blocksList[var11];
|
||||||
|
|
||||||
|
@ -68,7 +89,7 @@
|
||||||
{
|
{
|
||||||
MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3);
|
MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3);
|
||||||
|
|
||||||
@@ -1212,6 +1230,12 @@
|
@@ -1212,6 +1235,12 @@
|
||||||
*/
|
*/
|
||||||
public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4)
|
public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4)
|
||||||
{
|
{
|
||||||
|
@ -81,7 +102,7 @@
|
||||||
if (par1Entity != null && par2Str != null)
|
if (par1Entity != null && par2Str != null)
|
||||||
{
|
{
|
||||||
Iterator var5 = this.worldAccesses.iterator();
|
Iterator var5 = this.worldAccesses.iterator();
|
||||||
@@ -1312,6 +1336,11 @@
|
@@ -1312,6 +1341,11 @@
|
||||||
EntityPlayer var5 = (EntityPlayer)par1Entity;
|
EntityPlayer var5 = (EntityPlayer)par1Entity;
|
||||||
this.playerEntities.add(var5);
|
this.playerEntities.add(var5);
|
||||||
this.updateAllPlayersSleepingFlag();
|
this.updateAllPlayersSleepingFlag();
|
||||||
|
@ -93,7 +114,33 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity);
|
this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity);
|
||||||
@@ -1736,7 +1765,7 @@
|
@@ -1563,6 +1597,12 @@
|
||||||
|
* Calculates the color for the skybox
|
||||||
|
*/
|
||||||
|
public Vec3 getSkyColor(Entity par1Entity, float par2)
|
||||||
|
+ {
|
||||||
|
+ return provider.getSkyColor(par1Entity, par2);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @SideOnly(Side.CLIENT)
|
||||||
|
+ public Vec3 getSkyColorBody(Entity par1Entity, float par2)
|
||||||
|
{
|
||||||
|
float var3 = this.getCelestialAngle(par2);
|
||||||
|
float var4 = MathHelper.cos(var3 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
|
||||||
|
@@ -1658,6 +1698,12 @@
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public Vec3 drawClouds(float par1)
|
||||||
|
{
|
||||||
|
+ return provider.drawClouds(par1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @SideOnly(Side.CLIENT)
|
||||||
|
+ public Vec3 drawCloudsBody(float par1)
|
||||||
|
+ {
|
||||||
|
float var2 = this.getCelestialAngle(par1);
|
||||||
|
float var3 = MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;
|
||||||
|
|
||||||
|
@@ -1736,7 +1782,7 @@
|
||||||
{
|
{
|
||||||
int var5 = var3.getBlockID(par1, var4, par2);
|
int var5 = var3.getBlockID(par1, var4, par2);
|
||||||
|
|
||||||
|
@ -102,7 +149,20 @@
|
||||||
{
|
{
|
||||||
return var4 + 1;
|
return var4 + 1;
|
||||||
}
|
}
|
||||||
@@ -1893,7 +1922,7 @@
|
@@ -1751,6 +1797,12 @@
|
||||||
|
* How bright are stars in the sky
|
||||||
|
*/
|
||||||
|
public float getStarBrightness(float par1)
|
||||||
|
+ {
|
||||||
|
+ return provider.getStarBrightness(par1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @SideOnly(Side.CLIENT)
|
||||||
|
+ public float getStarBrightnessBody(float par1)
|
||||||
|
{
|
||||||
|
float var2 = this.getCelestialAngle(par1);
|
||||||
|
float var3 = 1.0F - (MathHelper.cos(var2 * (float)Math.PI * 2.0F) * 2.0F + 0.25F);
|
||||||
|
@@ -1893,7 +1945,7 @@
|
||||||
|
|
||||||
if (var8 != null)
|
if (var8 != null)
|
||||||
{
|
{
|
||||||
|
@ -111,7 +171,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1903,6 +1932,10 @@
|
@@ -1903,6 +1955,10 @@
|
||||||
|
|
||||||
if (!this.entityRemoval.isEmpty())
|
if (!this.entityRemoval.isEmpty())
|
||||||
{
|
{
|
||||||
|
@ -122,7 +182,7 @@
|
||||||
this.loadedTileEntityList.removeAll(this.entityRemoval);
|
this.loadedTileEntityList.removeAll(this.entityRemoval);
|
||||||
this.entityRemoval.clear();
|
this.entityRemoval.clear();
|
||||||
}
|
}
|
||||||
@@ -1923,7 +1956,9 @@
|
@@ -1923,7 +1979,9 @@
|
||||||
{
|
{
|
||||||
this.loadedTileEntityList.add(var9);
|
this.loadedTileEntityList.add(var9);
|
||||||
}
|
}
|
||||||
|
@ -133,7 +193,7 @@
|
||||||
if (this.chunkExists(var9.xCoord >> 4, var9.zCoord >> 4))
|
if (this.chunkExists(var9.xCoord >> 4, var9.zCoord >> 4))
|
||||||
{
|
{
|
||||||
Chunk var10 = this.getChunkFromChunkCoords(var9.xCoord >> 4, var9.zCoord >> 4);
|
Chunk var10 = this.getChunkFromChunkCoords(var9.xCoord >> 4, var9.zCoord >> 4);
|
||||||
@@ -1933,8 +1968,6 @@
|
@@ -1933,8 +1991,6 @@
|
||||||
var10.setChunkBlockTileEntity(var9.xCoord & 15, var9.yCoord, var9.zCoord & 15, var9);
|
var10.setChunkBlockTileEntity(var9.xCoord & 15, var9.yCoord, var9.zCoord & 15, var9);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -142,7 +202,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1947,13 +1980,13 @@
|
@@ -1947,13 +2003,13 @@
|
||||||
|
|
||||||
public void addTileEntity(Collection par1Collection)
|
public void addTileEntity(Collection par1Collection)
|
||||||
{
|
{
|
||||||
|
@ -163,7 +223,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1974,8 +2007,14 @@
|
@@ -1974,8 +2030,14 @@
|
||||||
int var3 = MathHelper.floor_double(par1Entity.posX);
|
int var3 = MathHelper.floor_double(par1Entity.posX);
|
||||||
int var4 = MathHelper.floor_double(par1Entity.posZ);
|
int var4 = MathHelper.floor_double(par1Entity.posZ);
|
||||||
byte var5 = 32;
|
byte var5 = 32;
|
||||||
|
@ -180,7 +240,7 @@
|
||||||
{
|
{
|
||||||
par1Entity.lastTickPosX = par1Entity.posX;
|
par1Entity.lastTickPosX = par1Entity.posX;
|
||||||
par1Entity.lastTickPosY = par1Entity.posY;
|
par1Entity.lastTickPosY = par1Entity.posY;
|
||||||
@@ -2210,6 +2249,14 @@
|
@@ -2210,6 +2272,14 @@
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -195,7 +255,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2516,25 +2563,21 @@
|
@@ -2516,25 +2586,21 @@
|
||||||
*/
|
*/
|
||||||
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
|
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
|
||||||
{
|
{
|
||||||
|
@ -236,7 +296,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2543,27 +2586,10 @@
|
@@ -2543,27 +2609,10 @@
|
||||||
*/
|
*/
|
||||||
public void removeBlockTileEntity(int par1, int par2, int par3)
|
public void removeBlockTileEntity(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -268,7 +328,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2589,7 +2615,8 @@
|
@@ -2589,7 +2638,8 @@
|
||||||
*/
|
*/
|
||||||
public boolean isBlockNormalCube(int par1, int par2, int par3)
|
public boolean isBlockNormalCube(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -278,7 +338,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2597,8 +2624,7 @@
|
@@ -2597,8 +2647,7 @@
|
||||||
*/
|
*/
|
||||||
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
|
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -288,7 +348,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2614,7 +2640,7 @@
|
@@ -2614,7 +2663,7 @@
|
||||||
if (var5 != null && !var5.isEmpty())
|
if (var5 != null && !var5.isEmpty())
|
||||||
{
|
{
|
||||||
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
|
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
|
||||||
|
@ -297,7 +357,74 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3041,7 +3067,7 @@
|
@@ -2645,8 +2694,7 @@
|
||||||
|
*/
|
||||||
|
public void setAllowedSpawnTypes(boolean par1, boolean par2)
|
||||||
|
{
|
||||||
|
- this.spawnHostileMobs = par1;
|
||||||
|
- this.spawnPeacefulMobs = par2;
|
||||||
|
+ provider.setAllowedSpawnTypes(par1, par2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -2662,6 +2710,11 @@
|
||||||
|
*/
|
||||||
|
private void calculateInitialWeather()
|
||||||
|
{
|
||||||
|
+ provider.calculateInitialWeather();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void calculateInitialWeatherBody()
|
||||||
|
+ {
|
||||||
|
if (this.worldInfo.isRaining())
|
||||||
|
{
|
||||||
|
this.rainingStrength = 1.0F;
|
||||||
|
@@ -2677,6 +2730,11 @@
|
||||||
|
* Updates all weather states.
|
||||||
|
*/
|
||||||
|
protected void updateWeather()
|
||||||
|
+ {
|
||||||
|
+ provider.updateWeather();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void updateWeatherBody()
|
||||||
|
{
|
||||||
|
if (!this.provider.hasNoSky)
|
||||||
|
{
|
||||||
|
@@ -2779,7 +2837,7 @@
|
||||||
|
|
||||||
|
public void toggleRain()
|
||||||
|
{
|
||||||
|
- this.worldInfo.setRainTime(1);
|
||||||
|
+ provider.toggleRain();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setActivePlayerChunksAndCheckLight()
|
||||||
|
@@ -2891,6 +2949,11 @@
|
||||||
|
*/
|
||||||
|
public boolean canBlockFreeze(int par1, int par2, int par3, boolean par4)
|
||||||
|
{
|
||||||
|
+ return provider.canBlockFreeze(par1, par2, par3, par4);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canBlockFreezeBody(int par1, int par2, int par3, boolean par4)
|
||||||
|
+ {
|
||||||
|
BiomeGenBase var5 = this.getBiomeGenForCoords(par1, par3);
|
||||||
|
float var6 = var5.getFloatTemperature();
|
||||||
|
|
||||||
|
@@ -2948,6 +3011,11 @@
|
||||||
|
* Tests whether or not snow can be placed at a given location
|
||||||
|
*/
|
||||||
|
public boolean canSnowAt(int par1, int par2, int par3)
|
||||||
|
+ {
|
||||||
|
+ return provider.canSnowAt(par1, par2, par3);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canSnowAtBody(int par1, int par2, int par3)
|
||||||
|
{
|
||||||
|
BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3);
|
||||||
|
float var5 = var4.getFloatTemperature();
|
||||||
|
@@ -3041,7 +3109,7 @@
|
||||||
|
|
||||||
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
|
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
|
||||||
{
|
{
|
||||||
|
@ -306,7 +433,7 @@
|
||||||
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
|
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
|
||||||
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
|
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
|
||||||
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
|
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
|
||||||
@@ -3309,10 +3335,10 @@
|
@@ -3309,10 +3377,10 @@
|
||||||
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
|
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
|
||||||
{
|
{
|
||||||
this.entitiesWithinAABBExcludingEntity.clear();
|
this.entitiesWithinAABBExcludingEntity.clear();
|
||||||
|
@ -321,7 +448,7 @@
|
||||||
|
|
||||||
for (int var7 = var3; var7 <= var4; ++var7)
|
for (int var7 = var3; var7 <= var4; ++var7)
|
||||||
{
|
{
|
||||||
@@ -3333,10 +3359,10 @@
|
@@ -3333,10 +3401,10 @@
|
||||||
*/
|
*/
|
||||||
public List getEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB)
|
public List getEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB)
|
||||||
{
|
{
|
||||||
|
@ -336,7 +463,7 @@
|
||||||
ArrayList var7 = new ArrayList();
|
ArrayList var7 = new ArrayList();
|
||||||
|
|
||||||
for (int var8 = var3; var8 <= var4; ++var8)
|
for (int var8 = var3; var8 <= var4; ++var8)
|
||||||
@@ -3425,11 +3451,14 @@
|
@@ -3425,11 +3493,14 @@
|
||||||
*/
|
*/
|
||||||
public void addLoadedEntities(List par1List)
|
public void addLoadedEntities(List par1List)
|
||||||
{
|
{
|
||||||
|
@ -354,7 +481,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3466,7 +3495,10 @@
|
@@ -3466,7 +3537,10 @@
|
||||||
{
|
{
|
||||||
var9 = null;
|
var9 = null;
|
||||||
}
|
}
|
||||||
|
@ -366,7 +493,47 @@
|
||||||
return par1 > 0 && var9 == null && var10.canPlaceBlockOnSide(this, par2, par3, par4, par6);
|
return par1 > 0 && var9 == null && var10.canPlaceBlockOnSide(this, par2, par3, par4, par6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3707,7 +3739,10 @@
|
@@ -3656,7 +3730,7 @@
|
||||||
|
*/
|
||||||
|
public void setWorldTime(long par1)
|
||||||
|
{
|
||||||
|
- this.worldInfo.setWorldTime(par1);
|
||||||
|
+ provider.setWorldTime(par1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -3664,12 +3738,12 @@
|
||||||
|
*/
|
||||||
|
public long getSeed()
|
||||||
|
{
|
||||||
|
- return this.worldInfo.getSeed();
|
||||||
|
+ return provider.getSeed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getWorldTime()
|
||||||
|
{
|
||||||
|
- return this.worldInfo.getWorldTime();
|
||||||
|
+ return provider.getWorldTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -3677,13 +3751,13 @@
|
||||||
|
*/
|
||||||
|
public ChunkCoordinates getSpawnPoint()
|
||||||
|
{
|
||||||
|
- return new ChunkCoordinates(this.worldInfo.getSpawnX(), this.worldInfo.getSpawnY(), this.worldInfo.getSpawnZ());
|
||||||
|
+ return provider.getSpawnPoint();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void setSpawnLocation(int par1, int par2, int par3)
|
||||||
|
{
|
||||||
|
- this.worldInfo.setSpawnPosition(par1, par2, par3);
|
||||||
|
+ provider.setSpawnPoint(par1, par2, par3);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
@@ -3707,7 +3781,10 @@
|
||||||
|
|
||||||
if (!this.loadedEntityList.contains(par1Entity))
|
if (!this.loadedEntityList.contains(par1Entity))
|
||||||
{
|
{
|
||||||
|
@ -378,7 +545,56 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3964,4 +3999,65 @@
|
@@ -3715,6 +3792,11 @@
|
||||||
|
* Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here.
|
||||||
|
*/
|
||||||
|
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
|
||||||
|
+ {
|
||||||
|
+ return provider.canMineBlock(par1EntityPlayer, par2, par3, par4);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canMineBlockBody(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@@ -3827,8 +3909,7 @@
|
||||||
|
*/
|
||||||
|
public boolean isBlockHighHumidity(int par1, int par2, int par3)
|
||||||
|
{
|
||||||
|
- BiomeGenBase var4 = this.getBiomeGenForCoords(par1, par3);
|
||||||
|
- return var4.isHighHumidity();
|
||||||
|
+ return provider.isBlockHighHumidity(par1, par2, par3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -3882,7 +3963,7 @@
|
||||||
|
*/
|
||||||
|
public int getHeight()
|
||||||
|
{
|
||||||
|
- return 256;
|
||||||
|
+ return provider.getHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -3890,7 +3971,7 @@
|
||||||
|
*/
|
||||||
|
public int getActualHeight()
|
||||||
|
{
|
||||||
|
- return this.provider.hasNoSky ? 128 : 256;
|
||||||
|
+ return provider.getActualHeight();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -3936,7 +4017,7 @@
|
||||||
|
*/
|
||||||
|
public double getHorizon()
|
||||||
|
{
|
||||||
|
- return this.worldInfo.getTerrainType().getHorizon(this);
|
||||||
|
+ return provider.getHorizon();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -3964,4 +4045,65 @@
|
||||||
var7.destroyBlockPartially(par1, par2, par3, par4, par5);
|
var7.destroyBlockPartially(par1, par2, par3, par4, par5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
@@ -254,4 +258,110 @@
|
@@ -254,4 +258,241 @@
|
||||||
* Returns the dimension's name, e.g. "The End", "Nether", or "Overworld".
|
* Returns the dimension's name, e.g. "The End", "Nether", or "Overworld".
|
||||||
*/
|
*/
|
||||||
public abstract String getDimensionName();
|
public abstract String getDimensionName();
|
||||||
|
@ -135,5 +135,136 @@
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ return var5;
|
+ return var5;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ /*======================================= Start Moved From World =========================================*/
|
||||||
|
+
|
||||||
|
+ public BiomeGenBase getBiomeGenForCoords(int x, int z)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.getBiomeGenForCoordsBody(x, z);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean isDaytime()
|
||||||
|
+ {
|
||||||
|
+ return worldObj.skylightSubtracted < 4;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @SideOnly(Side.CLIENT)
|
||||||
|
+ public Vec3 getSkyColor(Entity cameraEntity, float partialTicks)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.getSkyColorBody(cameraEntity, partialTicks);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @SideOnly(Side.CLIENT)
|
||||||
|
+ public Vec3 drawClouds(float partialTicks)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.drawCloudsBody(partialTicks);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @SideOnly(Side.CLIENT)
|
||||||
|
+ public float getStarBrightness(float par1)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.getStarBrightnessBody(par1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setAllowedSpawnTypes(boolean allowHostile, boolean allowPeaceful)
|
||||||
|
+ {
|
||||||
|
+ worldObj.spawnHostileMobs = allowHostile;
|
||||||
|
+ worldObj.spawnPeacefulMobs = allowPeaceful;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void calculateInitialWeather()
|
||||||
|
+ {
|
||||||
|
+ worldObj.calculateInitialWeatherBody();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void updateWeather()
|
||||||
|
+ {
|
||||||
|
+ worldObj.updateWeatherBody();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void toggleRain()
|
||||||
|
+ {
|
||||||
|
+ worldObj.worldInfo.setRainTime(1);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canBlockFreeze(int x, int y, int z, boolean byWater)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.canBlockFreezeBody(x, y, z, byWater);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canSnowAt(int x, int y, int z)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.canSnowAtBody(x, y, z);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setWorldTime(long time)
|
||||||
|
+ {
|
||||||
|
+ worldObj.worldInfo.setWorldTime(time);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public long getSeed()
|
||||||
|
+ {
|
||||||
|
+ return worldObj.worldInfo.getSeed();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public long getWorldTime()
|
||||||
|
+ {
|
||||||
|
+ return worldObj.worldInfo.getWorldTime();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public ChunkCoordinates getSpawnPoint()
|
||||||
|
+ {
|
||||||
|
+ WorldInfo info = worldObj.worldInfo;
|
||||||
|
+ return new ChunkCoordinates(info.getSpawnX(), info.getSpawnY(), info.getSpawnZ());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void setSpawnPoint(int x, int y, int z)
|
||||||
|
+ {
|
||||||
|
+ worldObj.worldInfo.setSpawnPosition(x, y, z);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canMineBlock(EntityPlayer player, int x, int y, int z)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.canMineBlockBody(player, x, y, z);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean isBlockHighHumidity(int x, int y, int z)
|
||||||
|
+ {
|
||||||
|
+ return worldObj.getBiomeGenForCoords(x, z).isHighHumidity();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public int getHeight()
|
||||||
|
+ {
|
||||||
|
+ return 256;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public int getActualHeight()
|
||||||
|
+ {
|
||||||
|
+ return hasNoSky ? 128 : 256;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public double getHorizon()
|
||||||
|
+ {
|
||||||
|
+ return worldObj.worldInfo.getTerrainType().getHorizon(worldObj);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public void resetRainAndThunder()
|
||||||
|
+ {
|
||||||
|
+ worldObj.worldInfo.setRainTime(0);
|
||||||
|
+ worldObj.worldInfo.setRaining(false);
|
||||||
|
+ worldObj.worldInfo.setThunderTime(0);
|
||||||
|
+ worldObj.worldInfo.setThundering(false);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canDoLightning(Chunk chunk)
|
||||||
|
+ {
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canDoRainSnowIce(Chunk chunk)
|
||||||
|
+ {
|
||||||
|
+ return true;
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,37 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -559,15 +563,27 @@
|
@@ -179,10 +183,7 @@
|
||||||
|
|
||||||
|
private void resetRainAndThunder()
|
||||||
|
{
|
||||||
|
- this.worldInfo.setRainTime(0);
|
||||||
|
- this.worldInfo.setRaining(false);
|
||||||
|
- this.worldInfo.setThunderTime(0);
|
||||||
|
- this.worldInfo.setThundering(false);
|
||||||
|
+ provider.resetRainAndThunder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean areAllPlayersAsleep()
|
||||||
|
@@ -270,7 +271,7 @@
|
||||||
|
int var10;
|
||||||
|
int var11;
|
||||||
|
|
||||||
|
- if (this.rand.nextInt(100000) == 0 && this.isRaining() && this.isThundering())
|
||||||
|
+ if (provider.canDoLightning(var7) && this.rand.nextInt(100000) == 0 && this.isRaining() && this.isThundering())
|
||||||
|
{
|
||||||
|
this.updateLCG = this.updateLCG * 3 + 1013904223;
|
||||||
|
var8 = this.updateLCG >> 2;
|
||||||
|
@@ -288,7 +289,7 @@
|
||||||
|
this.theProfiler.endStartSection("iceandsnow");
|
||||||
|
int var13;
|
||||||
|
|
||||||
|
- if (this.rand.nextInt(16) == 0)
|
||||||
|
+ if (provider.canDoRainSnowIce(var7) && this.rand.nextInt(16) == 0)
|
||||||
|
{
|
||||||
|
this.updateLCG = this.updateLCG * 3 + 1013904223;
|
||||||
|
var8 = this.updateLCG >> 2;
|
||||||
|
@@ -559,15 +560,27 @@
|
||||||
public List getAllTileEntityInBox(int par1, int par2, int par3, int par4, int par5, int par6)
|
public List getAllTileEntityInBox(int par1, int par2, int par3, int par4, int par5, int par6)
|
||||||
{
|
{
|
||||||
ArrayList var7 = new ArrayList();
|
ArrayList var7 = new ArrayList();
|
||||||
|
@ -55,7 +85,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -587,7 +603,7 @@
|
@@ -578,6 +591,11 @@
|
||||||
|
* Called when checking if a certain block can be mined or not. The 'spawn safe zone' check is located here.
|
||||||
|
*/
|
||||||
|
public boolean canMineBlock(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
|
||||||
|
+ {
|
||||||
|
+ return super.canMineBlock(par1EntityPlayer, par2, par3, par4);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public boolean canMineBlockBody(EntityPlayer par1EntityPlayer, int par2, int par3, int par4)
|
||||||
|
{
|
||||||
|
int var5 = MathHelper.abs_int(par2 - this.worldInfo.getSpawnX());
|
||||||
|
int var6 = MathHelper.abs_int(par4 - this.worldInfo.getSpawnZ());
|
||||||
|
@@ -587,7 +605,7 @@
|
||||||
var6 = var5;
|
var6 = var5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +106,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void initialize(WorldSettings par1WorldSettings)
|
protected void initialize(WorldSettings par1WorldSettings)
|
||||||
@@ -713,6 +729,7 @@
|
@@ -713,6 +731,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.chunkProvider.saveChunks(par1, par2IProgressUpdate);
|
this.chunkProvider.saveChunks(par1, par2IProgressUpdate);
|
||||||
|
|
15
patches/minecraft/net/minecraft/src/WorldClient.java.patch
Normal file
15
patches/minecraft/net/minecraft/src/WorldClient.java.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
--- ../src_base/minecraft/net/minecraft/src/WorldClient.java
|
||||||
|
+++ ../src_work/minecraft/net/minecraft/src/WorldClient.java
|
||||||
|
@@ -265,6 +265,12 @@
|
||||||
|
*/
|
||||||
|
protected void updateWeather()
|
||||||
|
{
|
||||||
|
+ super.updateWeather();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void updateWeatherBody()
|
||||||
|
+ {
|
||||||
|
if (!this.provider.hasNoSky)
|
||||||
|
{
|
||||||
|
if (this.lastLightningBolt > 0)
|
Loading…
Reference in a new issue