diff --git a/README.md b/README.md index 7bb4ccf..81fdf0e 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,16 @@ After: +
Fixes saddled pigs not dropping their saddles on death + +Before: +![pig not dropping its saddle on death](https://i.imgur.com/PVLRNn5.mp4) + +After: +![pig dropping its saddle on death](https://i.imgur.com/0yHHfxB.mp4) + +
+ ## Troubleshooting **Q: My achievements screen is all messed up** diff --git a/src/main/java/xyz/pixelatedw/finalbeta/ModConfig.java b/src/main/java/xyz/pixelatedw/finalbeta/ModConfig.java index 25b88be..6aa745e 100644 --- a/src/main/java/xyz/pixelatedw/finalbeta/ModConfig.java +++ b/src/main/java/xyz/pixelatedw/finalbeta/ModConfig.java @@ -31,7 +31,9 @@ public class ModConfig { "Fixes pickaxes not being effective agaist certain blocks that it should be effective on"); public static final Option FIX_AXE_EFFECTIVENESS = make("Fix axe effectiveness", true, "Fixes axes not being effective agaist certain blocks that it should be effective on"); - + public static final Option FIX_SADDLES_NOT_DROPPING = make("Fix saddles not dropping", true, + "Fixes saddles not dropping when killing saddled pigs"); + private static ModConfig instance = new ModConfig(); public static final ModConfig instance() { return instance; diff --git a/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java b/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java index 598e100..cce27cf 100644 --- a/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java +++ b/src/main/java/xyz/pixelatedw/finalbeta/WyHelper.java @@ -23,11 +23,10 @@ public class WyHelper { public static void cheatCommand(Player player) { Random rand = new Random(); // player.level.playSound(player, "random.break", 1, (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F); - -// player.damage(player, 15); - -// player.dropItem(new ItemInstance(ItemType.mushroomStew, 1), false); +// player.dropItem(new ItemInstance(ItemType.saddle, 1), false); +// player.dropItem(new ItemInstance(ItemType.pickaxeGold, 1), 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); @@ -42,9 +41,6 @@ public class WyHelper { // enemy.setPositionAndAngles(player.x + 2, player.y, player.z, 0.0f, 0.0f); // player.level.spawnEntity(enemy); -// boolean b = ModConfig.instance().get(ModConfig.SUGAR_CANE_ON_SAND); -// System.out.println(b); - player.level.setLevelTime(0); player.level.getProperties().setRaining(false); player.level.getProperties().setRainTime(0); diff --git a/src/main/java/xyz/pixelatedw/finalbeta/mixin/LivingEntityMixin.java b/src/main/java/xyz/pixelatedw/finalbeta/mixin/LivingEntityMixin.java new file mode 100644 index 0000000..8fc2aa7 --- /dev/null +++ b/src/main/java/xyz/pixelatedw/finalbeta/mixin/LivingEntityMixin.java @@ -0,0 +1,25 @@ +package xyz.pixelatedw.finalbeta.mixin; + +import org.spongepowered.asm.mixin.Mixin; +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.LivingEntity; +import net.minecraft.entity.animal.Pig; +import net.minecraft.item.ItemType; +import xyz.pixelatedw.finalbeta.ModConfig; + +@Mixin(LivingEntity.class) +public class LivingEntityMixin { + + @Inject(method = "dropLoot", at = @At("TAIL")) + public void dropLoot(CallbackInfo ci) { + if(ModConfig.FIX_SADDLES_NOT_DROPPING.get()) { + LivingEntity entity = (LivingEntity) (Object) this; + if (entity instanceof Pig && ((Pig) entity).isSaddled()) { + entity.dropItem(ItemType.saddle.id, 1); + } + } + } +} diff --git a/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java b/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java index 38898fb..fb31bdc 100644 --- a/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java +++ b/src/main/java/xyz/pixelatedw/finalbeta/mixin/MinecartMixin.java @@ -19,8 +19,8 @@ import xyz.pixelatedw.finalbeta.WyHelper; @Mixin(Minecart.class) public class MinecartMixin { - private static final double EXTRA_MINECART_XZ_SIZE = 0.3; - private static final double EXTRA_MINECART_Y_SIZE = 0.1; + private static final double EXTRA_MINECART_XZ_SIZE = 0.4; + private static final double EXTRA_MINECART_Y_SIZE = 0.0; @Inject(method = "method_1379", at = @At("HEAD"), cancellable = true) public void onCollision(Entity other, CallbackInfoReturnable ci) { diff --git a/src/main/resources/finalbeta.mixins.json b/src/main/resources/finalbeta.mixins.json index df5748b..d129214 100644 --- a/src/main/resources/finalbeta.mixins.json +++ b/src/main/resources/finalbeta.mixins.json @@ -22,7 +22,8 @@ "MinecartMixin", "LivingEntityRendererMixin", "FishHookMixin", - "TileRendererMixin" + "TileRendererMixin", + "LivingEntityMixin" ], "injectors": { "defaultRequire": 1