@nodecraft/rendermite 1.0.7 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/README.md +6 -2
- package/assets/builtin/renderchest/models/item/trident.json +372 -0
- package/assets/builtin-legacy/renderchest/models/item/trident.json +372 -0
- package/assets/mod-models/README.md +130 -0
- package/assets/mod-models/ad_astra/models/item/tier_1_rocket.json +4559 -0
- package/assets/mod-models/ad_astra/models/item/tier_1_rover.json +6021 -0
- package/assets/mod-models/ad_astra/models/item/tier_2_rocket.json +6832 -0
- package/assets/mod-models/ad_astra/models/item/tier_3_rocket.json +8522 -0
- package/assets/mod-models/ad_astra/models/item/tier_4_rocket.json +7498 -0
- package/assets/mod-models/botania/models/item/avatar.json +574 -0
- package/assets/mod-models/botania/models/item/bellows.json +423 -0
- package/assets/mod-models/botania/models/item/brewery.json +894 -0
- package/assets/mod-models/botania/models/item/corporea_index.json +349 -0
- package/assets/mod-models/botania/models/item/gaia_pylon.json +1057 -0
- package/assets/mod-models/botania/models/item/hourglass.json +502 -0
- package/assets/mod-models/botania/models/item/mana_pylon.json +741 -0
- package/assets/mod-models/botania/models/item/natura_pylon.json +1057 -0
- package/assets/mod-models/botania/models/item/teru_teru_bozu.json +347 -0
- package/assets/mod-models/mekanism/models/item/atomic_disassembler.json +1391 -0
- package/assets/mod-models/mekanism/models/item/flamethrower.json +1926 -0
- package/assets/mod-models/mekanism/models/item/free_runners.json +595 -0
- package/assets/mod-models/mekanism/models/item/jetpack.json +1767 -0
- package/assets/mod-models/mekanism/models/item/scuba_mask.json +2305 -0
- package/assets/mod-models/mekanism/models/item/scuba_tank.json +833 -0
- package/assets/mod-tints/README.md +19 -0
- package/assets/mod-tints/mysticalagriculture/items/absorption_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/absorption_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/absorption_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/absorption_iv_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/absorption_v_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/attack_aoe_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/attack_aoe_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/attack_aoe_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/blindness_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/fire_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/flight_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/haste_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/haste_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/haste_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/health_boost_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/health_boost_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/health_boost_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/health_boost_iv_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/health_boost_v_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/hunger_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/jump_boost_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/jump_boost_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/jump_boost_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/luck_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/luck_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/luck_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/mining_aoe_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/mining_aoe_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/mining_aoe_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/mining_aoe_iv_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/mining_fatigue_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/nausea_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/night_vision_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/pathing_aoe_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/pathing_aoe_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/pathing_aoe_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/pathing_aoe_iv_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/poison_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/slow_falling_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/slowness_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/speed_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/speed_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/speed_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/step_assist_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/strength_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/strength_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/strength_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/tilling_aoe_i_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/tilling_aoe_ii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/tilling_aoe_iii_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/tilling_aoe_iv_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/water_breathing_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/weakness_resistance_augment.json +16 -0
- package/assets/mod-tints/mysticalagriculture/items/wither_resistance_augment.json +16 -0
- package/dist/atlas/registry.js +1 -1
- package/dist/blend-8lnfxtLe.d.ts +79 -0
- package/dist/blend-KXMclcHk.js +199 -0
- package/dist/blockstate-CdstnW2-.js +104 -0
- package/dist/{builtin-caYjESh0.js → builtin-WkWjATeh.js} +5 -1
- package/dist/builtin.d.ts +3 -1
- package/dist/builtin.js +2 -2
- package/dist/cli.js +5 -3
- package/dist/{compose-lWPrB7wh.js → compose-BGsNFR12.js} +1 -1
- package/dist/{definition-3MBm8ar_.js → definition-ColsvWrH.js} +20 -1
- package/dist/{definition-BwX6Xxv0.d.ts → definition-ricL7Jqf.d.ts} +2 -0
- package/dist/{discovery-0SM0cTLw.js → discovery-B9aqV_Rz.js} +13 -3
- package/dist/{discovery-wiJBGryo.d.ts → discovery-BPSUtdm4.d.ts} +1 -1
- package/dist/{encode-CaSK8-mi.d.ts → encode-DNcXXvYe.d.ts} +1 -1
- package/dist/{encode-Df_tWzkl.js → encode-LR9wxigC.js} +1 -1
- package/dist/{entity-fallback-D9QTGU9X.js → entity-fallback-BnFMSHS6.js} +180 -10
- package/dist/{face-Cl1O4m2i.js → face-CMJ3b3Ae.js} +44 -18
- package/dist/face-cQ-pVHoe.d.ts +44 -0
- package/dist/{fluid-bucket-D-GpUQjg.js → fluid-bucket-BzoLofB_.js} +7 -2
- package/dist/{geo-DHiWBa-C.js → geo-w9HHIrb5.js} +87 -13
- package/dist/{geometry-uIDha8S4.js → geometry-Bi-Bf5rb.js} +7 -1
- package/dist/{geometry-BSVmKx5b.d.ts → geometry-w0yQbzDZ.d.ts} +5 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +10 -10
- package/dist/items/blockstate.d.ts +23 -0
- package/dist/items/blockstate.js +2 -0
- package/dist/items/definition.d.ts +1 -1
- package/dist/items/definition.js +1 -1
- package/dist/items/discovery.d.ts +1 -1
- package/dist/items/discovery.js +1 -1
- package/dist/{loader-D22zZME7.d.ts → loader-DD83d80u.d.ts} +2 -1
- package/dist/{loader-B8NJO7pR.js → loader-DwkA9LR5.js} +267 -15
- package/dist/{loader-CfXMxcEV.js → loader-Lb0ZeILz.js} +19 -7
- package/dist/models/loader.d.ts +1 -1
- package/dist/models/loader.js +1 -1
- package/dist/models/types.d.ts +1 -1
- package/dist/models-BKxGkPS7.js +18 -0
- package/dist/mods/models.d.ts +5 -0
- package/dist/mods/models.js +2 -0
- package/dist/mods/prepare.d.ts +1 -1
- package/dist/mods/prepare.js +1 -1
- package/dist/mods/tints.js +1 -1
- package/dist/output/encode.d.ts +1 -1
- package/dist/output/encode.js +1 -1
- package/dist/{pipeline-HiA3DC71.d.ts → pipeline-Bp6amYz_.d.ts} +17 -5
- package/dist/{pipeline-Da2Kavba.js → pipeline-zu_ZjnNc.js} +85 -21
- package/dist/{prepare-BESRrh6K.js → prepare-D56Z-9cg.js} +7 -2
- package/dist/{prepare-CPxO0kKz.d.ts → prepare-Dce7-HAe.d.ts} +8 -0
- package/dist/{rasterizer-B9ZGJI3-.d.ts → rasterizer-BSQHEhJ-.d.ts} +4 -2
- package/dist/{rasterizer-76qO8TDh.js → rasterizer-DcVJzkxz.js} +13 -5
- package/dist/{registry-B9TcjVbs.js → registry-DS5PZ57l.js} +8 -1
- package/dist/render/blend.d.ts +2 -2
- package/dist/render/blend.js +2 -2
- package/dist/render/compose.d.ts +2 -2
- package/dist/render/compose.js +1 -1
- package/dist/render/entity-fallback.d.ts +19 -5
- package/dist/render/entity-fallback.js +2 -2
- package/dist/render/face.d.ts +2 -2
- package/dist/render/face.js +2 -2
- package/dist/render/fluid-bucket.js +1 -1
- package/dist/render/geo.d.ts +3 -3
- package/dist/render/geo.js +1 -1
- package/dist/render/geometry.d.ts +1 -1
- package/dist/render/geometry.js +1 -1
- package/dist/render/legacy-tints.d.ts +1 -1
- package/dist/render/obj.d.ts +5 -3
- package/dist/render/obj.js +1 -1
- package/dist/render/pipeline.d.ts +1 -1
- package/dist/render/pipeline.js +1 -1
- package/dist/render/rasterizer.d.ts +1 -1
- package/dist/render/rasterizer.js +1 -1
- package/dist/render/renderer.d.ts +1 -1
- package/dist/render/renderer.js +1 -1
- package/dist/render/tints.d.ts +1 -1
- package/dist/render/tints.js +1 -1
- package/dist/{renderer-B20ssjRm.d.ts → renderer-C79EQDSn.d.ts} +3 -3
- package/dist/{renderer-gQW_I7YG.js → renderer-oi1MSF3Y.js} +21 -10
- package/dist/{run-B0qPw3zf.js → run-D87zIGfr.js} +3 -3
- package/dist/{run-CT3VtFqg.d.ts → run-uq8_hUx9.d.ts} +1 -1
- package/dist/run.d.ts +2 -2
- package/dist/run.js +2 -2
- package/dist/textures/loader.js +1 -1
- package/dist/{tints-BtbHegpI.js → tints-3VI_2SNy.js} +107 -1
- package/dist/{tints-B8UJmZMu.js → tints-CebmvjmP.js} +2 -2
- package/dist/{tints-BH9l0ND0.d.ts → tints-Do9Sh3dg.d.ts} +2 -2
- package/dist/{types-COGbtA1t.d.ts → types-DpRSF9Vj.d.ts} +8 -0
- package/dist/workers/render-worker.d.ts +1 -1
- package/dist/workers/render-worker.js +1 -1
- package/package.json +1 -1
- package/dist/blend-CEHoJ7tM.d.ts +0 -37
- package/dist/blend-D0XWgVQr.js +0 -102
- package/dist/face-C49L66sQ.d.ts +0 -30
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
{
|
|
2
|
+
"credit": "Hand-modeled after the vanilla TridentModel",
|
|
3
|
+
"texture_size": [
|
|
4
|
+
32,
|
|
5
|
+
32
|
|
6
|
+
],
|
|
7
|
+
"textures": {
|
|
8
|
+
"texture": "entity/trident"
|
|
9
|
+
},
|
|
10
|
+
"gui_light": "front",
|
|
11
|
+
"elements": [
|
|
12
|
+
{
|
|
13
|
+
"from": [
|
|
14
|
+
7.5,
|
|
15
|
+
-7.5,
|
|
16
|
+
7.5
|
|
17
|
+
],
|
|
18
|
+
"to": [
|
|
19
|
+
8.5,
|
|
20
|
+
17.5,
|
|
21
|
+
8.5
|
|
22
|
+
],
|
|
23
|
+
"faces": {
|
|
24
|
+
"down": {
|
|
25
|
+
"uv": [
|
|
26
|
+
0.5,
|
|
27
|
+
3,
|
|
28
|
+
1,
|
|
29
|
+
3.5
|
|
30
|
+
],
|
|
31
|
+
"texture": "#texture"
|
|
32
|
+
},
|
|
33
|
+
"up": {
|
|
34
|
+
"uv": [
|
|
35
|
+
1,
|
|
36
|
+
3.5,
|
|
37
|
+
1.5,
|
|
38
|
+
3
|
|
39
|
+
],
|
|
40
|
+
"texture": "#texture"
|
|
41
|
+
},
|
|
42
|
+
"west": {
|
|
43
|
+
"uv": [
|
|
44
|
+
0,
|
|
45
|
+
3.5,
|
|
46
|
+
0.5,
|
|
47
|
+
16
|
|
48
|
+
],
|
|
49
|
+
"texture": "#texture"
|
|
50
|
+
},
|
|
51
|
+
"north": {
|
|
52
|
+
"uv": [
|
|
53
|
+
0.5,
|
|
54
|
+
3.5,
|
|
55
|
+
1,
|
|
56
|
+
16
|
|
57
|
+
],
|
|
58
|
+
"texture": "#texture"
|
|
59
|
+
},
|
|
60
|
+
"east": {
|
|
61
|
+
"uv": [
|
|
62
|
+
1,
|
|
63
|
+
3.5,
|
|
64
|
+
1.5,
|
|
65
|
+
16
|
|
66
|
+
],
|
|
67
|
+
"texture": "#texture"
|
|
68
|
+
},
|
|
69
|
+
"south": {
|
|
70
|
+
"uv": [
|
|
71
|
+
1.5,
|
|
72
|
+
3.5,
|
|
73
|
+
2,
|
|
74
|
+
16
|
|
75
|
+
],
|
|
76
|
+
"texture": "#texture"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"from": [
|
|
82
|
+
6.5,
|
|
83
|
+
17.5,
|
|
84
|
+
7.5
|
|
85
|
+
],
|
|
86
|
+
"to": [
|
|
87
|
+
9.5,
|
|
88
|
+
19.5,
|
|
89
|
+
8.5
|
|
90
|
+
],
|
|
91
|
+
"faces": {
|
|
92
|
+
"down": {
|
|
93
|
+
"uv": [
|
|
94
|
+
2.5,
|
|
95
|
+
0,
|
|
96
|
+
4,
|
|
97
|
+
0.5
|
|
98
|
+
],
|
|
99
|
+
"texture": "#texture"
|
|
100
|
+
},
|
|
101
|
+
"up": {
|
|
102
|
+
"uv": [
|
|
103
|
+
4,
|
|
104
|
+
0.5,
|
|
105
|
+
5.5,
|
|
106
|
+
0
|
|
107
|
+
],
|
|
108
|
+
"texture": "#texture"
|
|
109
|
+
},
|
|
110
|
+
"west": {
|
|
111
|
+
"uv": [
|
|
112
|
+
2,
|
|
113
|
+
0.5,
|
|
114
|
+
2.5,
|
|
115
|
+
1.5
|
|
116
|
+
],
|
|
117
|
+
"texture": "#texture"
|
|
118
|
+
},
|
|
119
|
+
"north": {
|
|
120
|
+
"uv": [
|
|
121
|
+
2.5,
|
|
122
|
+
0.5,
|
|
123
|
+
4,
|
|
124
|
+
1.5
|
|
125
|
+
],
|
|
126
|
+
"texture": "#texture"
|
|
127
|
+
},
|
|
128
|
+
"east": {
|
|
129
|
+
"uv": [
|
|
130
|
+
4,
|
|
131
|
+
0.5,
|
|
132
|
+
4.5,
|
|
133
|
+
1.5
|
|
134
|
+
],
|
|
135
|
+
"texture": "#texture"
|
|
136
|
+
},
|
|
137
|
+
"south": {
|
|
138
|
+
"uv": [
|
|
139
|
+
4.5,
|
|
140
|
+
0.5,
|
|
141
|
+
6,
|
|
142
|
+
1.5
|
|
143
|
+
],
|
|
144
|
+
"texture": "#texture"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"from": [
|
|
150
|
+
5.5,
|
|
151
|
+
18.5,
|
|
152
|
+
7.5
|
|
153
|
+
],
|
|
154
|
+
"to": [
|
|
155
|
+
6.5,
|
|
156
|
+
22.5,
|
|
157
|
+
8.5
|
|
158
|
+
],
|
|
159
|
+
"faces": {
|
|
160
|
+
"down": {
|
|
161
|
+
"uv": [
|
|
162
|
+
2.5,
|
|
163
|
+
1.5,
|
|
164
|
+
3,
|
|
165
|
+
2
|
|
166
|
+
],
|
|
167
|
+
"texture": "#texture"
|
|
168
|
+
},
|
|
169
|
+
"up": {
|
|
170
|
+
"uv": [
|
|
171
|
+
3,
|
|
172
|
+
2,
|
|
173
|
+
3.5,
|
|
174
|
+
1.5
|
|
175
|
+
],
|
|
176
|
+
"texture": "#texture"
|
|
177
|
+
},
|
|
178
|
+
"west": {
|
|
179
|
+
"uv": [
|
|
180
|
+
2,
|
|
181
|
+
2,
|
|
182
|
+
2.5,
|
|
183
|
+
4
|
|
184
|
+
],
|
|
185
|
+
"texture": "#texture"
|
|
186
|
+
},
|
|
187
|
+
"north": {
|
|
188
|
+
"uv": [
|
|
189
|
+
2.5,
|
|
190
|
+
2,
|
|
191
|
+
3,
|
|
192
|
+
4
|
|
193
|
+
],
|
|
194
|
+
"texture": "#texture"
|
|
195
|
+
},
|
|
196
|
+
"east": {
|
|
197
|
+
"uv": [
|
|
198
|
+
3,
|
|
199
|
+
2,
|
|
200
|
+
3.5,
|
|
201
|
+
4
|
|
202
|
+
],
|
|
203
|
+
"texture": "#texture"
|
|
204
|
+
},
|
|
205
|
+
"south": {
|
|
206
|
+
"uv": [
|
|
207
|
+
3.5,
|
|
208
|
+
2,
|
|
209
|
+
4,
|
|
210
|
+
4
|
|
211
|
+
],
|
|
212
|
+
"texture": "#texture"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"from": [
|
|
218
|
+
7.5,
|
|
219
|
+
19.5,
|
|
220
|
+
7.5
|
|
221
|
+
],
|
|
222
|
+
"to": [
|
|
223
|
+
8.5,
|
|
224
|
+
23.5,
|
|
225
|
+
8.5
|
|
226
|
+
],
|
|
227
|
+
"faces": {
|
|
228
|
+
"down": {
|
|
229
|
+
"uv": [
|
|
230
|
+
0.5,
|
|
231
|
+
0,
|
|
232
|
+
1,
|
|
233
|
+
0.5
|
|
234
|
+
],
|
|
235
|
+
"texture": "#texture"
|
|
236
|
+
},
|
|
237
|
+
"up": {
|
|
238
|
+
"uv": [
|
|
239
|
+
1,
|
|
240
|
+
0.5,
|
|
241
|
+
1.5,
|
|
242
|
+
0
|
|
243
|
+
],
|
|
244
|
+
"texture": "#texture"
|
|
245
|
+
},
|
|
246
|
+
"west": {
|
|
247
|
+
"uv": [
|
|
248
|
+
0,
|
|
249
|
+
0.5,
|
|
250
|
+
0.5,
|
|
251
|
+
2.5
|
|
252
|
+
],
|
|
253
|
+
"texture": "#texture"
|
|
254
|
+
},
|
|
255
|
+
"north": {
|
|
256
|
+
"uv": [
|
|
257
|
+
0.5,
|
|
258
|
+
0.5,
|
|
259
|
+
1,
|
|
260
|
+
2.5
|
|
261
|
+
],
|
|
262
|
+
"texture": "#texture"
|
|
263
|
+
},
|
|
264
|
+
"east": {
|
|
265
|
+
"uv": [
|
|
266
|
+
1,
|
|
267
|
+
0.5,
|
|
268
|
+
1.5,
|
|
269
|
+
2.5
|
|
270
|
+
],
|
|
271
|
+
"texture": "#texture"
|
|
272
|
+
},
|
|
273
|
+
"south": {
|
|
274
|
+
"uv": [
|
|
275
|
+
1.5,
|
|
276
|
+
0.5,
|
|
277
|
+
2,
|
|
278
|
+
2.5
|
|
279
|
+
],
|
|
280
|
+
"texture": "#texture"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"from": [
|
|
286
|
+
9.5,
|
|
287
|
+
18.5,
|
|
288
|
+
7.5
|
|
289
|
+
],
|
|
290
|
+
"to": [
|
|
291
|
+
10.5,
|
|
292
|
+
22.5,
|
|
293
|
+
8.5
|
|
294
|
+
],
|
|
295
|
+
"faces": {
|
|
296
|
+
"down": {
|
|
297
|
+
"uv": [
|
|
298
|
+
2.5,
|
|
299
|
+
1.5,
|
|
300
|
+
3,
|
|
301
|
+
2
|
|
302
|
+
],
|
|
303
|
+
"texture": "#texture"
|
|
304
|
+
},
|
|
305
|
+
"up": {
|
|
306
|
+
"uv": [
|
|
307
|
+
3,
|
|
308
|
+
2,
|
|
309
|
+
3.5,
|
|
310
|
+
1.5
|
|
311
|
+
],
|
|
312
|
+
"texture": "#texture"
|
|
313
|
+
},
|
|
314
|
+
"west": {
|
|
315
|
+
"uv": [
|
|
316
|
+
2,
|
|
317
|
+
2,
|
|
318
|
+
2.5,
|
|
319
|
+
4
|
|
320
|
+
],
|
|
321
|
+
"texture": "#texture"
|
|
322
|
+
},
|
|
323
|
+
"north": {
|
|
324
|
+
"uv": [
|
|
325
|
+
2.5,
|
|
326
|
+
2,
|
|
327
|
+
3,
|
|
328
|
+
4
|
|
329
|
+
],
|
|
330
|
+
"texture": "#texture"
|
|
331
|
+
},
|
|
332
|
+
"east": {
|
|
333
|
+
"uv": [
|
|
334
|
+
3,
|
|
335
|
+
2,
|
|
336
|
+
3.5,
|
|
337
|
+
4
|
|
338
|
+
],
|
|
339
|
+
"texture": "#texture"
|
|
340
|
+
},
|
|
341
|
+
"south": {
|
|
342
|
+
"uv": [
|
|
343
|
+
3.5,
|
|
344
|
+
2,
|
|
345
|
+
4,
|
|
346
|
+
4
|
|
347
|
+
],
|
|
348
|
+
"texture": "#texture"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
],
|
|
353
|
+
"display": {
|
|
354
|
+
"gui": {
|
|
355
|
+
"rotation": [
|
|
356
|
+
0,
|
|
357
|
+
0,
|
|
358
|
+
0
|
|
359
|
+
],
|
|
360
|
+
"translation": [
|
|
361
|
+
0,
|
|
362
|
+
0,
|
|
363
|
+
0
|
|
364
|
+
],
|
|
365
|
+
"scale": [
|
|
366
|
+
0.4,
|
|
367
|
+
0.4,
|
|
368
|
+
0.4
|
|
369
|
+
]
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Curated mod geometry overrides
|
|
2
|
+
|
|
3
|
+
Element models for mod items the game draws in code. A `builtin/entity` item model carries
|
|
4
|
+
display transforms and no `elements`, so the boxes only exist in a Java class: no fallback in
|
|
5
|
+
`src/render/pipeline.ts` can find them and the item fails into the failure sidecar. Layout is
|
|
6
|
+
`<namespace>/models/item/<path>.json`, ordinary vanilla model JSON, mounted with
|
|
7
|
+
`FolderResourceManager` (see `src/mods/models.ts`).
|
|
8
|
+
|
|
9
|
+
**These files are generated — do not hand-edit them.** Run:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
node scripts/mod-models/build.ts
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
`scripts/mod-models/extract.ts` reads the box list straight out of the mod's bytecode via
|
|
16
|
+
`javap`, so no geometry number here is hand-copied. The per-item spec in
|
|
17
|
+
`scripts/mod-models/build.ts` supplies only what bytecode can't give mechanically — the pose,
|
|
18
|
+
the texture, and which parts draw emissive or translucent — with each value citing the class
|
|
19
|
+
it came from. Regenerating after a mod update is one command; review the resulting diff.
|
|
20
|
+
|
|
21
|
+
## Precedence
|
|
22
|
+
|
|
23
|
+
This pack layers **above** the mod jars, so it shadows the jar's `builtin/entity` stub in
|
|
24
|
+
every era. Because it replaces that stub outright, the generator copies the `display` block
|
|
25
|
+
verbatim out of the jar's own model — the override is the whole model, not a patch.
|
|
26
|
+
|
|
27
|
+
## Renderer extensions
|
|
28
|
+
|
|
29
|
+
Two non-vanilla element fields exist for this pack, both read in `src/render/geometry.ts`:
|
|
30
|
+
|
|
31
|
+
- `emissive_rc: true` — skip directional shading, standing in for a fullbright render type.
|
|
32
|
+
- `alpha_rc: <0..1>` — constant opacity multiplier for a translucent element.
|
|
33
|
+
|
|
34
|
+
## How the pose is baked
|
|
35
|
+
|
|
36
|
+
Geometry keeps Java's handedness — `from`/`to` are the raw `addBox` bounds — and the whole
|
|
37
|
+
renderer transform is folded into each element's single rotation by `scripts/mod-models/pose.ts`.
|
|
38
|
+
Keeping Java's handedness is what lets the UVs stay the plain entity-sheet unwrap with no
|
|
39
|
+
mirroring anywhere.
|
|
40
|
+
|
|
41
|
+
A spec states the pose as the op list the renderer literally runs, so it reads against the
|
|
42
|
+
bytecode: Mekanism's `translate(0.5, 0.5, 0.5)` + `Axis.ZP 180°`, Botania's
|
|
43
|
+
`translate(0.5, 1.5, 0.5)` + `scale(1, -1, -1)`. Both are rigid — a mirror on two axes has
|
|
44
|
+
determinant +1, so it *is* a rotation — which means the composite of the pose, any per-part
|
|
45
|
+
pose, the part's `PartPose` offset and its rotation is always `p -> C + s·M·p` for a single
|
|
46
|
+
rotation `M`. An element expresses exactly that: place the box at `s·box + C` and rotate about
|
|
47
|
+
`C` by `M`, with `M` written as X-then-Y-then-Z Euler angles.
|
|
48
|
+
|
|
49
|
+
`decompose` throws rather than approximating if a pose ever carries a non-uniform scale or a
|
|
50
|
+
true reflection, since neither fits in one element and silently rounding would ship a wrong
|
|
51
|
+
icon.
|
|
52
|
+
|
|
53
|
+
## UVs
|
|
54
|
+
|
|
55
|
+
Java entity sheets are not 16×16, and the renderer has no `texture_size`: it normalizes `uv`
|
|
56
|
+
by 16 and multiplies by the real texture dimensions, so pixel coordinates are pre-scaled into
|
|
57
|
+
0–16 space (`u * 16 / sheetWidth`, `v * 16 / sheetHeight`).
|
|
58
|
+
|
|
59
|
+
The unwrap, in Java model axes: the row at `v` is `down` then `up` (each w×d); the row at
|
|
60
|
+
`v + d` is `west` (d), `north` (w), `east` (d), `south` (w).
|
|
61
|
+
|
|
62
|
+
The rect arithmetic is confirmed against the vendored renderchest chest model, whose UVs match
|
|
63
|
+
it exactly on every element. The assignment *within* the `up`/`down` and `east`/`west` pairs is
|
|
64
|
+
not independently confirmed — a chest's left and right faces are texture-identical, and
|
|
65
|
+
renderchest's own file disagrees with itself on `east`/`west` for that reason. It agrees with
|
|
66
|
+
`src/render/geo.ts`'s GeckoLib-validated table under the Java↔Bedrock double mirror (x and y),
|
|
67
|
+
which is the expected relationship, and swapping either pair changes these renders very little
|
|
68
|
+
because opposite faces of an entity-sheet box carry near-identical detail. Worth nailing down
|
|
69
|
+
against an in-game screenshot if an item ever looks subtly mirrored.
|
|
70
|
+
|
|
71
|
+
## Entries
|
|
72
|
+
|
|
73
|
+
### Mekanism 10.7.19 (1.21.1, NeoForge)
|
|
74
|
+
|
|
75
|
+
Six `builtin/entity` items, all `MekanismISTER`s posed with the default bake. Textures live in
|
|
76
|
+
`assets/mekanism/render/`, outside `textures/` — reached through `TextureLoader.decode`'s `raw`
|
|
77
|
+
fallback. Emissive and translucent groups come from each model's `render()` and
|
|
78
|
+
`renderToBuffer()`: a `litParts` list draws at light `15728880`, and the glass-like groups
|
|
79
|
+
additionally carry an alpha in their vertex colour.
|
|
80
|
+
|
|
81
|
+
| item | model class | sheet | parts | groups |
|
|
82
|
+
| --- | --- | --- | --- | --- |
|
|
83
|
+
| `atomic_disassembler` | `ModelAtomicDisassembler` | 64×32 | 16 | 5 blade parts emissive @ `0xBF` alpha |
|
|
84
|
+
| `flamethrower` | `ModelFlamethrower` | 64×64 | 23 | one opaque list |
|
|
85
|
+
| `scuba_tank` | `ModelScubaTank` | 128×64 | 9 | one opaque list |
|
|
86
|
+
| `free_runners` | `ModelFreeRunners` | 64×32 | 6 | opaque; extra `translate(0,-1,0)` |
|
|
87
|
+
| `jetpack` | `ModelJetpack` | 128×64 | 21 | 4 lit parts; 2 wings emissive @ `0x34` alpha |
|
|
88
|
+
| `scuba_mask` | `ModelScubaMask` | 128×64 | 28 | 2 lit parts; 6 glass emissive @ `0x4D` alpha |
|
|
89
|
+
|
|
90
|
+
Mekanism's other ten `builtin/entity` items are the energy cubes and fluid tanks, which are
|
|
91
|
+
assembled from block models in code rather than from a Java entity model, so they are not
|
|
92
|
+
portable this way.
|
|
93
|
+
|
|
94
|
+
### Botania 454 (1.20.1, Forge)
|
|
95
|
+
|
|
96
|
+
Botania ships no item renderer of its own: `TEISR` hands the stack straight to the block's
|
|
97
|
+
`BlockEntityRenderer` with a **dummy block entity**, so each item's pose is that renderer's
|
|
98
|
+
in-world pose — the standard `translate(0.5, ~1.5, 0.5)` + `scale(1, -1, -1)` block-entity
|
|
99
|
+
flip rather than Mekanism's `Rz(180)`. Sheet sizes are registered in `BotaniaLayerDefinitions`,
|
|
100
|
+
not the model class, so the specs state them explicitly. The jar is SRG-mapped; class names
|
|
101
|
+
survive and descriptors disambiguate every call except `PartPose.offset`/`rotation`, pinned by
|
|
102
|
+
`SRG_ROTATION` in `extract.ts`.
|
|
103
|
+
|
|
104
|
+
| item | model class | sheet | parts | animated? | notes |
|
|
105
|
+
| --- | --- | --- | --- | --- | --- |
|
|
106
|
+
| `avatar` | `AvatarModel` | 32×32 | 6 | no | null level → facing SOUTH → `ROTATIONS[0]` = 180° |
|
|
107
|
+
| `bellows` | `BellowsModel` | 64×32 | 4 | no | funnel posed separately; squeeze fraction is 1 |
|
|
108
|
+
| `hourglass` | `HourglassModel` | 64×32 | 5 | frozen by Botania | sand skipped — an item holds none |
|
|
109
|
+
| `corporea_index` | `CorporeaIndexBlockEntityRenderer` | 64×32 | 3 | yes | geometry lives in the renderer; ring drawn twice, nested |
|
|
110
|
+
| `teru_teru_bozu` | `TeruTeruBozuModel` | 64×32 | 3 | yes | `happy_face` skipped (rain variant) |
|
|
111
|
+
| `brewery` | `BotanicalBreweryModel` | 32×16 | 10 | yes | `plate` drawn 7× round a circle |
|
|
112
|
+
| `mana_pylon` | `ManaPylonModel` | 64×64 | 8 | yes | 4 crystal shards emissive |
|
|
113
|
+
| `natura_pylon` | `NaturaPylonModel` | 64×64 | 12 | yes | 8 crystal shards emissive |
|
|
114
|
+
| `gaia_pylon` | `GaiaPylonModel` | 64×64 | 12 | yes | 8 crystal shards emissive |
|
|
115
|
+
|
|
116
|
+
Botania special-cases the item path in several of these, and the specs follow it rather than
|
|
117
|
+
guessing: the pylon renderer takes `1.35` instead of `1.5` when the block entity is null, the
|
|
118
|
+
corporea index scales by `1.3` and drops `0.1`, and `HoveringHourglassBlockEntityRenderer`
|
|
119
|
+
**zeroes its own clock** when there is no world — so the hourglass icon here is exactly the
|
|
120
|
+
frame the game draws, not a still we picked.
|
|
121
|
+
|
|
122
|
+
`teru_teru_bozu`, `brewery`, `corporea_index` and the three pylons do keep spinning in the inventory, because
|
|
123
|
+
their renderers read `ClientTickHandler.ticksInGame` unguarded. Those six are a **chosen
|
|
124
|
+
still: frame 0**, matching how the renderer already takes frame 0 of an animated texture. The
|
|
125
|
+
position-seeded spin offset those renderers add is correctly absent, since it is guarded on the
|
|
126
|
+
block entity being non-null. At frame 0 most sin/cos terms vanish, which is why the pylons' ring
|
|
127
|
+
and crystal poses collapse into one; the brewery's plate heights are the exception, staggered by
|
|
128
|
+
`sin(i·40)` even at tick 0, exactly as in game on that tick.
|
|
129
|
+
|
|
130
|
+
All nine of Botania's `builtin/entity` items are ported.
|