调整指示器的渲染位置
This commit is contained in:
parent
e115a06969
commit
9a66a45981
3 changed files with 45 additions and 2 deletions
|
@ -0,0 +1,42 @@
|
|||
package com.atsuishio.superbwarfare.mixins;
|
||||
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import net.minecraft.client.model.ArmedModel;
|
||||
import net.minecraft.client.model.EntityModel;
|
||||
import net.minecraft.client.model.HeadedModel;
|
||||
import net.minecraft.client.renderer.ItemInHandRenderer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.entity.RenderLayerParent;
|
||||
import net.minecraft.client.renderer.entity.layers.ItemInHandLayer;
|
||||
import net.minecraft.client.renderer.entity.layers.PlayerItemInHandLayer;
|
||||
import net.minecraft.world.entity.HumanoidArm;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
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;
|
||||
|
||||
@Mixin(PlayerItemInHandLayer.class)
|
||||
public abstract class PlayerItemInHandLayerMixin<T extends Player, M extends EntityModel<T> & ArmedModel & HeadedModel> extends ItemInHandLayer<T, M> {
|
||||
|
||||
@Shadow
|
||||
protected abstract void renderArmWithSpyglass(LivingEntity pEntity, ItemStack pStack, HumanoidArm pArm, PoseStack pPoseStack, MultiBufferSource pBuffer, int pCombinedLight);
|
||||
|
||||
public PlayerItemInHandLayerMixin(RenderLayerParent<T, M> pRenderer, ItemInHandRenderer pItemInHandRenderer) {
|
||||
super(pRenderer, pItemInHandRenderer);
|
||||
}
|
||||
|
||||
@Inject(method = "renderArmWithItem", at = @At("HEAD"), cancellable = true)
|
||||
public void renderArmWithItem(LivingEntity pLivingEntity, ItemStack pItemStack, ItemDisplayContext pDisplayContext,
|
||||
HumanoidArm pArm, PoseStack pPoseStack, MultiBufferSource pBuffer, int pPackedLight, CallbackInfo ci) {
|
||||
if (pItemStack.is(ModItems.ARTILLERY_INDICATOR.get()) && pLivingEntity.getUseItem() == pItemStack && pLivingEntity.swingTime == 0) {
|
||||
ci.cancel();
|
||||
this.renderArmWithSpyglass(pLivingEntity, pItemStack, pArm, pPoseStack, pBuffer, pPackedLight);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -284,7 +284,7 @@
|
|||
},
|
||||
"head": {
|
||||
"rotation": [90, 0, 0],
|
||||
"translation": [0, -0.25, -13.25],
|
||||
"translation": [-2, -0.25, -13.25],
|
||||
"scale": [1.6, 1.6, 1.6]
|
||||
},
|
||||
"fixed": {
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
"KeymappingMixin",
|
||||
"LivingEntityRendererMixin",
|
||||
"MinecraftMixin",
|
||||
"MouseHandlerMixin"
|
||||
"MouseHandlerMixin",
|
||||
"PlayerItemInHandLayerMixin"
|
||||
],
|
||||
"minVersion": "0.8",
|
||||
"injectors": {
|
||||
|
|
Loading…
Add table
Reference in a new issue