From 0e3132549cb06390e6d1de5635e4ab8e8e61935b Mon Sep 17 00:00:00 2001 From: Wynd Date: Thu, 13 Apr 2023 22:49:00 +0300 Subject: [PATCH] Fixed furnaces consuming buckets --- README.md | 14 ++++++++-- .../xyz/pixelatedw/finalbeta/WyHelper.java | 4 +-- .../finalbeta/mixin/FurnaceEntityMixin.java | 26 +++++++++++++++++++ .../finalbeta/mixin/MinecartMixin.java | 2 +- src/main/resources/finalbeta.mixins.json | 3 ++- 5 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 src/main/java/xyz/pixelatedw/finalbeta/mixin/FurnaceEntityMixin.java diff --git a/README.md b/README.md index 81fdf0e..1a67765 100644 --- a/README.md +++ b/README.md @@ -171,10 +171,20 @@ After:
Fixes saddled pigs not dropping their saddles on death Before: -![pig not dropping its saddle on death](https://i.imgur.com/PVLRNn5.mp4) +
+ +
Fixes furnaces consuming the buckets as well when using lava buckets + +Before: +
diff --git a/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java b/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java index cce27cf..842cad3 100644 --- a/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java +++ b/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java @@ -24,9 +24,9 @@ public class WyHelper { Random rand = new Random(); // player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F); -// player.dropItem(new ItemInstance(ItemType.saddle, 1), false); // player.dropItem(new ItemInstance(ItemType.pickaxeGold, 1), false); -// +// player.dropItem(new ItemInstance(Tile.GOLD_ORE, 64), false); + // player.dropItem(new ItemInstance(ItemType.bow, 1), false); // player.dropItem(new ItemInstance(ItemType.arrow, 64), false); // player.dropItem(new ItemInstance(Tile.STONE, 64), false); diff --git a/src/main/java/xyz/pixelatedw/finalbeta/mixin/FurnaceEntityMixin.java b/src/main/java/xyz/pixelatedw/finalbeta/mixin/FurnaceEntityMixin.java new file mode 100644 index 0000000..08aac65 --- /dev/null +++ b/src/main/java/xyz/pixelatedw/finalbeta/mixin/FurnaceEntityMixin.java @@ -0,0 +1,26 @@ +package xyz.pixelatedw.finalbeta.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.entity.FurnaceEntity; +import net.minecraft.item.ItemInstance; +import net.minecraft.item.ItemType; + +@Mixin(FurnaceEntity.class) +public class FurnaceEntityMixin { + + @Shadow + private ItemInstance[] contents; + + @Inject(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/FurnaceEntity;getFuelTime(Lnet/minecraft/item/ItemInstance;)I", shift = At.Shift.BY, by = 5), cancellable = true) + public void tick(CallbackInfo ci) { + if(this.contents[1] != null && this.contents[1].itemId == ItemType.bucketLava.id) { + ci.cancel(); + this.contents[1] = new ItemInstance(ItemType.bucket); + } + } +} diff --git a/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java b/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java index fb31bdc..15586a0 100644 --- a/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java +++ b/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java @@ -57,7 +57,7 @@ public class MinecartMixin { } if (speed >= 0.01D && ModConfig.ADD_MORE_SOUNDS.get()) { - if (minecart.field_1645 % 34 == 1) { + if (minecart.field_1645 % 33 == 1) { minecart.level.playSound(x, y, z, "minecart.base", volume, pitch); } } diff --git a/src/main/resources/finalbeta.mixins.json b/src/main/resources/finalbeta.mixins.json index d129214..45f3118 100644 --- a/src/main/resources/finalbeta.mixins.json +++ b/src/main/resources/finalbeta.mixins.json @@ -23,7 +23,8 @@ "LivingEntityRendererMixin", "FishHookMixin", "TileRendererMixin", - "LivingEntityMixin" + "LivingEntityMixin", + "FurnaceEntityMixin" ], "injectors": { "defaultRequire": 1