Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}