Dev imports
This commit is contained in:
52
src/main/java/net/minecraft/server/BiomeCache.java
Normal file
52
src/main/java/net/minecraft/server/BiomeCache.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class BiomeCache {
|
||||
|
||||
private final WorldChunkManager a;
|
||||
private final LoadingCache<ChunkCoordIntPair, BiomeCache.a> b;
|
||||
|
||||
public BiomeCache(WorldChunkManager worldchunkmanager) {
|
||||
this.b = CacheBuilder.newBuilder().expireAfterAccess(30000L, TimeUnit.MILLISECONDS).build(new CacheLoader<ChunkCoordIntPair, BiomeCache.a>() {
|
||||
public BiomeCache.a load(ChunkCoordIntPair chunkcoordintpair) throws Exception {
|
||||
return BiomeCache.this.new a(chunkcoordintpair.x, chunkcoordintpair.z);
|
||||
}
|
||||
});
|
||||
this.a = worldchunkmanager;
|
||||
}
|
||||
|
||||
public BiomeCache.a a(int i, int j) {
|
||||
i >>= 4;
|
||||
j >>= 4;
|
||||
return (BiomeCache.a) this.b.getUnchecked(new ChunkCoordIntPair(i, j));
|
||||
}
|
||||
|
||||
public BiomeBase a(int i, int j, BiomeBase biomebase) {
|
||||
BiomeBase biomebase1 = this.a(i, j).a(i, j);
|
||||
|
||||
return biomebase1 == null ? biomebase : biomebase1;
|
||||
}
|
||||
|
||||
public void a() {}
|
||||
|
||||
public BiomeBase[] b(int i, int j) {
|
||||
return this.a(i, j).b;
|
||||
}
|
||||
|
||||
public class a {
|
||||
|
||||
private final BiomeBase[] b;
|
||||
|
||||
public a(int i, int j) {
|
||||
this.b = BiomeCache.this.a.a(i << 4, j << 4, 16, 16, false);
|
||||
}
|
||||
|
||||
public BiomeBase a(int i, int j) {
|
||||
return this.b[i & 15 | (j & 15) << 4];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.google.common.collect.ContiguousSet;
|
||||
import com.google.common.collect.DiscreteDomain;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Range;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class WorldGenDecoratorSpike extends WorldGenDecorator<WorldGenFeatureDecoratorEmptyConfiguration> {
|
||||
|
||||
private static final LoadingCache<Long, WorldGenEnder.Spike[]> a = CacheBuilder.newBuilder().expireAfterWrite(5L, TimeUnit.MINUTES).build(new WorldGenDecoratorSpike.a());
|
||||
|
||||
public WorldGenDecoratorSpike() {}
|
||||
|
||||
public <C extends WorldGenFeatureConfiguration> boolean a(GeneratorAccess generatoraccess, ChunkGenerator<? extends GeneratorSettings> chunkgenerator, Random random, BlockPosition blockposition, WorldGenFeatureDecoratorEmptyConfiguration worldgenfeaturedecoratoremptyconfiguration, WorldGenerator<C> worldgenerator, C c0) {
|
||||
WorldGenEnder.Spike[] aworldgenender_spike = a(generatoraccess);
|
||||
boolean flag = false;
|
||||
WorldGenEnder.Spike[] aworldgenender_spike1 = aworldgenender_spike;
|
||||
int i = aworldgenender_spike.length;
|
||||
|
||||
for (int j = 0; j < i; ++j) {
|
||||
WorldGenEnder.Spike worldgenender_spike = aworldgenender_spike1[j];
|
||||
|
||||
if (worldgenender_spike.a(blockposition)) {
|
||||
((WorldGenEnder) worldgenerator).a(worldgenender_spike);
|
||||
flag |= ((WorldGenEnder) worldgenerator).a(generatoraccess, chunkgenerator, random, new BlockPosition(worldgenender_spike.a(), 45, worldgenender_spike.b()), WorldGenFeatureConfiguration.e);
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
public static WorldGenEnder.Spike[] a(GeneratorAccess generatoraccess) {
|
||||
Random random = new Random(generatoraccess.getSeed());
|
||||
long i = random.nextLong() & 65535L;
|
||||
|
||||
return (WorldGenEnder.Spike[]) WorldGenDecoratorSpike.a.getUnchecked(i);
|
||||
}
|
||||
|
||||
static class a extends CacheLoader<Long, WorldGenEnder.Spike[]> {
|
||||
|
||||
private a() {}
|
||||
|
||||
public WorldGenEnder.Spike[] load(Long olong) throws Exception {
|
||||
List<Integer> list = Lists.newArrayList(ContiguousSet.create(Range.closedOpen(0, 10), DiscreteDomain.integers()));
|
||||
|
||||
Collections.shuffle(list, new Random(olong));
|
||||
WorldGenEnder.Spike[] aworldgenender_spike = new WorldGenEnder.Spike[10];
|
||||
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
int j = (int) (42.0D * Math.cos(2.0D * (-3.141592653589793D + 0.3141592653589793D * (double) i)));
|
||||
int k = (int) (42.0D * Math.sin(2.0D * (-3.141592653589793D + 0.3141592653589793D * (double) i)));
|
||||
int l = (Integer) list.get(i);
|
||||
int i1 = 2 + l / 3;
|
||||
int j1 = 76 + l * 3;
|
||||
boolean flag = l == 1 || l == 2;
|
||||
|
||||
aworldgenender_spike[i] = new WorldGenEnder.Spike(j, k, i1, j1, flag);
|
||||
}
|
||||
|
||||
return aworldgenender_spike;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user