- 48
- 2
- 3
делаю viewmodel на фордж. Чтобы отрендерить каждую руку отдельно, пробовал использовать:
1) ивент из форджа (и аналогично RenderArmEvent)
2) миксин (еще 3 таких-же метода, только рендер айтема, карты и трансформ)
однако в обоих случаях изменялась и продолжает изменяться позиция обеих рук. Внимание, вопрос: как изменить позицию каждой руки отдельно?
1) ивент из форджа (и аналогично RenderArmEvent)
RenderHandEvent:
@SubscribeEvent
public void onRender(RenderHandEvent e){
if(e.getHand() == Hand.MAIN_HAND) {
GL11.glTranslatef(leftX, leftY, leftZ);
}else{
GL11.glTranslatef(rightX, rightY, rightZ);
}
}
mixin:
@Inject(method = "renderArmFirstPerson", at = @At("HEAD"))
private void renderArmFirstPerson(MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int combinedLightIn, float equippedProgress, float swingProgress, HandSide side, CallbackInfo ci) {
if (side == HandSide.LEFT) {
GlStateManager.translatef(ViewModel.leftX, ViewModel.leftY, ViewModel.leftZ);
} else {
GlStateManager.translated(ViewModel.rightX, ViewModel.rightY, ViewModel.rightZ);
}
}