- 397
- 8
- 33
Здрастете.
Решил, наткнувшись на гайд, сделать пробный себе меч с моделью. Создал меч, создал модель и рендер тоже.
Только одно не получилось - все есть, а в руке и "на земле" оружия нет. Вот, приложу код свой, чтобы можно было разобраться.
А так же в постИните записано энто:
MinecraftForgeClient.registerItemRenderer(ItemList.ItemTestSword.itemID, (IItemRenderer) new RenderSword_01());
Где я ошибся?
П.С. 1.6.4
Решил, наткнувшись на гайд, сделать пробный себе меч с моделью. Создал меч, создал модель и рендер тоже.
Только одно не получилось - все есть, а в руке и "на земле" оружия нет. Вот, приложу код свой, чтобы можно было разобраться.
Код:
package assets.gothicmod.src.items.weapons;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import assets.gothicmod.src.gothicmod;
import assets.gothicmod.src.lists.ItemList;
import assets.gothicmod.src.proxy.ClientProxy;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
public class ItemTestSword extends ItemSword {
public ItemTestSword(int par1) {
super(par1, ItemList.TESTMATERIAL);
maxStackSize = 1;
setUnlocalizedName("ItemTestSword");
setCreativeTab(gothicmod.gothicTab);
}
@Override
public void registerIcons(IconRegister par1IconRegister) {
this.itemIcon = par1IconRegister.registerIcon("gothicmod:weapon_dagger");
}
}
Код:
package assets.gothicmod.src.items.weapons;
import java.util.ArrayList;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
public class Sword_02 extends ModelBiped {
ModelRenderer Shape1;
ModelRenderer Shape2;
ModelRenderer Shape3;
ModelRenderer Shape4;
ModelRenderer Shape5;
public Sword_02() {
textureWidth = 64;
textureHeight = 32;
Shape1 = new ModelRenderer(this, 0, 0);
Shape1.addBox(0F, 0F, -1F, 1, 25, 3);
Shape1.setRotationPoint(0F, -9F, 0F);
Shape1.setTextureSize(64, 32);
Shape1.mirror = true;
setRotation(Shape1, 0F, 0F, 0F);
Shape2 = new ModelRenderer(this, 0, 0);
Shape2.addBox(0F, 0F, 0F, 1, 2, 1);
Shape2.setRotationPoint(0F, -10F, 0F);
Shape2.setTextureSize(64, 32);
Shape2.mirror = true;
setRotation(Shape2, 0F, 0F, 0F);
Shape3 = new ModelRenderer(this, 0, 0);
Shape3.addBox(0F, 0F, 0F, 1, 1, 7);
Shape3.setRotationPoint(0F, 15F, -3F);
Shape3.setTextureSize(64, 32);
Shape3.mirror = true;
setRotation(Shape3, 0F, 0F, 0F);
Shape4 = new ModelRenderer(this, 0, 0);
Shape4.addBox(0F, 0F, 0F, 1, 7, 1);
Shape4.setRotationPoint(0F, 16F, 0F);
Shape4.setTextureSize(64, 32);
Shape4.mirror = true;
setRotation(Shape4, 0F, 0F, 0F);
Shape5 = new ModelRenderer(this, 0, 0);
Shape5.addBox(0F, 0F, 0F, 1, 1, 1);
Shape5.setRotationPoint(0F, 23F, 0F);
Shape5.setTextureSize(64, 32);
Shape5.mirror = true;
setRotation(Shape5, 0F, 0F, 0F);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
Shape1.render(f5);
Shape2.render(f5);
Shape3.render(f5);
Shape4.render(f5);
Shape5.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
{
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
}
public void renderAll() {}
}
Код:
package assets.gothicmod.src.items.weapons;
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;
public class RenderSword_01 implements IItemRenderer {
public static Sword_02 model;
Minecraft mc = Minecraft.getMinecraft();
public RenderSword_01(){
model = new Sword_02();
}
@Override
public boolean handleRenderType(ItemStack is,ItemRenderType type) {
if (type == type.INVENTORY) {
return false;
} else {
return true;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type,ItemStack is,ItemRendererHelper helper){
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
GL11.glPushMatrix();
if(type == type.EQUIPPED_FIRST_PERSON) {
GL11.glTranslatef(0.0F, 0.0F, 0.0F); //Тут вы указываете перемещение по осям X, Y, Z
GL11.glRotatef(0F, 0, 0, 1); //Тут вы указываете поворот по оси Z
GL11.glRotatef(0F, 0, 1, 0); //Тут вы указываете поворот по оси Y
GL11.glRotatef(0F, 1, 0, 0); //Тут вы указываете поворот по оси X
GL11.glScaled(1.2D, 2.4D, 1.2D);
} else if (type == type.INVENTORY) {
GL11.glScaled(1.0D, 1.0D, 1.0D);
} else {
double sne = 1.0D;
GL11.glTranslatef(0.0F, 0.0F, 0.0F);
GL11.glRotatef(1F, 0, 0, 1);
GL11.glRotatef(1F, 0, 1, 0);
GL11.glRotatef(1F, 1, 0, 0);
GL11.glScaled(sne, sne, sne);
}
Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation("gothicmod/textures/blocks/dark_block.png"));
this.model.renderAll();
GL11.glPopMatrix();
}
}
А так же в постИните записано энто:
MinecraftForgeClient.registerItemRenderer(ItemList.ItemTestSword.itemID, (IItemRenderer) new RenderSword_01());
Где я ошибся?
П.С. 1.6.4