Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 73 lines 1.7 kB view raw
1package net.minecraft.server; 2 3public abstract class WorldProvider { 4 5 public World a; 6 public WorldChunkManager b; 7 public boolean c = false; 8 public boolean d = false; 9 public boolean e = false; 10 public float[] f = new float[16]; 11 public int dimension = 0; 12 private float[] h = new float[4]; 13 14 public WorldProvider() { 15 } 16 17 public final void a(World world) { 18 this.a = world; 19 this.a(); 20 this.c(); 21 } 22 23 protected void c() { 24 float f = 0.05F; 25 26 for (int i = 0; i <= 15; ++i) { 27 float f1 = 1.0F - (float) i / 15.0F; 28 29 this.f[i] = (1.0F - f1) / (f1 * 3.0F + 1.0F) * (1.0F - f) + f; 30 } 31 } 32 33 protected void a() { 34 this.b = new WorldChunkManager(this.a); 35 } 36 37 public IChunkProvider getChunkProvider() { 38 return new ChunkProviderGenerate(this.a, this.a.getSeed()); 39 } 40 41 public boolean canSpawn(int i, int j) { 42 int k = this.a.a(i, j); 43 44 return k == Block.SAND.id; 45 } 46 47 public float a(long i, float f) { 48 int j = (int) (i % 24000L); 49 float f1 = ((float) j + f) / 24000.0F - 0.25F; 50 51 if (f1 < 0.0F) { 52 ++f1; 53 } 54 55 if (f1 > 1.0F) { 56 --f1; 57 } 58 59 float f2 = f1; 60 61 f1 = 1.0F - (float) ((Math.cos((double) f1 * 3.141592653589793D) + 1.0D) / 2.0D); 62 f1 = f2 + (f1 - f2) / 3.0F; 63 return f1; 64 } 65 66 public boolean d() { 67 return true; 68 } 69 70 public static WorldProvider byDimension(int i) { 71 return (WorldProvider) (i == -1 ? new WorldProviderHell() : (i == 0 ? new WorldProviderNormal() : (i == 1 ? new WorldProviderSky() : null))); 72 } 73}