Animation

Версия Minecraft
1.7.10
149
1
2
Непонятная формулировка вопроса
Ну я решил собственно закурячить анимацию для предмета, ну так чисто по приколу, а она, хадина такая, не хочет работать (я кста на уровне блоков до сих пор). Хотелось чтобы при нажатии ПКМ и в течении 6-ти тиков предмет начал подниматься (чисто ради теста), а он стоит на месте.
Это чисто самое наиэлементарнейшее шо я мог придумать
Java:
import javax.swing.Icon;

import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;

import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainerCreative;
import net.minecraft.client.gui.inventory.GuiInventory;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import net.minecraft.client.renderer.entity.RenderManager;

public class RenderVSS implements IItemRenderer{
    private boolean isFirstPerson;
    int minX = 0;
    int maxX = 6; //2 пажилые переменные

    @Override
    public boolean handleRenderType(ItemStack item, ItemRenderType type) {
        switch (type)
        {
            case EQUIPPED:
                return true;

            case EQUIPPED_FIRST_PERSON:
                return true;

            default:
                return false;
        }
    }

    @Override
    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
    {
        return false;
    }

    @Override
    public void renderItem(ItemRenderType type, ItemStack item, Object... data)
    {  
        switch(type)
        {
        case EQUIPPED_FIRST_PERSON:
            renderEquippedItem(item, (EntityLivingBase) data[1], true);
            break;
            case EQUIPPED:
                renderEquippedItem(item, (EntityLivingBase) data[1], false);
                break;
                default:
                    break;
        }

        }
        private void renderEquippedItem(ItemStack item, EntityLivingBase entity, boolean firstPerson) {
            EntityPlayer player = (EntityPlayer) entity;
            RenderPlayer playerR = (RenderPlayer) RenderManager.instance.getEntityRenderObject(player);
            GL11.glPushMatrix();
            TextureManager manager = Minecraft.getMinecraft().renderEngine;
            manager.bindTexture(manager.getResourceLocation(1));
            if(firstPerson) {
                GL11.glScalef(1.0F, 1.1F, 2F);
                GL11.glTranslatef(-0.3F, 0.15F, -0.2F);
                GL11.glRotatef(20, 1F, 1F, 0F);
                GL11.glRotatef(-20, 0F, 1F, 1F);
                GL11.glRotatef(-15, 1F, 0F, 0F);
                GL11.glRotatef(5, 1F, 0F, 1F);
                if(Mouse.isButtonDown(1)) {
                    for(minX=0; minX==maxX; minX++) {  //счетчик
                        if(minX == 1) { //пажилые условия
                            GL11.glTranslatef(-0.3F, 0.20F, -0.2F);
                        }else if(minX == 2) {
                            GL11.glTranslatef(-0.3F, 0.25F, -0.2F);
                        }else if(minX == 3) {
                            GL11.glTranslatef(-0.3F, 0.30F, -0.2F);
                        }else if(minX == 4) {
                            GL11.glTranslatef(-0.3F, 0.35F, -0.2F);
                        }else if(minX == 5) {
                            GL11.glTranslatef(-0.3F, 0.40F, -0.2F);
                        }else if(minX == 6) {
                            GL11.glTranslatef(-0.3F, 0.50F, -0.2F);
                        }
                      
                    }
                }
            }else {
                GL11.glTranslatef(0.13F, -0.02F, 0.0F);
                GL11.glScalef(1.3F, 1.0F, 2F);
                GL11.glRotatef(5, 2.0F, 0.0F, 0.0F);
            }
            IIcon icon = item.getItem().getIcon(item, 0);
            Tessellator tess = Tessellator.instance;
            ItemRenderer.renderItemIn2D(tess, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.036F);
            GL11.glPopMatrix();
        }
}
Screenshot_127.png
Screenshot_128.png
 
Последнее редактирование:
7,099
324
1,510
Недостаточно подробно описана проблема. Нет скринов "как есть" и "как должно быть".
Не сказано, что и как именно не работает. При зажатой кнопке мыши не изменяется модель?
OpenGl-лапшу стоит комментаровать
 
Сверху