minecraft-renderer 0.1.0

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.
Files changed (187) hide show
  1. package/README.md +297 -0
  2. package/dist/index.html +83 -0
  3. package/dist/static/image/arrow.6f27b59f.png +0 -0
  4. package/dist/static/image/blocksAtlasLatest.7850afa3.png +0 -0
  5. package/dist/static/image/blocksAtlasLegacy.5c76823d.png +0 -0
  6. package/dist/static/image/itemsAtlasLatest.36036f95.png +0 -0
  7. package/dist/static/image/itemsAtlasLegacy.dcb1b58d.png +0 -0
  8. package/dist/static/image/tipped_arrow.6f27b59f.png +0 -0
  9. package/dist/static/js/365.f05233ab.js +8462 -0
  10. package/dist/static/js/365.f05233ab.js.LICENSE.txt +52 -0
  11. package/dist/static/js/async/738.efa27644.js +1 -0
  12. package/dist/static/js/index.092ec5be.js +56 -0
  13. package/dist/static/js/lib-polyfill.98986ac5.js +1 -0
  14. package/dist/static/js/lib-react.5c9129e0.js +2 -0
  15. package/dist/static/js/lib-react.5c9129e0.js.LICENSE.txt +39 -0
  16. package/package.json +104 -0
  17. package/src/assets/destroy_stage_0.png +0 -0
  18. package/src/assets/destroy_stage_1.png +0 -0
  19. package/src/assets/destroy_stage_2.png +0 -0
  20. package/src/assets/destroy_stage_3.png +0 -0
  21. package/src/assets/destroy_stage_4.png +0 -0
  22. package/src/assets/destroy_stage_5.png +0 -0
  23. package/src/assets/destroy_stage_6.png +0 -0
  24. package/src/assets/destroy_stage_7.png +0 -0
  25. package/src/assets/destroy_stage_8.png +0 -0
  26. package/src/assets/destroy_stage_9.png +0 -0
  27. package/src/examples/README.md +146 -0
  28. package/src/examples/appViewerExample.ts +205 -0
  29. package/src/examples/initialMenuStart.ts +161 -0
  30. package/src/graphicsBackend/appViewer.ts +297 -0
  31. package/src/graphicsBackend/config.ts +119 -0
  32. package/src/graphicsBackend/index.ts +10 -0
  33. package/src/graphicsBackend/playerState.ts +61 -0
  34. package/src/graphicsBackend/types.ts +143 -0
  35. package/src/index.ts +97 -0
  36. package/src/lib/DebugGui.ts +190 -0
  37. package/src/lib/animationController.ts +85 -0
  38. package/src/lib/buildSharedConfig.mjs +1 -0
  39. package/src/lib/cameraBobbing.ts +94 -0
  40. package/src/lib/canvas2DOverlay.example.ts +361 -0
  41. package/src/lib/canvas2DOverlay.quickstart.ts +242 -0
  42. package/src/lib/canvas2DOverlay.ts +381 -0
  43. package/src/lib/cleanupDecorator.ts +29 -0
  44. package/src/lib/createPlayerObject.ts +55 -0
  45. package/src/lib/frameTimingCollector.ts +164 -0
  46. package/src/lib/guiRenderer.ts +283 -0
  47. package/src/lib/items.ts +140 -0
  48. package/src/lib/mesherlogReader.ts +131 -0
  49. package/src/lib/moreBlockDataGenerated.json +714 -0
  50. package/src/lib/preflatMap.json +1741 -0
  51. package/src/lib/simpleUtils.ts +40 -0
  52. package/src/lib/smoothSwitcher.ts +168 -0
  53. package/src/lib/spiral.ts +29 -0
  54. package/src/lib/ui/newStats.ts +120 -0
  55. package/src/lib/utils/proxy.ts +23 -0
  56. package/src/lib/utils/skins.ts +63 -0
  57. package/src/lib/utils.ts +76 -0
  58. package/src/lib/workerProxy.ts +342 -0
  59. package/src/lib/worldrendererCommon.ts +1088 -0
  60. package/src/mesher/mesher.ts +253 -0
  61. package/src/mesher/models.ts +769 -0
  62. package/src/mesher/modelsGeometryCommon.ts +142 -0
  63. package/src/mesher/shared.ts +80 -0
  64. package/src/mesher/standaloneRenderer.ts +270 -0
  65. package/src/mesher/test/a.ts +3 -0
  66. package/src/mesher/test/mesherTester.ts +76 -0
  67. package/src/mesher/test/playground.ts +19 -0
  68. package/src/mesher/test/test-perf.ts +74 -0
  69. package/src/mesher/test/tests.test.ts +56 -0
  70. package/src/mesher/world.ts +294 -0
  71. package/src/mesher/worldConstants.ts +1 -0
  72. package/src/modules/index.ts +11 -0
  73. package/src/modules/starfield.ts +313 -0
  74. package/src/modules/types.ts +110 -0
  75. package/src/playerState/playerState.ts +78 -0
  76. package/src/playerState/types.ts +36 -0
  77. package/src/playground/allEntitiesDebug.ts +170 -0
  78. package/src/playground/baseScene.ts +587 -0
  79. package/src/playground/mobileControls.tsx +268 -0
  80. package/src/playground/playground.html +83 -0
  81. package/src/playground/playground.ts +11 -0
  82. package/src/playground/playgroundUi.tsx +140 -0
  83. package/src/playground/reactUtils.ts +71 -0
  84. package/src/playground/scenes/allEntities.ts +13 -0
  85. package/src/playground/scenes/entities.ts +37 -0
  86. package/src/playground/scenes/floorRandom.ts +33 -0
  87. package/src/playground/scenes/frequentUpdates.ts +148 -0
  88. package/src/playground/scenes/geometryExport.ts +142 -0
  89. package/src/playground/scenes/index.ts +12 -0
  90. package/src/playground/scenes/lightingStarfield.ts +40 -0
  91. package/src/playground/scenes/main.ts +313 -0
  92. package/src/playground/scenes/railsCobweb.ts +14 -0
  93. package/src/playground/scenes/rotationIssue.ts +7 -0
  94. package/src/playground/scenes/slabsOptimization.ts +16 -0
  95. package/src/playground/scenes/transparencyIssue.ts +11 -0
  96. package/src/playground/shared.ts +79 -0
  97. package/src/resourcesManager/index.ts +5 -0
  98. package/src/resourcesManager/resourcesManager.ts +314 -0
  99. package/src/shims/minecraftData.ts +41 -0
  100. package/src/sign-renderer/index.html +21 -0
  101. package/src/sign-renderer/index.ts +216 -0
  102. package/src/sign-renderer/noop.js +1 -0
  103. package/src/sign-renderer/playground.ts +38 -0
  104. package/src/sign-renderer/tests.test.ts +69 -0
  105. package/src/sign-renderer/vite.config.ts +10 -0
  106. package/src/three/appShared.ts +75 -0
  107. package/src/three/bannerRenderer.ts +275 -0
  108. package/src/three/cameraShake.ts +120 -0
  109. package/src/three/cinimaticScript.ts +350 -0
  110. package/src/three/documentRenderer.ts +491 -0
  111. package/src/three/entities.ts +1580 -0
  112. package/src/three/entity/EntityMesh.ts +707 -0
  113. package/src/three/entity/animations.js +171 -0
  114. package/src/three/entity/armorModels.json +204 -0
  115. package/src/three/entity/armorModels.ts +36 -0
  116. package/src/three/entity/entities.json +6230 -0
  117. package/src/three/entity/exportedModels.js +38 -0
  118. package/src/three/entity/externalTextures.json +1 -0
  119. package/src/three/entity/models/allay.obj +325 -0
  120. package/src/three/entity/models/arrow.obj +60 -0
  121. package/src/three/entity/models/axolotl.obj +509 -0
  122. package/src/three/entity/models/blaze.obj +601 -0
  123. package/src/three/entity/models/boat.obj +417 -0
  124. package/src/three/entity/models/camel.obj +1061 -0
  125. package/src/three/entity/models/cat.obj +509 -0
  126. package/src/three/entity/models/chicken.obj +371 -0
  127. package/src/three/entity/models/cod.obj +371 -0
  128. package/src/three/entity/models/creeper.obj +279 -0
  129. package/src/three/entity/models/dolphin.obj +371 -0
  130. package/src/three/entity/models/ender_dragon.obj +2993 -0
  131. package/src/three/entity/models/enderman.obj +325 -0
  132. package/src/three/entity/models/endermite.obj +187 -0
  133. package/src/three/entity/models/fox.obj +463 -0
  134. package/src/three/entity/models/frog.obj +739 -0
  135. package/src/three/entity/models/ghast.obj +463 -0
  136. package/src/three/entity/models/goat.obj +601 -0
  137. package/src/three/entity/models/guardian.obj +1015 -0
  138. package/src/three/entity/models/horse.obj +1061 -0
  139. package/src/three/entity/models/llama.obj +509 -0
  140. package/src/three/entity/models/minecart.obj +233 -0
  141. package/src/three/entity/models/parrot.obj +509 -0
  142. package/src/three/entity/models/piglin.obj +739 -0
  143. package/src/three/entity/models/pillager.obj +371 -0
  144. package/src/three/entity/models/rabbit.obj +555 -0
  145. package/src/three/entity/models/sheep.obj +555 -0
  146. package/src/three/entity/models/shulker.obj +141 -0
  147. package/src/three/entity/models/sniffer.obj +693 -0
  148. package/src/three/entity/models/spider.obj +509 -0
  149. package/src/three/entity/models/tadpole.obj +95 -0
  150. package/src/three/entity/models/turtle.obj +371 -0
  151. package/src/three/entity/models/vex.obj +325 -0
  152. package/src/three/entity/models/villager.obj +509 -0
  153. package/src/three/entity/models/warden.obj +463 -0
  154. package/src/three/entity/models/witch.obj +647 -0
  155. package/src/three/entity/models/wolf.obj +509 -0
  156. package/src/three/entity/models/zombie_villager.obj +463 -0
  157. package/src/three/entity/objModels.js +1 -0
  158. package/src/three/fireworks.ts +661 -0
  159. package/src/three/fireworksRenderer.ts +434 -0
  160. package/src/three/globals.d.ts +7 -0
  161. package/src/three/graphicsBackend.ts +274 -0
  162. package/src/three/graphicsBackendOffThread.ts +107 -0
  163. package/src/three/hand.ts +89 -0
  164. package/src/three/holdingBlock.ts +926 -0
  165. package/src/three/index.ts +20 -0
  166. package/src/three/itemMesh.ts +427 -0
  167. package/src/three/modules.d.ts +14 -0
  168. package/src/three/panorama.ts +308 -0
  169. package/src/three/panoramaShared.ts +1 -0
  170. package/src/three/renderSlot.ts +82 -0
  171. package/src/three/skyboxRenderer.ts +406 -0
  172. package/src/three/starField.ts +13 -0
  173. package/src/three/threeJsMedia.ts +731 -0
  174. package/src/three/threeJsMethods.ts +15 -0
  175. package/src/three/threeJsParticles.ts +160 -0
  176. package/src/three/threeJsSound.ts +95 -0
  177. package/src/three/threeJsUtils.ts +90 -0
  178. package/src/three/waypointSprite.ts +435 -0
  179. package/src/three/waypoints.ts +163 -0
  180. package/src/three/world/cursorBlock.ts +172 -0
  181. package/src/three/world/vr.ts +257 -0
  182. package/src/three/worldGeometryExport.ts +259 -0
  183. package/src/three/worldGeometryHandler.ts +279 -0
  184. package/src/three/worldRendererThree.ts +1381 -0
  185. package/src/worldView/index.ts +6 -0
  186. package/src/worldView/types.ts +66 -0
  187. package/src/worldView/worldView.ts +424 -0
