New EntityItem related events
Fixed player death event in SMP Added Player specific drops event Added generic EntityJoinWorldEvent
This commit is contained in:
parent
da501613ac
commit
03d1e51764
13 changed files with 417 additions and 55 deletions
|
@ -51,6 +51,7 @@ public aji.k # worldObj
|
||||||
public ain.c # graphicsLevel
|
public ain.c # graphicsLevel
|
||||||
# Item
|
# Item
|
||||||
public rh.e(I)Lrh; # setMaxDamage
|
public rh.e(I)Lrh; # setMaxDamage
|
||||||
|
public-f rh.f(Lrj;)I # getIconIndex
|
||||||
# ItemAxe
|
# ItemAxe
|
||||||
public rf.<init>()V # constructor
|
public rf.<init>()V # constructor
|
||||||
# ItemPickaxe
|
# ItemPickaxe
|
||||||
|
@ -58,3 +59,7 @@ public rq.<init>()V # constructor
|
||||||
# RailLogic
|
# RailLogic
|
||||||
public ahi
|
public ahi
|
||||||
public ahi.a(Lahi;)I # getNAdjacentTiles
|
public ahi.a(Lahi;)I # getNAdjacentTiles
|
||||||
|
#EntityPlayer
|
||||||
|
public og.a(Lnj;)V # joinEntityItemWithWorld
|
||||||
|
#EntityPlayerMP
|
||||||
|
public atg.a(Lnj;)V # joinEntityItemWithWorld
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.*;
|
||||||
import cpw.mods.fml.common.FMLLog;
|
import cpw.mods.fml.common.FMLLog;
|
||||||
|
|
||||||
import net.minecraft.src.*;
|
import net.minecraft.src.*;
|
||||||
|
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
||||||
import net.minecraftforge.event.entity.living.*;
|
import net.minecraftforge.event.entity.living.*;
|
||||||
import net.minecraftforge.event.entity.living.LivingEvent.*;
|
import net.minecraftforge.event.entity.living.LivingEvent.*;
|
||||||
|
|
||||||
|
@ -338,4 +339,21 @@ public class ForgeHooks
|
||||||
{
|
{
|
||||||
MinecraftForge.EVENT_BUS.post(new LivingJumpEvent(entity));
|
MinecraftForge.EVENT_BUS.post(new LivingJumpEvent(entity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static EntityItem onPlayerTossEvent(EntityPlayer player, ItemStack item)
|
||||||
|
{
|
||||||
|
player.captureDrops = true;
|
||||||
|
EntityItem ret = player.dropPlayerItemWithRandomChoice(item, false);
|
||||||
|
player.capturedDrops.clear();
|
||||||
|
player.captureDrops = false;
|
||||||
|
|
||||||
|
ItemTossEvent event = new ItemTossEvent(ret, player);
|
||||||
|
if (MinecraftForge.EVENT_BUS.post(event))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.joinEntityItemWithWorld(event.entityItem);
|
||||||
|
return event.entityItem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package net.minecraftforge.event.entity;
|
||||||
|
|
||||||
|
import net.minecraft.src.Entity;
|
||||||
|
import net.minecraft.src.World;
|
||||||
|
|
||||||
|
public class EntityJoinWorldEvent extends EntityEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
public final World world;
|
||||||
|
|
||||||
|
public EntityJoinWorldEvent(Entity entity, World world)
|
||||||
|
{
|
||||||
|
super(entity);
|
||||||
|
this.world = world;
|
||||||
|
}
|
||||||
|
}
|
29
common/net/minecraftforge/event/entity/item/ItemEvent.java
Normal file
29
common/net/minecraftforge/event/entity/item/ItemEvent.java
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
package net.minecraftforge.event.entity.item;
|
||||||
|
|
||||||
|
import net.minecraft.src.EntityItem;
|
||||||
|
import net.minecraftforge.event.entity.EntityEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base class for all EntityItem events. Contains a reference to the
|
||||||
|
* EntityItem of interest. For most EntityItem events, there's little to no
|
||||||
|
* additional useful data from the firing method that isn't already contained
|
||||||
|
* within the EntityItem instance.
|
||||||
|
*/
|
||||||
|
public class ItemEvent extends EntityEvent
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The relevant EntityItem for this event, already cast for you.
|
||||||
|
*/
|
||||||
|
public final EntityItem entityItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new event for an EntityItem.
|
||||||
|
*
|
||||||
|
* @param itemEntity The EntityItem for this event
|
||||||
|
*/
|
||||||
|
public ItemEvent(EntityItem itemEntity)
|
||||||
|
{
|
||||||
|
super(itemEntity);
|
||||||
|
this.entityItem = itemEntity;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
package net.minecraftforge.event.entity.item;
|
||||||
|
|
||||||
|
import net.minecraft.src.EntityItem;
|
||||||
|
import net.minecraftforge.event.Cancelable;
|
||||||
|
import net.minecraftforge.event.entity.EntityEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event that is fired when an EntityItem's age has reached its maximum
|
||||||
|
* lifespan. Canceling this event will prevent the EntityItem from being
|
||||||
|
* flagged as dead, thus staying it's removal from the world. If canceled
|
||||||
|
* it will add more time to the entitie's life equal to extraLife.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public class ItemExpireEvent extends ItemEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
public int extraLife;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new event for an expiring EntityItem.
|
||||||
|
*
|
||||||
|
* @param entityItem The EntityItem being deleted.
|
||||||
|
* @param extraLife The amount of time to be added to this entities lifespan if the event is canceled.
|
||||||
|
*/
|
||||||
|
public ItemExpireEvent(EntityItem entityItem, int extraLife)
|
||||||
|
{
|
||||||
|
super(entityItem);
|
||||||
|
this.extraLife = extraLife;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
package net.minecraftforge.event.entity.item;
|
||||||
|
|
||||||
|
import net.minecraft.src.EntityItem;
|
||||||
|
import net.minecraft.src.EntityPlayer;
|
||||||
|
import net.minecraftforge.event.Cancelable;
|
||||||
|
import net.minecraftforge.event.entity.EntityEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event that is fired whenever a player tosses (Q) an item or drag-n-drops a
|
||||||
|
* stack of items outside the inventory GUI screens. Canceling the event will
|
||||||
|
* stop the items from entering the world, but will not prevent them being
|
||||||
|
* removed from the inventory - and thus removed from the system.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public class ItemTossEvent extends ItemEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The player tossing the item.
|
||||||
|
*/
|
||||||
|
public final EntityPlayer player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new event for EntityItems tossed by a player.
|
||||||
|
*
|
||||||
|
* @param entityItem The EntityItem being tossed.
|
||||||
|
* @param player The player tossing the item.
|
||||||
|
*/
|
||||||
|
public ItemTossEvent(EntityItem entityItem, EntityPlayer player)
|
||||||
|
{
|
||||||
|
super(entityItem);
|
||||||
|
this.player = player;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package net.minecraftforge.event.entity.player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import net.minecraft.src.*;
|
||||||
|
import net.minecraftforge.event.Cancelable;
|
||||||
|
import net.minecraftforge.event.entity.living.LivingDropsEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Child class of LivingDropEvent that is fired specifically when a
|
||||||
|
* player dies. Canceling the event will prevent ALL drops from entering the
|
||||||
|
* world.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public class PlayerDropsEvent extends LivingDropsEvent
|
||||||
|
{
|
||||||
|
public final EntityPlayer entityPlayer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new event containing all the items that will drop into the
|
||||||
|
* world when a player dies.
|
||||||
|
* @param entity The dying player.
|
||||||
|
* @param source The source of the damage which is killing the player.
|
||||||
|
* @param drops List of all drops entering the world.
|
||||||
|
*/
|
||||||
|
public PlayerDropsEvent(EntityPlayer entity, DamageSource source, ArrayList<EntityItem> drops, boolean recentlyHit)
|
||||||
|
{
|
||||||
|
super(entity, source, drops,
|
||||||
|
(source.getEntity() instanceof EntityPlayer) ?
|
||||||
|
EnchantmentHelper.getLootingModifier(((EntityPlayer)source.getEntity()).inventory) : 0,
|
||||||
|
recentlyHit, 0);
|
||||||
|
|
||||||
|
this.entityPlayer = entity;
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,8 +15,8 @@
|
||||||
public EnumEntitySize myEntitySize;
|
public EnumEntitySize myEntitySize;
|
||||||
+ /** Forge: Used to store custom data for each entity. */
|
+ /** Forge: Used to store custom data for each entity. */
|
||||||
+ private NBTTagCompound customEntityData;
|
+ private NBTTagCompound customEntityData;
|
||||||
+ protected boolean captureDrops = false;
|
+ public boolean captureDrops = false;
|
||||||
+ protected ArrayList<EntityItem> capturedDrops = new ArrayList<EntityItem>();
|
+ public ArrayList<EntityItem> capturedDrops = new ArrayList<EntityItem>();
|
||||||
|
|
||||||
public Entity(World par1World)
|
public Entity(World par1World)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,28 +1,67 @@
|
||||||
--- ../src_base/common/net/minecraft/src/EntityItem.java
|
--- ../src_base/common/net/minecraft/src/EntityItem.java
|
||||||
+++ ../src_work/common/net/minecraft/src/EntityItem.java
|
+++ ../src_work/common/net/minecraft/src/EntityItem.java
|
||||||
@@ -1,6 +1,9 @@
|
@@ -1,6 +1,10 @@
|
||||||
package net.minecraft.src;
|
package net.minecraft.src;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
+
|
+
|
||||||
+import net.minecraftforge.common.MinecraftForge;
|
+import net.minecraftforge.common.MinecraftForge;
|
||||||
|
+import net.minecraftforge.event.entity.item.ItemExpireEvent;
|
||||||
+import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
|
+import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
|
||||||
|
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
|
|
||||||
@@ -122,6 +125,11 @@
|
@@ -20,6 +24,11 @@
|
||||||
{
|
|
||||||
this.setDead();
|
/** The EntityItem's random initial float height. */
|
||||||
}
|
public float hoverStart = (float)(Math.random() * Math.PI * 2.0D);
|
||||||
+
|
+
|
||||||
+ if (this.item == null || this.item.stackSize <= 0)
|
+ /**
|
||||||
|
+ * The maximum age of this EntityItem. The item is expired once this is reached.
|
||||||
|
+ */
|
||||||
|
+ public int lifespan = 6000;
|
||||||
|
|
||||||
|
public EntityItem(World par1World, double par2, double par4, double par6, ItemStack par8ItemStack)
|
||||||
|
{
|
||||||
|
@@ -32,6 +41,7 @@
|
||||||
|
this.motionX = (double)((float)(Math.random() * 0.20000000298023224D - 0.10000000149011612D));
|
||||||
|
this.motionY = 0.20000000298023224D;
|
||||||
|
this.motionZ = (double)((float)(Math.random() * 0.20000000298023224D - 0.10000000149011612D));
|
||||||
|
+ this.lifespan = (par8ItemStack.getItem() == null ? 6000 : par8ItemStack.getItem().getEntityLifespan(par8ItemStack, par1World));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -118,7 +128,20 @@
|
||||||
|
|
||||||
|
++this.age;
|
||||||
|
|
||||||
|
- if (this.age >= 6000)
|
||||||
|
+ if (this.age >= lifespan)
|
||||||
|
+ {
|
||||||
|
+ ItemExpireEvent event = new ItemExpireEvent(this, (item.getItem() == null ? 6000 : item.getItem().getEntityLifespan(item, worldObj)));
|
||||||
|
+ if (MinecraftForge.EVENT_BUS.post(event))
|
||||||
|
+ {
|
||||||
|
+ lifespan += event.extraLife;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
+ {
|
+ {
|
||||||
+ this.setDead();
|
+ this.setDead();
|
||||||
+ }
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (this.item == null || this.item.stackSize <= 0)
|
||||||
|
{
|
||||||
|
this.setDead();
|
||||||
}
|
}
|
||||||
|
@@ -208,6 +231,7 @@
|
||||||
|
{
|
||||||
|
par1NBTTagCompound.setShort("Health", (short)((byte)this.health));
|
||||||
|
par1NBTTagCompound.setShort("Age", (short)this.age);
|
||||||
|
+ par1NBTTagCompound.setInteger("Lifespan", lifespan);
|
||||||
|
|
||||||
public boolean func_70289_a(EntityItem par1EntityItem)
|
if (this.item != null)
|
||||||
@@ -225,7 +233,7 @@
|
{
|
||||||
|
@@ -225,10 +249,15 @@
|
||||||
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item");
|
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("Item");
|
||||||
this.item = ItemStack.loadItemStackFromNBT(var2);
|
this.item = ItemStack.loadItemStackFromNBT(var2);
|
||||||
|
|
||||||
|
@ -31,7 +70,15 @@
|
||||||
{
|
{
|
||||||
this.setDead();
|
this.setDead();
|
||||||
}
|
}
|
||||||
@@ -238,9 +246,21 @@
|
+
|
||||||
|
+ if (par1NBTTagCompound.hasKey("Lifespan"))
|
||||||
|
+ {
|
||||||
|
+ lifespan = par1NBTTagCompound.getInteger("Lifespan");
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -238,9 +267,21 @@
|
||||||
{
|
{
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- ../src_base/common/net/minecraft/src/EntityPlayer.java
|
--- ../src_base/common/net/minecraft/src/EntityPlayer.java
|
||||||
+++ ../src_work/common/net/minecraft/src/EntityPlayer.java
|
+++ ../src_work/common/net/minecraft/src/EntityPlayer.java
|
||||||
@@ -7,6 +7,15 @@
|
@@ -7,6 +7,16 @@
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -12,11 +12,12 @@
|
||||||
+import net.minecraftforge.event.entity.player.AttackEntityEvent;
|
+import net.minecraftforge.event.entity.player.AttackEntityEvent;
|
||||||
+import net.minecraftforge.event.entity.player.EntityInteractEvent;
|
+import net.minecraftforge.event.entity.player.EntityInteractEvent;
|
||||||
+import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent;
|
+import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent;
|
||||||
|
+import net.minecraftforge.event.entity.player.PlayerDropsEvent;
|
||||||
+import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
|
+import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
|
||||||
|
|
||||||
public abstract class EntityPlayer extends EntityLiving implements ICommandSender
|
public abstract class EntityPlayer extends EntityLiving implements ICommandSender
|
||||||
{
|
{
|
||||||
@@ -222,6 +231,7 @@
|
@@ -222,6 +232,7 @@
|
||||||
|
|
||||||
if (var1 == this.itemInUse)
|
if (var1 == this.itemInUse)
|
||||||
{
|
{
|
||||||
|
@ -24,7 +25,36 @@
|
||||||
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
|
if (this.itemInUseCount <= 25 && this.itemInUseCount % 4 == 0)
|
||||||
{
|
{
|
||||||
this.updateItemUse(var1, 5);
|
this.updateItemUse(var1, 5);
|
||||||
@@ -627,7 +637,16 @@
|
@@ -574,12 +585,28 @@
|
||||||
|
this.setPosition(this.posX, this.posY, this.posZ);
|
||||||
|
this.motionY = 0.10000000149011612D;
|
||||||
|
|
||||||
|
+ captureDrops = true;
|
||||||
|
+ capturedDrops.clear();
|
||||||
|
+
|
||||||
|
if (this.username.equals("Notch"))
|
||||||
|
{
|
||||||
|
this.dropPlayerItemWithRandomChoice(new ItemStack(Item.appleRed, 1), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.inventory.dropAllItems();
|
||||||
|
+ captureDrops = false;
|
||||||
|
+
|
||||||
|
+ if (!worldObj.isRemote)
|
||||||
|
+ {
|
||||||
|
+ PlayerDropsEvent event = new PlayerDropsEvent(this, par1DamageSource, capturedDrops, recentlyHit > 0);
|
||||||
|
+ if (!MinecraftForge.EVENT_BUS.post(event))
|
||||||
|
+ {
|
||||||
|
+ for (EntityItem item : capturedDrops)
|
||||||
|
+ {
|
||||||
|
+ joinEntityItemWithWorld(item);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (par1DamageSource != null)
|
||||||
|
{
|
||||||
|
@@ -627,7 +654,16 @@
|
||||||
*/
|
*/
|
||||||
public EntityItem dropOneItem()
|
public EntityItem dropOneItem()
|
||||||
{
|
{
|
||||||
|
@ -36,13 +66,35 @@
|
||||||
+ }
|
+ }
|
||||||
+ if (stack.getItem().onDroppedByPlayer(stack, this))
|
+ if (stack.getItem().onDroppedByPlayer(stack, this))
|
||||||
+ {
|
+ {
|
||||||
+ return dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
|
+ return ForgeHooks.onPlayerTossEvent(this, inventory.decrStackSize(inventory.currentItem, 1));
|
||||||
+ }
|
+ }
|
||||||
+ return null;
|
+ return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -693,13 +712,21 @@
|
@@ -636,7 +672,7 @@
|
||||||
|
*/
|
||||||
|
public EntityItem dropPlayerItem(ItemStack par1ItemStack)
|
||||||
|
{
|
||||||
|
- return this.dropPlayerItemWithRandomChoice(par1ItemStack, false);
|
||||||
|
+ return ForgeHooks.onPlayerTossEvent(this, par1ItemStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -688,18 +724,33 @@
|
||||||
|
*/
|
||||||
|
protected void joinEntityItemWithWorld(EntityItem par1EntityItem)
|
||||||
|
{
|
||||||
|
- this.worldObj.spawnEntityInWorld(par1EntityItem);
|
||||||
|
+ if (captureDrops)
|
||||||
|
+ {
|
||||||
|
+ capturedDrops.add(par1EntityItem);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ this.worldObj.spawnEntityInWorld(par1EntityItem);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns how strong the player is against the specified block at this moment
|
* Returns how strong the player is against the specified block at this moment
|
||||||
|
@ -67,7 +119,7 @@
|
||||||
{
|
{
|
||||||
var2 += (float)(var3 * var3 + 1);
|
var2 += (float)(var3 * var3 + 1);
|
||||||
}
|
}
|
||||||
@@ -992,12 +1019,23 @@
|
@@ -992,12 +1043,23 @@
|
||||||
*/
|
*/
|
||||||
protected void damageEntity(DamageSource par1DamageSource, int par2)
|
protected void damageEntity(DamageSource par1DamageSource, int par2)
|
||||||
{
|
{
|
||||||
|
@ -92,7 +144,7 @@
|
||||||
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
par2 = this.applyPotionDamageCalculations(par1DamageSource, par2);
|
||||||
this.addExhaustion(par1DamageSource.getHungerDamage());
|
this.addExhaustion(par1DamageSource.getHungerDamage());
|
||||||
this.health -= par2;
|
this.health -= par2;
|
||||||
@@ -1032,6 +1070,10 @@
|
@@ -1032,6 +1094,10 @@
|
||||||
|
|
||||||
public boolean interactWith(Entity par1Entity)
|
public boolean interactWith(Entity par1Entity)
|
||||||
{
|
{
|
||||||
|
@ -103,7 +155,7 @@
|
||||||
if (par1Entity.interact(this))
|
if (par1Entity.interact(this))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@@ -1075,7 +1117,9 @@
|
@@ -1075,7 +1141,9 @@
|
||||||
*/
|
*/
|
||||||
public void destroyCurrentEquippedItem()
|
public void destroyCurrentEquippedItem()
|
||||||
{
|
{
|
||||||
|
@ -113,7 +165,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1104,6 +1148,15 @@
|
@@ -1104,6 +1172,15 @@
|
||||||
*/
|
*/
|
||||||
public void attackTargetEntityWithCurrentItem(Entity par1Entity)
|
public void attackTargetEntityWithCurrentItem(Entity par1Entity)
|
||||||
{
|
{
|
||||||
|
@ -129,7 +181,7 @@
|
||||||
if (par1Entity.canAttackWithItem())
|
if (par1Entity.canAttackWithItem())
|
||||||
{
|
{
|
||||||
int var2 = this.inventory.getDamageVsEntity(par1Entity);
|
int var2 = this.inventory.getDamageVsEntity(par1Entity);
|
||||||
@@ -1247,6 +1300,12 @@
|
@@ -1247,6 +1324,12 @@
|
||||||
*/
|
*/
|
||||||
public EnumStatus sleepInBedAt(int par1, int par2, int par3)
|
public EnumStatus sleepInBedAt(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -142,7 +194,7 @@
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
if (this.isPlayerSleeping() || !this.isEntityAlive())
|
if (this.isPlayerSleeping() || !this.isEntityAlive())
|
||||||
@@ -1286,6 +1345,11 @@
|
@@ -1286,6 +1369,11 @@
|
||||||
{
|
{
|
||||||
int var9 = this.worldObj.getBlockMetadata(par1, par2, par3);
|
int var9 = this.worldObj.getBlockMetadata(par1, par2, par3);
|
||||||
int var5 = BlockBed.getDirection(var9);
|
int var5 = BlockBed.getDirection(var9);
|
||||||
|
@ -154,7 +206,7 @@
|
||||||
float var10 = 0.5F;
|
float var10 = 0.5F;
|
||||||
float var7 = 0.5F;
|
float var7 = 0.5F;
|
||||||
|
|
||||||
@@ -1356,10 +1420,12 @@
|
@@ -1356,10 +1444,12 @@
|
||||||
ChunkCoordinates var4 = this.playerLocation;
|
ChunkCoordinates var4 = this.playerLocation;
|
||||||
ChunkCoordinates var5 = this.playerLocation;
|
ChunkCoordinates var5 = this.playerLocation;
|
||||||
|
|
||||||
|
@ -171,7 +223,7 @@
|
||||||
|
|
||||||
if (var5 == null)
|
if (var5 == null)
|
||||||
{
|
{
|
||||||
@@ -1396,7 +1462,9 @@
|
@@ -1396,7 +1486,9 @@
|
||||||
*/
|
*/
|
||||||
private boolean isInBed()
|
private boolean isInBed()
|
||||||
{
|
{
|
||||||
|
@ -182,7 +234,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1411,13 +1479,15 @@
|
@@ -1411,13 +1503,15 @@
|
||||||
var2.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
|
var2.loadChunk(par1ChunkCoordinates.posX - 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
|
||||||
var2.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
|
var2.loadChunk(par1ChunkCoordinates.posX + 3 >> 4, par1ChunkCoordinates.posZ + 3 >> 4);
|
||||||
|
|
||||||
|
@ -200,7 +252,7 @@
|
||||||
return var3;
|
return var3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1431,8 +1501,11 @@
|
@@ -1431,8 +1525,11 @@
|
||||||
{
|
{
|
||||||
if (this.playerLocation != null)
|
if (this.playerLocation != null)
|
||||||
{
|
{
|
||||||
|
@ -214,7 +266,7 @@
|
||||||
|
|
||||||
switch (var2)
|
switch (var2)
|
||||||
{
|
{
|
||||||
@@ -1725,6 +1798,7 @@
|
@@ -1725,6 +1822,7 @@
|
||||||
return 101;
|
return 101;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
40
patches/common/net/minecraft/src/EntityPlayerMP.java.patch
Normal file
40
patches/common/net/minecraft/src/EntityPlayerMP.java.patch
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
--- ../src_base/common/net/minecraft/src/EntityPlayerMP.java
|
||||||
|
+++ ../src_work/common/net/minecraft/src/EntityPlayerMP.java
|
||||||
|
@@ -8,6 +8,9 @@
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
+import net.minecraftforge.common.ForgeHooks;
|
||||||
|
+import net.minecraftforge.common.MinecraftForge;
|
||||||
|
+import net.minecraftforge.event.entity.player.PlayerDropsEvent;
|
||||||
|
|
||||||
|
public class EntityPlayerMP extends EntityPlayer implements ICrafting
|
||||||
|
{
|
||||||
|
@@ -329,8 +332,27 @@
|
||||||
|
*/
|
||||||
|
public void onDeath(DamageSource par1DamageSource)
|
||||||
|
{
|
||||||
|
+ if (ForgeHooks.onLivingDeath(this, par1DamageSource))
|
||||||
|
+ {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
this.mcServer.getConfigurationManager().sendPacketToAllPlayers(new Packet3Chat(par1DamageSource.getDeathMessage(this)));
|
||||||
|
+
|
||||||
|
+ captureDrops = true;
|
||||||
|
+ capturedDrops.clear();
|
||||||
|
+
|
||||||
|
this.inventory.dropAllItems();
|
||||||
|
+
|
||||||
|
+ captureDrops = false;
|
||||||
|
+ PlayerDropsEvent event = new PlayerDropsEvent(this, par1DamageSource, capturedDrops, recentlyHit > 0);
|
||||||
|
+ if (!MinecraftForge.EVENT_BUS.post(event))
|
||||||
|
+ {
|
||||||
|
+ for (EntityItem item : capturedDrops)
|
||||||
|
+ {
|
||||||
|
+ joinEntityItemWithWorld(item);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
|
@ -37,7 +37,7 @@
|
||||||
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
|
Vec3 var23 = var13.addVector((double)var18 * var21, (double)var17 * var21, (double)var20 * var21);
|
||||||
return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
|
return par1World.rayTraceBlocks_do_do(var13, var23, par3, !par3);
|
||||||
}
|
}
|
||||||
@@ -650,4 +662,199 @@
|
@@ -650,4 +662,212 @@
|
||||||
{
|
{
|
||||||
StatList.initStats();
|
StatList.initStats();
|
||||||
}
|
}
|
||||||
|
@ -235,5 +235,18 @@
|
||||||
+ return null;
|
+ return null;
|
||||||
+ }
|
+ }
|
||||||
+ return new ItemStack(getContainerItem());
|
+ return new ItemStack(getContainerItem());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Retrieves the normal 'lifespan' of this item when it is dropped on the ground as a EntityItem.
|
||||||
|
+ * This is in ticks, standard result is 6000, or 5 mins.
|
||||||
|
+ *
|
||||||
|
+ * @param itemStack The current ItemStack
|
||||||
|
+ * @param world The world the entity is in
|
||||||
|
+ * @return The normal lifespan in ticks.
|
||||||
|
+ */
|
||||||
|
+ public int getEntityLifespan(ItemStack itemStack, World world)
|
||||||
|
+ {
|
||||||
|
+ return 6000;
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
--- ../src_base/common/net/minecraft/src/World.java
|
--- ../src_base/common/net/minecraft/src/World.java
|
||||||
+++ ../src_work/common/net/minecraft/src/World.java
|
+++ ../src_work/common/net/minecraft/src/World.java
|
||||||
@@ -10,8 +10,21 @@
|
@@ -10,8 +10,22 @@
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
+import net.minecraftforge.common.MinecraftForge;
|
+import net.minecraftforge.common.MinecraftForge;
|
||||||
+import net.minecraftforge.common.ForgeDirection;
|
+import net.minecraftforge.common.ForgeDirection;
|
||||||
+import net.minecraftforge.event.entity.EntityEvent;
|
+import net.minecraftforge.event.entity.EntityEvent;
|
||||||
|
+import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||||
+import net.minecraftforge.event.world.WorldEvent;
|
+import net.minecraftforge.event.world.WorldEvent;
|
||||||
+import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
|
+import net.minecraftforge.event.entity.PlaySoundAtEntityEvent;
|
||||||
+
|
+
|
||||||
|
@ -22,7 +23,7 @@
|
||||||
/**
|
/**
|
||||||
* boolean; if true updates scheduled by scheduleBlockUpdate happen immediately
|
* boolean; if true updates scheduled by scheduleBlockUpdate happen immediately
|
||||||
*/
|
*/
|
||||||
@@ -167,6 +180,7 @@
|
@@ -167,6 +181,7 @@
|
||||||
this.chunkProvider = this.createChunkProvider();
|
this.chunkProvider = this.createChunkProvider();
|
||||||
this.calculateInitialSkylight();
|
this.calculateInitialSkylight();
|
||||||
this.calculateInitialWeather();
|
this.calculateInitialWeather();
|
||||||
|
@ -30,7 +31,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public World(ISaveHandler par1ISaveHandler, String par2Str, WorldSettings par3WorldSettings, WorldProvider par4WorldProvider, Profiler par5Profiler)
|
public World(ISaveHandler par1ISaveHandler, String par2Str, WorldSettings par3WorldSettings, WorldProvider par4WorldProvider, Profiler par5Profiler)
|
||||||
@@ -213,6 +227,7 @@
|
@@ -213,6 +228,7 @@
|
||||||
|
|
||||||
this.calculateInitialSkylight();
|
this.calculateInitialSkylight();
|
||||||
this.calculateInitialWeather();
|
this.calculateInitialWeather();
|
||||||
|
@ -38,7 +39,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -269,7 +284,8 @@
|
@@ -269,7 +285,8 @@
|
||||||
*/
|
*/
|
||||||
public boolean isAirBlock(int par1, int par2, int par3)
|
public boolean isAirBlock(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -48,7 +49,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -278,7 +294,8 @@
|
@@ -278,7 +295,8 @@
|
||||||
public boolean blockHasTileEntity(int par1, int par2, int par3)
|
public boolean blockHasTileEntity(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
int var4 = this.getBlockId(par1, par2, par3);
|
int var4 = this.getBlockId(par1, par2, par3);
|
||||||
|
@ -58,7 +59,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1009,7 +1026,7 @@
|
@@ -1009,7 +1027,7 @@
|
||||||
int var12 = this.getBlockMetadata(var8, var9, var10);
|
int var12 = this.getBlockMetadata(var8, var9, var10);
|
||||||
Block var13 = Block.blocksList[var11];
|
Block var13 = Block.blocksList[var11];
|
||||||
|
|
||||||
|
@ -67,7 +68,7 @@
|
||||||
{
|
{
|
||||||
MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3);
|
MovingObjectPosition var14 = var13.collisionRayTrace(this, var8, var9, var10, par1Vec3, par2Vec3);
|
||||||
|
|
||||||
@@ -1209,6 +1226,12 @@
|
@@ -1209,6 +1227,12 @@
|
||||||
*/
|
*/
|
||||||
public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4)
|
public void playSoundAtEntity(Entity par1Entity, String par2Str, float par3, float par4)
|
||||||
{
|
{
|
||||||
|
@ -80,7 +81,19 @@
|
||||||
if (par1Entity != null && par2Str != null)
|
if (par1Entity != null && par2Str != null)
|
||||||
{
|
{
|
||||||
Iterator var5 = this.worldAccesses.iterator();
|
Iterator var5 = this.worldAccesses.iterator();
|
||||||
@@ -1887,7 +1910,7 @@
|
@@ -1309,6 +1333,11 @@
|
||||||
|
EntityPlayer var5 = (EntityPlayer)par1Entity;
|
||||||
|
this.playerEntities.add(var5);
|
||||||
|
this.updateAllPlayersSleepingFlag();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!var4 && MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(par1Entity, this)))
|
||||||
|
+ {
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getChunkFromChunkCoords(var2, var3).addEntity(par1Entity);
|
||||||
|
@@ -1887,7 +1916,7 @@
|
||||||
|
|
||||||
if (var8 != null)
|
if (var8 != null)
|
||||||
{
|
{
|
||||||
|
@ -89,7 +102,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1897,6 +1920,10 @@
|
@@ -1897,6 +1926,10 @@
|
||||||
|
|
||||||
if (!this.entityRemoval.isEmpty())
|
if (!this.entityRemoval.isEmpty())
|
||||||
{
|
{
|
||||||
|
@ -100,7 +113,7 @@
|
||||||
this.loadedTileEntityList.removeAll(this.entityRemoval);
|
this.loadedTileEntityList.removeAll(this.entityRemoval);
|
||||||
this.entityRemoval.clear();
|
this.entityRemoval.clear();
|
||||||
}
|
}
|
||||||
@@ -1917,7 +1944,9 @@
|
@@ -1917,7 +1950,9 @@
|
||||||
{
|
{
|
||||||
this.loadedTileEntityList.add(var9);
|
this.loadedTileEntityList.add(var9);
|
||||||
}
|
}
|
||||||
|
@ -111,7 +124,7 @@
|
||||||
if (this.chunkExists(var9.xCoord >> 4, var9.zCoord >> 4))
|
if (this.chunkExists(var9.xCoord >> 4, var9.zCoord >> 4))
|
||||||
{
|
{
|
||||||
Chunk var10 = this.getChunkFromChunkCoords(var9.xCoord >> 4, var9.zCoord >> 4);
|
Chunk var10 = this.getChunkFromChunkCoords(var9.xCoord >> 4, var9.zCoord >> 4);
|
||||||
@@ -1927,8 +1956,6 @@
|
@@ -1927,8 +1962,6 @@
|
||||||
var10.setChunkBlockTileEntity(var9.xCoord & 15, var9.yCoord, var9.zCoord & 15, var9);
|
var10.setChunkBlockTileEntity(var9.xCoord & 15, var9.yCoord, var9.zCoord & 15, var9);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,7 +133,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1941,13 +1968,13 @@
|
@@ -1941,13 +1974,13 @@
|
||||||
|
|
||||||
public void addTileEntity(Collection par1Collection)
|
public void addTileEntity(Collection par1Collection)
|
||||||
{
|
{
|
||||||
|
@ -141,7 +154,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1968,8 +1995,14 @@
|
@@ -1968,8 +2001,14 @@
|
||||||
int var3 = MathHelper.floor_double(par1Entity.posX);
|
int var3 = MathHelper.floor_double(par1Entity.posX);
|
||||||
int var4 = MathHelper.floor_double(par1Entity.posZ);
|
int var4 = MathHelper.floor_double(par1Entity.posZ);
|
||||||
byte var5 = 32;
|
byte var5 = 32;
|
||||||
|
@ -158,7 +171,7 @@
|
||||||
{
|
{
|
||||||
par1Entity.lastTickPosX = par1Entity.posX;
|
par1Entity.lastTickPosX = par1Entity.posX;
|
||||||
par1Entity.lastTickPosY = par1Entity.posY;
|
par1Entity.lastTickPosY = par1Entity.posY;
|
||||||
@@ -2204,6 +2237,14 @@
|
@@ -2204,6 +2243,14 @@
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -173,7 +186,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2510,25 +2551,21 @@
|
@@ -2510,25 +2557,21 @@
|
||||||
*/
|
*/
|
||||||
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
|
public void setBlockTileEntity(int par1, int par2, int par3, TileEntity par4TileEntity)
|
||||||
{
|
{
|
||||||
|
@ -214,7 +227,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2537,27 +2574,10 @@
|
@@ -2537,27 +2580,10 @@
|
||||||
*/
|
*/
|
||||||
public void removeBlockTileEntity(int par1, int par2, int par3)
|
public void removeBlockTileEntity(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -246,7 +259,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2583,7 +2603,8 @@
|
@@ -2583,7 +2609,8 @@
|
||||||
*/
|
*/
|
||||||
public boolean isBlockNormalCube(int par1, int par2, int par3)
|
public boolean isBlockNormalCube(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -256,7 +269,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2591,8 +2612,7 @@
|
@@ -2591,8 +2618,7 @@
|
||||||
*/
|
*/
|
||||||
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
|
public boolean doesBlockHaveSolidTopSurface(int par1, int par2, int par3)
|
||||||
{
|
{
|
||||||
|
@ -266,7 +279,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2608,7 +2628,7 @@
|
@@ -2608,7 +2634,7 @@
|
||||||
if (var5 != null && !var5.isEmpty())
|
if (var5 != null && !var5.isEmpty())
|
||||||
{
|
{
|
||||||
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
|
Block var6 = Block.blocksList[this.getBlockId(par1, par2, par3)];
|
||||||
|
@ -275,7 +288,7 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -3035,7 +3055,7 @@
|
@@ -3035,7 +3061,7 @@
|
||||||
|
|
||||||
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
|
private int computeBlockLightValue(int par1, int par2, int par3, int par4, int par5, int par6)
|
||||||
{
|
{
|
||||||
|
@ -284,7 +297,7 @@
|
||||||
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
|
int var8 = this.getSavedLightValue(EnumSkyBlock.Block, par2 - 1, par3, par4) - par6;
|
||||||
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
|
int var9 = this.getSavedLightValue(EnumSkyBlock.Block, par2 + 1, par3, par4) - par6;
|
||||||
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
|
int var10 = this.getSavedLightValue(EnumSkyBlock.Block, par2, par3 - 1, par4) - par6;
|
||||||
@@ -3303,10 +3323,10 @@
|
@@ -3303,10 +3329,10 @@
|
||||||
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
|
public List getEntitiesWithinAABBExcludingEntity(Entity par1Entity, AxisAlignedBB par2AxisAlignedBB)
|
||||||
{
|
{
|
||||||
this.entitiesWithinAABBExcludingEntity.clear();
|
this.entitiesWithinAABBExcludingEntity.clear();
|
||||||
|
@ -299,7 +312,7 @@
|
||||||
|
|
||||||
for (int var7 = var3; var7 <= var4; ++var7)
|
for (int var7 = var3; var7 <= var4; ++var7)
|
||||||
{
|
{
|
||||||
@@ -3327,10 +3347,10 @@
|
@@ -3327,10 +3353,10 @@
|
||||||
*/
|
*/
|
||||||
public List getEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB)
|
public List getEntitiesWithinAABB(Class par1Class, AxisAlignedBB par2AxisAlignedBB)
|
||||||
{
|
{
|
||||||
|
@ -314,7 +327,25 @@
|
||||||
ArrayList var7 = new ArrayList();
|
ArrayList var7 = new ArrayList();
|
||||||
|
|
||||||
for (int var8 = var3; var8 <= var4; ++var8)
|
for (int var8 = var3; var8 <= var4; ++var8)
|
||||||
@@ -3460,7 +3480,10 @@
|
@@ -3419,11 +3445,14 @@
|
||||||
|
*/
|
||||||
|
public void addLoadedEntities(List par1List)
|
||||||
|
{
|
||||||
|
- this.loadedEntityList.addAll(par1List);
|
||||||
|
-
|
||||||
|
for (int var2 = 0; var2 < par1List.size(); ++var2)
|
||||||
|
{
|
||||||
|
- this.obtainEntitySkin((Entity)par1List.get(var2));
|
||||||
|
+ Entity entity = (Entity)par1List.get(var2);
|
||||||
|
+ if (!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(entity, this)))
|
||||||
|
+ {
|
||||||
|
+ loadedEntityList.add(entity);
|
||||||
|
+ this.obtainEntitySkin(entity);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3460,7 +3489,10 @@
|
||||||
{
|
{
|
||||||
var9 = null;
|
var9 = null;
|
||||||
}
|
}
|
||||||
|
@ -326,7 +357,19 @@
|
||||||
return par1 > 0 && var9 == null && var10.canPlaceBlockOnSide(this, par2, par3, par4, par6);
|
return par1 > 0 && var9 == null && var10.canPlaceBlockOnSide(this, par2, par3, par4, par6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3958,4 +3981,65 @@
|
@@ -3701,7 +3733,10 @@
|
||||||
|
|
||||||
|
if (!this.loadedEntityList.contains(par1Entity))
|
||||||
|
{
|
||||||
|
- this.loadedEntityList.add(par1Entity);
|
||||||
|
+ if (!MinecraftForge.EVENT_BUS.post(new EntityJoinWorldEvent(par1Entity, this)))
|
||||||
|
+ {
|
||||||
|
+ loadedEntityList.add(par1Entity);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -3958,4 +3993,65 @@
|
||||||
var7.destroyBlockPartially(par1, par2, par3, par4, par5);
|
var7.destroyBlockPartially(par1, par2, par3, par4, par5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue