Здравствуйте форумчане. Столкнулся с проблемой, анимацией/движением брони.
1-ая проблема, это то, что броня появляется над игроком, хотя создавал нагрудник.
2-ая проблема, шлем, туловище и руки брони не двигаются, вот код модели.
Ну и код самого итема на всякий.
Надеюсь мне помогут...
1-ая проблема, это то, что броня появляется над игроком, хотя создавал нагрудник.
2-ая проблема, шлем, туловище и руки брони не двигаются, вот код модели.
Код:
package ru.ostrix.aod.client.model;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
public class CrystalWhiteChestplateModel extends ModelBiped
{
private ResourceLocation texture = new ResourceLocation("aod:textures/model/armor.png");
//fields
ModelRenderer Box_0;
ModelRenderer Box_1;
ModelRenderer Box_2;
ModelRenderer Box_3;
ModelRenderer Box_4;
ModelRenderer Box_5;
ModelRenderer Box_6;
ModelRenderer Box_7;
ModelRenderer Box_8;
ModelRenderer Box_9;
ModelRenderer Box_10;
ModelRenderer Box_12;
ModelRenderer Box_13;
ModelRenderer Box_14;
ModelRenderer Box_15;
ModelRenderer Box_16;
ModelRenderer Box_17;
ModelRenderer Box_18;
ModelRenderer Box_19;
ModelRenderer Box_21;
ModelRenderer Box_23;
ModelRenderer Box_24;
ModelRenderer Box_25;
ModelRenderer Box_26;
ModelRenderer Box_27;
ModelRenderer Box_28;
ModelRenderer Box_29;
ModelRenderer Box_30;
ModelRenderer Box_31;
ModelRenderer Box_32;
ModelRenderer Box_33;
ModelRenderer Box_34;
ModelRenderer Box_35;
ModelRenderer Box_36;
ModelRenderer Box_37;
ModelRenderer Box_38;
ModelRenderer Box_39;
ModelRenderer Box_40;
public CrystalWhiteChestplateModel()
{
textureWidth = 64;
textureHeight = 32;
textureWidth = 512;
textureHeight = 512;
Box_0 = new ModelRenderer(this, 1, 1);
Box_0.addBox(0F, 0F, 0F, 4, 1, 1);
Box_0.setRotationPoint(-4F, -17F, -4.5F);
Box_0.setTextureSize(512, 512);
Box_0.mirror = true;
setRotation(Box_0, 0F, 0F, 0.0698132F);
Box_1 = new ModelRenderer(this, 17, 1);
Box_1.addBox(0F, 0F, 0F, 4, 1, 1);
Box_1.setRotationPoint(4F, -16F, -4.5F);
Box_1.setTextureSize(512, 512);
Box_1.mirror = true;
setRotation(Box_1, 0F, 0F, -3.211406F);
Box_2 = new ModelRenderer(this, 33, 1);
Box_2.addBox(0F, 0F, 0F, 1, 4, 1);
Box_2.setRotationPoint(-4F, -17F, -4.5F);
Box_2.setTextureSize(512, 512);
Box_2.mirror = true;
setRotation(Box_2, 0F, 0F, 0F);
Box_3 = new ModelRenderer(this, 41, 1);
Box_3.addBox(0F, 0F, 0F, 1, 4, 1);
Box_3.setRotationPoint(3F, -17F, -4.5F);
Box_3.setTextureSize(512, 512);
Box_3.mirror = true;
setRotation(Box_3, 0F, 0F, 0F);
Box_4 = new ModelRenderer(this, 49, 1);
Box_4.addBox(0F, 0F, 0F, 3, 2, 1);
Box_4.setRotationPoint(4F, -13F, -4.5F);
Box_4.setTextureSize(512, 512);
Box_4.mirror = true;
setRotation(Box_4, 0F, 0F, -3.211406F);
Box_5 = new ModelRenderer(this, 65, 1);
Box_5.addBox(0F, 0F, 0F, 3, 2, 1);
Box_5.setRotationPoint(-4F, -15F, -4.5F);
Box_5.setTextureSize(512, 512);
Box_5.mirror = true;
setRotation(Box_5, 0F, 0F, 0.0698132F);
Box_6 = new ModelRenderer(this, 81, 1);
Box_6.addBox(0F, 0F, 0F, 3, 1, 1);
Box_6.setRotationPoint(-3.9F, -13F, -4.5F);
Box_6.setTextureSize(512, 512);
Box_6.mirror = true;
setRotation(Box_6, 0F, 0F, 0.0698132F);
Box_7 = new ModelRenderer(this, 97, 1);
Box_7.addBox(0F, 0F, 0F, 3, 1, 1);
Box_7.setRotationPoint(3.85F, -12F, -4.5F);
Box_7.setTextureSize(512, 512);
Box_7.mirror = true;
setRotation(Box_7, 0F, 0F, -3.211406F);
Box_8 = new ModelRenderer(this, 113, 1);
Box_8.addBox(0F, 0F, 0F, 3, 1, 1);
Box_8.setRotationPoint(3.75F, -11F, -4.5F);
Box_8.setTextureSize(512, 512);
Box_8.mirror = true;
setRotation(Box_8, 0F, 0F, -3.211406F);
Box_9 = new ModelRenderer(this, 129, 1);
Box_9.addBox(0F, 0F, 0F, 3, 1, 1);
Box_9.setRotationPoint(-3.8F, -12F, -4.5F);
Box_9.setTextureSize(512, 512);
Box_9.mirror = true;
setRotation(Box_9, 0F, 0F, 0.0698132F);
Box_10 = new ModelRenderer(this, 145, 1);
Box_10.addBox(0F, 0F, 0F, 1, 7, 2);
Box_10.setRotationPoint(-0.5F, -21.3F, -5F);
Box_10.setTextureSize(512, 512);
Box_10.mirror = true;
setRotation(Box_10, 0F, 0F, 0F);
Box_12 = new ModelRenderer(this, 153, 1);
Box_12.addBox(0F, 0F, 0F, 8, 4, 1);
Box_12.setRotationPoint(-4F, -20F, -4.5F);
Box_12.setTextureSize(512, 512);
Box_12.mirror = true;
setRotation(Box_12, 0F, 0F, 0F);
Box_13 = new ModelRenderer(this, 49, 1);
Box_13.addBox(0F, 0F, 0F, 1, 8, 9);
Box_13.setRotationPoint(-4.5F, -20F, -4.5F);
Box_13.setTextureSize(512, 512);
Box_13.mirror = true;
setRotation(Box_13, 0F, 0F, 0F);
Box_14 = new ModelRenderer(this, 177, 1);
Box_14.addBox(0F, 0F, 0F, 8, 8, 1);
Box_14.setRotationPoint(-4F, -20F, 3.5F);
Box_14.setTextureSize(512, 512);
Box_14.mirror = true;
setRotation(Box_14, 0F, 0F, 0F);
Box_15 = new ModelRenderer(this, 81, 1);
Box_15.addBox(0F, 0F, 0F, 1, 8, 9);
Box_15.setRotationPoint(3.5F, -20F, -4.5F);
Box_15.setTextureSize(512, 512);
Box_15.mirror = true;
setRotation(Box_15, 0F, 0F, 0F);
Box_16 = new ModelRenderer(this, 201, 1);
Box_16.addBox(0F, 0F, 0F, 9, 1, 9);
Box_16.setRotationPoint(-4.5F, -20.5F, -4.5F);
Box_16.setTextureSize(512, 512);
Box_16.mirror = true;
setRotation(Box_16, 0F, 0F, 0F);
Box_17 = new ModelRenderer(this, 241, 1);
Box_17.addBox(0F, 0F, 0F, 1, 2, 7);
Box_17.setRotationPoint(-0.5F, -22.3F, -3F);
Box_17.setTextureSize(512, 512);
Box_17.mirror = true;
setRotation(Box_17, 0F, 0F, 0F);
Box_18 = new ModelRenderer(this, 201, 1);
Box_18.addBox(0F, 0F, 0F, 2, 2, 2);
Box_18.setRotationPoint(4.5F, -18F, -1F);
Box_18.setTextureSize(512, 512);
Box_18.mirror = true;
setRotation(Box_18, 0F, 0F, 0F);
Box_19 = new ModelRenderer(this, 233, 1);
Box_19.addBox(0F, 0F, 0F, 2, 2, 2);
Box_19.setRotationPoint(-6.5F, -18F, -1F);
Box_19.setTextureSize(512, 512);
Box_19.mirror = true;
setRotation(Box_19, 0F, 0F, 0F);
Box_21 = new ModelRenderer(this, 257, 1);
Box_21.addBox(0F, 0F, 0F, 2, 3, 1);
Box_21.setRotationPoint(-8.1F, -16.6F, -0.5F);
Box_21.setTextureSize(512, 512);
Box_21.mirror = true;
setRotation(Box_21, 0F, 0F, -0.2617994F);
Box_23 = new ModelRenderer(this, 265, 1);
Box_23.addBox(0F, 0F, 0F, 1, 6, 1);
Box_23.setRotationPoint(5.5F, -24F, -0.5F);
Box_23.setTextureSize(512, 512);
Box_23.mirror = true;
setRotation(Box_23, 0F, 0F, 0F);
Box_24 = new ModelRenderer(this, 273, 1);
Box_24.addBox(0F, 0F, 0F, 1, 3, 1);
Box_24.setRotationPoint(5.5F, -24F, -0.5F);
Box_24.setTextureSize(512, 512);
Box_24.mirror = true;
setRotation(Box_24, 0F, 0F, -0.4363323F);
Box_25 = new ModelRenderer(this, 281, 1);
Box_25.addBox(0F, 0F, 0F, 2, 3, 1);
Box_25.setRotationPoint(5.5F, -22F, -0.5F);
Box_25.setTextureSize(512, 512);
Box_25.mirror = true;
setRotation(Box_25, 0F, 0F, -0.1919862F);
Box_26 = new ModelRenderer(this, 289, 1);
Box_26.addBox(0F, 0F, 0F, 2, 4, 1);
Box_26.setRotationPoint(6F, -20F, -0.5F);
Box_26.setTextureSize(512, 512);
Box_26.mirror = true;
setRotation(Box_26, 0F, 0F, 0F);
Box_27 = new ModelRenderer(this, 297, 1);
Box_27.addBox(0F, 0F, 0F, 2, 3, 1);
Box_27.setRotationPoint(6.1F, -17F, -0.5F);
Box_27.setTextureSize(512, 512);
Box_27.mirror = true;
setRotation(Box_27, 0F, 0F, 0.2792527F);
Box_28 = new ModelRenderer(this, 305, 1);
Box_28.addBox(0F, 0F, 0F, 1, 6, 1);
Box_28.setRotationPoint(-6.5F, -24F, -0.5F);
Box_28.setTextureSize(512, 512);
Box_28.mirror = true;
setRotation(Box_28, 0F, 0F, 0F);
Box_29 = new ModelRenderer(this, 313, 1);
Box_29.addBox(0F, 0F, 0F, 1, 3, 1);
Box_29.setRotationPoint(-6.45F, -24.43F, -0.5F);
Box_29.setTextureSize(512, 512);
Box_29.mirror = true;
setRotation(Box_29, 0F, 0F, 0.4363323F);
Box_30 = new ModelRenderer(this, 321, 1);
Box_30.addBox(0F, 0F, 0F, 2, 3, 1);
Box_30.setRotationPoint(-7.5F, -22.3F, -0.5F);
Box_30.setTextureSize(512, 512);
Box_30.mirror = true;
setRotation(Box_30, 0F, 0F, 0.1919862F);
Box_31 = new ModelRenderer(this, 329, 1);
Box_31.addBox(0F, 0F, 0F, 2, 4, 1);
Box_31.setRotationPoint(-8F, -20F, -0.5F);
Box_31.setTextureSize(512, 512);
Box_31.mirror = true;
setRotation(Box_31, 0F, 0F, 0F);
Box_32 = new ModelRenderer(this, 337, 1);
Box_32.addBox(0F, 0F, 0F, 8, 7, 6);
Box_32.setRotationPoint(-4F, -12F, -3F);
Box_32.setTextureSize(512, 512);
Box_32.mirror = true;
setRotation(Box_32, 0F, 0F, 0F);
Box_33 = new ModelRenderer(this, 369, 1);
Box_33.addBox(0F, 0F, 0F, 6, 5, 7);
Box_33.setRotationPoint(-3F, -11F, -3.4F);
Box_33.setTextureSize(512, 512);
Box_33.mirror = true;
setRotation(Box_33, 0F, 0F, 0F);
Box_34 = new ModelRenderer(this, 401, 1);
Box_34.addBox(0F, 0F, 0F, 8, 4, 5);
Box_34.setRotationPoint(-4F, -5F, -2.5F);
Box_34.setTextureSize(512, 512);
Box_34.mirror = true;
setRotation(Box_34, 0F, 0F, 0F);
Box_35 = new ModelRenderer(this, 433, 1);
Box_35.addBox(0F, 0F, 0F, 4, 1, 4);
Box_35.setRotationPoint(5F, -12.5F, -2F);
Box_35.setTextureSize(512, 512);
Box_35.mirror = true;
setRotation(Box_35, 0F, 0F, 0F);
Box_36 = new ModelRenderer(this, 457, 1);
Box_36.addBox(0F, 0F, 0F, 4, 1, 4);
Box_36.setRotationPoint(-9F, -12.5F, -2F);
Box_36.setTextureSize(512, 512);
Box_36.mirror = true;
setRotation(Box_36, 0F, 0F, 0F);
Box_37 = new ModelRenderer(this, 481, 1);
Box_37.addBox(0F, 0F, 0F, 2, 4, 2);
Box_37.setRotationPoint(7.5F, -13.5F, -1F);
Box_37.setTextureSize(512, 512);
Box_37.mirror = true;
setRotation(Box_37, 0F, 0F, 0F);
Box_38 = new ModelRenderer(this, 497, 1);
Box_38.addBox(0F, 0F, 0F, 2, 4, 2);
Box_38.setRotationPoint(-9.5F, -13.5F, -1F);
Box_38.setTextureSize(512, 512);
Box_38.mirror = true;
setRotation(Box_38, 0F, 0F, 0F);
Box_39 = new ModelRenderer(this, 369, 1);
Box_39.addBox(0F, 0F, 0F, 1, 4, 2);
Box_39.setRotationPoint(7.5F, -5.5F, -1F);
Box_39.setTextureSize(512, 512);
Box_39.mirror = true;
setRotation(Box_39, 0F, 0F, 0F);
Box_40 = new ModelRenderer(this, 393, 1);
Box_40.addBox(0F, 0F, 0F, 1, 4, 2);
Box_40.setRotationPoint(-8.5F, -5.5F, -1F);
Box_40.setTextureSize(512, 512);
Box_40.mirror = true;
setRotation(Box_40, 0F, 0F, 0F);
this.bipedHead.addChild(Box_0);
this.bipedHead.addChild(Box_1);
this.bipedHead.addChild(Box_2);
this.bipedHead.addChild(Box_3);
this.bipedHead.addChild(Box_4);
this.bipedHead.addChild(Box_5);
this.bipedHead.addChild(Box_6);
this.bipedHead.addChild(Box_7);
this.bipedHead.addChild(Box_8);
this.bipedHead.addChild(Box_9);
this.bipedHead.addChild(Box_10);
this.bipedHead.addChild(Box_12);
this.bipedHead.addChild(Box_13);
this.bipedHead.addChild(Box_14);
this.bipedHead.addChild(Box_15);
this.bipedHead.addChild(Box_16);
this.bipedHead.addChild(Box_17);
this.bipedHead.addChild(Box_18);
this.bipedHead.addChild(Box_19);
this.bipedHead.addChild(Box_21);
this.bipedHead.addChild(Box_23);
this.bipedHead.addChild(Box_24);
this.bipedHead.addChild(Box_25);
this.bipedHead.addChild(Box_26);
this.bipedHead.addChild(Box_27);
this.bipedHead.addChild(Box_28);
this.bipedHead.addChild(Box_29);
this.bipedHead.addChild(Box_30);
this.bipedHead.addChild(Box_31);
this.bipedBody.addChild(Box_32);
this.bipedBody.addChild(Box_33);
this.bipedBody.addChild(Box_34);
this.bipedRightArm.addChild(Box_36);
this.bipedLeftArm.addChild(Box_35);
this.bipedRightArm.addChild(Box_38);
this.bipedLeftArm.addChild(Box_37);
this.bipedRightArm.addChild(Box_40);
this.bipedLeftArm.addChild(Box_39);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
super.render(entity, f, f1, f2, f3, f4, f5);
Box_0.render(f5);
Box_1.render(f5);
Box_2.render(f5);
Box_3.render(f5);
Box_4.render(f5);
Box_5.render(f5);
Box_6.render(f5);
Box_7.render(f5);
Box_8.render(f5);
Box_9.render(f5);
Box_10.render(f5);
Box_12.render(f5);
Box_13.render(f5);
Box_14.render(f5);
Box_15.render(f5);
Box_16.render(f5);
Box_17.render(f5);
Box_18.render(f5);
Box_19.render(f5);
Box_21.render(f5);
Box_23.render(f5);
Box_24.render(f5);
Box_25.render(f5);
Box_26.render(f5);
Box_27.render(f5);
Box_28.render(f5);
Box_29.render(f5);
Box_30.render(f5);
Box_31.render(f5);
Box_32.render(f5);
Box_33.render(f5);
Box_34.render(f5);
Box_35.render(f5);
Box_36.render(f5);
Box_37.render(f5);
Box_38.render(f5);
Box_39.render(f5);
Box_40.render(f5);
GL11.glPopMatrix();
}
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);
Render render = RenderManager.instance
.getEntityRenderObject(entity);
if (!(render instanceof RenderPlayer))
return;
RenderPlayer r = (RenderPlayer)render;
}
}
Ну и код самого итема на всякий.
Код:
package ru.ostrix.aod.common.item;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import ru.ostrix.aod.client.model.CrystalWhiteChestplateModel;
public class ItemWhiteCrystalChestplate extends ItemArmor {
public ItemWhiteCrystalChestplate() {
super(ArmorMaterial.DIAMOND, 0, 1);
this.setUnlocalizedName("whitecrystal");
}
@Override
@SideOnly(Side.CLIENT)
public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) {
if (armorSlot != 1)
return null;
CrystalWhiteChestplateModel model = new CrystalWhiteChestplateModel();
model.bipedHead.showModel = false;
model.bipedHeadwear.showModel = false;
model.bipedBody.showModel = true;
model.bipedBody.isHidden = true;
model.bipedRightArm.showModel = false;
model.bipedLeftArm.showModel = false;
model.bipedRightLeg.showModel = false;
model.bipedLeftLeg.showModel = false;
model.isSneak = entityLiving.isSneaking();
model.isRiding = entityLiving.isRiding();
model.isChild = entityLiving.isChild();
if(entityLiving instanceof EntityPlayer){
model.aimedBow =((EntityPlayer)entityLiving).getItemInUseDuration() > 2;
}
return model;
}
}
Надеюсь мне помогут...