diff --git a/src/main/java/tobinio/realarrowtip/ModelPredicateProvider.java b/src/main/java/tobinio/realarrowtip/ModelPredicateProvider.java index 8c79b8b..9bac494 100644 --- a/src/main/java/tobinio/realarrowtip/ModelPredicateProvider.java +++ b/src/main/java/tobinio/realarrowtip/ModelPredicateProvider.java @@ -3,6 +3,7 @@ package tobinio.realarrowtip; import net.minecraft.client.item.ModelPredicateProviderRegistry; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.mob.StrayEntity; import net.minecraft.item.CrossbowItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -31,6 +32,9 @@ public class ModelPredicateProvider { ModelPredicateProviderRegistry.register(Items.BOW, new Identifier("tipped"), (stack, world, entity, seed) -> { if (entity == null) return 0; + if (entity instanceof StrayEntity) + return 1; + return entity.getProjectileType(stack).isOf(Items.TIPPED_ARROW) ? 1 : 0; }); } diff --git a/src/main/java/tobinio/realarrowtip/RealArrowTip.java b/src/main/java/tobinio/realarrowtip/RealArrowTip.java index b37a281..bc866a1 100644 --- a/src/main/java/tobinio/realarrowtip/RealArrowTip.java +++ b/src/main/java/tobinio/realarrowtip/RealArrowTip.java @@ -1,14 +1,6 @@ package tobinio.realarrowtip; import net.fabricmc.api.ModInitializer; -import net.minecraft.client.item.ModelPredicateProviderRegistry; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.CrossbowItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/tobinio/realarrowtip/mixin/ArrowEntityRendererMixin.java b/src/main/java/tobinio/realarrowtip/mixin/ArrowEntityRendererMixin.java deleted file mode 100644 index cc7a086..0000000 --- a/src/main/java/tobinio/realarrowtip/mixin/ArrowEntityRendererMixin.java +++ /dev/null @@ -1,34 +0,0 @@ -package tobinio.realarrowtip.mixin; - -import net.minecraft.client.render.entity.ArrowEntityRenderer; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.ProjectileEntityRenderer; -import net.minecraft.entity.projectile.ArrowEntity; -import net.minecraft.util.Identifier; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.injection.Redirect; -import tobinio.realarrowtip.RealArrowTip; - -import static net.minecraft.client.render.entity.ArrowEntityRenderer.TEXTURE; - -/** - * Created: 02/10/2023 - * @author Tobias Frischmann - */ - -@Mixin (ArrowEntityRenderer.class) -public abstract class ArrowEntityRendererMixin extends ProjectileEntityRenderer { - - //todo only overwrite identifier - - public ArrowEntityRendererMixin(EntityRendererFactory.Context context) { - super(context); - } - - @Override - public Identifier getTexture(ArrowEntity arrowEntity) { - return arrowEntity.getColor() > 0 ? new Identifier(RealArrowTip.modID, "textures/entity/projectiles/tipped_arrow.png") : TEXTURE; - } - -} diff --git a/src/main/java/tobinio/realarrowtip/mixin/CrossbowItemInvoker.java b/src/main/java/tobinio/realarrowtip/mixin/CrossbowItemInvoker.java index e5fc425..ad93e3b 100644 --- a/src/main/java/tobinio/realarrowtip/mixin/CrossbowItemInvoker.java +++ b/src/main/java/tobinio/realarrowtip/mixin/CrossbowItemInvoker.java @@ -9,13 +9,14 @@ import java.util.List; /** * Created: 04/10/2023 + * * @author Tobias Frischmann */ @Mixin (CrossbowItem.class) public interface CrossbowItemInvoker { @Invoker ("getProjectiles") - public static List invokerGetProjectiles(ItemStack crossbow) { + static List invokerGetProjectiles(ItemStack crossbow) { throw new AssertionError(); } } diff --git a/src/main/java/tobinio/realarrowtip/mixin/ItemColorsMixin.java b/src/main/java/tobinio/realarrowtip/mixin/ItemColorsMixin.java index 0a221b1..e6cc818 100644 --- a/src/main/java/tobinio/realarrowtip/mixin/ItemColorsMixin.java +++ b/src/main/java/tobinio/realarrowtip/mixin/ItemColorsMixin.java @@ -1,14 +1,16 @@ package tobinio.realarrowtip.mixin; import com.llamalad7.mixinextras.sugar.Local; -import net.minecraft.client.MinecraftClient; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColors; -import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; -import net.minecraft.item.*; +import net.minecraft.entity.mob.StrayEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.potion.Potion; import net.minecraft.potion.PotionUtil; +import net.minecraft.potion.Potions; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -36,6 +38,10 @@ public abstract class ItemColorsMixin { if (holder instanceof LivingEntity livingEntity) { + if (holder instanceof StrayEntity) { + return PotionUtil.getColor(Potions.SLOWNESS); + } + ItemStack projectileType = livingEntity.getProjectileType(stack); if (projectileType.isOf(Items.TIPPED_ARROW)) { diff --git a/src/main/java/tobinio/realarrowtip/mixin/ItemMixin.java b/src/main/java/tobinio/realarrowtip/mixin/ItemMixin.java index 87c2d29..6bdfa83 100644 --- a/src/main/java/tobinio/realarrowtip/mixin/ItemMixin.java +++ b/src/main/java/tobinio/realarrowtip/mixin/ItemMixin.java @@ -1,17 +1,13 @@ package tobinio.realarrowtip.mixin; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; import net.minecraft.world.World; 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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; /** * Created: 05/10/2023 diff --git a/src/main/resources/assets/real_arrow_tip/textures/entity/projectiles/tipped_arrow.png b/src/main/resources/assets/minecraft/textures/entity/projectiles/tipped_arrow.png similarity index 100% rename from src/main/resources/assets/real_arrow_tip/textures/entity/projectiles/tipped_arrow.png rename to src/main/resources/assets/minecraft/textures/entity/projectiles/tipped_arrow.png diff --git a/src/main/resources/real-arrow-tip.mixins.json b/src/main/resources/real-arrow-tip.mixins.json index 77f889d..264cbfe 100644 --- a/src/main/resources/real-arrow-tip.mixins.json +++ b/src/main/resources/real-arrow-tip.mixins.json @@ -9,7 +9,6 @@ "ItemMixin" ], "client": [ - "ArrowEntityRendererMixin", "ItemColorsMixin", "ProjectileEntityRendererMixin" ],