forked from xjboss/KCauldronX
Initial commit (Forge 1291).
This commit is contained in:
@ -0,0 +1,57 @@
|
||||
--- ../src-base/minecraft/net/minecraft/entity/item/EntityFallingBlock.java
|
||||
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityFallingBlock.java
|
||||
@@ -19,9 +19,11 @@
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
|
||||
+
|
||||
public class EntityFallingBlock extends Entity
|
||||
{
|
||||
- private Block field_145811_e;
|
||||
+ public Block field_145811_e; // CraftBukkit - private -> public
|
||||
public int field_145814_a;
|
||||
public int field_145812_b;
|
||||
public boolean field_145813_c;
|
||||
@@ -103,7 +105,8 @@
|
||||
|
||||
if (this.field_145812_b == 1)
|
||||
{
|
||||
- if (this.worldObj.getBlock(i, j, k) != this.field_145811_e)
|
||||
+ // CraftBukkit - compare data and call event
|
||||
+ if (this.field_145812_b != 1 || this.worldObj.getBlock(i, j, k) != this.field_145811_e || this.worldObj.getBlockMetadata(i, j, k) != this.field_145814_a || CraftEventFactory.callEntityChangeBlockEvent(this, i, j, k, Blocks.air, 0).isCancelled())
|
||||
{
|
||||
this.setDead();
|
||||
return;
|
||||
@@ -122,8 +125,17 @@
|
||||
{
|
||||
this.setDead();
|
||||
|
||||
- if (!this.field_145808_f && this.worldObj.canPlaceEntityOnSide(this.field_145811_e, i, j, k, true, 1, (Entity)null, (ItemStack)null) && !BlockFalling.func_149831_e(this.worldObj, i, j - 1, k) && this.worldObj.setBlock(i, j, k, this.field_145811_e, this.field_145814_a, 3))
|
||||
+ // CraftBukkit start
|
||||
+ if (!this.field_145808_f && this.worldObj.canPlaceEntityOnSide(this.field_145811_e, i, j, k, true, 1, (Entity) null, (ItemStack) null) && !BlockFalling.func_149831_e(this.worldObj, i, j - 1, k) /* mimic the false conditions of setTypeIdAndData */ && i >= -30000000 && k >= -30000000 && i < 30000000 && k < 30000000 && j > 0 && j < 256 && !(this.worldObj.getBlock(i, j, k) == this.field_145811_e && this.worldObj.getBlockMetadata(i, j, k) == this.field_145814_a))
|
||||
{
|
||||
+ if (CraftEventFactory.callEntityChangeBlockEvent(this, i, j, k, this.field_145811_e, this.field_145814_a).isCancelled())
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ this.worldObj.setBlock(i, j, k, this.field_145811_e, this.field_145814_a, 3);
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
if (this.field_145811_e instanceof BlockFalling)
|
||||
{
|
||||
((BlockFalling)this.field_145811_e).func_149828_a(this.worldObj, i, j, k, this.field_145814_a);
|
||||
@@ -189,8 +201,10 @@
|
||||
|
||||
while (iterator.hasNext())
|
||||
{
|
||||
- Entity entity = (Entity)iterator.next();
|
||||
- entity.attackEntityFrom(damagesource, (float)Math.min(MathHelper.floor_float((float)i * this.field_145816_i), this.field_145815_h));
|
||||
+ Entity entity = (Entity) iterator.next();
|
||||
+ CraftEventFactory.entityDamage = this; // CraftBukkit
|
||||
+ entity.attackEntityFrom(damagesource,(float) Math.min(MathHelper.floor_float((float) i * this.field_145816_i), this.field_145815_h));
|
||||
+ CraftEventFactory.entityDamage = null; // CraftBukkit
|
||||
}
|
||||
|
||||
if (flag && (double)this.rand.nextFloat() < 0.05000000074505806D + (double)i * 0.05D)
|
Reference in New Issue
Block a user