@@ -0,0 +1,171 @@
1
+ //@ts-check
2
+ import { PlayerAnimation } from 'skinview3d'
3
+
4
+ export class WalkingGeneralSwing extends PlayerAnimation {
5
+
6
+ switchAnimationCallback
7
+
8
+ isRunning = false
9
+ isMoving = true
10
+ isCrouched = false
11
+
12
+ _startArmSwing
13
+
14
+ swingArm() {
15
+ this._startArmSwing = this.progress
16
+ }
17
+
18
+ animate(player) {
19
+ // Multiply by animation's natural speed
20
+ let t = 0
21
+ const updateT = () => {
22
+ if (!this.isMoving) {
23
+ t = 0
24
+ return
25
+ }
26
+ if (this.isRunning) {
27
+ t = this.progress * 10 + Math.PI * 0.5
28
+ } else {
29
+ t = this.progress * 8
30
+ }
31
+ }
32
+ updateT()
33
+ let reset = false
34
+
35
+ croughAnimation(player, this.isCrouched)
36
+
37
+ if ((this.isRunning ? Math.cos(t) : Math.sin(t)) < 0.01) {
38
+ if (this.switchAnimationCallback) {
39
+ reset = true
40
+ this.progress = 0
41
+ updateT()
42
+ }
43
+ }
44
+
45
+ if (this.isRunning) {
46
+ // Leg swing with larger amplitude
47
+ player.skin.leftLeg.rotation.x = Math.cos(t + Math.PI) * 1.3
48
+ player.skin.rightLeg.rotation.x = Math.cos(t) * 1.3
49
+ } else {
50
+ // Leg swing
51
+ player.skin.leftLeg.rotation.x = Math.sin(t) * 0.5
52
+ player.skin.rightLeg.rotation.x = Math.sin(t + Math.PI) * 0.5
53
+ }
54
+
55
+ if (this._startArmSwing) {
56
+ const tHand = (this.progress - this._startArmSwing) * 18 + Math.PI * 0.5
57
+ // player.skin.rightArm.rotation.x = Math.cos(tHand) * 1.5
58
+ // const basicArmRotationZ = Math.PI * 0.1
59
+ // player.skin.rightArm.rotation.z = Math.cos(t + Math.PI) * 0.3 - basicArmRotationZ
60
+ HitAnimation.animate((this.progress - this._startArmSwing), player, this.isMoving)
61
+
62
+ if (tHand > Math.PI + Math.PI) {
63
+ this._startArmSwing = null
64
+ player.skin.rightArm.rotation.z = 0
65
+ }
66
+ }
67
+
68
+ if (this.isRunning) {
69
+ player.skin.leftArm.rotation.x = Math.cos(t) * 1.5
70
+ if (!this._startArmSwing) {
71
+ player.skin.rightArm.rotation.x = Math.cos(t + Math.PI) * 1.5
72
+ }
73
+ const basicArmRotationZ = Math.PI * 0.1
74
+ player.skin.leftArm.rotation.z = Math.cos(t) * 0.1 + basicArmRotationZ
75
+ if (!this._startArmSwing) {
76
+ player.skin.rightArm.rotation.z = Math.cos(t + Math.PI) * 0.1 - basicArmRotationZ
77
+ }
78
+ } else {
79
+ // Arm swing
80
+ player.skin.leftArm.rotation.x = Math.sin(t + Math.PI) * 0.5
81
+ if (!this._startArmSwing) {
82
+ player.skin.rightArm.rotation.x = Math.sin(t) * 0.5
83
+ }
84
+ const basicArmRotationZ = Math.PI * 0.02
85
+ player.skin.leftArm.rotation.z = Math.cos(t) * 0.03 + basicArmRotationZ
86
+ if (!this._startArmSwing) {
87
+ player.skin.rightArm.rotation.z = Math.cos(t + Math.PI) * 0.03 - basicArmRotationZ
88
+ }
89
+ }
90
+
91
+ if (this.isRunning) {
92
+ player.rotation.z = Math.cos(t + Math.PI) * 0.01
93
+ }
94
+ if (this.isRunning) {
95
+ const basicCapeRotationX = Math.PI * 0.3
96
+ player.cape.rotation.x = Math.sin(t * 2) * 0.1 + basicCapeRotationX
97
+ } else {
98
+ // Always add an angle for cape around the x axis
99
+ const basicCapeRotationX = Math.PI * 0.06
100
+ player.cape.rotation.x = Math.sin(t / 1.5) * 0.06 + basicCapeRotationX
101
+ }
102
+
103
+ if (reset) {
104
+ this.switchAnimationCallback()
105
+ this.switchAnimationCallback = null
106
+ }
107
+ }
108
+ }
109
+
110
+ const HitAnimation = {
111
+ animate(progress, player, isMovingOrRunning) {
112
+ const t = progress * 18
113
+ player.skin.rightArm.rotation.x = -0.453_786_055_2 * 2 + 2 * Math.sin(t + Math.PI) * 0.3
114
+
115
+ if (!isMovingOrRunning) {
116
+ const basicArmRotationZ = 0.01 * Math.PI + 0.06
117
+ player.skin.rightArm.rotation.z = -Math.cos(t) * 0.403 + basicArmRotationZ
118
+ player.skin.body.rotation.y = -Math.cos(t) * 0.06
119
+ player.skin.leftArm.rotation.x = Math.sin(t + Math.PI) * 0.077
120
+ player.skin.leftArm.rotation.z = -Math.cos(t) * 0.015 + 0.13 - 0.05
121
+ player.skin.leftArm.position.z = Math.cos(t) * 0.3
122
+ player.skin.leftArm.position.x = 5 - Math.cos(t) * 0.05
123
+ }
124
+ },
125
+ }
126
+
127
+ const croughAnimation = (player, isCrouched) => {
128
+ const erp = 0
129
+
130
+ // let pr = this.progress * 8;
131
+ let pr = isCrouched ? 1 : 0
132
+ const showProgress = false
133
+ if (showProgress) {
134
+ pr = Math.floor(pr)
135
+ }
136
+ player.skin.body.rotation.x = 0.453_786_055_2 * Math.abs(Math.sin((pr * Math.PI) / 2))
137
+ player.skin.body.position.z =
138
+ 1.325_618_1 * Math.abs(Math.sin((pr * Math.PI) / 2)) - 3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2))
139
+ player.skin.body.position.y = -6 - 2.103_677_462 * Math.abs(Math.sin((pr * Math.PI) / 2))
140
+ player.cape.position.y = 8 - 1.851_236_166_577_372 * Math.abs(Math.sin((pr * Math.PI) / 2))
141
+ player.cape.rotation.x = (10.8 * Math.PI) / 180 + 0.294_220_265_771 * Math.abs(Math.sin((pr * Math.PI) / 2))
142
+ player.cape.position.z =
143
+ -2 + 3.786_619_432 * Math.abs(Math.sin((pr * Math.PI) / 2)) - 3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2))
144
+ player.elytra.position.x = player.cape.position.x
145
+ player.elytra.position.y = player.cape.position.y
146
+ player.elytra.position.z = player.cape.position.z
147
+ player.elytra.rotation.x = player.cape.rotation.x - (10.8 * Math.PI) / 180
148
+ // const pr1 = this.progress / this.speed;
149
+ const pr1 = 1
150
+ if (Math.abs(Math.sin((pr * Math.PI) / 2)) === 1) {
151
+ player.elytra.leftWing.rotation.z =
152
+ 0.261_799_44 + 0.458_200_6 * Math.abs(Math.sin((Math.min(pr1 - erp, 1) * Math.PI) / 2))
153
+ player.elytra.updateRightWing()
154
+ } else if (isCrouched !== undefined) {
155
+ player.elytra.leftWing.rotation.z =
156
+ 0.72 - 0.458_200_6 * Math.abs(Math.sin((Math.min(pr1 - erp, 1) * Math.PI) / 2))
157
+ player.elytra.updateRightWing()
158
+ }
159
+ player.skin.head.position.y = -3.618_325_234_674 * Math.abs(Math.sin((pr * Math.PI) / 2))
160
+ player.skin.leftArm.position.z =
161
+ 3.618_325_234_674 * Math.abs(Math.sin((pr * Math.PI) / 2)) - 3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2))
162
+ player.skin.rightArm.position.z = player.skin.leftArm.position.z
163
+ player.skin.leftArm.rotation.x = 0.410_367_746_202 * Math.abs(Math.sin((pr * Math.PI) / 2))
164
+ player.skin.rightArm.rotation.x = player.skin.leftArm.rotation.x
165
+ player.skin.leftArm.rotation.z = 0.1
166
+ player.skin.rightArm.rotation.z = -player.skin.leftArm.rotation.z
167
+ player.skin.leftArm.position.y = -2 - 2.539_433_18 * Math.abs(Math.sin((pr * Math.PI) / 2))
168
+ player.skin.rightArm.position.y = player.skin.leftArm.position.y
169
+ player.skin.rightLeg.position.z = -3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2))
170
+ player.skin.leftLeg.position.z = player.skin.rightLeg.position.z
171
+ }
@@ -0,0 +1,204 @@
1
+ {
2
+ "skull": {
3
+ "bones": [
4
+ {
5
+ "name": "head",
6
+ "pivot": [0, 12, 0],
7
+ "cubes": [
8
+ {
9
+ "origin": [-4, 0, -4],
10
+ "size": [8, 8, 8],
11
+ "uv": [0, 0],
12
+ "inflate": 1
13
+ }
14
+ ]
15
+ },
16
+ {
17
+ "name": "overlay",
18
+ "parent": "head",
19
+ "pivot": [0, 12, 0],
20
+ "cubes": [
21
+ {
22
+ "origin": [-4, 0, -4],
23
+ "size": [8, 8, 8],
24
+ "uv": [32, 0],
25
+ "inflate": 1.2
26
+ }
27
+ ]
28
+ }
29
+ ],
30
+ "visible_bounds_width": 1.5,
31
+ "visible_bounds_offset": [0, 0.5, 0],
32
+ "texturewidth": 64,
33
+ "textureheight": 32
34
+ },
35
+ "head": {
36
+ "bones": [
37
+ {"name": "armor", "pivot": [0, 12, 0]},
38
+ {
39
+ "name": "head",
40
+ "parent": "armor",
41
+ "pivot": [0, 12, 0],
42
+ "cubes": [
43
+ {
44
+ "origin": [-4, 23, -4],
45
+ "size": [8, 8, 8],
46
+ "uv": [0, 0],
47
+ "inflate": 1
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ "name": "overlay",
53
+ "parent": "head",
54
+ "pivot": [0, 12, 0],
55
+ "cubes": [
56
+ {
57
+ "origin": [-4, 23, -4],
58
+ "size": [8, 8, 8],
59
+ "uv": [32, 0],
60
+ "inflate": 1.2
61
+ }
62
+ ]
63
+ }
64
+ ],
65
+ "visible_bounds_width": 1.5,
66
+ "visible_bounds_offset": [0, 0.5, 0],
67
+ "texturewidth": 64,
68
+ "textureheight": 32
69
+ },
70
+ "chest": {
71
+ "bones": [
72
+ {"name": "armor", "pivot": [0, 12, 0]},
73
+ {
74
+ "name": "body",
75
+ "parent": "armor",
76
+ "pivot": [0, 13, 0],
77
+ "cubes": [
78
+ {
79
+ "origin": [-4, 12, -2],
80
+ "size": [8, 12, 4],
81
+ "uv": [16, 16],
82
+ "inflate": 1
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ "name": "leftarm",
88
+ "parent": "armor",
89
+ "pivot": [5, 10, 0],
90
+ "cubes": [
91
+ {
92
+ "origin": [4, 12, -2],
93
+ "size": [4, 12, 4],
94
+ "uv": [40, 16],
95
+ "inflate": 0.85
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ "name": "rightarm",
101
+ "parent": "armor",
102
+ "pivot": [-5, 10, 0],
103
+ "cubes": [
104
+ {
105
+ "origin": [-8, 12, -2],
106
+ "size": [4, 12, 4],
107
+ "uv": [40, 16],
108
+ "inflate": 0.85
109
+ }
110
+ ],
111
+ "mirror": true
112
+ }
113
+ ],
114
+ "visible_bounds_width": 1.5,
115
+ "visible_bounds_offset": [0, 0.5, 0],
116
+ "texturewidth": 64,
117
+ "textureheight": 32
118
+ },
119
+ "legs": {
120
+ "bones": [
121
+ {"name": "armor", "pivot": [0, 12, 0]},
122
+ {
123
+ "name": "body",
124
+ "parent": "armor",
125
+ "pivot": [0, 13, 0],
126
+ "cubes": [
127
+ {
128
+ "origin": [-4, 12, -2],
129
+ "size": [8, 12, 4],
130
+ "uv": [16, 16],
131
+ "inflate": 0.5
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "name": "leftleg",
137
+ "parent": "armor",
138
+ "pivot": [1.9, 1, 0],
139
+ "cubes": [
140
+ {
141
+ "origin": [-0.1, 0, -2],
142
+ "size": [4, 12, 4],
143
+ "uv": [0, 16],
144
+ "inflate": 0.5
145
+ }
146
+ ]
147
+ },
148
+ {
149
+ "name": "rightleg",
150
+ "parent": "armor",
151
+ "pivot": [-1.9, 1, 0],
152
+ "cubes": [
153
+ {
154
+ "origin": [-3.9, 0, -2.01],
155
+ "size": [4, 12, 4],
156
+ "uv": [0, 16],
157
+ "inflate": 0.5
158
+ }
159
+ ],
160
+ "mirror": true
161
+ }
162
+ ],
163
+ "visible_bounds_width": 1.5,
164
+ "visible_bounds_offset": [0, 0.5, 0],
165
+ "texturewidth": 64,
166
+ "textureheight": 32
167
+ },
168
+ "feet": {
169
+ "bones": [
170
+ {"name": "armor", "pivot": [0, 12, 0]},
171
+ {
172
+ "name": "leftleg",
173
+ "parent": "armor",
174
+ "pivot": [1.9, 1, 0],
175
+ "cubes": [
176
+ {
177
+ "origin": [-0.1, 0, -2],
178
+ "size": [4, 12, 4],
179
+ "uv": [0, 16],
180
+ "inflate": 0.8
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "name": "rightleg",
186
+ "parent": "armor",
187
+ "pivot": [-1.9, 1, 0],
188
+ "cubes": [
189
+ {
190
+ "origin": [-3.9, 0.01, -2.01],
191
+ "size": [4, 12, 4],
192
+ "uv": [0, 16],
193
+ "inflate": 0.8
194
+ }
195
+ ],
196
+ "mirror": true
197
+ }
198
+ ],
199
+ "visible_bounds_width": 1.5,
200
+ "visible_bounds_offset": [0, 0.5, 0],
201
+ "texturewidth": 64,
202
+ "textureheight": 32
203
+ }
204
+ }
@@ -0,0 +1,36 @@
1
+ import { default as chainmailLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/chainmail_layer_1.png'
2
+ import { default as chainmailLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/chainmail_layer_2.png'
3
+ import { default as diamondLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/diamond_layer_1.png'
4
+ import { default as diamondLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/diamond_layer_2.png'
5
+ import { default as goldenLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/gold_layer_1.png'
6
+ import { default as goldenLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/gold_layer_2.png'
7
+ import { default as ironLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/iron_layer_1.png'
8
+ import { default as ironLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/iron_layer_2.png'
9
+ import { default as leatherLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_1.png'
10
+ import { default as leatherLayer1Overlay } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_1_overlay.png'
11
+ import { default as leatherLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_2.png'
12
+ import { default as leatherLayer2Overlay } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_2_overlay.png'
13
+ import { default as netheriteLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/netherite_layer_1.png'
14
+ import { default as netheriteLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/netherite_layer_2.png'
15
+ import { default as turtleLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/turtle_layer_1.png'
16
+
17
+ export { default as elytraTexture } from 'mc-assets/dist/other-textures/latest/entity/elytra.png'
18
+ export { default as armorModel } from './armorModels.json'
19
+
20
+ export const armorTextures = {
21
+ 'leather_layer_1': leatherLayer1,
22
+ 'leather_layer_1_overlay': leatherLayer1Overlay,
23
+ 'leather_layer_2': leatherLayer2,
24
+ 'leather_layer_2_overlay': leatherLayer2Overlay,
25
+ 'chainmail_layer_1': chainmailLayer1,
26
+ 'chainmail_layer_2': chainmailLayer2,
27
+ 'iron_layer_1': ironLayer1,
28
+ 'iron_layer_2': ironLayer2,
29
+ 'diamond_layer_1': diamondLayer1,
30
+ 'diamond_layer_2': diamondLayer2,
31
+ 'golden_layer_1': goldenLayer1,
32
+ 'golden_layer_2': goldenLayer2,
33
+ 'netherite_layer_1': netheriteLayer1,
34
+ 'netherite_layer_2': netheriteLayer2,
35
+ 'turtle_layer_1': turtleLayer1
36
+ }