diff --git a/build.gradle b/build.gradle index 3e7b71083..5eddccb47 100644 --- a/build.gradle +++ b/build.gradle @@ -115,7 +115,9 @@ dependencies { mixin { add sourceSets.main, "citadel.refmap.json" + add sourceSets.main, "alexsmobs.refmap.json" config 'citadel.mixins.json' + config 'alexsmobs.mixins.json' } // Example for how to get properties into the manifest for reading by the runtime.. diff --git a/src/main/java/com/github/alexthe666/alexsmobs/block/BlockHummingbirdFeeder.java b/src/main/java/com/github/alexthe666/alexsmobs/block/BlockHummingbirdFeeder.java index fde3df14a..4c2643279 100644 --- a/src/main/java/com/github/alexthe666/alexsmobs/block/BlockHummingbirdFeeder.java +++ b/src/main/java/com/github/alexthe666/alexsmobs/block/BlockHummingbirdFeeder.java @@ -78,7 +78,7 @@ public InteractionResult use(BlockState state, Level worldIn, BlockPos pos, Play ItemStack itemStack = player.getItemInHand(handIn); int setContent = -1; if(contents == 0){ - if(itemStack.is(AMTagRegistry.HUMMINGNBIRD_FEEDER_SWEETENERS)){ + if(itemStack.is(AMTagRegistry.HUMMINGBIRD_FEEDER_SWEETENERS)){ setContent = 2; useItem(player, itemStack, false); }else if(itemStack.getItem() == waterBottle.getItem() && ItemStack.isSameItemSameTags(waterBottle, itemStack)){ @@ -86,7 +86,7 @@ public InteractionResult use(BlockState state, Level worldIn, BlockPos pos, Play useItem(player, itemStack, true); } }else if(contents == 1){ - if(itemStack.is(AMTagRegistry.HUMMINGNBIRD_FEEDER_SWEETENERS)){ + if(itemStack.is(AMTagRegistry.HUMMINGBIRD_FEEDER_SWEETENERS)){ setContent = 3; useItem(player, itemStack, false); } diff --git a/src/main/java/com/github/alexthe666/alexsmobs/misc/AMTagRegistry.java b/src/main/java/com/github/alexthe666/alexsmobs/misc/AMTagRegistry.java index 80fc24f92..81e0895a7 100644 --- a/src/main/java/com/github/alexthe666/alexsmobs/misc/AMTagRegistry.java +++ b/src/main/java/com/github/alexthe666/alexsmobs/misc/AMTagRegistry.java @@ -113,7 +113,7 @@ public class AMTagRegistry { public static final TagKey GRIZZLY_BREEDABLES = registerItemTag("grizzly_breedables"); public static final TagKey GRIZZLY_TAMEABLES = registerItemTag("grizzly_tameables"); public static final TagKey HUMMINGBIRD_BREEDABLES = registerItemTag("hummingbird_breedables"); - public static final TagKey HUMMINGNBIRD_FEEDER_SWEETENERS = registerItemTag("hummingnbird_feeder_sweeteners"); + public static final TagKey HUMMINGBIRD_FEEDER_SWEETENERS = registerItemTag("hummingbird_feeder_sweeteners"); public static final TagKey JERBOA_BREEDABLES = registerItemTag("jerboa_breedables"); public static final TagKey JERBOA_BEGS_FOR = registerItemTag("jerboa_begs_for"); public static final TagKey KANGAROO_BREEDABLES = registerItemTag("kangaroo_breedables"); diff --git a/src/main/java/com/github/alexthe666/alexsmobs/mixin/client/CapeLayerMixin.java b/src/main/java/com/github/alexthe666/alexsmobs/mixin/client/CapeLayerMixin.java new file mode 100644 index 000000000..a30cf837b --- /dev/null +++ b/src/main/java/com/github/alexthe666/alexsmobs/mixin/client/CapeLayerMixin.java @@ -0,0 +1,30 @@ +package com.github.alexthe666.alexsmobs.mixin.client; + +import com.github.alexthe666.alexsmobs.item.AMItemRegistry; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.layers.CapeLayer; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; +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; + +@Mixin(CapeLayer.class) +public class CapeLayerMixin { + + @Inject(method = "render(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;ILnet/minecraft/client/player/AbstractClientPlayer;FFFFFF)V", + remap = true, + cancellable = true, + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/player/AbstractClientPlayer;getItemBySlot(Lnet/minecraft/world/entity/EquipmentSlot;)Lnet/minecraft/world/item/ItemStack;" + ) + ) + private void am_render(PoseStack poseStack, MultiBufferSource buffer, int packedLight, AbstractClientPlayer livingEntity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, CallbackInfo ci) { + ItemStack itemstack = livingEntity.getItemBySlot(EquipmentSlot.CHEST); + if (itemstack.is(AMItemRegistry.TARANTULA_HAWK_ELYTRA.get())) ci.cancel(); + } +} diff --git a/src/main/resources/alexsmobs.mixins.json b/src/main/resources/alexsmobs.mixins.json new file mode 100644 index 000000000..a533e23f7 --- /dev/null +++ b/src/main/resources/alexsmobs.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "com.github.alexthe666.alexsmobs.mixin", + "compatibilityLevel": "JAVA_17", + "target": "@env(DEFAULT)", + "refmap": "alexsmobs.refmap.json", + "mixins": [], + "client": [ + "client.CapeLayerMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "minVersion": "0.8" +}