/
EntityMinecartContainer.java.patch
50 lines (45 loc) · 2.27 KB
/
EntityMinecartContainer.java.patch
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
--- ../src-base/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityMinecartContainer.java
@@ -202,6 +202,7 @@
public boolean func_184230_a(EntityPlayer p_184230_1_, EnumHand p_184230_2_)
{
+ if(net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.minecart.MinecartInteractEvent(this, p_184230_1_, p_184230_2_))) return true;
if (!this.field_70170_p.field_72995_K)
{
p_184230_1_.func_71007_a(this);
@@ -270,17 +271,37 @@
random = new Random(this.field_184291_d);
}
- LootContext.Builder lootcontext$builder = new LootContext.Builder((WorldServer)this.field_70170_p);
+ LootContext.Builder lootcontext$builder = new LootContext.Builder((WorldServer)this.field_70170_p).func_186472_a(this); // Forge: add looted entity to LootContext
if (p_184288_1_ != null)
{
- lootcontext$builder.func_186469_a(p_184288_1_.func_184817_da());
+ lootcontext$builder.func_186469_a(p_184288_1_.func_184817_da()).func_186470_a(p_184288_1_); // Forge: add player to LootContext
}
loottable.func_186460_a(this, random, lootcontext$builder.func_186471_a());
}
}
+ public net.minecraftforge.items.IItemHandler itemHandler = new net.minecraftforge.items.wrapper.InvWrapper(this);
+
+ @SuppressWarnings("unchecked")
+ @Override
+ @Nullable
+ public <T> T getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @Nullable net.minecraft.util.EnumFacing facing)
+ {
+ if (capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
+ {
+ return (T) itemHandler;
+ }
+ return super.getCapability(capability, facing);
+ }
+
+ @Override
+ public boolean hasCapability(net.minecraftforge.common.capabilities.Capability<?> capability, @Nullable net.minecraft.util.EnumFacing facing)
+ {
+ return capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing);
+ }
+
public void func_174888_l()
{
this.func_184288_f((EntityPlayer)null);