summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntityFallingSand.java
blob: f9a95a9be0a7c9555ae7606daed90c0dde18a2ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package net.minecraft.server;

// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftFallingSand;
// CraftBukkit end

public class EntityFallingSand extends Entity {

    public int a;
    public int b;

    public EntityFallingSand(World world) {
        super(world);
        b = 0;
        // CraftBukkit start
        CraftServer server = ((WorldServer) this.l).getServer();
        this.bukkitEntity = new CraftFallingSand(server, this);
        // CraftBukkit end
    }

    public EntityFallingSand(World world, double d, double d1, double d2, int i) {
        // CraftBukkit start
        this(world);
        // CraftBukkit end
        a = i;
        this.i = true;
        a(0.98F, 0.98F);
        H = J / 2.0F;
        a(d, d1, d2);
        s = 0.0D;
        t = 0.0D;
        u = 0.0D;
        M = false;
        m = d;
        n = d1;
        o = d2;
    }

    protected void a() {}

    public boolean c_() {
        return !G;
    }

    public void b_() {
        if (a == 0) {
            q();
            return;
        }
        m = p;
        n = q;
        o = r;
        b++;
        t -= 0.039999999105930328D;
        c(s, t, u);
        s *= 0.98000001907348633D;
        t *= 0.98000001907348633D;
        u *= 0.98000001907348633D;
        int i = MathHelper.b(p);
        int j = MathHelper.b(q);
        int k = MathHelper.b(r);

        if (l.a(i, j, k) == a) {
            l.e(i, j, k, 0);
        }
        if (A) {
            s *= 0.69999998807907104D;
            u *= 0.69999998807907104D;
            t *= -0.5D;
            q();
            if ((!l.a(a, i, j, k, true) || !l.e(i, j, k, a)) && !l.z) {
                a(a, 1);
            }
        } else if (b > 100 && !l.z) {
            a(a, 1);
            q();
        }
    }

    protected void a(NBTTagCompound nbttagcompound) {
        nbttagcompound.a("Tile", (byte) a);
    }

    protected void b(NBTTagCompound nbttagcompound) {
        a = nbttagcompound.b("Tile") & 0xff;
    }
}