- 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();
}
}
Последнее редактирование: