1
0
Fork 0
kcx-1614
Sergey Shatunov 2016-02-07 14:50:00 +07:00
parent 962807f835
commit 3b244893d9
1 changed files with 39 additions and 14 deletions

View File

@ -15,15 +15,40 @@
public class BiomeDecorator
{
public World currentWorld;
@@ -61,6 +69,7 @@
@@ -61,6 +69,8 @@
public int clayPerChunk;
public int bigMushroomsPerChunk;
public boolean generateLakes;
+ private final List<Chunk> chunksToUnload = new ArrayList<Chunk>(); // Spigot
+ private final java.util.concurrent.locks.Lock decorateLock = new java.util.concurrent.locks.ReentrantLock();
private static final String __OBFID = "CL_00000164";
public BiomeDecorator()
@@ -194,7 +203,7 @@
@@ -92,12 +102,8 @@
public void decorateChunk(World p_150512_1_, Random p_150512_2_, BiomeGenBase p_150512_3_, int p_150512_4_, int p_150512_5_)
{
- if (this.currentWorld != null)
- {
- throw new RuntimeException("Already decorating!!");
- }
- else
- {
+ decorateLock.lock();
+ try {
this.currentWorld = p_150512_1_;
this.randomGenerator = p_150512_2_;
this.chunk_X = p_150512_4_;
@@ -105,6 +111,8 @@
this.genDecorations(p_150512_3_);
this.currentWorld = null;
this.randomGenerator = null;
+ } finally {
+ decorateLock.unlock();
}
}
@@ -194,7 +202,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -32,7 +57,7 @@
WorldGenerator worldgenerator = p_150513_1_.getRandomWorldGenForGrass(this.randomGenerator);
worldgenerator.generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
@@ -204,7 +213,7 @@
@@ -204,7 +212,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -41,7 +66,7 @@
(new WorldGenDeadBush(Blocks.deadbush)).generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
@@ -214,7 +223,7 @@
@@ -214,7 +222,7 @@
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -50,7 +75,7 @@
{
;
}
@@ -229,7 +238,7 @@
@@ -229,7 +237,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -59,7 +84,7 @@
this.mushroomBrownGen.generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
@@ -237,7 +246,7 @@
@@ -237,7 +245,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -68,7 +93,7 @@
this.mushroomRedGen.generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
}
@@ -246,7 +255,7 @@
@@ -246,7 +254,7 @@
{
j = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
k = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -77,7 +102,7 @@
this.mushroomBrownGen.generate(this.currentWorld, this.randomGenerator, j, l, k);
}
@@ -254,7 +263,7 @@
@@ -254,7 +262,7 @@
{
j = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
k = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -86,7 +111,7 @@
this.mushroomRedGen.generate(this.currentWorld, this.randomGenerator, j, l, k);
}
@@ -263,7 +272,7 @@
@@ -263,7 +271,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -95,7 +120,7 @@
this.reedGen.generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
@@ -271,7 +280,7 @@
@@ -271,7 +279,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -104,7 +129,7 @@
this.reedGen.generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
@@ -280,7 +289,7 @@
@@ -280,7 +288,7 @@
{
j = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
k = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -113,7 +138,7 @@
(new WorldGenPumpkin()).generate(this.currentWorld, this.randomGenerator, j, l, k);
}
@@ -289,7 +298,7 @@
@@ -289,7 +297,7 @@
{
k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
l = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
@ -122,7 +147,7 @@
this.cactusGen.generate(this.currentWorld, this.randomGenerator, k, i1, l);
}
@@ -313,6 +322,7 @@
@@ -313,6 +321,7 @@
}
}
@ -130,7 +155,7 @@
MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z));
}
@@ -360,6 +370,31 @@
@@ -360,6 +369,31 @@
MinecraftForge.ORE_GEN_BUS.post(new OreGenEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z));
}