Блокирование у ItemSword

Версия Minecraft
1.7.10
128
12
Всем привет. Возникла проблема с ПКМ у кинжала.
При нажатии модель с рукой уходит вперёд, а мне необходимо сделать эффект меча (вбок).

Как исправить?1514311152969.png
Java:
package ru.whitewarrior.testmod;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;


public class RenderIronKz implements IItemRenderer {

    public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation(Main.modid, "obj/IronKz.obj"));
            
    public static final ResourceLocation
    Wood = new ResourceLocation("minecraft", "textures/blocks/planks_oak.png"),
    Blade = new ResourceLocation("minecraft", "textures/blocks/iron_block.png");
    

    @Override
    public boolean handleRenderType(ItemStack is, ItemRenderType type) {
        if (type == ItemRenderType.INVENTORY) return false;
        return true;
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) {
        if (type == ItemRenderType.INVENTORY) return false;
        return true;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
    
        switch (type)
        {
        
        case EQUIPPED:
            GL11.glPushMatrix();
            GL11.glScaled(0.001, 0.001, 0.001);
            GL11.glTranslatef(1000, 700, 900);
            GL11.glRotated(-270, 0, 0, 1);
            GL11.glRotated(320, 1, 0, 0);
            Minecraft.getMinecraft().renderEngine.bindTexture(Wood);
            model.renderPart("Cube");
            Minecraft.getMinecraft().renderEngine.bindTexture(Blade);
            model.renderPart("Cube_2");
            GL11.glPopMatrix();
            break;
        
        case EQUIPPED_FIRST_PERSON:
            GL11.glPushMatrix();
            GL11.glScaled(0.001, 0.0011, 0.001);
            GL11.glTranslatef(1000, 400, 900);
            GL11.glRotatef(-20, 1, 0, 0);
            GL11.glRotatef(-20, 0, 0, 1);
            GL11.glRotatef(-120, 0, 1, 0);
            
            Minecraft.getMinecraft().renderEngine.bindTexture(Wood);
            model.renderPart("Cube");
            Minecraft.getMinecraft().renderEngine.bindTexture(Blade);
            model.renderPart("Cube_2");
            GL11.glPopMatrix();
    
        
        
    
        default:
            
        
        
        
        }
            
        
    
}
}
 
Решение
В case EQUIPPED добавь условие, где проверяешь, находится ли предмет в использовании (что-то типа player.isItemInUse() или player.getCurrentEquipedItem().getItem().getUseTicks() > 0) и в зависимости от этого меняй угол поворота и позицию. Профит!
В case EQUIPPED добавь условие, где проверяешь, находится ли предмет в использовании (что-то типа player.isItemInUse() или player.getCurrentEquipedItem().getItem().getUseTicks() > 0) и в зависимости от этого меняй угол поворота и позицию. Профит!
 
В case EQUIPPED добавь условие, где проверяешь, находится ли предмет в использовании (что-то типа player.isItemInUse() или player.getCurrentEquipedItem().getItem().getUseTicks() > 0) и в зависимости от этого меняй угол поворота и позицию. Профит!
Хм-хм, а куда мне это вставлять? Класс рендера не пускает.
 
Java:
 @Override
 public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
     switch (type) {
    case EQUIPPED:
        GL11.glPushMatrix();
        GL11.glScaled(0.001, 0.001, 0.001);
        if (Minecraft.getMinecraft().thePlayer /*... остаток проверки*/) {
            // новые значения поворотов для зажатой ПКМ
        } else {
            // старые значения
            GL11.glTranslatef(1000, 700, 900);
            GL11.glRotated(-270, 0, 0, 1);
            GL11.glRotated(320, 1, 0, 0);
        }
            
        Minecraft.getMinecraft().renderEngine.bindTexture(Wood);
        model.renderPart("Cube");
        Minecraft.getMinecraft().renderEngine.bindTexture(Blade);
        model.renderPart("Cube_2");
        GL11.glPopMatrix();
        break;
            // ... остаток рендера
 
Назад
Сверху