25
25
import se .llbit .chunky .world .material .TextureMaterial ;
26
26
import se .llbit .json .JsonObject ;
27
27
import se .llbit .json .JsonValue ;
28
- import se .llbit .math .*;
28
+ import se .llbit .math .Quad ;
29
+ import se .llbit .math .QuickMath ;
30
+ import se .llbit .math .Transform ;
31
+ import se .llbit .math .Vector3 ;
29
32
import se .llbit .math .primitive .Box ;
30
33
import se .llbit .math .primitive .Primitive ;
31
34
@@ -51,205 +54,45 @@ public enum Kind {
51
54
52
55
//#region Dragon head
53
56
//String dragonHeadJson = "{\"elements\":[{\"from\":[2,0,2],\"to\":[14,12,14],\"faces\":{\"up\":{\"uv\":[8,2.875,9,1.875],\"texture\":\"entity/enderdragon/dragon\"},\"down\":{\"uv\":[8.9375,1.875,10,2.875],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[7,2.875,8,3.875],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[9,2.875,10,3.875],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[8,2.875,9,3.875],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[10,2.875,11,3.875],\"texture\":\"entity/enderdragon/dragon\"}}},{\"from\":[4,3,-8],\"to\":[12,6.5,3],\"faces\":{\"up\":{\"uv\":[12.75,3.75,12,2.75],\"texture\":\"entity/enderdragon/dragon\"},\"down\":{\"uv\":[12.8125,2.6875,13.4375,3.625],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[11,3.75,12.0625,4.0625],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[12.75,3.75,13.75,4.0625],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[12,3.75,12.75,4.0625],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[13.75,3.75,14.5,4.0625],\"texture\":\"entity/enderdragon/dragon\"}}},{\"from\":[4,0,-8],\"to\":[12,2.5,3],\"faces\":{\"up\":{\"uv\":[12.75,5.0625,12,4.0625],\"texture\":\"entity/enderdragon/dragon\"},\"down\":{\"uv\":[13.5,4.0625,12.75,5.0625],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[11,5.0625,12,5.3125],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[12.75,5.0625,13.75,5.3125],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[12,5.0625,12.75,5.3125],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[13.75,5.0625,14.5,5.3125],\"texture\":\"entity/enderdragon/dragon\"}}},{\"from\":[10.3,12,6.6],\"to\":[11.7,15,10.9],\"faces\":{\"up\":{\"uv\":[0.375,0.375,0.5,0],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[0.875,0.625,0.5,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[0.375,0.375,0,0.625],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[0.5,0.375,0.375,0.625],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[1,0.375,0.875,0.625],\"texture\":\"entity/enderdragon/dragon\"}}},{\"from\":[4.3,12,6.6],\"to\":[5.7,15,10.9],\"faces\":{\"up\":{\"uv\":[0.5,0.375,0.375,0],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[0,0.375,0.375,0.625],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[0.5,0.375,0.875,0.625],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[0.375,0.375,0.5,0.625],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[0.875,0.375,1,0.625],\"texture\":\"entity/enderdragon/dragon\"}}},{\"from\":[10.3,6.5,-5],\"to\":[11.7,8,-2],\"faces\":{\"up\":{\"uv\":[7.375,0,7.25,0.25],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[7.625,0.25,7.375,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[7.25,0.25,7,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[7.375,0.25,7.25,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[7.75,0.25,7.625,0.375],\"texture\":\"entity/enderdragon/dragon\"}}},{\"from\":[4.3,6.5,-5],\"to\":[5.7,8,-2],\"faces\":{\"up\":{\"uv\":[7.25,0,7.375,0.25],\"texture\":\"entity/enderdragon/dragon\"},\"east\":{\"uv\":[7,0.25,7.25,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"west\":{\"uv\":[7.375,0.25,7.625,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"north\":{\"uv\":[7.25,0.25,7.375,0.375],\"texture\":\"entity/enderdragon/dragon\"},\"south\":{\"uv\":[7.625,0.25,7.75,0.375],\"texture\":\"entity/enderdragon/dragon\"}}}]}";
54
- private static final Quad [] dragonHead = {
55
- // face
56
- new Quad (
57
- new Vector3 (2 / 16.0 , 12 / 16.0 , 14 / 16.0 ),
58
- new Vector3 (14 / 16.0 , 12 / 16.0 , 14 / 16.0 ),
59
- new Vector3 (2 / 16.0 , 12 / 16.0 , 2 / 16.0 ),
60
- new Vector4 (8 / 16.0 , 9 / 16.0 , 14.125 / 16.0 , 13.125 / 16.0 )),
61
- new Quad (
62
- new Vector3 (2 / 16.0 , 0 , 2 / 16.0 ),
63
- new Vector3 (14 / 16.0 , 0 , 2 / 16.0 ),
64
- new Vector3 (2 / 16.0 , 0 , 14 / 16.0 ),
65
- new Vector4 (8.9375 / 16.0 , 10 / 16.0 , 13.125 / 16.0 , 14.125 / 16.0 )),
66
- new Quad (
67
- new Vector3 (14 / 16.0 , 0 , 14 / 16.0 ),
68
- new Vector3 (14 / 16.0 , 0 , 2 / 16.0 ),
69
- new Vector3 (14 / 16.0 , 12 / 16.0 , 14 / 16.0 ),
70
- new Vector4 (7 / 16.0 , 8 / 16.0 , 12.125 / 16.0 , 13.125 / 16.0 )),
71
- new Quad (
72
- new Vector3 (2 / 16.0 , 0 , 2 / 16.0 ),
73
- new Vector3 (2 / 16.0 , 0 , 14 / 16.0 ),
74
- new Vector3 (2 / 16.0 , 12 / 16.0 , 2 / 16.0 ),
75
- new Vector4 (9 / 16.0 , 10 / 16.0 , 12.125 / 16.0 , 13.125 / 16.0 )),
76
- new Quad (
77
- new Vector3 (14 / 16.0 , 0 , 2 / 16.0 ),
78
- new Vector3 (2 / 16.0 , 0 , 2 / 16.0 ),
79
- new Vector3 (14 / 16.0 , 12 / 16.0 , 2 / 16.0 ),
80
- new Vector4 (8 / 16.0 , 9 / 16.0 , 12.125 / 16.0 , 13.125 / 16.0 )),
81
- new Quad (
82
- new Vector3 (2 / 16.0 , 0 , 14 / 16.0 ),
83
- new Vector3 (14 / 16.0 , 0 , 14 / 16.0 ),
84
- new Vector3 (2 / 16.0 , 12 / 16.0 , 14 / 16.0 ),
85
- new Vector4 (10 / 16.0 , 11 / 16.0 , 12.125 / 16.0 , 13.125 / 16.0 )),
86
- // mouth_upper
87
- new Quad (
88
- new Vector3 (4 / 16.0 , 6.5 / 16.0 , 3 / 16.0 ),
89
- new Vector3 (12 / 16.0 , 6.5 / 16.0 , 3 / 16.0 ),
90
- new Vector3 (4 / 16.0 , 6.5 / 16.0 , -8 / 16.0 ),
91
- new Vector4 (12.75 / 16.0 , 12 / 16.0 , 13.25 / 16.0 , 12.25 / 16.0 )),
92
- new Quad (
93
- new Vector3 (4 / 16.0 , 3 / 16.0 , -8 / 16.0 ),
94
- new Vector3 (12 / 16.0 , 3 / 16.0 , -8 / 16.0 ),
95
- new Vector3 (4 / 16.0 , 3 / 16.0 , 3 / 16.0 ),
96
- new Vector4 (12.8125 / 16.0 , 13.4375 / 16.0 , 12.375 / 16.0 , 13.3125 / 16.0 )),
97
- new Quad (
98
- new Vector3 (12 / 16.0 , 3 / 16.0 , 3 / 16.0 ),
99
- new Vector3 (12 / 16.0 , 3 / 16.0 , -8 / 16.0 ),
100
- new Vector3 (12 / 16.0 , 6.5 / 16.0 , 3 / 16.0 ),
101
- new Vector4 (11 / 16.0 , 12.0625 / 16.0 , 11.9375 / 16.0 , 12.25 / 16.0 )),
102
- new Quad (
103
- new Vector3 (4 / 16.0 , 3 / 16.0 , -8 / 16.0 ),
104
- new Vector3 (4 / 16.0 , 3 / 16.0 , 3 / 16.0 ),
105
- new Vector3 (4 / 16.0 , 6.5 / 16.0 , -8 / 16.0 ),
106
- new Vector4 (12.75 / 16.0 , 13.75 / 16.0 , 11.9375 / 16.0 , 12.25 / 16.0 )),
107
- new Quad (
108
- new Vector3 (12 / 16.0 , 3 / 16.0 , -8 / 16.0 ),
109
- new Vector3 (4 / 16.0 , 3 / 16.0 , -8 / 16.0 ),
110
- new Vector3 (12 / 16.0 , 6.5 / 16.0 , -8 / 16.0 ),
111
- new Vector4 (12 / 16.0 , 12.75 / 16.0 , 11.9375 / 16.0 , 12.25 / 16.0 )),
112
- new Quad (
113
- new Vector3 (4 / 16.0 , 3 / 16.0 , 3 / 16.0 ),
114
- new Vector3 (12 / 16.0 , 3 / 16.0 , 3 / 16.0 ),
115
- new Vector3 (4 / 16.0 , 6.5 / 16.0 , 3 / 16.0 ),
116
- new Vector4 (13.75 / 16.0 , 14.5 / 16.0 , 11.9375 / 16.0 , 12.25 / 16.0 )),
117
- // mouth_lower
118
- new Quad (
119
- new Vector3 (4 / 16.0 , 2.5 / 16.0 , 3 / 16.0 ),
120
- new Vector3 (12 / 16.0 , 2.5 / 16.0 , 3 / 16.0 ),
121
- new Vector3 (4 / 16.0 , 2.5 / 16.0 , -8 / 16.0 ),
122
- new Vector4 (12.75 / 16.0 , 12 / 16.0 , 11.9375 / 16.0 , 10.9375 / 16.0 )),
123
- new Quad (
124
- new Vector3 (4 / 16.0 , 0 , -8 / 16.0 ),
125
- new Vector3 (12 / 16.0 , 0 , -8 / 16.0 ),
126
- new Vector3 (4 / 16.0 , 0 , 3 / 16.0 ),
127
- new Vector4 (13.5 / 16.0 , 12.75 / 16.0 , 10.9375 / 16.0 , 11.9375 / 16.0 )),
128
- new Quad (
129
- new Vector3 (12 / 16.0 , 0 , 3 / 16.0 ),
130
- new Vector3 (12 / 16.0 , 0 , -8 / 16.0 ),
131
- new Vector3 (12 / 16.0 , 2.5 / 16.0 , 3 / 16.0 ),
132
- new Vector4 (11 / 16.0 , 12 / 16.0 , 10.6875 / 16.0 , 10.9375 / 16.0 )),
133
- new Quad (
134
- new Vector3 (4 / 16.0 , 0 , -8 / 16.0 ),
135
- new Vector3 (4 / 16.0 , 0 , 3 / 16.0 ),
136
- new Vector3 (4 / 16.0 , 2.5 / 16.0 , -8 / 16.0 ),
137
- new Vector4 (12.75 / 16.0 , 13.75 / 16.0 , 10.6875 / 16.0 , 10.9375 / 16.0 )),
138
- new Quad (
139
- new Vector3 (12 / 16.0 , 0 , -8 / 16.0 ),
140
- new Vector3 (4 / 16.0 , 0 , -8 / 16.0 ),
141
- new Vector3 (12 / 16.0 , 2.5 / 16.0 , -8 / 16.0 ),
142
- new Vector4 (12 / 16.0 , 12.75 / 16.0 , 10.6875 / 16.0 , 10.9375 / 16.0 )),
143
- new Quad (
144
- new Vector3 (4 / 16.0 , 0 , 3 / 16.0 ),
145
- new Vector3 (12 / 16.0 , 0 , 3 / 16.0 ),
146
- new Vector3 (4 / 16.0 , 2.5 / 16.0 , 3 / 16.0 ),
147
- new Vector4 (13.75 / 16.0 , 14.5 / 16.0 , 10.6875 / 16.0 , 10.9375 / 16.0 )),
148
- // ear_right
149
- new Quad (
150
- new Vector3 (10.3 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
151
- new Vector3 (11.7 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
152
- new Vector3 (10.3 / 16.0 , 15 / 16.0 , 6.6 / 16.0 ),
153
- new Vector4 (0.375 / 16.0 , 0.5 / 16.0 , 16 / 16.0 , 15.625 / 16.0 )),
154
- new Quad (
155
- new Vector3 (11.7 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
156
- new Vector3 (11.7 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
157
- new Vector3 (11.7 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
158
- new Vector4 (0.875 / 16.0 , 0.5 / 16.0 , 15.625 / 16.0 , 15.375 / 16.0 )),
159
- new Quad (
160
- new Vector3 (10.3 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
161
- new Vector3 (10.3 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
162
- new Vector3 (10.3 / 16.0 , 15 / 16.0 , 6.6 / 16.0 ),
163
- new Vector4 (0.375 / 16.0 , 0 , 15.375 / 16.0 , 15.625 / 16.0 )),
164
- new Quad (
165
- new Vector3 (11.7 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
166
- new Vector3 (10.3 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
167
- new Vector3 (11.7 / 16.0 , 15 / 16.0 , 6.6 / 16.0 ),
168
- new Vector4 (0.5 / 16.0 , 0.375 / 16.0 , 15.375 / 16.0 , 15.625 / 16.0 )),
169
- new Quad (
170
- new Vector3 (10.3 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
171
- new Vector3 (11.7 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
172
- new Vector3 (10.3 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
173
- new Vector4 (1 / 16.0 , 0.875 / 16.0 , 15.375 / 16.0 , 15.625 / 16.0 )),
174
- // ear_left
175
- new Quad (
176
- new Vector3 (4.3 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
177
- new Vector3 (5.7 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
178
- new Vector3 (4.3 / 16.0 , 15 / 16.0 , 6.6 / 16.0 ),
179
- new Vector4 (0.5 / 16.0 , 0.375 / 16.0 , 16 / 16.0 , 15.625 / 16.0 )),
180
- new Quad (
181
- new Vector3 (5.7 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
182
- new Vector3 (5.7 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
183
- new Vector3 (5.7 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
184
- new Vector4 (0 , 0.375 / 16.0 , 15.375 / 16.0 , 15.625 / 16.0 )),
185
- new Quad (
186
- new Vector3 (4.3 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
187
- new Vector3 (4.3 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
188
- new Vector3 (4.3 / 16.0 , 15 / 16.0 , 6.6 / 16.0 ),
189
- new Vector4 (0.5 / 16.0 , 0.875 / 16.0 , 15.375 / 16.0 , 15.625 / 16.0 )),
190
- new Quad (
191
- new Vector3 (5.7 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
192
- new Vector3 (4.3 / 16.0 , 12 / 16.0 , 6.6 / 16.0 ),
193
- new Vector3 (5.7 / 16.0 , 15 / 16.0 , 6.6 / 16.0 ),
194
- new Vector4 (0.375 / 16.0 , 0.5 / 16.0 , 15.375 / 16.0 , 15.625 / 16.0 )),
195
- new Quad (
196
- new Vector3 (4.3 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
197
- new Vector3 (5.7 / 16.0 , 12 / 16.0 , 10.9 / 16.0 ),
198
- new Vector3 (4.3 / 16.0 , 15 / 16.0 , 10.9 / 16.0 ),
199
- new Vector4 (0.875 / 16.0 , 1 / 16.0 , 15.375 / 16.0 , 15.625 / 16.0 )),
200
- // nose right
201
- new Quad (
202
- new Vector3 (10.3 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
203
- new Vector3 (11.7 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
204
- new Vector3 (10.3 / 16.0 , 8 / 16.0 , -5 / 16.0 ),
205
- new Vector4 (7.375 / 16.0 , 7.25 / 16.0 , 15.75 / 16.0 , 16 / 16.0 )),
206
- new Quad (
207
- new Vector3 (11.7 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
208
- new Vector3 (11.7 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
209
- new Vector3 (11.7 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
210
- new Vector4 (7.625 / 16.0 , 7.375 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
211
- new Quad (
212
- new Vector3 (10.3 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
213
- new Vector3 (10.3 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
214
- new Vector3 (10.3 / 16.0 , 8 / 16.0 , -5 / 16.0 ),
215
- new Vector4 (7.25 / 16.0 , 7 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
216
- new Quad (
217
- new Vector3 (11.7 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
218
- new Vector3 (10.3 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
219
- new Vector3 (11.7 / 16.0 , 8 / 16.0 , -5 / 16.0 ),
220
- new Vector4 (7.375 / 16.0 , 7.25 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
221
- new Quad (
222
- new Vector3 (10.3 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
223
- new Vector3 (11.7 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
224
- new Vector3 (10.3 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
225
- new Vector4 (7.75 / 16.0 , 7.625 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
226
- // nose_left
227
- new Quad (
228
- new Vector3 (4.3 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
229
- new Vector3 (5.7 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
230
- new Vector3 (4.3 / 16.0 , 8 / 16.0 , -5 / 16.0 ),
231
- new Vector4 (7.25 / 16.0 , 7.375 / 16.0 , 15.75 / 16.0 , 16 / 16.0 )),
232
- new Quad (
233
- new Vector3 (5.7 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
234
- new Vector3 (5.7 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
235
- new Vector3 (5.7 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
236
- new Vector4 (7 / 16.0 , 7.25 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
237
- new Quad (
238
- new Vector3 (4.3 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
239
- new Vector3 (4.3 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
240
- new Vector3 (4.3 / 16.0 , 8 / 16.0 , -5 / 16.0 ),
241
- new Vector4 (7.375 / 16.0 , 7.625 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
242
- new Quad (
243
- new Vector3 (5.7 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
244
- new Vector3 (4.3 / 16.0 , 6.5 / 16.0 , -5 / 16.0 ),
245
- new Vector3 (5.7 / 16.0 , 8 / 16.0 , -5 / 16.0 ),
246
- new Vector4 (7.25 / 16.0 , 7.375 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
247
- new Quad (
248
- new Vector3 (4.3 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
249
- new Vector3 (5.7 / 16.0 , 6.5 / 16.0 , -2 / 16.0 ),
250
- new Vector3 (4.3 / 16.0 , 8 / 16.0 , -2 / 16.0 ),
251
- new Vector4 (7.625 / 16.0 , 7.75 / 16.0 , 15.625 / 16.0 , 15.75 / 16.0 )),
252
- };
57
+ private static final Quad [] dragonHead = new BoxModelBuilder ()
58
+ // head
59
+ .addBox (new Vector3 (2 / 16. , 0 , 2 / 16. ), new Vector3 (14 / 16. , 12 / 16. , 14 / 16. ), box ->
60
+ box .withBoxTextureDimensions (16 , 16 , 16 )
61
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (112 , 30 )
62
+ .addTopFace ().addBottomFace ().addFrontFace ().addBackFace ().addLeftFace ().addRightFace ())
63
+ // jaw
64
+ .addBox (new Vector3 (3.5 / 16. , 3 / 16. , -8.5 / 16. ), new Vector3 (12.5 / 16. , 6.75 / 16. , 3.5 / 16. ), box ->
65
+ box .withBoxTextureDimensions (12 , 5 , 16 )
66
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (176 , 44 )
67
+ .addTopFace ().addBottomFace (UVMapHelper .Side ::flipY ).addFrontFace ().addBackFace ().addLeftFace ().addRightFace ())
68
+ .addBox (new Vector3 (3.5 / 16. , 0 / 16. , -8.5 / 16. ), new Vector3 (12.5 / 16. , 3 / 16. , 3.5 / 16. ), box ->
69
+ box .withBoxTextureDimensions (12 , 4 , 16 )
70
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (176 , 65 )
71
+ .addTopFace ().addBottomFace ().addFrontFace ().addBackFace ().addLeftFace ().addRightFace ()
72
+ .transform (Transform .NONE
73
+ .translate (0 , 0.5 - 3 / 16. , 0.5 - 3.5 / 16. )
74
+ .rotateX (Math .toRadians (-11.25 ))
75
+ .translate (0 , -0.5 + 3 / 16. , -0.5 + 3.5 / 16. )
76
+ ))
77
+ // ears
78
+ .addBox (new Vector3 (10.3 / 16. , 12 / 16. , 6.6 / 16. ), new Vector3 (11.7 / 16. , 15 / 16. , 10.9 / 16. ), box ->
79
+ box .withBoxTextureDimensions (2 , 4 , 6 )
80
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (0 , 0 )
81
+ .addTopFace ().addFrontFace ().addBackFace ().addLeftFace ().addRightFace ().flipX ().mirrorX ())
82
+ .addBox (new Vector3 (4.3 / 16. , 12 / 16. , 6.6 / 16. ), new Vector3 (5.7 / 16. , 15 / 16. , 10.9 / 16. ), box ->
83
+ box .withBoxTextureDimensions (2 , 4 , 6 )
84
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (0 , 0 )
85
+ .addTopFace ().addFrontFace ().addBackFace ().addLeftFace ().addRightFace ().flipX ())
86
+ // nose
87
+ .addBox (new Vector3 (10.25 / 16. , 6.5 / 16. , -7 / 16. ), new Vector3 (11.75 / 16. , 8 / 16. , -4 / 16. ), box ->
88
+ box .withBoxTextureDimensions (2 , 2 , 4 )
89
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (112 , 0 )
90
+ .addTopFace ().addFrontFace ().addBackFace ().addLeftFace ().addRightFace ().mirrorX ())
91
+ .addBox (new Vector3 (4.25 / 16. , 6.5 / 16. , -7 / 16. ), new Vector3 (5.75 / 16. , 8 / 16. , -4 / 16. ), box ->
92
+ box .withBoxTextureDimensions (2 , 2 , 4 )
93
+ .forTextureSize (Texture .dragon , 256 , 256 ).atUVCoordinates (112 , 0 )
94
+ .addTopFace ().addFrontFace ().addBackFace ().addLeftFace ().addRightFace ())
95
+ .toQuads ();
253
96
//#endregion
254
97
255
98
//#region Piglin head
0 commit comments