View difference between Paste ID: 6kncSEXs and gS8QbECp
SHOW: | | - or go back to the newest paste.
1
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
2
// Jad home page: http://www.kpdus.com/jad.html
3
// Decompiler options: packimports(3) braces deadcode fieldsfirst 
4
5
package net.minecraft.src;
6
7
8
// Referenced classes of package net.minecraft.src:
9
//            Entity, MathHelper, World, Block, 
10
//            BlockPistonMoving, BlockSand, NBTTagCompound
11
12-
public class ExplosivesPlusEntityFallingBlocks extends Entity
12+
public class ExplosivesPlusFallingBlock //extends Entity // Nope, this is our custom class.
13
{
14
15
    public int blockID;
16-
    public int fallTime;
16+
    // public int fallTime;
17
    public Entity nova;
18
    public double posX, posY, posZ;
19-
    public ExplosivesPlusEntityFallingBlocks(World world)
19+
    public double prevPosX, prevPosY, prevPosZ;
20
    public short failed; // If it failed somehow, or has deposited
21
                         // 0 = still going
22
                         // 1 = deposited block
23
                         // 2 = block destroyed
24
    public boolean canDrop; // If it is allowed to deposit block
25-
    public ExplosivesPlusEntityFallingBlocks(World world, Entity bomb, double d, double d1, double d2)
25+
26
    /* public ExplosivesPlusEntityFallingBlocks(World world)
27
    {
28
        super(world);
29-
        preventEntitySpawning = true;
29+
30
    } */  // Will never use
31
32-
        setPosition(d + 0.5, d1, d2 + 0.5);
32+
    public ExplosivesPlusEntityFallingBlocks(World world, Entity bomb, double x, double y, double z, int blockid)
33
    {
34
        if (blockid == 0)
35
        {
36-
        prevPosX = d;
36+
            throw new IllegalArgumentException("Block holder created with id = air!");
37-
        prevPosY = d1;
37+
38-
        prevPosZ = d2;
38+
        //super(world); // NOTE: check if Entity does anything you e
39
        // fallTime = 0;
40
        setSize(0.98F, 0.98F);
41
        yOffset = height / 2.0F;
42-
    protected boolean canTriggerWalking()
42+
        // setPosition(d + 0.5, d1, d2 + 0.5);
43
        posX = x+0.5; posY = y; posZ = z+0.5;
44-
        return false;
44+
45
        motionY = 0.0D;
46
        motionZ = 0.0D;
47-
    protected void entityInit()
47+
        prevPosX = x;
48
        prevPosY = y; // may want to check this..
49
        prevPosZ = z;
50
        nova = bomb;
51-
    public boolean canBeCollidedWith()
51+
        failed = 0;
52
        blockID = blockid;
53-
        return false;
53+
        canDrop = false;
54
    }
55
56
    public void setCanDrop(boolean HighYield, Random rand)
57
    {
58-
        if(blockID == 0)
58+
        if(!HighYield)
59
        {
60-
            setDead();
60+
            if (rand.random() > mod_ExplosivesPlus.lowYieldReturnRate)
61-
            System.out.println("Fail Type 2");
61+
62-
            return;
62+
                System.out.println("Falling Block Entity Failed to Survive: Enable High Yield Novas for a Higher Yield");
63
                failed = 2;
64
            }
65
        }
66
        canDrop = true;
67-
        fallTime++;
67+
68
69-
        moveEntity(motionX, motionY, motionZ);
69+
70
    {
71
        if (failed != 0) return;
72
        // if(blockID == 0)
73
        // {
74
        //     setDead();
75
        //     System.out.println("Fail Type 2");
76-
        if(fallTime == 1 && worldObj.getBlockId(i, j, k) == blockID)
76+
        //     return;
77
        // }
78-
        	//worldObj.setBlockWithNotify(i, j, k, 0);
78+
79-
        } else
79+
80
        prevPosZ = posZ;
81-
        if(fallTime == 1 && !mod_ExplosivesPlus.HighYieldNova)
81+
        // fallTime++;
82
        motionY -= mod_ExplosivesPlus.FallingBlockSpeed; //        motionY -= 0.009999999105930328D;
83-
            setDead();
83+
        // !!!!!!!!!!!!! moveEntity(motionX, motionY, motionZ);
84-
            System.out.println("Falling Block Entity Failed to Survive: Enable High Yield Novas for a Higher Yield");
84+
85
        motionY *= 0.98000001907348633D;
86
        motionZ *= 0.98000001907348633D;
87
        int i = MathHelper.floor_double(posX);
88-
        if(onGround)
88+
89
        int k = MathHelper.floor_double(posZ);
90
        // if(fallTime == 1 && worldObj.getBlockId(i, j, k) == blockID)
91
        // {
92-
            motionX *= 0.69999998807907104D;
92+
        //	worldObj.setBlockWithNotify(i, j, k, 0);
93-
            motionZ *= 0.69999998807907104D;
93+
        // } else
94-
            motionY *= -0.5D;
94+
95-
            
95+
        // if(fallTime == 1 && !mod_ExplosivesPlus.HighYieldNova)
96
        // {
97
        //     setDead();
98
        //     System.out.println("Falling Block Entity Failed to Survive: Enable High Yield Novas for a Higher Yield");
99-
                setDead();
99+
100
        // }
101-
               
101+
102-
                
102+
        if(onGround && canDrop) //!!!!!!!! Need to set onGround	
103
        {
104
            if(worldObj.getBlockId(i, j, k) != Block.pistonMoving.blockID)
105-
            
105+
106
            	setPosition(i, j, k);
107
                worldObj.setBlockWithNotify(i, j, k, blockID);
108
                failed = 1;
109
            }
110
        } 
111
    }
112
113
    protected void writeEntityToNBT(NBTTagCompound nbttagcompound)
114
    {
115
        nbttagcompound.setByte("Tile", (byte)blockID);
116
    }
117
118
    protected void readEntityFromNBT(NBTTagCompound nbttagcompound)
119-
    public float getShadowSize()
119+
120
        blockID = nbttagcompound.getByte("Tile") & 0xff;
121-
        return 0.0F;
121+
122
123
    public World getWorld()
124
    {
125
        return worldObj;
126
    }
127
}