ForgePatch/patches/minecraft/net/minecraft/tileentity/TileEntityBrewingStand.java.patch

83 lines
3.6 KiB
Diff

--- a/net/minecraft/tileentity/TileEntityBrewingStand.java
+++ b/net/minecraft/tileentity/TileEntityBrewingStand.java
@@ -133,6 +133,7 @@
private boolean func_145934_k() {
ItemStack itemstack = this.field_145945_j.get(3);
+ if (!itemstack.func_190926_b()) return net.minecraftforge.common.brewing.BrewingRecipeRegistry.canBrew(field_145945_j, itemstack, field_145947_i); // divert to VanillaBrewingRegistry
if (itemstack.func_190926_b()) {
return false;
} else if (!PotionBrewing.func_185205_a(itemstack)) {
@@ -150,16 +151,15 @@
}
private void func_145940_l() {
+ if (net.minecraftforge.event.ForgeEventFactory.onPotionAttemptBrew(field_145945_j)) return;
ItemStack itemstack = this.field_145945_j.get(3);
- for(int i = 0; i < 3; ++i) {
- this.field_145945_j.set(i, PotionBrewing.func_185212_d(itemstack, this.field_145945_j.get(i)));
- }
+ net.minecraftforge.common.brewing.BrewingRecipeRegistry.brewPotions(field_145945_j, itemstack, field_145947_i);
itemstack.func_190918_g(1);
BlockPos blockpos = this.func_174877_v();
- if (itemstack.func_77973_b().func_77634_r()) {
- ItemStack itemstack1 = new ItemStack(itemstack.func_77973_b().func_77668_q());
+ if (itemstack.hasContainerItem()) {
+ ItemStack itemstack1 = itemstack.getContainerItem();
if (itemstack.func_190926_b()) {
itemstack = itemstack1;
} else {
@@ -169,6 +169,7 @@
this.field_145945_j.set(3, itemstack);
this.field_145850_b.func_175718_b(1035, blockpos, 0);
+ net.minecraftforge.event.ForgeEventFactory.onPotionBrewed(field_145945_j);
}
public void func_145839_a(NBTTagCompound p_145839_1_) {
@@ -234,13 +235,13 @@
public boolean func_94041_b(int p_94041_1_, ItemStack p_94041_2_) {
if (p_94041_1_ == 3) {
- return PotionBrewing.func_185205_a(p_94041_2_);
+ return net.minecraftforge.common.brewing.BrewingRecipeRegistry.isValidIngredient(p_94041_2_);
} else {
Item item = p_94041_2_.func_77973_b();
if (p_94041_1_ == 4) {
return item == Items.field_151065_br;
} else {
- return (item == Items.field_151068_bn || item == Items.field_185155_bH || item == Items.field_185156_bI || item == Items.field_151069_bo) && this.func_70301_a(p_94041_1_).func_190926_b();
+ return net.minecraftforge.common.brewing.BrewingRecipeRegistry.isValidInput(p_94041_2_) && this.func_70301_a(p_94041_1_).func_190926_b();
}
}
}
@@ -302,4 +303,27 @@
public void func_174888_l() {
this.field_145945_j.clear();
}
+
+ net.minecraftforge.common.util.LazyOptional<? extends net.minecraftforge.items.IItemHandler>[] handlers =
+ net.minecraftforge.items.wrapper.SidedInvWrapper.create(this, EnumFacing.UP, EnumFacing.DOWN, EnumFacing.NORTH);
+
+ @Override
+ public <T> net.minecraftforge.common.util.LazyOptional<T> getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @Nullable EnumFacing facing) {
+ if (!this.field_145846_f && facing != null && capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
+ if (facing == EnumFacing.UP)
+ return handlers[0].cast();
+ else if (facing == EnumFacing.DOWN)
+ return handlers[1].cast();
+ else
+ return handlers[2].cast();
+ }
+ return super.getCapability(capability, facing);
+ }
+
+ @Override
+ public void func_145843_s() {
+ super.func_145843_s();
+ for (int x = 0; x < handlers.length; x++)
+ handlers[x].invalidate();
+ }
}