diff --git a/src/main/java/ru/betterend/item/model/CrystaliteArmorProvider.java b/src/main/java/ru/betterend/item/model/CrystaliteArmorProvider.java index 5ff51bab..b687d78a 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteArmorProvider.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteArmorProvider.java @@ -47,6 +47,20 @@ public class CrystaliteArmorProvider implements ModelProvider, TextureProvider { case HEAD: { return HELMET_MODEL; } + case CHEST: { + + if (entity instanceof AbstractClientPlayerEntity && + ((AbstractClientPlayerEntity) entity).getModel().equals("slim")) { + return CHEST_MODEL_SLIM; + } + return CHEST_MODEL; + } + case LEGS: { + return LEGGINGS_MODEL; + } + case FEET: { + return BOOTS_MODEL; + } default: { return defaultModel; } diff --git a/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java b/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java index a8efad9f..89b62764 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteBootsModel.java @@ -15,8 +15,8 @@ public class CrystaliteBootsModel extends BipedEntityModel { public ModelPart rightBoot; public CrystaliteBootsModel(float scale) { - super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 32); - this.leftBoot = new ModelPart(this, 0, 16); + super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 48); + this.leftBoot = new ModelPart(this, 0, 32); this.leftBoot.addCuboid(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); this.leftBoot.setPivot(1.9F, 12.0F, 0.0F); this.rightBoot = new ModelPart(this, 0, 16); diff --git a/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java b/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java index f94600e4..0c801afb 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteChestplateModel.java @@ -7,31 +7,37 @@ import com.google.common.collect.Lists; import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.entity.model.BipedEntityModel; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.LivingEntity; +import net.minecraft.util.Arm; public class CrystaliteChestplateModel extends BipedEntityModel { public ModelPart leftShoulder; public ModelPart rightShoulder; + private boolean thinArms; public CrystaliteChestplateModel(float scale, boolean thinArms) { - super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 32); + super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 48); + this.thinArms = thinArms; this.torso = new ModelPart(this, 16, 16); - this.torso.addCuboid(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale); + this.torso.addCuboid(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale + 0.25F); this.torso.setPivot(0.0F, 0.0F, 0.0F); if (thinArms) { - this.leftShoulder = new ModelPart(this, 40, 16); - this.leftShoulder.addCuboid(-1.0F, -2.0F, -2.0F, 3.0F, 12.0F, 4.0F, scale + 0.25F); + this.leftShoulder = new ModelPart(this, 41, 32); + this.leftShoulder.addCuboid(-1.0F, -2.5F, -2.0F, 3.0F, 12.0F, 4.0F, scale + 0.3F); this.leftShoulder.setPivot(5.0F, 2.5F, 0.0F); - this.rightShoulder = new ModelPart(this, 40, 16); - this.rightShoulder.addCuboid(-2.0F, -2.0F, -12.0F, 3.0F, 12.0F, 4.0F, scale + 0.25F); + this.leftShoulder.mirror = true; + this.rightShoulder = new ModelPart(this, 41, 16); + this.rightShoulder.addCuboid(-2.0F, -2.5F, -12.0F, 3.0F, 12.0F, 4.0F, scale + 0.3F); this.rightShoulder.setPivot(-5.0F, 2.5F, 10.0F); } else { - this.leftShoulder = new ModelPart(this, 40, 16); - this.leftShoulder.addCuboid(-1.0F, -2.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); + this.leftShoulder = new ModelPart(this, 40, 32); + this.leftShoulder.addCuboid(-1.0F, -2.5F, -2.0F, 4.0F, 12.0F, 4.0F, scale + 0.4F); this.leftShoulder.setPivot(5.0F, 2.0F, 0.0F); + this.leftShoulder.mirror = true; this.rightShoulder = new ModelPart(this, 40, 16); - this.rightShoulder.addCuboid(-3.0F, -2.0F, -12.0F, 4.0F, 12.0F, 4.0F, scale + 0.25F); + this.rightShoulder.addCuboid(-3.0F, -2.5F, -12.1F, 4.0F, 12.0F, 4.0F, scale + 0.4F); this.rightShoulder.setPivot(-5.0F, 2.0F, 10.0F); } } @@ -52,4 +58,17 @@ public class CrystaliteChestplateModel extends BipedEntityModel { this.leftShoulder.copyPositionAndRotation(leftArm); this.rightShoulder.copyPositionAndRotation(rightArm); } + + @Override + public void setArmAngle(Arm arm, MatrixStack matrices) { + ModelPart modelPart = this.getArm(arm); + if (this.thinArms) { + float f = 0.5F * (float)(arm == Arm.RIGHT ? 1 : -1); + modelPart.pivotX += f; + modelPart.rotate(matrices); + modelPart.pivotX -= f; + } else { + modelPart.rotate(matrices); + } + } } diff --git a/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java b/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java index 0dab4cf0..b4a9acfe 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteHelmetModel.java @@ -16,7 +16,7 @@ import net.minecraft.entity.LivingEntity; public class CrystaliteHelmetModel extends BipedEntityModel { public CrystaliteHelmetModel(float scale) { - super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 32); + super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 48); this.helmet = new ModelPart(this, 0, 0); this.helmet.addCuboid(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, scale + 0.5F); this.helmet.setPivot(0.0F, 0.0F, 0.0F); diff --git a/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java b/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java index cd771aec..7b19e079 100644 --- a/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java +++ b/src/main/java/ru/betterend/item/model/CrystaliteLeggingsModel.java @@ -11,14 +11,19 @@ import net.minecraft.entity.LivingEntity; public class CrystaliteLeggingsModel extends BipedEntityModel { + public ModelPart jacket; + public CrystaliteLeggingsModel(float scale) { - super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 32); + super(RenderLayer::getEntityTranslucent, scale, 0.0F, 64, 48); + this.jacket = new ModelPart(this, 16, 16); + this.jacket.addCuboid(-4.0F, 0.0F, -2.0F, 8.0F, 12.0F, 4.0F, scale); + this.jacket.setPivot(0.0F, 0.0F, 0.0F); + this.leftLeg = new ModelPart(this, 0, 32); + this.leftLeg.addCuboid(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); + this.leftLeg.setPivot(1.9F, 12.0F, 0.0F); this.rightLeg = new ModelPart(this, 0, 16); this.rightLeg.addCuboid(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); this.rightLeg.setPivot(-1.9F, 12.0F, 0.0F); - this.leftLeg = new ModelPart(this, 0, 16); - this.leftLeg.addCuboid(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, scale); - this.leftLeg.setPivot(1.9F, 12.0F, 0.0F); } @Override @@ -28,6 +33,12 @@ public class CrystaliteLeggingsModel extends BipedEntityModel { @Override protected Iterable getBodyParts() { - return Lists.newArrayList(rightLeg, leftLeg); + return Lists.newArrayList(jacket, rightLeg, leftLeg); + } + + @Override + public void setAngles(LivingEntity livingEntity, float f, float g, float h, float i, float j) { + super.setAngles(livingEntity, f, g, h, i, j); + this.jacket.copyPositionAndRotation(torso); } } diff --git a/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_1.png b/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_1.png index d5f6b20d..5718461c 100644 Binary files a/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_1.png and b/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_1.png differ diff --git a/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_2.png b/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_2.png index 8f50fd31..58523c40 100644 Binary files a/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_2.png and b/src/main/resources/assets/betterend/textures/model/armor/crystalite_layer_2.png differ