├── .gitignore ├── HEADER ├── LICENSE ├── NOTICE ├── README.md ├── assets ├── 2019-04-26_08.04.42.jpg ├── howto-cutout │ ├── compose-1-result.png │ ├── compose-1.png │ ├── compose-2-result.png │ ├── decompose-result.png │ ├── mask-result-1.png │ ├── mask-result-2.png │ └── save-box.png ├── jmx_icon.png ├── jmx_logo.png ├── logo.xcf ├── material_template.json ├── redstone_glow.png ├── redstone_ore.xcf ├── redstone_ore_bits.png ├── redstone_ore_shader-RGBA.xcf ├── redstone_ore_shader.png ├── redstone_ore_shader.xcf └── stone_ore_mask.png ├── checkstyle.xml ├── fabric ├── build.gradle ├── gradle.properties ├── project.gradle ├── settings.gradle └── src │ └── main │ ├── java │ └── io │ │ └── vram │ │ └── jmx │ │ ├── Configurator.java │ │ ├── JsonModelExtensions.java │ │ ├── api │ │ └── JmxInitializer.java │ │ ├── json │ │ ├── FaceExtData.java │ │ ├── JmxModelExt.java │ │ ├── JmxTexturesExt.java │ │ ├── ext │ │ │ ├── JmxExtension.java │ │ │ └── JsonBlockModelExt.java │ │ ├── model │ │ │ ├── BakedQuadFactoryExt.java │ │ │ ├── BakedQuadFactoryHelper.java │ │ │ ├── JmxBakedModel.java │ │ │ └── JsonUnbakedModelHelper.java │ │ ├── v0 │ │ │ ├── FaceExtDataV0.java │ │ │ ├── JmxMaterialV0.java │ │ │ ├── JmxModelExtV0.java │ │ │ └── JmxTexturesExtV0.java │ │ └── v1 │ │ │ ├── FaceExtDataV1.java │ │ │ ├── JmxModelExtV1.java │ │ │ └── JmxTexturesExtV1.java │ │ └── mixin │ │ ├── MixinBlockElementFace.java │ │ ├── MixinBlockElementFaceDeserializer.java │ │ ├── MixinBlockModel.java │ │ ├── MixinBlockModelDeserializer.java │ │ ├── MixinFaceBakery.java │ │ ├── MixinModelBakery.java │ │ └── MixinTextureAtlas.java │ └── resources │ ├── assets │ └── jmx │ │ ├── jmx_icon.png │ │ └── models │ │ └── block │ │ ├── 2 │ │ ├── jmx_crop.json │ │ ├── jmx_cross.json │ │ ├── jmx_cube.json │ │ ├── jmx_cube_all.json │ │ ├── jmx_cube_bottom_top.json │ │ ├── jmx_cube_column.json │ │ ├── jmx_cube_directional.json │ │ ├── jmx_cube_mirrored.json │ │ ├── jmx_cube_mirrored_all.json │ │ ├── jmx_cube_top.json │ │ ├── jmx_door_bottom.json │ │ ├── jmx_door_bottom_rh.json │ │ ├── jmx_door_top.json │ │ ├── jmx_door_top_rh.json │ │ ├── jmx_fence_inventory.json │ │ ├── jmx_fence_post.json │ │ ├── jmx_fence_side.json │ │ ├── jmx_orientable.json │ │ ├── jmx_orientable_vertical.json │ │ ├── jmx_orientable_with_bottom.json │ │ ├── jmx_slab.json │ │ ├── jmx_slab_top.json │ │ ├── jmx_stairs.json │ │ ├── jmx_stem_fruit.json │ │ ├── jmx_stem_growth0.json │ │ ├── jmx_stem_growth1.json │ │ ├── jmx_stem_growth2.json │ │ ├── jmx_stem_growth3.json │ │ ├── jmx_stem_growth4.json │ │ ├── jmx_stem_growth5.json │ │ ├── jmx_stem_growth6.json │ │ ├── jmx_stem_growth7.json │ │ ├── jmx_template_farmland.json │ │ ├── jmx_template_fence_gate.json │ │ ├── jmx_template_fence_gate_open.json │ │ ├── jmx_template_fence_gate_wall.json │ │ ├── jmx_template_fence_gate_wall_open.json │ │ ├── jmx_template_glass_pane_noside.json │ │ ├── jmx_template_glass_pane_noside_alt.json │ │ ├── jmx_template_glass_pane_post.json │ │ ├── jmx_template_glass_pane_side.json │ │ ├── jmx_template_glass_pane_side_alt.json │ │ ├── jmx_template_glazed_terracotta.json │ │ ├── jmx_template_orientable_trapdoor_bottom.json │ │ ├── jmx_template_orientable_trapdoor_open.json │ │ ├── jmx_template_orientable_trapdoor_top.json │ │ ├── jmx_template_piston.json │ │ ├── jmx_template_piston_head.json │ │ ├── jmx_template_piston_head_short.json │ │ ├── jmx_template_rail_raised_ne.json │ │ ├── jmx_template_rail_raised_sw.json │ │ ├── jmx_template_torch.json │ │ ├── jmx_template_trapdoor_bottom.json │ │ ├── jmx_template_trapdoor_open.json │ │ ├── jmx_template_trapdoor_top.json │ │ ├── jmx_template_wall_post.json │ │ └── jmx_template_wall_side.json │ │ ├── 3 │ │ ├── jmx_crop.json │ │ ├── jmx_cross.json │ │ ├── jmx_cube.json │ │ ├── jmx_cube_all.json │ │ ├── jmx_cube_bottom_top.json │ │ ├── jmx_cube_column.json │ │ ├── jmx_cube_directional.json │ │ ├── jmx_cube_mirrored.json │ │ ├── jmx_cube_mirrored_all.json │ │ ├── jmx_cube_top.json │ │ ├── jmx_door_bottom.json │ │ ├── jmx_door_bottom_rh.json │ │ ├── jmx_door_top.json │ │ ├── jmx_door_top_rh.json │ │ ├── jmx_fence_inventory.json │ │ ├── jmx_fence_post.json │ │ ├── jmx_fence_side.json │ │ ├── jmx_orientable.json │ │ ├── jmx_orientable_vertical.json │ │ ├── jmx_orientable_with_bottom.json │ │ ├── jmx_slab.json │ │ ├── jmx_slab_top.json │ │ ├── jmx_stairs.json │ │ ├── jmx_stem_fruit.json │ │ ├── jmx_stem_growth0.json │ │ ├── jmx_stem_growth1.json │ │ ├── jmx_stem_growth2.json │ │ ├── jmx_stem_growth3.json │ │ ├── jmx_stem_growth4.json │ │ ├── jmx_stem_growth5.json │ │ ├── jmx_stem_growth6.json │ │ ├── jmx_stem_growth7.json │ │ ├── jmx_template_farmland.json │ │ ├── jmx_template_fence_gate.json │ │ ├── jmx_template_fence_gate_open.json │ │ ├── jmx_template_fence_gate_wall.json │ │ ├── jmx_template_fence_gate_wall_open.json │ │ ├── jmx_template_glass_pane_noside.json │ │ ├── jmx_template_glass_pane_noside_alt.json │ │ ├── jmx_template_glass_pane_post.json │ │ ├── jmx_template_glass_pane_side.json │ │ ├── jmx_template_glass_pane_side_alt.json │ │ ├── jmx_template_glazed_terracotta.json │ │ ├── jmx_template_orientable_trapdoor_bottom.json │ │ ├── jmx_template_orientable_trapdoor_open.json │ │ ├── jmx_template_orientable_trapdoor_top.json │ │ ├── jmx_template_piston.json │ │ ├── jmx_template_piston_head.json │ │ ├── jmx_template_piston_head_short.json │ │ ├── jmx_template_rail_raised_ne.json │ │ ├── jmx_template_rail_raised_sw.json │ │ ├── jmx_template_torch.json │ │ ├── jmx_template_trapdoor_bottom.json │ │ ├── jmx_template_trapdoor_open.json │ │ ├── jmx_template_trapdoor_top.json │ │ ├── jmx_template_wall_post.json │ │ └── jmx_template_wall_side.json │ │ └── v1 │ │ ├── 2 │ │ ├── jmx_carpet.json │ │ ├── jmx_crop.json │ │ ├── jmx_cross.json │ │ ├── jmx_cube.json │ │ ├── jmx_cube_all.json │ │ ├── jmx_cube_bottom_top.json │ │ ├── jmx_cube_column.json │ │ ├── jmx_cube_directional.json │ │ ├── jmx_cube_mirrored.json │ │ ├── jmx_cube_mirrored_all.json │ │ ├── jmx_cube_top.json │ │ ├── jmx_door_bottom.json │ │ ├── jmx_door_bottom_rh.json │ │ ├── jmx_door_top.json │ │ ├── jmx_door_top_rh.json │ │ ├── jmx_fence_inventory.json │ │ ├── jmx_fence_post.json │ │ ├── jmx_fence_side.json │ │ ├── jmx_orientable.json │ │ ├── jmx_orientable_vertical.json │ │ ├── jmx_orientable_with_bottom.json │ │ ├── jmx_slab.json │ │ ├── jmx_slab_top.json │ │ ├── jmx_stairs.json │ │ ├── jmx_stem_fruit.json │ │ ├── jmx_stem_growth0.json │ │ ├── jmx_stem_growth1.json │ │ ├── jmx_stem_growth2.json │ │ ├── jmx_stem_growth3.json │ │ ├── jmx_stem_growth4.json │ │ ├── jmx_stem_growth5.json │ │ ├── jmx_stem_growth6.json │ │ ├── jmx_stem_growth7.json │ │ ├── jmx_template_farmland.json │ │ ├── jmx_template_fence_gate.json │ │ ├── jmx_template_fence_gate_open.json │ │ ├── jmx_template_fence_gate_wall.json │ │ ├── jmx_template_fence_gate_wall_open.json │ │ ├── jmx_template_glass_pane_noside.json │ │ ├── jmx_template_glass_pane_noside_alt.json │ │ ├── jmx_template_glass_pane_post.json │ │ ├── jmx_template_glass_pane_side.json │ │ ├── jmx_template_glass_pane_side_alt.json │ │ ├── jmx_template_glazed_terracotta.json │ │ ├── jmx_template_orientable_trapdoor_bottom.json │ │ ├── jmx_template_orientable_trapdoor_open.json │ │ ├── jmx_template_orientable_trapdoor_top.json │ │ ├── jmx_template_piston.json │ │ ├── jmx_template_piston_head.json │ │ ├── jmx_template_piston_head_short.json │ │ ├── jmx_template_rail_raised_ne.json │ │ ├── jmx_template_rail_raised_sw.json │ │ ├── jmx_template_torch.json │ │ ├── jmx_template_trapdoor_bottom.json │ │ ├── jmx_template_trapdoor_open.json │ │ ├── jmx_template_trapdoor_top.json │ │ ├── jmx_template_wall_post.json │ │ ├── jmx_template_wall_side.json │ │ ├── jmx_template_wall_side_tall.json │ │ └── jmx_wall_inventory.json │ │ ├── 3 │ │ ├── jmx_carpet.json │ │ ├── jmx_crop.json │ │ ├── jmx_cross.json │ │ ├── jmx_cube.json │ │ ├── jmx_cube_all.json │ │ ├── jmx_cube_bottom_top.json │ │ ├── jmx_cube_column.json │ │ ├── jmx_cube_directional.json │ │ ├── jmx_cube_mirrored.json │ │ ├── jmx_cube_mirrored_all.json │ │ ├── jmx_cube_top.json │ │ ├── jmx_door_bottom.json │ │ ├── jmx_door_bottom_rh.json │ │ ├── jmx_door_top.json │ │ ├── jmx_door_top_rh.json │ │ ├── jmx_fence_inventory.json │ │ ├── jmx_fence_post.json │ │ ├── jmx_fence_side.json │ │ ├── jmx_orientable.json │ │ ├── jmx_orientable_vertical.json │ │ ├── jmx_orientable_with_bottom.json │ │ ├── jmx_slab.json │ │ ├── jmx_slab_top.json │ │ ├── jmx_stairs.json │ │ ├── jmx_stem_fruit.json │ │ ├── jmx_stem_growth0.json │ │ ├── jmx_stem_growth1.json │ │ ├── jmx_stem_growth2.json │ │ ├── jmx_stem_growth3.json │ │ ├── jmx_stem_growth4.json │ │ ├── jmx_stem_growth5.json │ │ ├── jmx_stem_growth6.json │ │ ├── jmx_stem_growth7.json │ │ ├── jmx_template_farmland.json │ │ ├── jmx_template_fence_gate.json │ │ ├── jmx_template_fence_gate_open.json │ │ ├── jmx_template_fence_gate_wall.json │ │ ├── jmx_template_fence_gate_wall_open.json │ │ ├── jmx_template_glass_pane_noside.json │ │ ├── jmx_template_glass_pane_noside_alt.json │ │ ├── jmx_template_glass_pane_post.json │ │ ├── jmx_template_glass_pane_side.json │ │ ├── jmx_template_glass_pane_side_alt.json │ │ ├── jmx_template_glazed_terracotta.json │ │ ├── jmx_template_orientable_trapdoor_bottom.json │ │ ├── jmx_template_orientable_trapdoor_open.json │ │ ├── jmx_template_orientable_trapdoor_top.json │ │ ├── jmx_template_piston.json │ │ ├── jmx_template_piston_head.json │ │ ├── jmx_template_piston_head_short.json │ │ ├── jmx_template_rail_raised_ne.json │ │ ├── jmx_template_rail_raised_sw.json │ │ ├── jmx_template_torch.json │ │ ├── jmx_template_trapdoor_bottom.json │ │ ├── jmx_template_trapdoor_open.json │ │ ├── jmx_template_trapdoor_top.json │ │ ├── jmx_template_wall_post.json │ │ ├── jmx_template_wall_side.json │ │ ├── jmx_template_wall_side_tall.json │ │ └── jmx_wall_inventory.json │ │ ├── block.json │ │ └── thin_block.json │ ├── fabric.mod.json │ └── jmx.mixins.json ├── forge ├── build.gradle ├── gradle.properties └── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── gruntle.sh ├── gruntle_common.gradle ├── project_common.gradle ├── scripts ├── jmx.ts ├── make_parent_models_v1.ts └── vanilla.ts ├── testpack ├── assets │ ├── jmx │ │ ├── materials │ │ │ ├── bedrock │ │ │ │ ├── background.json │ │ │ │ └── fern.json │ │ │ ├── redstone.json │ │ │ └── redstone │ │ │ │ ├── background.json │ │ │ │ └── bits.json │ │ ├── shaders │ │ │ └── redstone.frag │ │ └── textures │ │ │ └── block │ │ │ ├── redstone_ore_bits.png │ │ │ ├── redstone_ore_shader.png │ │ │ └── stone_ore_mask.png │ └── minecraft │ │ └── models │ │ ├── block │ │ ├── bedrock.json │ │ ├── bedrock_mirrored.json │ │ ├── oak_planks.json │ │ ├── oak_slab.json │ │ ├── oak_slab_top.json │ │ └── redstone_ore.json │ │ └── item │ │ ├── bedrock.json │ │ ├── oak_planks.json │ │ ├── oak_slab.json │ │ └── redstone_ore.json └── pack.mcmeta └── upload.sh /.gitignore: -------------------------------------------------------------------------------- 1 | ## Windows 2 | Thumbs.db 3 | 4 | ## exclude large animated textures 5 | *_anim.png 6 | *_anim_low.png 7 | 8 | # eclipse 9 | bin 10 | *.launch 11 | .settings 12 | .metadata 13 | .classpath 14 | .project 15 | eclipse 16 | gruntle 17 | 18 | build 19 | run 20 | 21 | 22 | ##idea 23 | *.iml 24 | *.ipr 25 | *.iws 26 | out/ 27 | 28 | ## Jars 29 | 30 | ### OSX (adds a lot of garbage)### 31 | .DS_Store 32 | .AppleDouble 33 | .LSOverride 34 | 35 | # Thumbnails 36 | ._* 37 | 38 | #stuff 39 | #config 40 | logs 41 | .html 42 | discarded textures 43 | *.nps 44 | /.apt_generated/ 45 | notes.txt 46 | *.csv 47 | .mixin.out/audit/mixin_implementation_report.txt 48 | 49 | # symlinked vanilla assets 50 | src/main/resources/assets/vanilla_mc 51 | .checkstyle 52 | .vscode 53 | 54 | .gradle 55 | -------------------------------------------------------------------------------- /HEADER: -------------------------------------------------------------------------------- 1 | This file is part of JSON Model Extensions and is licensed to the project under 2 | terms that are compatible with the GNU Lesser General Public License. 3 | See the NOTICE file distributed with this work for additional information 4 | regarding copyright ownership and licensing. 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU Lesser General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public License 17 | along with this program. If not, see . 18 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | JSON Model Extensions 2 | Copyright © Original Authors 3 | 4 | Versions of this work published prior to October 3, 2021 were licensed under 5 | the Apache License, Version 2.0, which can be found here: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | On and after October 3, 2021 the work is licensed under the GNU 10 | Lesser General Public License as published by the Free Software Foundation, 11 | either version 3 of the License, or (at your option) any later version. 12 | 13 | You should have received a copy of the GNU Lesser General Public License 14 | along with this program. If not, see . 15 | 16 | Versions of the work published prior to October 3, 2021 can be used 17 | under the terms of either license. Additions and changes after that 18 | date are licensed under the GNU Lesser General Public License exclusively. 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JMX 2 | Minecraft JSON Model Loader Extensions for Fabric 3 | 4 | For information, consult the [Wiki](https://github.com/grondag/json-model-extensions/wiki) 5 | -------------------------------------------------------------------------------- /assets/2019-04-26_08.04.42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/2019-04-26_08.04.42.jpg -------------------------------------------------------------------------------- /assets/howto-cutout/compose-1-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/compose-1-result.png -------------------------------------------------------------------------------- /assets/howto-cutout/compose-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/compose-1.png -------------------------------------------------------------------------------- /assets/howto-cutout/compose-2-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/compose-2-result.png -------------------------------------------------------------------------------- /assets/howto-cutout/decompose-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/decompose-result.png -------------------------------------------------------------------------------- /assets/howto-cutout/mask-result-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/mask-result-1.png -------------------------------------------------------------------------------- /assets/howto-cutout/mask-result-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/mask-result-2.png -------------------------------------------------------------------------------- /assets/howto-cutout/save-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/howto-cutout/save-box.png -------------------------------------------------------------------------------- /assets/jmx_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/jmx_icon.png -------------------------------------------------------------------------------- /assets/jmx_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/jmx_logo.png -------------------------------------------------------------------------------- /assets/logo.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/logo.xcf -------------------------------------------------------------------------------- /assets/material_template.json: -------------------------------------------------------------------------------- 1 | { 2 | "spriteDepth": 1, 3 | "vertexSource": "canvas:default.vert", 4 | "fragmentSource": "canvas:default.frag", 5 | "layers": [ 6 | { 7 | "spriteIndex": 0, 8 | "disableAo": false, 9 | "disableColorIndex": false, 10 | "disableDiffuse": false, 11 | "blendMode": "solid", 12 | "emissive": false 13 | }, 14 | { 15 | "spriteIndex": 1, 16 | "disableAo": false, 17 | "disableColorIndex": false, 18 | "disableDiffuse": false, 19 | "blendMode": "translucent", 20 | "emissive": false 21 | }, 22 | { 23 | "spriteIndex": 2, 24 | "disableAo": false, 25 | "disableColorIndex": false, 26 | "disableDiffuse": false, 27 | "blendMode": "cutout", 28 | "emissive": false 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /assets/redstone_glow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/redstone_glow.png -------------------------------------------------------------------------------- /assets/redstone_ore.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/redstone_ore.xcf -------------------------------------------------------------------------------- /assets/redstone_ore_bits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/redstone_ore_bits.png -------------------------------------------------------------------------------- /assets/redstone_ore_shader-RGBA.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/redstone_ore_shader-RGBA.xcf -------------------------------------------------------------------------------- /assets/redstone_ore_shader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/redstone_ore_shader.png -------------------------------------------------------------------------------- /assets/redstone_ore_shader.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/redstone_ore_shader.xcf -------------------------------------------------------------------------------- /assets/stone_ore_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/assets/stone_ore_mask.png -------------------------------------------------------------------------------- /fabric/gradle.properties: -------------------------------------------------------------------------------- 1 | #### STANDARD VRAM PROPERTIES FOR FABRIC 2 | #### MAKE CHANGES IN ..\project_common.gradle 3 | #### CHANGES MADE HERE WILL BE OVERWRITTEN! 4 | 5 | org.gradle.jvmargs=-Xmx2G 6 | org.gradle.daemon=false 7 | -------------------------------------------------------------------------------- /fabric/project.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" 3 | 4 | modImplementation("io.vram:frex-fabric:19.2.307") 5 | include("io.vram:frex-fabric:19.2.307:fat") 6 | } 7 | 8 | sourceSets { 9 | main { 10 | java { 11 | srcDirs = ['src/main/java'] 12 | include '**/*' 13 | exclude '*.DS_Store' 14 | } 15 | resources { 16 | srcDirs = ['src/main/resources'] 17 | include '**/*' 18 | exclude '*.DS_Store' 19 | } 20 | } 21 | test { 22 | java { 23 | exclude '**/*' 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /fabric/settings.gradle: -------------------------------------------------------------------------------- 1 | // VRAM STANDARD GRADLE SETTINGS FOR FABRIC 2 | // DO NOT MAKE CHANGES HERE - THEY WILL BE OVERWRITTEN BY AUTOMATED UPDATE 3 | 4 | pluginManagement { 5 | repositories { 6 | mavenCentral() 7 | maven { 8 | name = 'Fabric' 9 | url = 'https://maven.fabricmc.net/' 10 | } 11 | gradlePluginPortal() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/Configurator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx; 22 | 23 | import java.io.File; 24 | import java.io.FileInputStream; 25 | import java.io.FileOutputStream; 26 | import java.io.IOException; 27 | import java.util.Locale; 28 | import java.util.Properties; 29 | 30 | import net.fabricmc.loader.api.FabricLoader; 31 | 32 | public class Configurator { 33 | public static boolean loadVanillaModels; 34 | public static boolean logResolutionErrors; 35 | 36 | static { 37 | final File configFile = new File(FabricLoader.getInstance().getConfigDir().toFile(), "jmx.properties"); 38 | final Properties properties = new Properties(); 39 | 40 | if (configFile.exists()) { 41 | try (FileInputStream stream = new FileInputStream(configFile)) { 42 | properties.load(stream); 43 | } catch (final IOException e) { 44 | JsonModelExtensions.LOG.warn("[JMX] Could not read property file '" + configFile.getAbsolutePath() + "'", e); 45 | } 46 | } 47 | 48 | loadVanillaModels = ((String) properties.computeIfAbsent("load-vanilla-models", (a) -> "false")).toLowerCase(Locale.ROOT).equals("true"); 49 | logResolutionErrors = ((String) properties.computeIfAbsent("log-resolution-errors", (a) -> "false")).toLowerCase(Locale.ROOT).equals("true"); 50 | 51 | try (FileOutputStream stream = new FileOutputStream(configFile)) { 52 | properties.store(stream, "JMX properties file"); 53 | } catch (final IOException e) { 54 | JsonModelExtensions.LOG.warn("[JMX] Could not store property file '" + configFile.getAbsolutePath() + "'", e); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/JsonModelExtensions.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx; 22 | 23 | import org.apache.logging.log4j.LogManager; 24 | import org.apache.logging.log4j.Logger; 25 | 26 | import net.fabricmc.api.ClientModInitializer; 27 | import net.fabricmc.loader.api.FabricLoader; 28 | 29 | import io.vram.jmx.api.JmxInitializer; 30 | 31 | public class JsonModelExtensions implements ClientModInitializer { 32 | public static final Logger LOG = LogManager.getLogger("JMX"); 33 | 34 | public static final String MODID = "json-model-extensions"; 35 | 36 | private static boolean isEndpointInitializationNeeded = true; 37 | 38 | @Override 39 | public void onInitializeClient() { 40 | // NOOP 41 | } 42 | 43 | public static void initializeEndpointsOnce() { 44 | if (isEndpointInitializationNeeded) { 45 | FabricLoader.getInstance().getEntrypoints("jmx", JmxInitializer.class).forEach(api -> api.onInitalizeJmx()); 46 | isEndpointInitializationNeeded = false; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/api/JmxInitializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.api; 22 | 23 | /** 24 | * Use to make JMX an optional dependency. To do so, implement this interface 25 | * in a stand-alone class and declare a "jmx" end point in the mod's 26 | * fabric.mod.json that points to the implementation. 27 | * 28 | *

