- 65
- 6
Сделал шапку по этим туторам: [1.6.4]Гайд: создание брони с нестандартной моделью и [Гайд] Бронь с моделью 1.7.10.Модель делал в Techne.
Но текстура, как видно на скрине, сползла на перса...Я как-то это чинил, но не помню как.Хелп, пожалуйста!
Но текстура, как видно на скрине, сползла на перса...Я как-то это чинил, но не помню как.Хелп, пожалуйста!
Код Брони::
package ru.mrtenfan.travicraft.armors;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import ru.mrtenfan.travicraft.Main;
public class Partyhat1 extends ItemArmor {
public Partyhat1(int id, int armorType) {
super(Main.PARTYHAT, id, armorType);
this.setCreativeTab(Main.tabTravi);
this.setMaxStackSize(1);
this.setTextureName("item_partyhat1");
}
@Override
public String getArmorTexture(ItemStack stack, Entity entity, int slot,
String type) {
return "travicraft:textures/models/armors/partyhat1.png"; //текстурка брони на игроке
}
ModelBiped PartyHat = new ModelBiped(); //вместо PartyHat называем как хотим
@Override
@SideOnly(Side.CLIENT)
public ModelBiped getArmorModel(EntityLivingBase entityLiving,
ItemStack itemStack, int armorSlot) {
if(itemStack != null){
if(itemStack.getItem() instanceof Partyhat1){
int type = ((ItemArmor)itemStack.getItem()).armorType;
PartyHat = Main.proxy.getArmorModel(0);
// TestMOD-ваш гл класс, proxy - это переменная с сервер прокси [пример: public static ServerProxy proxy1;]
//Все это,это регистрация модели в прокси .Где (0) это тип брони. 1-нагрудник, 2 - штаны , 3 - ботинки
}
if(PartyHat != null){
PartyHat.bipedHead.showModel = armorSlot == 0;
PartyHat.bipedHeadwear.showModel = armorSlot == 10;
PartyHat.bipedBody.showModel = armorSlot == 1 || armorSlot == 2;
PartyHat.bipedRightArm.showModel = armorSlot == 1;
PartyHat.bipedLeftArm.showModel = armorSlot == 1;
PartyHat.bipedRightLeg.showModel = armorSlot == 2 || armorSlot == 3;
PartyHat.bipedLeftLeg.showModel = armorSlot == 2 || armorSlot == 3;
PartyHat.isSneak = entityLiving.isSneaking();
PartyHat.isRiding = entityLiving.isRiding();
PartyHat.isChild = entityLiving.isChild();
if(entityLiving instanceof EntityPlayer){
PartyHat.aimedBow =((EntityPlayer)entityLiving).getItemInUseDuration() > 2;
}
}
}
return PartyHat;
}
}
Код Модели::
// Date: 02.11.2019 15:47:52
package ru.mrtenfan.travicraft.models;
import java.util.ArrayList;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
public class partyhat_model extends ModelBiped
{
int slot = 0;
//fields
ModelRenderer cube1;
ModelRenderer Cube2;
ModelRenderer Cube3;
ModelRenderer Cube4;
ModelRenderer Cube5;
public partyhat_model(float f)
{
textureWidth = 64;
textureHeight = 32;
cube1 = new ModelRenderer(this, 0, 0);
cube1.addBox(-5F, -9F, -5F, 10, 2, 10);
cube1.setRotationPoint(0F, 0F, 0F);
cube1.setTextureSize(64, 32);
cube1.mirror = true;
setRotation(cube1, 0F, 0F, 0F);
Cube2 = new ModelRenderer(this, 0, 14);
Cube2.addBox(-4F, -12F, -4F, 8, 3, 8);
Cube2.setRotationPoint(0F, 0F, 0F);
Cube2.setTextureSize(64, 32);
Cube2.mirror = true;
setRotation(Cube2, 0F, 0F, 0F);
Cube3 = new ModelRenderer(this, 40, 0);
Cube3.addBox(-3F, -14F, -3F, 6, 2, 6);
Cube3.setRotationPoint(0F, 0F, 0F);
Cube3.setTextureSize(64, 32);
Cube3.mirror = true;
setRotation(Cube3, 0F, 0F, 0F);
Cube4 = new ModelRenderer(this, 34, 14);
Cube4.addBox(-2F, -15F, -2F, 4, 1, 4);
Cube4.setRotationPoint(0F, 0F, 0F);
Cube4.setTextureSize(64, 32);
Cube4.mirror = true;
setRotation(Cube4, 0F, 0F, 0F);
Cube5 = new ModelRenderer(this, 0, 29);
Cube5.addBox(-1F, -16F, -1F, 2, 1, 2);
Cube5.setRotationPoint(0F, 0F, 0F);
Cube5.setTextureSize(64, 32);
Cube5.mirror = true;
setRotation(Cube5, 0F, 0F, 0F);
this.bipedHead.addChild(cube1);
this.bipedHead.addChild(Cube2);
this.bipedHead.addChild(Cube3);
this.bipedHead.addChild(Cube4);
this.bipedHead.addChild(Cube5);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
cube1.showModel = slot == 0;
Cube2.showModel = slot == 0;
Cube3.showModel = slot == 0;
Cube4.showModel = slot == 0;
Cube5.showModel = slot == 0;
super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
}
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);
}
}
ClientProxy:
package ru.mrtenfan.travicraft;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraft.client.model.ModelBiped;
import ru.mrtenfan.travicraft.models.partyhat_model;
public class ClientProxy extends CommonProxy {
private static final partyhat_model partyhat = new partyhat_model(-1.0F);
public static ModelBiped modelHelmet;
@Override
public ModelBiped getArmorModel(int id){
return partyhat;
}
public void preInit(FMLPreInitializationEvent e)
{
}
public void init(FMLInitializationEvent e)
{
}
public void postInit(FMLPostInitializationEvent e)
{
}
}
ServerProxy:
package ru.mrtenfan.travicraft;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraft.client.model.ModelBiped;
public class CommonProxy {
public ModelBiped getArmorModel(int i) {
return null;
}
public void preInit(FMLPreInitializationEvent e)
{
}
public void init(FMLInitializationEvent e) {
}
public void postInit(FMLPostInitializationEvent e)
{
}
}