Skip to content

Commit e4d9e47

Browse files
committed
- armor modular converter
1 parent ce7c9ec commit e4d9e47

File tree

23 files changed

+489
-19
lines changed

23 files changed

+489
-19
lines changed

common/src/main/java/smartin/miapi/mixin/client/ArmorFeatureRendererMixin.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import net.minecraft.client.model.ModelPart;
44
import net.minecraft.client.render.OverlayTexture;
5+
import net.minecraft.client.render.RenderPhase;
56
import net.minecraft.client.render.VertexConsumerProvider;
67
import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer;
78
import net.minecraft.client.render.entity.feature.FeatureRenderer;
@@ -12,6 +13,7 @@
1213
import net.minecraft.entity.EquipmentSlot;
1314
import net.minecraft.entity.LivingEntity;
1415
import net.minecraft.item.ItemStack;
16+
import net.minecraft.world.chunk.light.LightingProvider;
1517
import org.spongepowered.asm.mixin.Final;
1618
import org.spongepowered.asm.mixin.Mixin;
1719
import org.spongepowered.asm.mixin.Shadow;
@@ -26,9 +28,6 @@
2628

2729
@Mixin(value = ArmorFeatureRenderer.class, priority = 700)
2830
public abstract class ArmorFeatureRendererMixin<T extends LivingEntity, M extends BipedEntityModel<T>, A extends BipedEntityModel<T>> extends FeatureRenderer<T, M> {
29-
@Shadow
30-
@Final
31-
private A outerModel;
3231

3332
protected ArmorFeatureRendererMixin(FeatureRendererContext<T, M> context) {
3433
super(context);
@@ -43,25 +42,24 @@ protected ArmorFeatureRendererMixin(FeatureRendererContext<T, M> context) {
4342
if (itemStack.getItem() instanceof ModularItem) {
4443
// Invert the light direction doesnt work
4544
int invertedLight = light;
46-
renderPieces(matrices, vertexConsumers, invertedLight, armorSlot, itemStack, entity);
45+
renderPieces(matrices, vertexConsumers, invertedLight, armorSlot, itemStack, entity,model);
4746
ci.cancel();
4847
}
4948
}
5049

5150
@Unique
52-
private void renderPieces(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, EquipmentSlot armorSlot, ItemStack itemStack, T entity) {
51+
private void renderPieces(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, EquipmentSlot armorSlot, ItemStack itemStack, T entity, A outerModel) {
5352
Arrays.stream(modelParts).forEach(partId -> {
54-
A armorModel = getModel(armorSlot);
55-
//TODO:make sure this works
56-
//(this.getContextModel()).setAttributes(armorModel);
5753
if (true) {
54+
this.getContextModel().copyBipedStateTo(outerModel);
5855
MiapiItemModel model1 = MiapiItemModel.getItemModel(itemStack);
5956
if (model1 != null) {
6057
MatrixStack matrixStack = new MatrixStack();
6158
matrixStack.multiplyPositionMatrix(matrices.peek().getPositionMatrix());
6259
matrixStack.push();
63-
getModelPart(armorModel, partId).rotate(matrixStack);
64-
model1.render(partId, matrixStack, ModelTransformationMode.HEAD, 0, vertexConsumers, light, OverlayTexture.DEFAULT_UV);
60+
getModelPart(outerModel, partId).rotate(matrixStack);
61+
int lightreplace = (int) Long.parseLong("0F000F0", 16);
62+
model1.render(partId, matrixStack, ModelTransformationMode.HEAD, 0, vertexConsumers, lightreplace , OverlayTexture.DEFAULT_UV);
6563
matrixStack.pop();
6664
}
6765
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/arm_left/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/arm_right/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/belt/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/boot_left/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/boot_right/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/chest/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/helmet/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/leg_left/default"
5+
}
6+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "miapi:item/armor/icon/leg_right/default"
5+
}
6+
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
{
2+
"minecraft:iron_boots": {
3+
"module": "boot",
4+
"subModules": {
5+
"0": {
6+
"module": "boot_left",
7+
"moduleData": {
8+
"properties": "{\"material\":\"iron\"}"
9+
},
10+
"subModules": {}
11+
},
12+
"1": {
13+
"module": "boot_right",
14+
"moduleData": {
15+
"properties": "{\"material\":\"iron\"}"
16+
},
17+
"subModules": {}
18+
}
19+
}
20+
},
21+
"minecraft:golden_boots": {
22+
"module": "boot",
23+
"subModules": {
24+
"0": {
25+
"module": "boot_left",
26+
"moduleData": {
27+
"properties": "{\"material\":\"gold\"}"
28+
},
29+
"subModules": {}
30+
},
31+
"1": {
32+
"module": "boot_right",
33+
"moduleData": {
34+
"properties": "{\"material\":\"gold\"}"
35+
},
36+
"subModules": {}
37+
}
38+
}
39+
},
40+
"minecraft:diamond_boots": {
41+
"module": "boot",
42+
"subModules": {
43+
"0": {
44+
"module": "boot_left",
45+
"moduleData": {
46+
"properties": "{\"material\":\"diamond\"}"
47+
},
48+
"subModules": {}
49+
},
50+
"1": {
51+
"module": "boot_right",
52+
"moduleData": {
53+
"properties": "{\"material\":\"diamond\"}"
54+
},
55+
"subModules": {}
56+
}
57+
}
58+
},
59+
"minecraft:netherite_boots": {
60+
"module": "boot",
61+
"subModules": {
62+
"0": {
63+
"module": "boot_left",
64+
"moduleData": {
65+
"properties": "{\"material\":\"netherite\"}"
66+
},
67+
"subModules": {}
68+
},
69+
"1": {
70+
"module": "boot_right",
71+
"moduleData": {
72+
"properties": "{\"material\":\"netherite\"}"
73+
},
74+
"subModules": {}
75+
}
76+
}
77+
},
78+
"minecraft:leather_boots": {
79+
"module": "boot",
80+
"subModules": {
81+
"0": {
82+
"module": "boot_left",
83+
"moduleData": {
84+
"properties": "{\"material\":\"leather\"}"
85+
},
86+
"subModules": {}
87+
},
88+
"1": {
89+
"module": "boot_right",
90+
"moduleData": {
91+
"properties": "{\"material\":\"leather\"}"
92+
},
93+
"subModules": {}
94+
}
95+
}
96+
}
97+
}
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
{
2+
"minecraft:iron_chestplate": {
3+
"module": "chest_base",
4+
"subModules": {
5+
"0": {
6+
"module": "front_chestplate",
7+
"moduleData": {
8+
"properties": "{\"material\":\"iron\"}"
9+
},
10+
"subModules": {}
11+
},
12+
"1": {
13+
"module": "arm_left",
14+
"moduleData": {
15+
"properties": "{\"material\":\"iron\"}"
16+
},
17+
"subModules": {}
18+
},
19+
"2": {
20+
"module": "arm_right",
21+
"moduleData": {
22+
"properties": "{\"material\":\"iron\"}"
23+
},
24+
"subModules": {}
25+
}
26+
}
27+
},
28+
"minecraft:golden_chestplate": {
29+
"module": "chest_base",
30+
"subModules": {
31+
"0": {
32+
"module": "front_chestplate",
33+
"moduleData": {
34+
"properties": "{\"material\":\"gold\"}"
35+
},
36+
"subModules": {}
37+
},
38+
"1": {
39+
"module": "arm_left",
40+
"moduleData": {
41+
"properties": "{\"material\":\"gold\"}"
42+
},
43+
"subModules": {}
44+
},
45+
"2": {
46+
"module": "arm_right",
47+
"moduleData": {
48+
"properties": "{\"material\":\"gold\"}"
49+
},
50+
"subModules": {}
51+
}
52+
}
53+
},
54+
"minecraft:diamond_chestplate": {
55+
"module": "chest_base",
56+
"subModules": {
57+
"0": {
58+
"module": "front_chestplate",
59+
"moduleData": {
60+
"properties": "{\"material\":\"diamond\"}"
61+
},
62+
"subModules": {}
63+
},
64+
"1": {
65+
"module": "arm_left",
66+
"moduleData": {
67+
"properties": "{\"material\":\"diamond\"}"
68+
},
69+
"subModules": {}
70+
},
71+
"2": {
72+
"module": "arm_right",
73+
"moduleData": {
74+
"properties": "{\"material\":\"diamond\"}"
75+
},
76+
"subModules": {}
77+
}
78+
}
79+
},
80+
"minecraft:netherite_chestplate": {
81+
"module": "chest_base",
82+
"subModules": {
83+
"0": {
84+
"module": "front_chestplate",
85+
"moduleData": {
86+
"properties": "{\"material\":\"netherite\"}"
87+
},
88+
"subModules": {}
89+
},
90+
"1": {
91+
"module": "arm_left",
92+
"moduleData": {
93+
"properties": "{\"material\":\"netherite\"}"
94+
},
95+
"subModules": {}
96+
},
97+
"2": {
98+
"module": "arm_right",
99+
"moduleData": {
100+
"properties": "{\"material\":\"netherite\"}"
101+
},
102+
"subModules": {}
103+
}
104+
}
105+
},
106+
"minecraft:leather_chestplate": {
107+
"module": "chest_base",
108+
"subModules": {
109+
"0": {
110+
"module": "front_chestplate",
111+
"moduleData": {
112+
"properties": "{\"material\":\"leather\"}"
113+
},
114+
"subModules": {}
115+
},
116+
"1": {
117+
"module": "arm_left",
118+
"moduleData": {
119+
"properties": "{\"material\":\"leather\"}"
120+
},
121+
"subModules": {}
122+
},
123+
"2": {
124+
"module": "arm_right",
125+
"moduleData": {
126+
"properties": "{\"material\":\"leather\"}"
127+
},
128+
"subModules": {}
129+
}
130+
}
131+
}
132+
}

0 commit comments

Comments
 (0)