Every mod that implements this interface and declares and end point will receive 29 | * exactly one call to {@link #onInitalizeJmx()}. 30 | * 31 | *

To maintain an optional dependency, all calls to JMX methods must be isolated to 32 | * the JmxEntryPoint instance or to classes that are only loaded if {@link #onInitalizeJmx()} 33 | * is called. 34 | * 35 | *

Note that it is NOT necessary to implement this interface and register a 36 | * "jmx" end point for mods that nest the JMX library or have a hard dependency on JMX. 37 | * Such mods can safely handle JMX registration in their client initialize instance. 38 | */ 39 | public interface JmxInitializer { 40 | /** 41 | * Signals mods that maintain an optional dependency on JMX that JMX is 42 | * loaded. Such mod should handle initialization activities that reference 43 | * JMX classes during this call. 44 | * 45 | *

Will be called after mod initialization but before mode baking begins. 46 | * It will be called exactly once per game start - subsequent resource or renderer 47 | * reloads will not cause it to be called again. 48 | */ 49 | void onInitalizeJmx(); 50 | } 51 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/json/JmxTexturesExt.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.json; 22 | 23 | import java.util.Map; 24 | 25 | import com.google.gson.JsonObject; 26 | 27 | import com.mojang.datafixers.util.Either; 28 | 29 | import net.minecraft.client.resources.model.Material; 30 | 31 | import io.vram.jmx.json.v0.JmxTexturesExtV0; 32 | import io.vram.jmx.json.v1.JmxTexturesExtV1; 33 | 34 | public abstract class JmxTexturesExt { 35 | public static void handleJmxTextures(JsonObject obj, Map> map) { 36 | switch (JmxModelExt.VERSION.get()) { 37 | case 0: 38 | default: 39 | JmxTexturesExtV0.handleTexturesV0(obj, map); 40 | break; 41 | case 1: 42 | JmxTexturesExtV1.handleTexturesV1(obj, map); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/json/ext/JmxExtension.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.json.ext; 22 | 23 | public interface JmxExtension { 24 | T jmx_ext(); 25 | 26 | void jmx_ext(T val); 27 | } 28 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/json/ext/JsonBlockModelExt.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.json.ext; 22 | 23 | import java.util.Map; 24 | 25 | import com.mojang.datafixers.util.Either; 26 | 27 | import net.minecraft.client.resources.model.Material; 28 | import net.minecraft.resources.ResourceLocation; 29 | 30 | import io.vram.jmx.json.JmxModelExt; 31 | 32 | public interface JsonBlockModelExt { 33 | JmxModelExt jmx_modelExt(); 34 | 35 | JsonBlockModelExt jmx_parent(); 36 | 37 | ResourceLocation jmx_parentId(); 38 | 39 | void jmx_parent(JsonBlockModelExt parent); 40 | 41 | Map> jmx_textureMap(); 42 | } 43 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/json/model/BakedQuadFactoryExt.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.json.model; 22 | 23 | import net.minecraft.client.renderer.block.model.BlockElement; 24 | import net.minecraft.client.renderer.block.model.BlockElementFace; 25 | import net.minecraft.client.renderer.block.model.BlockFaceUV; 26 | import net.minecraft.client.renderer.texture.TextureAtlasSprite; 27 | import net.minecraft.client.resources.model.ModelState; 28 | import net.minecraft.core.Direction; 29 | import net.minecraft.resources.ResourceLocation; 30 | 31 | import io.vram.frex.api.buffer.QuadEmitter; 32 | 33 | public interface BakedQuadFactoryExt { 34 | void jmx_bake(QuadEmitter q, int spriteIndex, BlockElement element, BlockElementFace elementFace, BlockFaceUV tex, TextureAtlasSprite sprite, Direction face, ModelState modelBakeSettings, ResourceLocation modelId); 35 | } 36 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/json/model/BakedQuadFactoryHelper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.json.model; 22 | 23 | public class BakedQuadFactoryHelper { 24 | public static final int UV_LEN = 4; 25 | private static final ThreadLocal HELPERS = ThreadLocal.withInitial(BakedQuadFactoryHelper::new); 26 | 27 | public static BakedQuadFactoryHelper get() { 28 | return HELPERS.get(); 29 | } 30 | 31 | public final int[] data = new int[32]; 32 | public final float[] uv = new float[UV_LEN]; 33 | public final float[] pos = new float[6]; 34 | } 35 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/mixin/MixinBlockElementFace.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.mixin; 22 | 23 | import org.apache.commons.lang3.ObjectUtils; 24 | import org.spongepowered.asm.mixin.Mixin; 25 | import org.spongepowered.asm.mixin.injection.At; 26 | import org.spongepowered.asm.mixin.injection.Inject; 27 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 28 | 29 | import net.minecraft.client.renderer.block.model.BlockElementFace; 30 | 31 | import io.vram.jmx.json.FaceExtData; 32 | import io.vram.jmx.json.ext.JmxExtension; 33 | 34 | @Mixin(BlockElementFace.class) 35 | public class MixinBlockElementFace implements JmxExtension { 36 | private FaceExtData jmx_ext; 37 | 38 | @Override 39 | public FaceExtData jmx_ext() { 40 | return jmx_ext; 41 | } 42 | 43 | @Override 44 | public void jmx_ext(FaceExtData val) { 45 | jmx_ext = val; 46 | } 47 | 48 | @Inject(at = @At("RETURN"), method = "") 49 | private void onInit(CallbackInfo ci) { 50 | jmx_ext = ObjectUtils.defaultIfNull(FaceExtData.TRANSFER.get(), FaceExtData.empty()); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/mixin/MixinBlockElementFaceDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.mixin; 22 | 23 | import java.lang.reflect.Type; 24 | 25 | import com.google.gson.JsonDeserializationContext; 26 | import com.google.gson.JsonElement; 27 | import com.google.gson.JsonObject; 28 | import org.spongepowered.asm.mixin.Mixin; 29 | import org.spongepowered.asm.mixin.injection.At; 30 | import org.spongepowered.asm.mixin.injection.Inject; 31 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 32 | import org.spongepowered.asm.mixin.injection.callback.LocalCapture; 33 | 34 | import net.minecraft.core.Direction; 35 | 36 | import io.vram.jmx.json.FaceExtData; 37 | 38 | @Mixin(targets = "net.minecraft.client.renderer.block.model.BlockElementFace$Deserializer") 39 | public class MixinBlockElementFaceDeserializer { 40 | @Inject(method = "deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockElementFace;", allow = 1, require = 1, locals = LocalCapture.CAPTURE_FAILEXCEPTION, 41 | at = @At( 42 | value = "INVOKE", 43 | ordinal = 0, 44 | target = "Lnet/minecraft/client/renderer/block/model/BlockElementFace$Deserializer;getCullFacing(Lcom/google/gson/JsonObject;)Lnet/minecraft/core/Direction;")) 45 | private void hookDeserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context, CallbackInfoReturnable ci, JsonObject jsonObj) { 46 | FaceExtData.deserialize(jsonObj, context); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/mixin/MixinBlockModelDeserializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.mixin; 22 | 23 | import java.util.Map; 24 | 25 | import com.google.gson.JsonObject; 26 | import org.spongepowered.asm.mixin.Mixin; 27 | import org.spongepowered.asm.mixin.injection.At; 28 | import org.spongepowered.asm.mixin.injection.Inject; 29 | import org.spongepowered.asm.mixin.injection.ModifyVariable; 30 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 31 | 32 | import com.mojang.datafixers.util.Either; 33 | 34 | import net.minecraft.client.renderer.block.model.BlockModel; 35 | import net.minecraft.client.resources.model.Material; 36 | 37 | import io.vram.jmx.json.JmxModelExt; 38 | import io.vram.jmx.json.JmxTexturesExt; 39 | 40 | @Mixin(BlockModel.Deserializer.class) 41 | public class MixinBlockModelDeserializer { 42 | @Inject(at = @At("RETURN"), method = "getTextureMap") 43 | private void onGetTextureMap(JsonObject jsonObj, CallbackInfoReturnable>> ci) { 44 | JmxTexturesExt.handleJmxTextures(jsonObj, ci.getReturnValue()); 45 | } 46 | 47 | @ModifyVariable(method = "deserialize", at = @At(value = "STORE", ordinal = 0), allow = 1, require = 1) 48 | private JsonObject hookDeserialize(JsonObject jsonObj) { 49 | JmxModelExt.deserialize(jsonObj); 50 | return jsonObj; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/mixin/MixinModelBakery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.mixin; 22 | 23 | import org.spongepowered.asm.mixin.Mixin; 24 | import org.spongepowered.asm.mixin.injection.At; 25 | import org.spongepowered.asm.mixin.injection.Inject; 26 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 27 | 28 | import net.minecraft.client.renderer.texture.AtlasSet; 29 | import net.minecraft.client.renderer.texture.TextureManager; 30 | import net.minecraft.client.resources.model.ModelBakery; 31 | import net.minecraft.util.profiling.ProfilerFiller; 32 | 33 | import io.vram.jmx.Configurator; 34 | import io.vram.jmx.JsonModelExtensions; 35 | import io.vram.jmx.json.v1.JmxModelExtV1; 36 | 37 | @Mixin(ModelBakery.class) 38 | public class MixinModelBakery { 39 | @Inject(method = "uploadTextures", at = @At("TAIL")) 40 | void logErrorPresence(TextureManager textureManager, ProfilerFiller profiler, CallbackInfoReturnable cir) { 41 | if (!Configurator.logResolutionErrors && JmxModelExtV1.HAS_ERROR) { 42 | JsonModelExtensions.LOG.warn("One or more errors occurred in JMX model(s). Enable `log-resolution-errors` in config/jmx.properties to display all errors."); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /fabric/src/main/java/io/vram/jmx/mixin/MixinTextureAtlas.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of JSON Model Extensions and is licensed to the project under 3 | * terms that are compatible with the GNU Lesser General Public License. 4 | * See the NOTICE file distributed with this work for additional information 5 | * regarding copyright ownership and licensing. 6 | * 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Lesser General Public License as published by 9 | * the Free Software Foundation, either version 3 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Lesser General Public License 18 | * along with this program. If not, see . 19 | */ 20 | 21 | package io.vram.jmx.mixin; 22 | 23 | import java.util.Iterator; 24 | 25 | import org.spongepowered.asm.mixin.Mixin; 26 | import org.spongepowered.asm.mixin.injection.At; 27 | import org.spongepowered.asm.mixin.injection.Redirect; 28 | 29 | import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; 30 | import net.minecraft.client.renderer.texture.TextureAtlas; 31 | import net.minecraft.resources.ResourceLocation; 32 | 33 | import io.vram.jmx.json.v1.JmxTexturesExtV1; 34 | 35 | @Mixin(TextureAtlas.class) 36 | public class MixinTextureAtlas { 37 | @Redirect( 38 | method = "getBasicSpriteInfos", 39 | at = @At(value = "INVOKE", target = "Ljava/util/Iterator;next()Ljava/lang/Object;"), 40 | require = 1 41 | ) 42 | Object blockDummySpriteLoad(Iterator it) { 43 | final Object result = it.next(); 44 | return (ResourceLocation) result == JmxTexturesExtV1.DUMMY_ID ? MissingTextureAtlasSprite.getLocation() : result; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/jmx_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/fabric/src/main/resources/assets/jmx/jmx_icon.png -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cross.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#cross" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0.8, 0, 8 ], "to": [ 15.2, 16, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } ] 10 | }, "south": { 11 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, 0, 0.8 ], "to": [ 8, 16, 15.2 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } ] 21 | }, "east": { 22 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", 3 | "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], 6 | "to": [ 16, 16, 16 ], 7 | "faces": { 8 | "down": { 9 | "texture": "#down", 10 | "cullface": "down", 11 | "jmx_material": "#jmx_mat_down", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" } ] 13 | }, 14 | "up": { 15 | "texture": "#up", 16 | "cullface": "up", 17 | "jmx_material": "#jmx_mat_up", 18 | "layered_textures": [ { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" } ] 19 | }, 20 | "north": { 21 | "texture": "#north", 22 | "cullface": "north", 23 | "jmx_material": "#jmx_mat_north", 24 | "layered_textures": [ { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" } ] 25 | }, 26 | "south": { 27 | "texture": "#south", 28 | "cullface": "south", 29 | "jmx_material": "#jmx_mat_south", 30 | "layered_textures": [ { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" } ] 31 | }, 32 | "west": { 33 | "texture": "#west", 34 | "cullface": "west", 35 | "jmx_material": "#jmx_mat_west", 36 | "layered_textures": [ { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" } ] 37 | }, 38 | "east": { 39 | "texture": "#east", 40 | "cullface": "east", 41 | "jmx_material": "#jmx_mat_east", 42 | "layered_textures": [ { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" } ] 43 | } 44 | } 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", 3 | "textures": { 4 | "particle": "#all", 5 | "down": "#all", 6 | "up": "#all", 7 | "north": "#all", 8 | "east": "#all", 9 | "south": "#all", 10 | "west": "#all" 11 | }, 12 | "jmx": { 13 | "textures": { 14 | "particle": "#jmx_tex_particle", 15 | "layered_textures": [ 16 | { 17 | "jmx_tex_down": "#jmx_tex_all", 18 | "jmx_tex_up": "#jmx_tex_all", 19 | "jmx_tex_north": "#jmx_tex_all", 20 | "jmx_tex_east": "#jmx_tex_all", 21 | "jmx_tex_south": "#jmx_tex_all", 22 | "jmx_tex_west": "#jmx_tex_all" 23 | }, 24 | { 25 | "jmx_tex_down": "#jmx_tex_all", 26 | "jmx_tex_up": "#jmx_tex_all", 27 | "jmx_tex_north": "#jmx_tex_all", 28 | "jmx_tex_east": "#jmx_tex_all", 29 | "jmx_tex_south": "#jmx_tex_all", 30 | "jmx_tex_west": "#jmx_tex_all" 31 | } 32 | ] 33 | }, 34 | "materials": { 35 | "jmx_mat_down": "#jmx_mat_all", 36 | "jmx_mat_up": "#jmx_mat_all", 37 | "jmx_mat_north": "#jmx_mat_all", 38 | "jmx_mat_east": "#jmx_mat_all", 39 | "jmx_mat_south": "#jmx_mat_all", 40 | "jmx_mat_west": "#jmx_mat_all" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_bottom_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#bottom", "up": "#top", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | } 15 | ] 16 | }, "materials": { 17 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 18 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_column.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#end", "up": "#end", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_end", "jmx_tex_up": "#jmx_tex_end", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_end", "jmx_tex_up": "#jmx_tex_end", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | } 15 | ] 16 | }, "materials": { 17 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 18 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_directional.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "texture": "#down", "cullface": "down", "rotation": 180, "jmx_material": "#jmx_mat_down", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" } ] 8 | }, "up": { 9 | "texture": "#up", "cullface": "up", "jmx_material": "#jmx_mat_up", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" } ] 11 | }, "north": { 12 | "texture": "#north", "cullface": "north", "jmx_material": "#jmx_mat_north", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" } ] 14 | }, "south": { 15 | "texture": "#south", "cullface": "south", "jmx_material": "#jmx_mat_south", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" } ] 17 | }, "west": { 18 | "texture": "#west", "cullface": "west", "rotation": 270, "jmx_material": "#jmx_mat_west", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" } ] 20 | }, "east": { 21 | "texture": "#east", "cullface": "east", "rotation": 90, "jmx_material": "#jmx_mat_east", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_mirrored.json: -------------------------------------------------------------------------------- 1 | { 2 | "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 16, 0, 0, 16 ], "texture": "#down", "cullface": "down", "jmx_material": "#jmx_mat_down", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" } ] 8 | }, "up": { 9 | "uv": [ 16, 0, 0, 16 ], "texture": "#up", "cullface": "up", "jmx_material": "#jmx_mat_up", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" } ] 11 | }, "north": { 12 | "uv": [ 16, 0, 0, 16 ], "texture": "#north", "cullface": "north", "jmx_material": "#jmx_mat_north", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" } ] 14 | }, "south": { 15 | "uv": [ 16, 0, 0, 16 ], "texture": "#south", "cullface": "south", "jmx_material": "#jmx_mat_south", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" } ] 17 | }, "west": { 18 | "uv": [ 16, 0, 0, 16 ], "texture": "#west", "cullface": "west", "jmx_material": "#jmx_mat_west", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" } ] 20 | }, "east": { 21 | "uv": [ 16, 0, 0, 16 ], "texture": "#east", "cullface": "east", "jmx_material": "#jmx_mat_east", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_mirrored_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube_mirrored", "textures": { 3 | "particle": "#all", "down": "#all", "up": "#all", "north": "#all", "east": "#all", "south": "#all", "west": "#all" 4 | }, "jmx": { 5 | "textures": { 6 | "particle": "#jmx_tex_particle", "layered_textures": [ 7 | { 8 | "jmx_tex_down": "#jmx_tex_all", "jmx_tex_up": "#jmx_tex_all", "jmx_tex_north": "#jmx_tex_all", 9 | "jmx_tex_east": "#jmx_tex_all", "jmx_tex_south": "#jmx_tex_all", "jmx_tex_west": "#jmx_tex_all" 10 | }, { 11 | "jmx_tex_down": "#jmx_tex_all", "jmx_tex_up": "#jmx_tex_all", "jmx_tex_north": "#jmx_tex_all", 12 | "jmx_tex_east": "#jmx_tex_all", "jmx_tex_south": "#jmx_tex_all", "jmx_tex_west": "#jmx_tex_all" 13 | } 14 | ] 15 | }, "materials": { 16 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 17 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_cube_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#side", "up": "#top", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | } 15 | ] 16 | }, "materials": { 17 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 18 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_door_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#bottom" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "down", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 9 | }, "north": { 10 | "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north", "jmx_material": "#jmx_mat_bottom", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 12 | }, "south": { 13 | "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south", "jmx_material": "#jmx_mat_bottom", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 15 | }, "west": { 16 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "west", "jmx_material": "#jmx_mat_bottom", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 18 | }, "east": { 19 | "uv": [ 16, 0, 0, 16 ], "texture": "#bottom", "jmx_material": "#jmx_mat_bottom", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 21 | } 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_door_bottom_rh.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#bottom" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "down", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 9 | }, "north": { 10 | "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north", "jmx_material": "#jmx_mat_bottom", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 12 | }, "south": { 13 | "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south", "jmx_material": "#jmx_mat_bottom", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 15 | }, "west": { 16 | "uv": [ 16, 0, 0, 16 ], "texture": "#bottom", "cullface": "west", "jmx_material": "#jmx_mat_bottom", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 18 | }, "east": { 19 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "jmx_material": "#jmx_mat_bottom", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 21 | } 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_door_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#top" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "up": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "up", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 9 | }, "north": { 10 | "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north", "jmx_material": "#jmx_mat_top", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 12 | }, "south": { 13 | "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south", "jmx_material": "#jmx_mat_top", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 15 | }, "west": { 16 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "west", "jmx_material": "#jmx_mat_top", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 18 | }, "east": { 19 | "uv": [ 16, 0, 0, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 21 | } 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_door_top_rh.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#top" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "up": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "up", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 9 | }, "north": { 10 | "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north", "jmx_material": "#jmx_mat_top", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 12 | }, "south": { 13 | "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south", "jmx_material": "#jmx_mat_top", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 15 | }, "west": { 16 | "uv": [ 16, 0, 0, 16 ], "texture": "#top", "cullface": "west", "jmx_material": "#jmx_mat_top", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 18 | }, "east": { 19 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 21 | } 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_fence_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 6, 0, 6 ], "to": [ 10, 16, 10 ], "faces": { 5 | "down": { 6 | "uv": [ 6, 6, 10, 10 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 6, 6, 10, 10 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | }, "__comment": "Center post" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_fence_side.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 7, 12, 0 ], "to": [ 9, 15, 9 ], "faces": { 5 | "down": { 6 | "uv": [ 7, 0, 9, 9 ], "texture": "#texture", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 7, 0, 9, 9 ], "texture": "#texture", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 7, 1, 9, 4 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "west": { 15 | "uv": [ 0, 1, 9, 4 ], "texture": "#texture", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "east": { 18 | "uv": [ 0, 1, 9, 4 ], "texture": "#texture", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | } 21 | }, "__comment": "top bar" 22 | }, { 23 | "from": [ 7, 6, 0 ], "to": [ 9, 9, 9 ], "faces": { 24 | "down": { 25 | "uv": [ 7, 0, 9, 9 ], "texture": "#texture", "jmx_material": "#jmx_material", 26 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 27 | }, "up": { 28 | "uv": [ 7, 0, 9, 9 ], "texture": "#texture", "jmx_material": "#jmx_material", 29 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 30 | }, "north": { 31 | "uv": [ 7, 7, 9, 10 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 32 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 33 | }, "west": { 34 | "uv": [ 0, 7, 9, 10 ], "texture": "#texture", "jmx_material": "#jmx_material", 35 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 36 | }, "east": { 37 | "uv": [ 0, 7, 9, 10 ], "texture": "#texture", "jmx_material": "#jmx_material", 38 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 39 | } 40 | }, "__comment": "lower bar" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_orientable.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_orientable_with_bottom", "textures": { "bottom": "#top" }, "jmx": { 3 | "textures": { "layered_textures": [ { "jmx_tex_bottom": "#jmx_tex_top" }, { "jmx_tex_bottom": "#jmx_tex_top" } ] }, 4 | "materials": { "jmx_mat_down": "#jmx_mat_top" } 5 | } 6 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_orientable_vertical.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#side", "up": "#front", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_front", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_front", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | } 15 | ] 16 | }, "materials": { 17 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_front", "jmx_mat_north": "#jmx_mat_all", 18 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_orientable_with_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", "display": { 3 | "firstperson_righthand": { "rotation": [ 0, 135, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.4, 0.4, 0.4 ] } 4 | }, "textures": { 5 | "particle": "#front", "down": "#bottom", "up": "#top", "north": "#front", "east": "#side", "south": "#side", 6 | "west": "#side" 7 | }, "jmx": { 8 | "textures": { 9 | "particle": "#jmx_tex_particle", "layered_textures": [ 10 | { 11 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_front", 12 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 13 | }, { 14 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_front", 15 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 16 | } 17 | ] 18 | }, "materials": { 19 | "jmx_mat_down": "#jmx_mat_bottom", "jmx_mat_up": "#jmx_mat_top", "jmx_mat_north": "#jmx_mat_front", 20 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_slab.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "textures": { "particle": "#side" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 16, 8, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 9 | }, "up": { 10 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 12 | }, "north": { 13 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "north", "jmx_material": "#jmx_mat_side", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 15 | }, "south": { 16 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "south", "jmx_material": "#jmx_mat_side", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 18 | }, "west": { 19 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "west", "jmx_material": "#jmx_mat_side", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 21 | }, "east": { 22 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "east", "jmx_material": "#jmx_mat_side", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_slab_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#side" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 8, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "jmx_material": "#jmx_mat_bottom", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up", "jmx_material": "#jmx_mat_top", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "north", "jmx_material": "#jmx_mat_side", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "south", "jmx_material": "#jmx_mat_side", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "west", "jmx_material": "#jmx_mat_side", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 20 | }, "east": { 21 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "east", "jmx_material": "#jmx_mat_side", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_fruit.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 7, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 7, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | }, { 27 | "from": [ 0, 0, 8 ], "to": [ 9, 16, 8 ], "faces": { 28 | "north": { 29 | "uv": [ 9, 0, 0, 16 ], "texture": "#upperstem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 30 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 31 | }, "south": { 32 | "uv": [ 0, 0, 9, 16 ], "texture": "#upperstem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 33 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth0.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 1, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 1, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth1.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 3, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 3, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth2.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 5, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 5, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth3.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 7, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 7, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth4.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 9, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 9, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth5.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 11, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 11, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth6.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 13, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 13, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_stem_growth7.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 15, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 10 | }, "south": { 11 | "uv": [ 16, 0, 0, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 13 | } 14 | } 15 | }, { 16 | "from": [ 8, -1, 0 ], "to": [ 8, 15, 16 ], 17 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 21 | }, "east": { 22 | "uv": [ 16, 0, 0, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 23 | "layered_textures": [ { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_farmland.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 15, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#dirt", "cullface": "down", "jmx_material": "#jmx_mat_dirt", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } ] 11 | }, "north": { 12 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "north", "jmx_material": "#jmx_mat_dirt", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } ] 14 | }, "south": { 15 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "south", "jmx_material": "#jmx_mat_dirt", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } ] 17 | }, "west": { 18 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "west", "jmx_material": "#jmx_mat_dirt", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } ] 20 | }, "east": { 21 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "east", "jmx_material": "#jmx_mat_dirt", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_glass_pane_noside.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 16, 9 ], "faces": { 6 | "north": { 7 | "uv": [ 9, 0, 7, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } ] 9 | } 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_glass_pane_noside_alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 16, 9 ], "faces": { 6 | "east": { 7 | "uv": [ 7, 0, 9, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } ] 9 | } 10 | } 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_glass_pane_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 16, 9 ], "faces": { 6 | "down": { 7 | "uv": [ 7, 7, 9, 9 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 9 | }, "up": { 10 | "uv": [ 7, 7, 9, 9 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 12 | } 13 | } 14 | } 15 | ] 16 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_glass_pane_side.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 0 ], "to": [ 9, 16, 7 ], "faces": { 6 | "down": { 7 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 9 | }, "up": { 10 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 12 | }, "north": { 13 | "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north", "jmx_material": "#jmx_mat_edge", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 15 | }, "west": { 16 | "uv": [ 16, 0, 9, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } ] 18 | }, "east": { 19 | "uv": [ 9, 0, 16, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } ] 21 | } 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_glass_pane_side_alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 9 ], "to": [ 9, 16, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 9 | }, "up": { 10 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 12 | }, "south": { 13 | "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south", "jmx_material": "#jmx_mat_edge", 14 | "layered_textures": [ { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } ] 15 | }, "west": { 16 | "uv": [ 7, 0, 0, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", 17 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } ] 18 | }, "east": { 19 | "uv": [ 0, 0, 7, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } ] 21 | } 22 | } 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_glazed_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/2/jmx_cube", "display": { 3 | "firstperson_righthand": { "rotation": [ 0, 135, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.4, 0.4, 0.4 ] } 4 | }, "elements": [ 5 | { 6 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 7 | "down": { 8 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "down", "jmx_material": "#jmx_mat_pattern", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } ] 10 | }, "up": { 11 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "up", "jmx_material": "#jmx_mat_pattern", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } ] 13 | }, "north": { 14 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "north", "rotation": 90, 15 | "jmx_material": "#jmx_mat_pattern", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } ] 17 | }, "south": { 18 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "south", "rotation": 270, 19 | "jmx_material": "#jmx_mat_pattern", 20 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } ] 21 | }, "west": { 22 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "west", "rotation": 0, 23 | "jmx_material": "#jmx_mat_pattern", 24 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } ] 25 | }, "east": { 26 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "east", "rotation": 180, 27 | "jmx_material": "#jmx_mat_pattern", 28 | "layered_textures": [ { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } ] 29 | } 30 | } 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_orientable_trapdoor_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/thin_block", "textures": { "particle": "#texture" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 16, 3, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 8 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 9 | }, "up": { 10 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "jmx_material": "#jmx_material", 11 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 12 | }, "north": { 13 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 14 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 15 | }, "south": { 16 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 17 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 18 | }, "west": { 19 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 20 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 21 | }, "east": { 22 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 23 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_orientable_trapdoor_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 13 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 3, 16, 0 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 3 ], "rotation": 90, "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 0, 3, 16, 0 ], "rotation": 90, "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_orientable_trapdoor_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 13, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_piston.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#side" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 180, "cullface": "down", "jmx_material": "#jmx_mat_side", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "up", "jmx_material": "#jmx_mat_side", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north", "jmx_material": "#jmx_mat_platform", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_platform" }, { "jmx_tex": "#jmx_tex_platform" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "south", "jmx_material": "#jmx_mat_bottom", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 270, "cullface": "west", "jmx_material": "#jmx_mat_side", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 20 | }, "east": { 21 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 90, "cullface": "east", "jmx_material": "#jmx_mat_side", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_piston_head.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#platform" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 4 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "down", "rotation": 180, "jmx_material": "#jmx_mat_side", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "up", "jmx_material": "#jmx_mat_side", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north", "jmx_material": "#jmx_mat_platform", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_platform" }, { "jmx_tex": "#jmx_tex_platform" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 16 ], "texture": "#unsticky", "jmx_material": "#jmx_mat_unsticky", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_unsticky" }, { "jmx_tex": "#jmx_tex_unsticky" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 270, "cullface": "west", "jmx_material": "#jmx_mat_side", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 20 | }, "east": { 21 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 90, "cullface": "east", "jmx_material": "#jmx_mat_side", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 23 | } 24 | } 25 | }, { 26 | "from": [ 6, 6, 4 ], "to": [ 10, 10, 20 ], "faces": { 27 | "down": { 28 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 90, "jmx_material": "#jmx_mat_side", 29 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 30 | }, "up": { 31 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 270, "jmx_material": "#jmx_mat_side", 32 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 33 | }, "west": { 34 | "uv": [ 16, 4, 0, 0 ], "texture": "#side", "jmx_material": "#jmx_mat_side", 35 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 36 | }, "east": { 37 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "jmx_material": "#jmx_mat_side", 38 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 39 | } 40 | } 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_piston_head_short.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#platform" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 4 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "down", "rotation": 180, "jmx_material": "#jmx_mat_side", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "cullface": "up", "jmx_material": "#jmx_mat_side", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north", "jmx_material": "#jmx_mat_platform", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_platform" }, { "jmx_tex": "#jmx_tex_platform" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 16 ], "texture": "#unsticky", "jmx_material": "#jmx_mat_unsticky", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_unsticky" }, { "jmx_tex": "#jmx_tex_unsticky" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 270, "cullface": "west", "jmx_material": "#jmx_mat_side", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 20 | }, "east": { 21 | "uv": [ 0, 0, 16, 4 ], "texture": "#side", "rotation": 90, "cullface": "east", "jmx_material": "#jmx_mat_side", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 23 | } 24 | } 25 | }, { 26 | "from": [ 6, 6, 4 ], "to": [ 10, 10, 16 ], "faces": { 27 | "down": { 28 | "uv": [ 4, 0, 16, 4 ], "texture": "#side", "rotation": 90, "jmx_material": "#jmx_mat_side", 29 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 30 | }, "up": { 31 | "uv": [ 4, 0, 16, 4 ], "texture": "#side", "rotation": 270, "jmx_material": "#jmx_mat_side", 32 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 33 | }, "west": { 34 | "uv": [ 16, 4, 4, 0 ], "texture": "#side", "jmx_material": "#jmx_mat_side", 35 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 36 | }, "east": { 37 | "uv": [ 4, 0, 16, 4 ], "texture": "#side", "jmx_material": "#jmx_mat_side", 38 | "layered_textures": [ { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } ] 39 | } 40 | } 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_rail_raised_ne.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#rail" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 9, 0 ], "to": [ 16, 9, 16 ], 6 | "rotation": { "origin": [ 8, 9, 8 ], "axis": "x", "angle": 45, "rescale": true }, "faces": { 7 | "down": { 8 | "uv": [ 0, 16, 16, 0 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } ] 10 | }, "up": { 11 | "uv": [ 0, 0, 16, 16 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } ] 13 | } 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_rail_raised_sw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#rail" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 9, 0 ], "to": [ 16, 9, 16 ], 6 | "rotation": { "origin": [ 8, 9, 8 ], "axis": "x", "angle": -45, "rescale": true }, "faces": { 7 | "down": { 8 | "uv": [ 0, 16, 16, 0 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", 9 | "layered_textures": [ { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } ] 10 | }, "up": { 11 | "uv": [ 0, 0, 16, 16 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } ] 13 | } 14 | } 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_torch.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#torch" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 10, 9 ], "shade": false, "faces": { 6 | "down": { 7 | "uv": [ 7, 13, 9, 15 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", 8 | "layered_textures": [ { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } ] 9 | }, "up": { 10 | "uv": [ 7, 6, 9, 8 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } ] 12 | } 13 | } 14 | }, { 15 | "from": [ 7, 0, 0 ], "to": [ 9, 16, 16 ], "shade": false, "faces": { 16 | "west": { 17 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", 18 | "layered_textures": [ { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } ] 19 | }, "east": { 20 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", 21 | "layered_textures": [ { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } ] 22 | } 23 | } 24 | }, { 25 | "from": [ 0, 0, 7 ], "to": [ 16, 16, 9 ], "shade": false, "faces": { 26 | "north": { 27 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", 28 | "layered_textures": [ { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } ] 29 | }, "south": { 30 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", 31 | "layered_textures": [ { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } ] 32 | } 33 | } 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_trapdoor_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/thin_block", "textures": { "particle": "#texture" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 16, 3, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 8 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 9 | }, "up": { 10 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 11 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 12 | }, "north": { 13 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 14 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 15 | }, "south": { 16 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 17 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 18 | }, "west": { 19 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 20 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 21 | }, "east": { 22 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 23 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_trapdoor_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 13 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 13, 16, 16 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 16, 0, 13, 16 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 13, 0, 16, 16 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_trapdoor_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 13, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_wall_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#wall" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 4, 0, 4 ], "to": [ 12, 16, 12 ], "faces": { 5 | "down": { 6 | "texture": "#wall", "cullface": "down", "jmx_material": "#jmx_mat_wall", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 8 | }, "up": { 9 | "texture": "#wall", "cullface": "up", "jmx_material": "#jmx_mat_wall", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 11 | }, "north": { 12 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 14 | }, "south": { 15 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 17 | }, "west": { 18 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 20 | }, "east": { 21 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 22 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 23 | } 24 | }, "__comment": "Center post" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/2/jmx_template_wall_side.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#wall" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 5, 0, 0 ], "to": [ 11, 14, 8 ], "faces": { 5 | "down": { 6 | "texture": "#wall", "cullface": "down", "jmx_material": "#jmx_mat_wall", 7 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 8 | }, "up": { 9 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 10 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 11 | }, "north": { 12 | "texture": "#wall", "cullface": "north", "jmx_material": "#jmx_mat_wall", 13 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 14 | }, "west": { 15 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 16 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 17 | }, "east": { 18 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", 19 | "layered_textures": [ { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } ] 20 | } 21 | }, "__comment": "wall" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cross.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#cross" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0.8, 0, 8 ], "to": [ 15.2, 16, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } 10 | ] 11 | }, "south": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, 0, 0.8 ], "to": [ 8, 16, 15.2 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade": false, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", "layered_textures": [ 22 | { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } 23 | ] 24 | }, "east": { 25 | "uv": [ 0, 0, 16, 16 ], "texture": "#cross", "jmx_material": "#jmx_mat_cross", "layered_textures": [ 26 | { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" }, { "jmx_tex": "#jmx_tex_cross" } 27 | ] 28 | } 29 | } 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "texture": "#down", 7 | "cullface": "down", 8 | "jmx_material": "#jmx_mat_down", 9 | "layered_textures": [ 10 | { "jmx_tex": "#jmx_tex_down" }, 11 | { "jmx_tex": "#jmx_tex_down" }, 12 | { "jmx_tex": "#jmx_tex_down" } 13 | ] 14 | }, 15 | "up": { 16 | "texture": "#up", 17 | "cullface": "up", 18 | "jmx_material": "#jmx_mat_up", 19 | "layered_textures": [ 20 | { "jmx_tex": "#jmx_tex_up" }, 21 | { "jmx_tex": "#jmx_tex_up" }, 22 | { "jmx_tex": "#jmx_tex_up" } 23 | ] 24 | }, 25 | "north": { 26 | "texture": "#north", 27 | "cullface": "north", 28 | "jmx_material": "#jmx_mat_north", 29 | "layered_textures": [ 30 | { "jmx_tex": "#jmx_tex_north" }, 31 | { "jmx_tex": "#jmx_tex_north" }, 32 | { "jmx_tex": "#jmx_tex_north" } 33 | ] 34 | }, 35 | "south": { 36 | "texture": "#south", 37 | "cullface": "south", 38 | "jmx_material": "#jmx_mat_south", 39 | "layered_textures": [ 40 | { "jmx_tex": "#jmx_tex_south" }, 41 | { "jmx_tex": "#jmx_tex_south" }, 42 | { "jmx_tex": "#jmx_tex_south" } 43 | ] 44 | }, 45 | "west": { 46 | "texture": "#west", 47 | "cullface": "west", 48 | "jmx_material": "#jmx_mat_west", 49 | "layered_textures": [ 50 | { "jmx_tex": "#jmx_tex_west" }, 51 | { "jmx_tex": "#jmx_tex_west" }, 52 | { "jmx_tex": "#jmx_tex_west" } 53 | ] 54 | }, 55 | "east": { 56 | "texture": "#east", 57 | "cullface": "east", 58 | "jmx_material": "#jmx_mat_east", 59 | "layered_textures": [ 60 | { "jmx_tex": "#jmx_tex_east" }, 61 | { "jmx_tex": "#jmx_tex_east" }, 62 | { "jmx_tex": "#jmx_tex_east" } 63 | ] 64 | } 65 | } 66 | } 67 | ] 68 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", 3 | "textures": { 4 | "particle": "#all", 5 | "down": "#all", 6 | "up": "#all", 7 | "north": "#all", 8 | "east": "#all", 9 | "south": "#all", 10 | "west": "#all" 11 | }, 12 | "jmx": { 13 | "textures": { 14 | "particle": "#jmx_tex_particle", 15 | "layered_textures": [ 16 | { 17 | "jmx_tex_down": "#jmx_tex_all", 18 | "jmx_tex_up": "#jmx_tex_all", 19 | "jmx_tex_north": "#jmx_tex_all", 20 | "jmx_tex_east": "#jmx_tex_all", 21 | "jmx_tex_south": "#jmx_tex_all", 22 | "jmx_tex_west": "#jmx_tex_all" 23 | }, 24 | { 25 | "jmx_tex_down": "#jmx_tex_all", 26 | "jmx_tex_up": "#jmx_tex_all", 27 | "jmx_tex_north": "#jmx_tex_all", 28 | "jmx_tex_east": "#jmx_tex_all", 29 | "jmx_tex_south": "#jmx_tex_all", 30 | "jmx_tex_west": "#jmx_tex_all" 31 | }, 32 | { 33 | "jmx_tex_down": "#jmx_tex_all", 34 | "jmx_tex_up": "#jmx_tex_all", 35 | "jmx_tex_north": "#jmx_tex_all", 36 | "jmx_tex_east": "#jmx_tex_all", 37 | "jmx_tex_south": "#jmx_tex_all", 38 | "jmx_tex_west": "#jmx_tex_all" 39 | } 40 | ] 41 | }, 42 | "materials": { 43 | "jmx_mat_down": "#jmx_mat_all", 44 | "jmx_mat_up": "#jmx_mat_all", 45 | "jmx_mat_north": "#jmx_mat_all", 46 | "jmx_mat_east": "#jmx_mat_all", 47 | "jmx_mat_south": "#jmx_mat_all", 48 | "jmx_mat_west": "#jmx_mat_all" 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_bottom_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#bottom", "up": "#top", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | }, { 15 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 16 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 17 | } 18 | ] 19 | }, "materials": { 20 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 21 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_column.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#end", "up": "#end", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_end", "jmx_tex_up": "#jmx_tex_end", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_end", "jmx_tex_up": "#jmx_tex_end", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | }, { 15 | "jmx_tex_down": "#jmx_tex_end", "jmx_tex_up": "#jmx_tex_end", "jmx_tex_north": "#jmx_tex_side", 16 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 17 | } 18 | ] 19 | }, "materials": { 20 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 21 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_directional.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "texture": "#down", "cullface": "down", "rotation": 180, "jmx_material": "#jmx_mat_down", "layered_textures": [ 7 | { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" } 8 | ] 9 | }, "up": { 10 | "texture": "#up", "cullface": "up", "jmx_material": "#jmx_mat_up", 11 | "layered_textures": [ { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" } ] 12 | }, "north": { 13 | "texture": "#north", "cullface": "north", "jmx_material": "#jmx_mat_north", "layered_textures": [ 14 | { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" } 15 | ] 16 | }, "south": { 17 | "texture": "#south", "cullface": "south", "jmx_material": "#jmx_mat_south", "layered_textures": [ 18 | { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" } 19 | ] 20 | }, "west": { 21 | "texture": "#west", "cullface": "west", "rotation": 270, "jmx_material": "#jmx_mat_west", "layered_textures": [ 22 | { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" } 23 | ] 24 | }, "east": { 25 | "texture": "#east", "cullface": "east", "rotation": 90, "jmx_material": "#jmx_mat_east", "layered_textures": [ 26 | { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" } 27 | ] 28 | } 29 | } 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_mirrored.json: -------------------------------------------------------------------------------- 1 | { 2 | "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 16, 0, 0, 16 ], "texture": "#down", "cullface": "down", "jmx_material": "#jmx_mat_down", 7 | "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" }, { "jmx_tex": "#jmx_tex_down" } 9 | ] 10 | }, "up": { 11 | "uv": [ 16, 0, 0, 16 ], "texture": "#up", "cullface": "up", "jmx_material": "#jmx_mat_up", 12 | "layered_textures": [ { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" }, { "jmx_tex": "#jmx_tex_up" } ] 13 | }, "north": { 14 | "uv": [ 16, 0, 0, 16 ], "texture": "#north", "cullface": "north", "jmx_material": "#jmx_mat_north", 15 | "layered_textures": [ 16 | { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" }, { "jmx_tex": "#jmx_tex_north" } 17 | ] 18 | }, "south": { 19 | "uv": [ 16, 0, 0, 16 ], "texture": "#south", "cullface": "south", "jmx_material": "#jmx_mat_south", 20 | "layered_textures": [ 21 | { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" }, { "jmx_tex": "#jmx_tex_south" } 22 | ] 23 | }, "west": { 24 | "uv": [ 16, 0, 0, 16 ], "texture": "#west", "cullface": "west", "jmx_material": "#jmx_mat_west", 25 | "layered_textures": [ 26 | { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" }, { "jmx_tex": "#jmx_tex_west" } 27 | ] 28 | }, "east": { 29 | "uv": [ 16, 0, 0, 16 ], "texture": "#east", "cullface": "east", "jmx_material": "#jmx_mat_east", 30 | "layered_textures": [ 31 | { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" }, { "jmx_tex": "#jmx_tex_east" } 32 | ] 33 | } 34 | } 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_mirrored_all.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube_mirrored", "textures": { 3 | "particle": "#all", "down": "#all", "up": "#all", "north": "#all", "east": "#all", "south": "#all", "west": "#all" 4 | }, "jmx": { 5 | "textures": { 6 | "particle": "#jmx_tex_particle", "layered_textures": [ 7 | { 8 | "jmx_tex_down": "#jmx_tex_all", "jmx_tex_up": "#jmx_tex_all", "jmx_tex_north": "#jmx_tex_all", 9 | "jmx_tex_east": "#jmx_tex_all", "jmx_tex_south": "#jmx_tex_all", "jmx_tex_west": "#jmx_tex_all" 10 | }, { 11 | "jmx_tex_down": "#jmx_tex_all", "jmx_tex_up": "#jmx_tex_all", "jmx_tex_north": "#jmx_tex_all", 12 | "jmx_tex_east": "#jmx_tex_all", "jmx_tex_south": "#jmx_tex_all", "jmx_tex_west": "#jmx_tex_all" 13 | }, { 14 | "jmx_tex_down": "#jmx_tex_all", "jmx_tex_up": "#jmx_tex_all", "jmx_tex_north": "#jmx_tex_all", 15 | "jmx_tex_east": "#jmx_tex_all", "jmx_tex_south": "#jmx_tex_all", "jmx_tex_west": "#jmx_tex_all" 16 | } 17 | ] 18 | }, "materials": { 19 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 20 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_cube_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#side", "up": "#top", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | }, { 15 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_side", 16 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 17 | } 18 | ] 19 | }, "materials": { 20 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_all", "jmx_mat_north": "#jmx_mat_all", 21 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_door_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#bottom" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "down", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 10 | ] 11 | }, "north": { 12 | "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north", "jmx_material": "#jmx_mat_bottom", 13 | "layered_textures": [ 14 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 15 | ] 16 | }, "south": { 17 | "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south", "jmx_material": "#jmx_mat_bottom", 18 | "layered_textures": [ 19 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 20 | ] 21 | }, "west": { 22 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "west", "jmx_material": "#jmx_mat_bottom", 23 | "layered_textures": [ 24 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 25 | ] 26 | }, "east": { 27 | "uv": [ 16, 0, 0, 16 ], "texture": "#bottom", "jmx_material": "#jmx_mat_bottom", "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_door_bottom_rh.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#bottom" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "down", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 10 | ] 11 | }, "north": { 12 | "uv": [ 3, 0, 0, 16 ], "texture": "#bottom", "cullface": "north", "jmx_material": "#jmx_mat_bottom", 13 | "layered_textures": [ 14 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 15 | ] 16 | }, "south": { 17 | "uv": [ 0, 0, 3, 16 ], "texture": "#bottom", "cullface": "south", "jmx_material": "#jmx_mat_bottom", 18 | "layered_textures": [ 19 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 20 | ] 21 | }, "west": { 22 | "uv": [ 16, 0, 0, 16 ], "texture": "#bottom", "cullface": "west", "jmx_material": "#jmx_mat_bottom", 23 | "layered_textures": [ 24 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 25 | ] 26 | }, "east": { 27 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "jmx_material": "#jmx_mat_bottom", "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_door_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#top" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "up": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "up", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 10 | ] 11 | }, "north": { 12 | "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north", "jmx_material": "#jmx_mat_top", 13 | "layered_textures": [ 14 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 15 | ] 16 | }, "south": { 17 | "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south", "jmx_material": "#jmx_mat_top", 18 | "layered_textures": [ 19 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 20 | ] 21 | }, "west": { 22 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "west", "jmx_material": "#jmx_mat_top", 23 | "layered_textures": [ 24 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 25 | ] 26 | }, "east": { 27 | "uv": [ 16, 0, 0, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_door_top_rh.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#top" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 3, 16, 16 ], "faces": { 6 | "up": { 7 | "uv": [ 13, 0, 16, 16 ], "texture": "#bottom", "cullface": "up", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 10 | ] 11 | }, "north": { 12 | "uv": [ 3, 0, 0, 16 ], "texture": "#top", "cullface": "north", "jmx_material": "#jmx_mat_top", 13 | "layered_textures": [ 14 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 15 | ] 16 | }, "south": { 17 | "uv": [ 0, 0, 3, 16 ], "texture": "#top", "cullface": "south", "jmx_material": "#jmx_mat_top", 18 | "layered_textures": [ 19 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 20 | ] 21 | }, "west": { 22 | "uv": [ 16, 0, 0, 16 ], "texture": "#top", "cullface": "west", "jmx_material": "#jmx_mat_top", 23 | "layered_textures": [ 24 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 25 | ] 26 | }, "east": { 27 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_fence_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 6, 0, 6 ], "to": [ 10, 16, 10 ], "faces": { 5 | "down": { 6 | "uv": [ 6, 6, 10, 10 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 6, 6, 10, 10 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 6, 0, 10, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | }, "__comment": "Center post" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_orientable.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_orientable_with_bottom", "textures": { "bottom": "#top" }, "jmx": { 3 | "textures": { 4 | "layered_textures": [ 5 | { "jmx_tex_bottom": "#jmx_tex_top" }, { "jmx_tex_bottom": "#jmx_tex_top" }, { "jmx_tex_bottom": "#jmx_tex_top" } 6 | ] 7 | }, "materials": { "jmx_mat_down": "#jmx_mat_top" } 8 | } 9 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_orientable_vertical.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", "textures": { 3 | "particle": "#side", "down": "#side", "up": "#front", "north": "#side", "east": "#side", "south": "#side", 4 | "west": "#side" 5 | }, "jmx": { 6 | "textures": { 7 | "particle": "#jmx_tex_particle", "layered_textures": [ 8 | { 9 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_front", "jmx_tex_north": "#jmx_tex_side", 10 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 11 | }, { 12 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_front", "jmx_tex_north": "#jmx_tex_side", 13 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 14 | }, { 15 | "jmx_tex_down": "#jmx_tex_side", "jmx_tex_up": "#jmx_tex_front", "jmx_tex_north": "#jmx_tex_side", 16 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 17 | } 18 | ] 19 | }, "materials": { 20 | "jmx_mat_down": "#jmx_mat_all", "jmx_mat_up": "#jmx_mat_front", "jmx_mat_north": "#jmx_mat_all", 21 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_orientable_with_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", "display": { 3 | "firstperson_righthand": { "rotation": [ 0, 135, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.4, 0.4, 0.4 ] } 4 | }, "textures": { 5 | "particle": "#front", "down": "#bottom", "up": "#top", "north": "#front", "east": "#side", "south": "#side", 6 | "west": "#side" 7 | }, "jmx": { 8 | "textures": { 9 | "particle": "#jmx_tex_particle", "layered_textures": [ 10 | { 11 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_front", 12 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 13 | }, { 14 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_front", 15 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 16 | }, { 17 | "jmx_tex_down": "#jmx_tex_bottom", "jmx_tex_up": "#jmx_tex_top", "jmx_tex_north": "#jmx_tex_front", 18 | "jmx_tex_east": "#jmx_tex_side", "jmx_tex_south": "#jmx_tex_side", "jmx_tex_west": "#jmx_tex_side" 19 | } 20 | ] 21 | }, "materials": { 22 | "jmx_mat_down": "#jmx_mat_bottom", "jmx_mat_up": "#jmx_mat_top", "jmx_mat_north": "#jmx_mat_front", 23 | "jmx_mat_east": "#jmx_mat_all", "jmx_mat_south": "#jmx_mat_all", "jmx_mat_west": "#jmx_mat_all" 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_slab.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "textures": { "particle": "#side" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 16, 8, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down", "jmx_material": "#jmx_mat_bottom", 8 | "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 10 | ] 11 | }, "up": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 14 | ] 15 | }, "north": { 16 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "north", "jmx_material": "#jmx_mat_side", 17 | "layered_textures": [ 18 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 19 | ] 20 | }, "south": { 21 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "south", "jmx_material": "#jmx_mat_side", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 24 | ] 25 | }, "west": { 26 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "west", "jmx_material": "#jmx_mat_side", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 29 | ] 30 | }, "east": { 31 | "uv": [ 0, 8, 16, 16 ], "texture": "#side", "cullface": "east", "jmx_material": "#jmx_mat_side", 32 | "layered_textures": [ 33 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 34 | ] 35 | } 36 | } 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_slab_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#side" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 8, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "jmx_material": "#jmx_mat_bottom", "layered_textures": [ 7 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 8 | ] 9 | }, "up": { 10 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "cullface": "up", "jmx_material": "#jmx_mat_top", "layered_textures": [ 11 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 12 | ] 13 | }, "north": { 14 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "north", "jmx_material": "#jmx_mat_side", 15 | "layered_textures": [ 16 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 17 | ] 18 | }, "south": { 19 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "south", "jmx_material": "#jmx_mat_side", 20 | "layered_textures": [ 21 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 22 | ] 23 | }, "west": { 24 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "west", "jmx_material": "#jmx_mat_side", 25 | "layered_textures": [ 26 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 27 | ] 28 | }, "east": { 29 | "uv": [ 0, 0, 16, 8 ], "texture": "#side", "cullface": "east", "jmx_material": "#jmx_mat_side", 30 | "layered_textures": [ 31 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 32 | ] 33 | } 34 | } 35 | } 36 | ] 37 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_fruit.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 7, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 7, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | }, { 33 | "from": [ 0, 0, 8 ], "to": [ 9, 16, 8 ], "faces": { 34 | "north": { 35 | "uv": [ 9, 0, 0, 16 ], "texture": "#upperstem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 36 | "layered_textures": [ 37 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 38 | ] 39 | }, "south": { 40 | "uv": [ 0, 0, 9, 16 ], "texture": "#upperstem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 41 | "layered_textures": [ 42 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 43 | ] 44 | } 45 | } 46 | } 47 | ] 48 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth0.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 1, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 1, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 2 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth1.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 3, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 3, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 4 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth2.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 5, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 5, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 6 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth3.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 7, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 7, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth4.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 9, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 9, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth5.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 11, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 11, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 12 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth6.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 13, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 13, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 14 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_stem_growth7.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#stem" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, -1, 8 ], "to": [ 16, 15, 8 ], 6 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 7 | "north": { 8 | "uv": [ 0, 0, 16, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 10 | ] 11 | }, "south": { 12 | "uv": [ 16, 0, 0, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 14 | ] 15 | } 16 | } 17 | }, { 18 | "from": [ 8, -1, 0 ], "to": [ 8, 15, 16 ], 19 | "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { 20 | "west": { 21 | "uv": [ 0, 0, 16, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 24 | ] 25 | }, "east": { 26 | "uv": [ 16, 0, 0, 16 ], "texture": "#stem", "tintindex": 0, "jmx_material": "#jmx_mat_stem", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" }, { "jmx_tex": "#jmx_tex_stem" } 29 | ] 30 | } 31 | } 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_farmland.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/block", "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 15, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#dirt", "cullface": "down", "jmx_material": "#jmx_mat_dirt", 7 | "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } 9 | ] 10 | }, "up": { 11 | "uv": [ 0, 0, 16, 16 ], "texture": "#top", "jmx_material": "#jmx_mat_top", "layered_textures": [ 12 | { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" }, { "jmx_tex": "#jmx_tex_top" } 13 | ] 14 | }, "north": { 15 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "north", "jmx_material": "#jmx_mat_dirt", 16 | "layered_textures": [ 17 | { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } 18 | ] 19 | }, "south": { 20 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "south", "jmx_material": "#jmx_mat_dirt", 21 | "layered_textures": [ 22 | { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } 23 | ] 24 | }, "west": { 25 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "west", "jmx_material": "#jmx_mat_dirt", 26 | "layered_textures": [ 27 | { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } 28 | ] 29 | }, "east": { 30 | "uv": [ 0, 1, 16, 16 ], "texture": "#dirt", "cullface": "east", "jmx_material": "#jmx_mat_dirt", 31 | "layered_textures": [ 32 | { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" }, { "jmx_tex": "#jmx_tex_dirt" } 33 | ] 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_glass_pane_noside.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 16, 9 ], "faces": { 6 | "north": { 7 | "uv": [ 9, 0, 7, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } 9 | ] 10 | } 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_glass_pane_noside_alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 16, 9 ], "faces": { 6 | "east": { 7 | "uv": [ 7, 0, 9, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } 9 | ] 10 | } 11 | } 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_glass_pane_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 16, 9 ], "faces": { 6 | "down": { 7 | "uv": [ 7, 7, 9, 9 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 9 | ] 10 | }, "up": { 11 | "uv": [ 7, 7, 9, 9 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", "layered_textures": [ 12 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 13 | ] 14 | } 15 | } 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_glass_pane_side.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 0 ], "to": [ 9, 16, 7 ], "faces": { 6 | "down": { 7 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 9 | ] 10 | }, "up": { 11 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", "layered_textures": [ 12 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 13 | ] 14 | }, "north": { 15 | "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north", "jmx_material": "#jmx_mat_edge", 16 | "layered_textures": [ 17 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 18 | ] 19 | }, "west": { 20 | "uv": [ 16, 0, 9, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", "layered_textures": [ 21 | { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } 22 | ] 23 | }, "east": { 24 | "uv": [ 9, 0, 16, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", "layered_textures": [ 25 | { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } 26 | ] 27 | } 28 | } 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_glass_pane_side_alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#pane" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 9 ], "to": [ 9, 16, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 9 | ] 10 | }, "up": { 11 | "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "jmx_material": "#jmx_mat_edge", "layered_textures": [ 12 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 13 | ] 14 | }, "south": { 15 | "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south", "jmx_material": "#jmx_mat_edge", 16 | "layered_textures": [ 17 | { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" }, { "jmx_tex": "#jmx_tex_edge" } 18 | ] 19 | }, "west": { 20 | "uv": [ 7, 0, 0, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", "layered_textures": [ 21 | { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } 22 | ] 23 | }, "east": { 24 | "uv": [ 0, 0, 7, 16 ], "texture": "#pane", "jmx_material": "#jmx_mat_pane", "layered_textures": [ 25 | { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" }, { "jmx_tex": "#jmx_tex_pane" } 26 | ] 27 | } 28 | } 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_glazed_terracotta.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/3/jmx_cube", "display": { 3 | "firstperson_righthand": { "rotation": [ 0, 135, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 0.4, 0.4, 0.4 ] } 4 | }, "elements": [ 5 | { 6 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 7 | "down": { 8 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "down", "jmx_material": "#jmx_mat_pattern", 9 | "layered_textures": [ 10 | { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } 11 | ] 12 | }, "up": { 13 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "up", "jmx_material": "#jmx_mat_pattern", 14 | "layered_textures": [ 15 | { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } 16 | ] 17 | }, "north": { 18 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "north", "rotation": 90, 19 | "jmx_material": "#jmx_mat_pattern", "layered_textures": [ 20 | { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } 21 | ] 22 | }, "south": { 23 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "south", "rotation": 270, 24 | "jmx_material": "#jmx_mat_pattern", "layered_textures": [ 25 | { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } 26 | ] 27 | }, "west": { 28 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "west", "rotation": 0, 29 | "jmx_material": "#jmx_mat_pattern", "layered_textures": [ 30 | { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } 31 | ] 32 | }, "east": { 33 | "uv": [ 0, 0, 16, 16 ], "texture": "#pattern", "cullface": "east", "rotation": 180, 34 | "jmx_material": "#jmx_mat_pattern", "layered_textures": [ 35 | { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" }, { "jmx_tex": "#jmx_tex_pattern" } 36 | ] 37 | } 38 | } 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_orientable_trapdoor_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/thin_block", "textures": { "particle": "#texture" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 16, 3, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 8 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 9 | }, "up": { 10 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "jmx_material": "#jmx_material", 11 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 12 | }, "north": { 13 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 14 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 15 | }, "south": { 16 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 17 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 18 | }, "west": { 19 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 20 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 21 | }, "east": { 22 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 23 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_orientable_trapdoor_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 13 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 3, 16, 0 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 3 ], "rotation": 90, "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 0, 3, 16, 0 ], "rotation": 90, "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_orientable_trapdoor_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 13, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 16, 16, 0 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 0, 0, 16, 3 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_piston.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#side" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 180, "cullface": "down", "jmx_material": "#jmx_mat_side", 7 | "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 9 | ] 10 | }, "up": { 11 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "cullface": "up", "jmx_material": "#jmx_mat_side", 12 | "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 14 | ] 15 | }, "north": { 16 | "uv": [ 0, 0, 16, 16 ], "texture": "#platform", "cullface": "north", "jmx_material": "#jmx_mat_platform", 17 | "layered_textures": [ 18 | { "jmx_tex": "#jmx_tex_platform" }, { "jmx_tex": "#jmx_tex_platform" }, { "jmx_tex": "#jmx_tex_platform" } 19 | ] 20 | }, "south": { 21 | "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "south", "jmx_material": "#jmx_mat_bottom", 22 | "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" }, { "jmx_tex": "#jmx_tex_bottom" } 24 | ] 25 | }, "west": { 26 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 270, "cullface": "west", "jmx_material": "#jmx_mat_side", 27 | "layered_textures": [ 28 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 29 | ] 30 | }, "east": { 31 | "uv": [ 0, 0, 16, 16 ], "texture": "#side", "rotation": 90, "cullface": "east", "jmx_material": "#jmx_mat_side", 32 | "layered_textures": [ 33 | { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" }, { "jmx_tex": "#jmx_tex_side" } 34 | ] 35 | } 36 | } 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_rail_raised_ne.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#rail" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 9, 0 ], "to": [ 16, 9, 16 ], 6 | "rotation": { "origin": [ 8, 9, 8 ], "axis": "x", "angle": 45, "rescale": true }, "faces": { 7 | "down": { 8 | "uv": [ 0, 16, 16, 0 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } 10 | ] 11 | }, "up": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } 14 | ] 15 | } 16 | } 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_rail_raised_sw.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#rail" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 9, 0 ], "to": [ 16, 9, 16 ], 6 | "rotation": { "origin": [ 8, 9, 8 ], "axis": "x", "angle": -45, "rescale": true }, "faces": { 7 | "down": { 8 | "uv": [ 0, 16, 16, 0 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", "layered_textures": [ 9 | { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } 10 | ] 11 | }, "up": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#rail", "jmx_material": "#jmx_mat_rail", "layered_textures": [ 13 | { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" }, { "jmx_tex": "#jmx_tex_rail" } 14 | ] 15 | } 16 | } 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_torch.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, "textures": { "particle": "#torch" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 7, 0, 7 ], "to": [ 9, 10, 9 ], "shade": false, "faces": { 6 | "down": { 7 | "uv": [ 7, 13, 9, 15 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", "layered_textures": [ 8 | { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } 9 | ] 10 | }, "up": { 11 | "uv": [ 7, 6, 9, 8 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", "layered_textures": [ 12 | { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } 13 | ] 14 | } 15 | } 16 | }, { 17 | "from": [ 7, 0, 0 ], "to": [ 9, 16, 16 ], "shade": false, "faces": { 18 | "west": { 19 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", "layered_textures": [ 20 | { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } 21 | ] 22 | }, "east": { 23 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", "layered_textures": [ 24 | { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } 25 | ] 26 | } 27 | } 28 | }, { 29 | "from": [ 0, 0, 7 ], "to": [ 16, 16, 9 ], "shade": false, "faces": { 30 | "north": { 31 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", "layered_textures": [ 32 | { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } 33 | ] 34 | }, "south": { 35 | "uv": [ 0, 0, 16, 16 ], "texture": "#torch", "jmx_material": "#jmx_mat_torch", "layered_textures": [ 36 | { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" }, { "jmx_tex": "#jmx_tex_torch" } 37 | ] 38 | } 39 | } 40 | } 41 | ] 42 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_trapdoor_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/thin_block", "textures": { "particle": "#texture" }, 3 | "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 4 | { 5 | "from": [ 0, 0, 0 ], "to": [ 16, 3, 16 ], "faces": { 6 | "down": { 7 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 8 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 9 | }, "up": { 10 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 11 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 12 | }, "north": { 13 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 14 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 15 | }, "south": { 16 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 17 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 18 | }, "west": { 19 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 20 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 21 | }, "east": { 22 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 23 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_trapdoor_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 0, 13 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 13, 16, 16 ], "texture": "#texture", "cullface": "down", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 16, 0, 13, 16 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 13, 0, 16, 16 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_trapdoor_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#texture" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 0, 13, 0 ], "to": [ 16, 16, 16 ], "faces": { 5 | "down": { 6 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "jmx_material": "#jmx_material", 7 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 8 | }, "up": { 9 | "uv": [ 0, 0, 16, 16 ], "texture": "#texture", "cullface": "up", "jmx_material": "#jmx_material", 10 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 11 | }, "north": { 12 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "north", "jmx_material": "#jmx_material", 13 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 14 | }, "south": { 15 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "south", "jmx_material": "#jmx_material", 16 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 17 | }, "west": { 18 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "west", "jmx_material": "#jmx_material", 19 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 20 | }, "east": { 21 | "uv": [ 0, 16, 16, 13 ], "texture": "#texture", "cullface": "east", "jmx_material": "#jmx_material", 22 | "layered_textures": [ { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" }, { "jmx_tex": "#jmx_texture" } ] 23 | } 24 | } 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_wall_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#wall" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 4, 0, 4 ], "to": [ 12, 16, 12 ], "faces": { 5 | "down": { 6 | "texture": "#wall", "cullface": "down", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 7 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 8 | ] 9 | }, "up": { 10 | "texture": "#wall", "cullface": "up", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 11 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 12 | ] 13 | }, "north": { 14 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 15 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 16 | ] 17 | }, "south": { 18 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 19 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 20 | ] 21 | }, "west": { 22 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 24 | ] 25 | }, "east": { 26 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 27 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 28 | ] 29 | } 30 | }, "__comment": "Center post" 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/3/jmx_template_wall_side.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { "particle": "#wall" }, "jmx": { "textures": { "particle": "#jmx_tex_particle" } }, "elements": [ 3 | { 4 | "from": [ 5, 0, 0 ], "to": [ 11, 14, 8 ], "faces": { 5 | "down": { 6 | "texture": "#wall", "cullface": "down", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 7 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 8 | ] 9 | }, "up": { 10 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 11 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 12 | ] 13 | }, "north": { 14 | "texture": "#wall", "cullface": "north", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 15 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 16 | ] 17 | }, "west": { 18 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 19 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 20 | ] 21 | }, "east": { 22 | "texture": "#wall", "jmx_material": "#jmx_mat_wall", "layered_textures": [ 23 | { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" }, { "jmx_tex": "#jmx_tex_wall" } 24 | ] 25 | } 26 | }, "__comment": "wall" 27 | } 28 | ] 29 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/2/jmx_orientable.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_orientable_with_bottom", 3 | "textures": { 4 | "bottom": "#top" 5 | }, 6 | "jmx": { 7 | "textures": { 8 | "layered_textures": [ 9 | { 10 | "jmx_tex_bottom": "#jmx_tex_top" 11 | }, 12 | { 13 | "jmx_tex_bottom": "#jmx_tex_top" 14 | } 15 | ] 16 | }, 17 | "materials": [ 18 | { 19 | "jmx_mat_bottom": "#jmx_mat_top" 20 | }, 21 | { 22 | "jmx_mat_bottom": "#jmx_mat_top" 23 | } 24 | ], 25 | "tags": [ 26 | { 27 | "jmx_tag_bottom": "#jmx_tag_top" 28 | }, 29 | { 30 | "jmx_tag_bottom": "#jmx_tag_top" 31 | } 32 | ], 33 | "colors": [ 34 | { 35 | "jmx_color_bottom": "#jmx_color_top" 36 | }, 37 | { 38 | "jmx_color_bottom": "#jmx_color_top" 39 | } 40 | ] 41 | }, 42 | "jmx_version": 1 43 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/2/jmx_template_glass_pane_noside.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, 3 | "textures": { 4 | "particle": "#pane" 5 | }, 6 | "elements": [ 7 | { 8 | "from": [ 9 | 7, 10 | 0, 11 | 7 12 | ], 13 | "to": [ 14 | 9, 15 | 16, 16 | 9 17 | ], 18 | "faces": { 19 | "north": { 20 | "uv": [ 21 | 9, 22 | 0, 23 | 7, 24 | 16 25 | ], 26 | "texture": "#pane", 27 | "jmx_layers": [ 28 | { 29 | "texture": "#jmx_tex_pane", 30 | "material": "#jmx_mat_pane", 31 | "tag": "#jmx_tag_pane", 32 | "color": "#jmx_color_pane" 33 | }, 34 | { 35 | "texture": "#jmx_tex_pane", 36 | "material": "#jmx_mat_pane", 37 | "tag": "#jmx_tag_pane", 38 | "color": "#jmx_color_pane" 39 | } 40 | ] 41 | } 42 | } 43 | } 44 | ], 45 | "jmx": { 46 | "textures": { 47 | "particle": "#jmx_tex_particle" 48 | } 49 | }, 50 | "jmx_version": 1 51 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/2/jmx_template_glass_pane_noside_alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, 3 | "textures": { 4 | "particle": "#pane" 5 | }, 6 | "elements": [ 7 | { 8 | "from": [ 9 | 7, 10 | 0, 11 | 7 12 | ], 13 | "to": [ 14 | 9, 15 | 16, 16 | 9 17 | ], 18 | "faces": { 19 | "east": { 20 | "uv": [ 21 | 7, 22 | 0, 23 | 9, 24 | 16 25 | ], 26 | "texture": "#pane", 27 | "jmx_layers": [ 28 | { 29 | "texture": "#jmx_tex_pane", 30 | "material": "#jmx_mat_pane", 31 | "tag": "#jmx_tag_pane", 32 | "color": "#jmx_color_pane" 33 | }, 34 | { 35 | "texture": "#jmx_tex_pane", 36 | "material": "#jmx_mat_pane", 37 | "tag": "#jmx_tag_pane", 38 | "color": "#jmx_color_pane" 39 | } 40 | ] 41 | } 42 | } 43 | } 44 | ], 45 | "jmx": { 46 | "textures": { 47 | "particle": "#jmx_tex_particle" 48 | } 49 | }, 50 | "jmx_version": 1 51 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/2/jmx_template_glass_pane_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, 3 | "textures": { 4 | "particle": "#pane" 5 | }, 6 | "elements": [ 7 | { 8 | "from": [ 9 | 7, 10 | 0, 11 | 7 12 | ], 13 | "to": [ 14 | 9, 15 | 16, 16 | 9 17 | ], 18 | "faces": { 19 | "down": { 20 | "uv": [ 21 | 7, 22 | 7, 23 | 9, 24 | 9 25 | ], 26 | "texture": "#edge", 27 | "jmx_layers": [ 28 | { 29 | "texture": "#jmx_tex_edge", 30 | "material": "#jmx_mat_edge", 31 | "tag": "#jmx_tag_edge", 32 | "color": "#jmx_color_edge" 33 | }, 34 | { 35 | "texture": "#jmx_tex_edge", 36 | "material": "#jmx_mat_edge", 37 | "tag": "#jmx_tag_edge", 38 | "color": "#jmx_color_edge" 39 | } 40 | ] 41 | }, 42 | "up": { 43 | "uv": [ 44 | 7, 45 | 7, 46 | 9, 47 | 9 48 | ], 49 | "texture": "#edge", 50 | "jmx_layers": [ 51 | { 52 | "texture": "#jmx_tex_edge", 53 | "material": "#jmx_mat_edge", 54 | "tag": "#jmx_tag_edge", 55 | "color": "#jmx_color_edge" 56 | }, 57 | { 58 | "texture": "#jmx_tex_edge", 59 | "material": "#jmx_mat_edge", 60 | "tag": "#jmx_tag_edge", 61 | "color": "#jmx_color_edge" 62 | } 63 | ] 64 | } 65 | } 66 | } 67 | ], 68 | "jmx": { 69 | "textures": { 70 | "particle": "#jmx_tex_particle" 71 | } 72 | }, 73 | "jmx_version": 1 74 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/3/jmx_orientable.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/3/jmx_orientable_with_bottom", 3 | "textures": { 4 | "bottom": "#top" 5 | }, 6 | "jmx": { 7 | "textures": { 8 | "layered_textures": [ 9 | { 10 | "jmx_tex_bottom": "#jmx_tex_top" 11 | }, 12 | { 13 | "jmx_tex_bottom": "#jmx_tex_top" 14 | }, 15 | { 16 | "jmx_tex_bottom": "#jmx_tex_top" 17 | } 18 | ] 19 | }, 20 | "materials": [ 21 | { 22 | "jmx_mat_bottom": "#jmx_mat_top" 23 | }, 24 | { 25 | "jmx_mat_bottom": "#jmx_mat_top" 26 | }, 27 | { 28 | "jmx_mat_bottom": "#jmx_mat_top" 29 | } 30 | ], 31 | "tags": [ 32 | { 33 | "jmx_tag_bottom": "#jmx_tag_top" 34 | }, 35 | { 36 | "jmx_tag_bottom": "#jmx_tag_top" 37 | }, 38 | { 39 | "jmx_tag_bottom": "#jmx_tag_top" 40 | } 41 | ], 42 | "colors": [ 43 | { 44 | "jmx_color_bottom": "#jmx_color_top" 45 | }, 46 | { 47 | "jmx_color_bottom": "#jmx_color_top" 48 | }, 49 | { 50 | "jmx_color_bottom": "#jmx_color_top" 51 | } 52 | ] 53 | }, 54 | "jmx_version": 1 55 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/3/jmx_template_glass_pane_noside.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, 3 | "textures": { 4 | "particle": "#pane" 5 | }, 6 | "elements": [ 7 | { 8 | "from": [ 9 | 7, 10 | 0, 11 | 7 12 | ], 13 | "to": [ 14 | 9, 15 | 16, 16 | 9 17 | ], 18 | "faces": { 19 | "north": { 20 | "uv": [ 21 | 9, 22 | 0, 23 | 7, 24 | 16 25 | ], 26 | "texture": "#pane", 27 | "jmx_layers": [ 28 | { 29 | "texture": "#jmx_tex_pane", 30 | "material": "#jmx_mat_pane", 31 | "tag": "#jmx_tag_pane", 32 | "color": "#jmx_color_pane" 33 | }, 34 | { 35 | "texture": "#jmx_tex_pane", 36 | "material": "#jmx_mat_pane", 37 | "tag": "#jmx_tag_pane", 38 | "color": "#jmx_color_pane" 39 | }, 40 | { 41 | "texture": "#jmx_tex_pane", 42 | "material": "#jmx_mat_pane", 43 | "tag": "#jmx_tag_pane", 44 | "color": "#jmx_color_pane" 45 | } 46 | ] 47 | } 48 | } 49 | } 50 | ], 51 | "jmx": { 52 | "textures": { 53 | "particle": "#jmx_tex_particle" 54 | } 55 | }, 56 | "jmx_version": 1 57 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/3/jmx_template_glass_pane_noside_alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "ambientocclusion": false, 3 | "textures": { 4 | "particle": "#pane" 5 | }, 6 | "elements": [ 7 | { 8 | "from": [ 9 | 7, 10 | 0, 11 | 7 12 | ], 13 | "to": [ 14 | 9, 15 | 16, 16 | 9 17 | ], 18 | "faces": { 19 | "east": { 20 | "uv": [ 21 | 7, 22 | 0, 23 | 9, 24 | 16 25 | ], 26 | "texture": "#pane", 27 | "jmx_layers": [ 28 | { 29 | "texture": "#jmx_tex_pane", 30 | "material": "#jmx_mat_pane", 31 | "tag": "#jmx_tag_pane", 32 | "color": "#jmx_color_pane" 33 | }, 34 | { 35 | "texture": "#jmx_tex_pane", 36 | "material": "#jmx_mat_pane", 37 | "tag": "#jmx_tag_pane", 38 | "color": "#jmx_color_pane" 39 | }, 40 | { 41 | "texture": "#jmx_tex_pane", 42 | "material": "#jmx_mat_pane", 43 | "tag": "#jmx_tag_pane", 44 | "color": "#jmx_color_pane" 45 | } 46 | ] 47 | } 48 | } 49 | } 50 | ], 51 | "jmx": { 52 | "textures": { 53 | "particle": "#jmx_tex_particle" 54 | } 55 | }, 56 | "jmx_version": 1 57 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/assets/jmx/models/block/v1/thin_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/block", 3 | "display": { 4 | "thirdperson_righthand": { 5 | "rotation": [ 6 | 75, 7 | 45, 8 | 0 9 | ], 10 | "translation": [ 11 | 0, 12 | 2.5, 13 | 2 14 | ], 15 | "scale": [ 16 | 0.375, 17 | 0.375, 18 | 0.375 19 | ] 20 | }, 21 | "firstperson_righthand": { 22 | "rotation": [ 23 | 0, 24 | 45, 25 | 0 26 | ], 27 | "translation": [ 28 | 0, 29 | 4.2, 30 | 0 31 | ], 32 | "scale": [ 33 | 0.4, 34 | 0.4, 35 | 0.4 36 | ] 37 | }, 38 | "firstperson_lefthand": { 39 | "rotation": [ 40 | 0, 41 | 225, 42 | 0 43 | ], 44 | "translation": [ 45 | 0, 46 | 4.2, 47 | 0 48 | ], 49 | "scale": [ 50 | 0.4, 51 | 0.4, 52 | 0.4 53 | ] 54 | } 55 | }, 56 | "jmx_version": 1 57 | } -------------------------------------------------------------------------------- /fabric/src/main/resources/fabric.mod.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "id": "json-model-extensions", 4 | "version": "${version}", 5 | 6 | "name": "JSON Model Extensions", 7 | "description": "JSON Model Extensions for Minecraft Rendering", 8 | "authors": [ 9 | "Grondag", "alex5nader" 10 | ], 11 | "contact": { 12 | "sources": "https://github.com/vram-guild/json-model-extensions", 13 | "homepage": "https://github.com/vram-guild/json-model-extensions", 14 | "issues": "https://github.com/vram-guild/json-model-extensions/issues" 15 | }, 16 | "license": "LGPL-3.0", 17 | "icon": "assets/jmx/jmx_icon.png", 18 | 19 | "environment": "client", 20 | "entrypoints": { 21 | "client": [ "io.vram.jmx.JsonModelExtensions" ] 22 | }, 23 | "mixins": [ 24 | "jmx.mixins.json" 25 | ], 26 | "custom": { 27 | "modmenu": { 28 | "badges": [ "library" ] 29 | } 30 | }, 31 | "depends": { 32 | "fabricloader": ">=0.14.19", 33 | "minecraft": ">=1.19.2", 34 | "java": ">=17" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /fabric/src/main/resources/jmx.mixins.json: -------------------------------------------------------------------------------- 1 | { 2 | "required": true, 3 | "minVersion": "0.8", 4 | "package": "io.vram.jmx.mixin", 5 | "compatibilityLevel": "JAVA_16", 6 | "client": [ 7 | "MixinBlockElementFace", 8 | "MixinBlockElementFaceDeserializer", 9 | "MixinBlockModel", 10 | "MixinBlockModelDeserializer", 11 | "MixinFaceBakery", 12 | "MixinModelBakery", 13 | "MixinTextureAtlas" 14 | ], 15 | "injectors": { 16 | "defaultRequire": 1 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /forge/gradle.properties: -------------------------------------------------------------------------------- 1 | #### STANDARD VRAM PROPERTIES FOR FORGE 1.18 2 | #### MAKE CHANGES IN ..\project_common.gradle 3 | #### CHANGES MADE HERE WILL BE OVERWRITTEN! 4 | 5 | org.gradle.jvmargs=-Xmx2G 6 | org.gradle.daemon=false 7 | 8 | loom.platform=forge 9 | -------------------------------------------------------------------------------- /forge/settings.gradle: -------------------------------------------------------------------------------- 1 | // VRAM STANDARD GRADLE SETTINGS FOR FORGE 1.18 2 | // DO NOT MAKE CHANGES HERE - THEY WILL BE OVERWRITTEN BY AUTOMATED UPDATE 3 | 4 | pluginManagement { 5 | repositories { 6 | maven { url "https://maven.fabricmc.net/" } 7 | maven { url "https://maven.architectury.dev/" } 8 | maven { url "https://files.minecraftforge.net/maven/" } 9 | gradlePluginPortal() 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/gradlew -------------------------------------------------------------------------------- /gruntle.sh: -------------------------------------------------------------------------------- 1 | readonly MC_VERSION="1.19" 2 | 3 | echo "GRUNTLE REFRESH FOR $MC_VERSION - IF THIS IS NOT A $MC_VERSION BRANCH YOU HAVE DONE A BAD" 4 | 5 | if [[ $1 == 'auto' ]]; then 6 | if ! grep -q gruntle .gitignore; then 7 | echo "Auto-update requires .gitignore to exclude the gruntle folder. Please update .gitignore and retry." 8 | exit 1 9 | fi 10 | 11 | if output=$(git status --porcelain) && [ -z "$output" ]; then 12 | echo "Attempting auto-update. Git starting status is clean." 13 | else 14 | echo "Auto-update requires clean git status. Please commit or stash changes and retry." 15 | exit 1 16 | fi 17 | fi 18 | 19 | echo 'Checking for build updates...' 20 | # delete gruntle repo folder if exists from aborted run 21 | if [ -d gruntle-${MC_VERSION} ]; then 22 | rm -rf gruntle-${MC_VERSION} 23 | fi 24 | 25 | # download and unpack latest gruntle bundle 26 | curl https://github.com/vram-guild/gruntle/archive/refs/heads/${MC_VERSION}.zip -sSOJL 27 | unzip -q gruntle-${MC_VERSION} 28 | 29 | # copy content for our branch and then remove bundle 30 | # this handles simple, file-based updates: checkstyle, standard gradle configs, etc. 31 | cp -R gruntle-${MC_VERSION}/bundle/* . 32 | rm -rf gruntle-${MC_VERSION} 33 | rm gruntle-${MC_VERSION}.zip 34 | 35 | # run latest refresh 36 | source gruntle/refresh.sh 37 | 38 | # remove scripts 39 | rm -rf gruntle 40 | 41 | echo 'Gruntle refresh complete' 42 | -------------------------------------------------------------------------------- /project_common.gradle: -------------------------------------------------------------------------------- 1 | 2 | project.group = 'io.vram' 3 | ext.author = 'Grondag' 4 | ext.title = 'JSON Model Extensions' 5 | ext.mod_name = 'jmx' 6 | ext.mod_version = '19.2' 7 | 8 | ext.github_repository_owner = 'vram-guild' 9 | ext.github_repository = 'json-model-extensions' 10 | 11 | ext.curseforge_id = '324066' 12 | ext.modrinth_id = 'OHg71hvQ' 13 | ext.release_type = 'release' 14 | 15 | ext.build_fat_jar = true 16 | ext.build_forge = false 17 | -------------------------------------------------------------------------------- /scripts/jmx.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore 2 | import {Array, Partial, String, Dictionary, Number, Static, Boolean} from "https://raw.githubusercontent.com/alex5nader/runtypes/master/src/index.ts"; 3 | import { 4 | Face, 5 | FacesOf, 6 | ModelElementOf, 7 | ModelOf, 8 | } from "./vanilla.ts"; 9 | 10 | export type Layers = Static; 11 | export const Layers = Array(Dictionary(String)); 12 | 13 | export type JmxTextures = Static; 14 | export const JmxTextures = Dictionary(String).And(Partial({ 15 | layered_textures: Layers, 16 | })); 17 | 18 | export type JmxModelExt = Static; 19 | export const JmxModelExt = Partial({ 20 | textures: JmxTextures, 21 | materials: Layers, 22 | tags: Layers, 23 | colors: Layers, 24 | }); 25 | 26 | export type FaceLayer = Static; 27 | export const FaceLayer = Partial({ 28 | texture: String, 29 | material: String, 30 | tag: String, 31 | color: String, 32 | }); 33 | 34 | export type JmxLayers = Static; 35 | export const JmxLayers = Array(FaceLayer); 36 | 37 | export type FaceExt = Static; 38 | export const FaceExt = Face.And(Partial({ 39 | jmx_layers: JmxLayers, 40 | })); 41 | 42 | export type JmxModel = Static; 43 | export const JmxModel = ModelOf(ModelElementOf(FacesOf(FaceExt))).And(Partial({ 44 | jmx_version: Number, 45 | jmx: JmxModelExt, 46 | })); 47 | -------------------------------------------------------------------------------- /testpack/assets/jmx/materials/bedrock/background.json: -------------------------------------------------------------------------------- 1 | { 2 | "blendMode": "solid", 3 | "emissive": false, 4 | "disableAo": false, 5 | "disableColorIndex": true, 6 | "disableDiffuse": false 7 | } -------------------------------------------------------------------------------- /testpack/assets/jmx/materials/bedrock/fern.json: -------------------------------------------------------------------------------- 1 | { 2 | "blendMode": "translucent", 3 | "emissive": true, 4 | "disableAo": true, 5 | "disableColorIndex": true, 6 | "disableDiffuse": true 7 | } -------------------------------------------------------------------------------- /testpack/assets/jmx/materials/redstone.json: -------------------------------------------------------------------------------- 1 | { 2 | "fragmentSource": "jmx:shaders/redstone.frag", 3 | "disableAo": false, 4 | "disableColorIndex": false, 5 | "disableDiffuse": false, 6 | "blendMode": "solid", 7 | "emissive": false 8 | } -------------------------------------------------------------------------------- /testpack/assets/jmx/materials/redstone/background.json: -------------------------------------------------------------------------------- 1 | { 2 | "blendMode": "cutout_mipped" 3 | } -------------------------------------------------------------------------------- /testpack/assets/jmx/materials/redstone/bits.json: -------------------------------------------------------------------------------- 1 | { 2 | "blendMode": "cutout_mipped", 3 | "emissive": true, 4 | "disableAo": true, 5 | "disableDiffuse": true 6 | } -------------------------------------------------------------------------------- /testpack/assets/jmx/shaders/redstone.frag: -------------------------------------------------------------------------------- 1 | #include frex:shaders/api/fragment.glsl 2 | 3 | void frx_startFragment(inout frx_FragmentData fragData) { 4 | fragData.emissivity = 1.0 - fragData.spriteColor.a; 5 | fragData.spriteColor.a = 1.0; 6 | } 7 | -------------------------------------------------------------------------------- /testpack/assets/jmx/textures/block/redstone_ore_bits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/testpack/assets/jmx/textures/block/redstone_ore_bits.png -------------------------------------------------------------------------------- /testpack/assets/jmx/textures/block/redstone_ore_shader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/testpack/assets/jmx/textures/block/redstone_ore_shader.png -------------------------------------------------------------------------------- /testpack/assets/jmx/textures/block/stone_ore_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vram-guild/json-model-extensions/e9f529b5dd4ee0f04a0e0d56e59f110e8ac5aca4/testpack/assets/jmx/textures/block/stone_ore_mask.png -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/block/bedrock.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_cube_all", 3 | "textures": { "all": "block/white_concrete" }, 4 | "jmx": { 5 | "textures": { 6 | "jmx_tex_particle": "minecraft:block/white_concrete", 7 | "layered_textures": [ 8 | { "jmx_tex_all": "minecraft:block/white_concrete" }, 9 | { "jmx_tex_all": "minecraft:block/fern" } 10 | ] 11 | }, 12 | "materials": [ 13 | { "jmx_mat_all": "jmx:bedrock/background" }, 14 | { "jmx_mat_all": "jmx:bedrock/fern" } 15 | ], 16 | "colors": [ 17 | { "jmx_color_all": "0xFFFF0000" }, 18 | { "jmx_color_all": "0xFF00FFFF" } 19 | ] 20 | }, 21 | "jmx_version": 1 22 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/block/bedrock_mirrored.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_cube_mirrored_all", 3 | "textures": { "all": "block/white_concrete" }, 4 | "jmx": { 5 | "textures": { 6 | "jmx_tex_particle": "minecraft:block/white_concrete", 7 | "layered_textures": [ 8 | { "jmx_tex_all": "minecraft:block/white_concrete" }, 9 | { "jmx_tex_all": "minecraft:block/fern" } 10 | ] 11 | }, 12 | "materials": [ 13 | { "jmx_mat_all": "jmx:bedrock/background" }, 14 | { "jmx_mat_all": "jmx:bedrock/fern" } 15 | ], 16 | "colors": [ 17 | { "jmx_color_all": "0xFFFF0000" }, 18 | { "jmx_color_all": "0xFF00FFFF" } 19 | ] 20 | }, 21 | "jmx_version": 1 22 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/block/oak_planks.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_cube_all", 3 | "textures": { "all": "minecraft:block/redstone_ore" }, 4 | "jmx": { 5 | "textures": { 6 | "jmx_tex_particle": "minecraft:block/redstone_ore", 7 | "layered_textures": [ 8 | { "jmx_tex_all": "block/oak_planks" }, 9 | { "jmx_tex_all": "jmx:block/redstone_ore_bits" } 10 | ] 11 | }, 12 | "materials": [ 13 | { "jmx_mat_all": "jmx:redstone/background" }, 14 | { "jmx_mat_all": "jmx:redstone/bits" } 15 | ] 16 | }, 17 | "frex": { 18 | "textures": { 19 | "jmx_tex_particle": "minecraft:block/redstone_ore", 20 | "layered_textures": [ 21 | { "jmx_tex_all": "jmx:block/redstone_ore_shader" }, 22 | { "jmx_tex_all": null } 23 | ] 24 | }, 25 | "materials": [ 26 | { "jmx_mat_all": "jmx:redstone" }, 27 | { "jmx_mat_all": null } 28 | ] 29 | }, 30 | "jmx_version": 1 31 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/block/oak_slab.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_slab", 3 | "textures": { 4 | "top": "minecraft:block/redstone_ore", 5 | "bottom": "minecraft:block/redstone_ore", 6 | "side": "minecraft:block/redstone_ore" 7 | }, 8 | "jmx": { 9 | "textures": { 10 | "jmx_tex_particle": "minecraft:block/redstone_ore", 11 | "layered_textures": [ 12 | { 13 | "jmx_tex_top": "block/oak_planks", 14 | "jmx_tex_bottom": "block/oak_planks", 15 | "jmx_tex_side": "block/oak_planks" 16 | }, 17 | { 18 | "jmx_tex_top": "jmx:block/redstone_ore_bits", 19 | "jmx_tex_bottom": "jmx:block/redstone_ore_bits", 20 | "jmx_tex_side": "jmx:block/redstone_ore_bits" 21 | } 22 | ] 23 | }, 24 | "materials": [ 25 | { 26 | "jmx_mat_top": "jmx:redstone/background", 27 | "jmx_mat_bottom": "jmx:redstone/background", 28 | "jmx_mat_side": "jmx:redstone/background" 29 | }, 30 | { 31 | "jmx_mat_top": "jmx:redstone/bits", 32 | "jmx_mat_bottom": "jmx:redstone/bits", 33 | "jmx_mat_side": "jmx:redstone/bits" 34 | } 35 | ] 36 | }, 37 | "frex": { 38 | "textures": { 39 | "jmx_tex_particle": "minecraft:block/redstone_ore", 40 | "layered_textures": [ 41 | { 42 | "jmx_tex_top": "jmx:block/redstone_ore_shader", 43 | "jmx_tex_bottom": "jmx:block/redstone_ore_shader", 44 | "jmx_tex_side": "jmx:block/redstone_ore_shader" 45 | }, 46 | { 47 | "jmx_tex_top": null, 48 | "jmx_tex_bottom": null, 49 | "jmx_tex_side": null 50 | } 51 | ] 52 | }, 53 | "materials": [ 54 | { 55 | "jmx_mat_top": "jmx:redstone", 56 | "jmx_mat_bottom": "jmx:redstone", 57 | "jmx_mat_side": "jmx:redstone" 58 | } 59 | ] 60 | }, 61 | "jmx_version": 1 62 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/block/oak_slab_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_slab_top", 3 | "textures": { 4 | "top": "minecraft:block/redstone_ore", 5 | "bottom": "minecraft:block/redstone_ore", 6 | "side": "minecraft:block/redstone_ore" 7 | }, 8 | "jmx": { 9 | "textures": { 10 | "jmx_tex_particle": "minecraft:block/redstone_ore", 11 | "layered_textures": [ 12 | { 13 | "jmx_tex_top": "block/oak_planks", 14 | "jmx_tex_bottom": "block/oak_planks", 15 | "jmx_tex_side": "block/oak_planks" 16 | }, 17 | { 18 | "jmx_tex_top": "jmx:block/redstone_ore_bits", 19 | "jmx_tex_bottom": "jmx:block/redstone_ore_bits", 20 | "jmx_tex_side": "jmx:block/redstone_ore_bits" 21 | } 22 | ] 23 | }, 24 | "materials": [ 25 | { 26 | "jmx_mat_top": "jmx:redstone/background", 27 | "jmx_mat_bottom": "jmx:redstone/background", 28 | "jmx_mat_side": "jmx:redstone/background" 29 | }, 30 | { 31 | "jmx_mat_top": "jmx:redstone/bits", 32 | "jmx_mat_bottom": "jmx:redstone/bits", 33 | "jmx_mat_side": "jmx:redstone/bits" 34 | } 35 | ] 36 | }, 37 | "frex": { 38 | "textures": { 39 | "jmx_tex_particle": "minecraft:block/redstone_ore", 40 | "layered_textures": [ 41 | { 42 | "jmx_tex_top": "jmx:block/redstone_ore_shader", 43 | "jmx_tex_bottom": "jmx:block/redstone_ore_shader", 44 | "jmx_tex_side": "jmx:block/redstone_ore_shader" 45 | }, 46 | { 47 | "jmx_tex_top": null, 48 | "jmx_tex_bottom": null, 49 | "jmx_tex_side": null 50 | } 51 | ] 52 | }, 53 | "materials": [ 54 | { 55 | "jmx_mat_top": "jmx:redstone", 56 | "jmx_mat_bottom": "jmx:redstone", 57 | "jmx_mat_side": "jmx:redstone" 58 | } 59 | ] 60 | }, 61 | "jmx_version": 1 62 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/block/redstone_ore.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "jmx:block/v1/2/jmx_cube_all", 3 | "textures": { "all": "minecraft:block/redstone_ore" }, 4 | "jmx": { 5 | "textures": { 6 | "jmx_tex_particle": "minecraft:block/redstone_ore", 7 | "layered_textures": [ 8 | { "jmx_tex_all": "jmx:block/stone_ore_mask" }, 9 | { "jmx_tex_all": "jmx:block/redstone_ore_bits" } 10 | ] 11 | }, 12 | "materials": [ 13 | { "jmx_mat_all": "jmx:redstone/background" }, 14 | { "jmx_mat_all": "jmx:redstone/bits" } 15 | ] 16 | }, 17 | "frex": { 18 | "textures": { 19 | "jmx_tex_particle": "minecraft:block/redstone_ore", 20 | "layered_textures": [ 21 | { "jmx_tex_all": "jmx:block/redstone_ore_shader" }, 22 | { "jmx_tex_all": null } 23 | ] 24 | }, 25 | "materials": [ 26 | { "jmx_mat_all": "jmx:redstone" }, 27 | { "jmx_mat_all": null } 28 | ] 29 | }, 30 | "jmx_version": 1 31 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/item/bedrock.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/bedrock", 3 | "jmx_version": 1 4 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/item/oak_planks.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/oak_planks", 3 | "jmx_version": 1 4 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/item/oak_slab.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/oak_slab", 3 | "jmx_version": 1 4 | } -------------------------------------------------------------------------------- /testpack/assets/minecraft/models/item/redstone_ore.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "minecraft:block/redstone_ore", 3 | "jmx_version": 1 4 | } -------------------------------------------------------------------------------- /testpack/pack.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "pack": { 3 | "pack_format": 6, 4 | "description": "Jason Model Extensions (JMX) Test Pack"} 5 | } 6 | -------------------------------------------------------------------------------- /upload.sh: -------------------------------------------------------------------------------- 1 | if output=$(git status --porcelain) && [ -z "$output" ]; then 2 | echo "Uploading to mod distribution sites" 3 | cd fabric 4 | ../gradlew curseforge modrinth --rerun-tasks 5 | cd .. 6 | 7 | cd forge 8 | ../gradlew curseforge modrinth --rerun-tasks 9 | cd .. 10 | else 11 | echo "Git has uncommitted changes - upload to mod distribution sites cancelled." 12 | fi 13 | --------------------------------------------------------------------------------