From 7134d5d55de58a361e469252e0292a83806c46f4 Mon Sep 17 00:00:00 2001 From: rearth Date: Wed, 6 Mar 2024 23:13:54 +0100 Subject: [PATCH] Begin adding atomic forge --- .../oritech/client/init/ModRenderers.java | 2 +- .../block/models/atomic_forge.animation.json | 617 ++++++++++++++++++ .../geo/block/models/atomic_forge.geo.json | 236 +++++++ .../textures/block/models/atomic_forge.png | Bin 0 -> 8207 bytes 4 files changed, 854 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/oritech/animations/block/models/atomic_forge.animation.json create mode 100644 src/main/resources/assets/oritech/geo/block/models/atomic_forge.geo.json create mode 100644 src/main/resources/assets/oritech/textures/block/models/atomic_forge.png diff --git a/src/main/java/rearth/oritech/client/init/ModRenderers.java b/src/main/java/rearth/oritech/client/init/ModRenderers.java index e812d5528..3da77c5f8 100644 --- a/src/main/java/rearth/oritech/client/init/ModRenderers.java +++ b/src/main/java/rearth/oritech/client/init/ModRenderers.java @@ -16,7 +16,7 @@ public static void registerRenderers() { BlockEntityRendererFactories.register(BlockEntitiesContent.PULVERIZER_ENTITY, ctx -> new MachineRenderer<>("models/pulverizer_block")); BlockEntityRendererFactories.register(BlockEntitiesContent.GRINDER_ENTITY, ctx -> new MachineRenderer<>("models/grinder_block")); BlockEntityRendererFactories.register(BlockEntitiesContent.ASSEMBLER_ENTITY, ctx -> new MachineRenderer<>("models/assembler_block")); - BlockEntityRendererFactories.register(BlockEntitiesContent.FOUNDRY_ENTITY, ctx -> new MachineRenderer<>("models/foundry_block")); + BlockEntityRendererFactories.register(BlockEntitiesContent.FOUNDRY_ENTITY, ctx -> new MachineRenderer<>("models/atomic_forge")); BlockEntityRendererFactories.register(BlockEntitiesContent.CENTRIFUGE_ENTITY, ctx -> new MachineRenderer<>("models/centrifuge_block")); BlockEntityRendererFactories.register(BlockEntitiesContent.POWERED_FURNACE_ENTITY, ctx -> new MachineRenderer<>("models/powered_furnace_block")); BlockEntityRendererFactories.register(BlockEntitiesContent.PLACER_BLOCK_ENTITY, ctx -> new MachineGantryRenderer()); diff --git a/src/main/resources/assets/oritech/animations/block/models/atomic_forge.animation.json b/src/main/resources/assets/oritech/animations/block/models/atomic_forge.animation.json new file mode 100644 index 000000000..e1cdeded2 --- /dev/null +++ b/src/main/resources/assets/oritech/animations/block/models/atomic_forge.animation.json @@ -0,0 +1,617 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true + }, + "packaged": { + "animation_length": 0.25, + "bones": { + "rods": { + "scale": { + "vector": [0.799, 0.799, 0.799] + } + }, + "podest": { + "scale": { + "vector": [0.5, 0.5, 0.5] + } + }, + "outline_ring": { + "position": { + "vector": [0, -1.75, 0] + }, + "scale": { + "vector": [0.4, 0.4, 0.4] + } + }, + "ring_support": { + "scale": { + "vector": [0.3, 0.3, 0.3] + } + }, + "capacitor_bank": { + "rotation": { + "vector": [90, 0, 0] + }, + "position": { + "vector": [-15, 1.25, -11.25] + }, + "scale": { + "vector": [1, 1, 0.6] + } + }, + "tanks": { + "position": { + "vector": [17.25, 4.25, 17.75] + } + }, + "tubes": { + "position": { + "vector": [10, 0, 17] + }, + "scale": { + "vector": [0.3, 0.2, 0.5] + } + }, + "edge": { + "position": { + "vector": [15, 0, -15] + } + }, + "tubes_second": { + "position": { + "vector": [-16, -2, 18] + }, + "scale": { + "vector": [1, 0.4, 1] + } + }, + "tanks_second": { + "position": { + "vector": [-18.5, -5.5, 18.25] + }, + "scale": { + "vector": [1, 0.075, 1] + } + }, + "longPanel": { + "scale": { + "vector": [0.9, 1, 0.3] + } + }, + "bone3": { + "position": { + "vector": [-2, -6, 0] + } + }, + "bone4": { + "position": { + "vector": [-2, -6, 0] + } + }, + "bone5": { + "position": { + "vector": [2, -6, 0] + } + }, + "bone6": { + "position": { + "vector": [2, -6, 0] + } + }, + "sidePillars": { + "position": { + "vector": [0, -5, 0] + }, + "scale": { + "vector": [1, 0.2, 1] + } + }, + "panelB": { + "rotation": { + "vector": [0, 0, -90] + }, + "position": { + "vector": [-5.499, 0, 0] + } + }, + "panelA": { + "rotation": { + "vector": [0, 0, 90] + }, + "position": { + "vector": [4, 0, 0] + } + }, + "bottomPlate": { + "scale": { + "vector": [0.35, 0.35, 0.35] + } + } + } + }, + "deploy": { + "animation_length": 5.25, + "bones": { + "rods": { + "scale": { + "1.9583": { + "vector": [0.799, 0.799, 0.799] + }, + "2.5": { + "vector": [0.9, 0.9, 0.9], + "easing": "easeInOutQuart" + }, + "3.2083": { + "vector": [0.9, 0.9, 0.9] + }, + "3.5": { + "vector": [1, 1, 1] + } + } + }, + "podest": { + "scale": { + "0.9583": { + "vector": [0.5, 0.5, 0.5] + }, + "1.4167": { + "vector": [1, 1, 1], + "easing": "easeInQuart" + } + } + }, + "outline_ring": { + "position": { + "1.0833": { + "vector": [0, -1.75, 0] + }, + "1.5833": { + "vector": [0, 3.76, 0], + "easing": "easeInOutQuint" + }, + "1.875": { + "vector": [0, 3.76, 0], + "easing": "easeInOutQuint" + }, + "2.0833": { + "vector": [0, 3.76, 0.25], + "easing": "easeInOutQuint" + }, + "2.25": { + "vector": [0, 3.76, -0.19], + "easing": "easeInOutQuint" + }, + "2.5": { + "vector": [0, 3.76, 0], + "easing": "easeInOutQuint" + }, + "2.7917": { + "vector": [0, 3.76, 0], + "easing": "easeInOutQuint" + }, + "3.2083": { + "vector": [0, 0, 0], + "easing": "easeOutQuart" + } + }, + "scale": { + "0.7083": { + "vector": [0.4, 0.4, 0.4] + }, + "1.2083": { + "vector": [0.5759, 0.5759, 0.5759], + "easing": "easeInOutQuint" + }, + "2.5": { + "vector": [0.5759, 0.5759, 0.5759], + "easing": "easeInOutQuint" + }, + "2.875": { + "vector": [1, 1, 1], + "easing": "easeOutQuint" + } + } + }, + "ring_support": { + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "2.625": { + "vector": [0, -2, 0] + }, + "3.2083": { + "vector": [0, 0, 0] + } + }, + "scale": { + "2.5": { + "vector": [0.3, 0.3, 0.3] + }, + "2.875": { + "vector": [1, 0.3, 1] + }, + "3.1667": { + "vector": [1, 1, 1] + } + } + }, + "capacitor_bank": { + "rotation": { + "2.3333": { + "vector": [90, 0, 0] + }, + "2.75": { + "vector": [0, 0, 0], + "easing": "easeInOutCubic" + } + }, + "position": { + "1.7083": { + "vector": [-15, 1.25, -11.25] + }, + "2.2917": { + "vector": [0, 1.25, -11.25], + "easing": "easeInOutQuint" + }, + "2.9583": { + "vector": [0, 0, -11.25], + "easing": "easeInOutQuint" + }, + "3.5833": { + "vector": [0, 0, 0], + "easing": "easeInOutBack" + } + }, + "scale": { + "2.375": { + "vector": [1, 1, 0.6] + }, + "2.75": { + "vector": [1, 1, 1], + "easing": "easeInOutCubic" + } + } + }, + "tanks": { + "position": { + "0.0": { + "vector": [17.25, 4.25, 17.75] + }, + "0.7917": { + "vector": [17.25, -2.75, 17.75] + }, + "1.8333": { + "vector": [17.25, -2.75, 17.75] + }, + "2.5417": { + "vector": [0, -2.75, 17.75], + "easing": "easeOutQuint" + }, + "3.4583": { + "vector": [0, -2.75, 0], + "easing": "easeInOutQuart" + }, + "3.9167": { + "vector": [0, 0, 0] + } + } + }, + "tubes": { + "position": { + "2.625": { + "vector": [10, -3, 17] + }, + "2.9583": { + "vector": [0, -5, 0] + }, + "3.2083": { + "vector": [0, 0, 0] + } + }, + "scale": { + "2.875": { + "vector": [0.025, 0.2, 0.5] + }, + "3.4167": { + "vector": [0.025, 0.2, 0.5] + }, + "3.7917": { + "vector": [0.025, 1, 1] + }, + "4.125": { + "vector": [1, 1, 1] + }, + "4.5": { + "vector": [1, 1, 1] + }, + "4.7083": { + "vector": [0.985, 1, 1], + "easing": "easeInOutQuint" + }, + "4.9583": { + "vector": [1.02, 1, 1], + "easing": "easeInOutQuint" + }, + "5.25": { + "vector": [1, 1, 1] + } + } + }, + "edge": { + "position": { + "1.625": { + "vector": [15, 0, -15] + }, + "2.0833": { + "vector": [0, 0, 0], + "easing": "easeOutExpo" + } + } + }, + "tubes_second": { + "position": { + "3.2083": { + "vector": [-16, -2, 18] + }, + "3.4583": { + "vector": [-16, -2.75, 18] + }, + "4.1667": { + "vector": [0, -3, 0.5] + }, + "4.625": { + "vector": [0, 0, 0], + "easing": "easeInQuart" + } + }, + "scale": { + "4.1667": { + "vector": [1, 0.05, 1] + }, + "4.625": { + "vector": [1, 1, 1], + "easing": "easeInQuart" + } + } + }, + "tanks_second": { + "rotation": { + "vector": [0, 0, 0] + }, + "position": { + "3.4167": { + "vector": [-18.5, -5.5, 18.25] + }, + "3.875": { + "vector": [-18.5, 0, 0], + "easing": "easeOutQuint" + }, + "4.375": { + "vector": [0, 0, 0], + "easing": "easeInOutQuint" + } + }, + "scale": { + "3.0": { + "vector": [1, 0.075, 1] + }, + "3.3333": { + "vector": [1, 1, 1] + } + } + }, + "longPanel": { + "position": { + "0.9583": { + "vector": [0, 0, 0] + }, + "1.2917": { + "vector": [0, 0, 0] + }, + "1.7917": { + "vector": [0, 0, 0] + } + }, + "scale": { + "0.4167": { + "vector": [0.9, 1, 0.3] + }, + "1.1667": { + "vector": [0.9, 0.2, 0.3] + }, + "1.7083": { + "vector": [1, 0.2, 1], + "easing": "linear" + }, + "2.125": { + "vector": [1, 1, 1], + "easing": "easeInOutCirc" + } + } + }, + "bone3": { + "position": { + "3.5": { + "vector": [-2, -6, 0] + }, + "3.875": { + "vector": [0, -6, 0], + "easing": "easeInCubic" + }, + "4.3333": { + "vector": [0, 0, 0], + "easing": "easeInCubic" + } + } + }, + "bone4": { + "position": { + "4.25": { + "vector": [-2, -6, 0] + }, + "4.5": { + "vector": [0, -6, 0], + "easing": "easeInQuart" + }, + "4.875": { + "vector": [0, 0, 0], + "easing": "easeInQuart" + } + } + }, + "bone5": { + "position": { + "4.0": { + "vector": [2, -6, 0] + }, + "4.4167": { + "vector": [0, -6, 0], + "easing": "easeInQuart" + }, + "4.7083": { + "vector": [0, 0, 0], + "easing": "easeInQuart" + } + } + }, + "bone6": { + "position": { + "3.6667": { + "vector": [2, -6, 0] + }, + "4.0": { + "vector": [0, -6, 0], + "easing": "easeInCubic" + }, + "4.4583": { + "vector": [0, 0, 0], + "easing": "easeInQuart" + } + } + }, + "sidePillars": { + "position": { + "1.625": { + "vector": [0, -5, 0] + }, + "2.3333": { + "vector": [0, 0, 0], + "easing": "easeOutExpo" + }, + "2.5833": { + "vector": [0, -0.25, 0.25], + "easing": "easeInOutExpo" + }, + "2.875": { + "vector": [0, 0.2, 0.01], + "easing": "easeInOutExpo" + }, + "3.2083": { + "vector": [0, 0, 0], + "easing": "easeOutExpo" + } + }, + "scale": { + "1.2917": { + "vector": [1, 0.2, 1] + }, + "1.7083": { + "vector": [1, 1, 1], + "easing": "easeInBack" + } + } + }, + "panelB": { + "rotation": { + "0.125": { + "vector": [0, 0, -90] + }, + "0.9167": { + "vector": [0, 0, 0], + "easing": "easeInBounce", + "easingArgs": [0.2] + } + }, + "position": { + "1.0833": { + "vector": [-5.499, 0, 0] + }, + "1.5": { + "vector": [0, 0, 0], + "easing": "easeInExpo" + } + } + }, + "panelA": { + "rotation": { + "0.0": { + "vector": [0, 0, 90] + }, + "0.8333": { + "vector": [0, 0, 0], + "easing": "easeInBounce", + "easingArgs": [0.2] + } + }, + "position": { + "1.0833": { + "vector": [4, 0, 0] + }, + "1.5": { + "vector": [0, 0, 0], + "easing": "easeInOutQuart" + } + } + }, + "ring_a": { + "position": { + "3.4167": { + "vector": [0, 0, 0] + }, + "3.7083": { + "vector": [0, 0, 0.3], + "easing": "easeInOutQuart" + }, + "4.0": { + "vector": [0, 0, -0.26], + "easing": "easeInOutQuart" + }, + "4.375": { + "vector": [0, 0, 0] + } + } + }, + "ring_b": { + "position": { + "3.2917": { + "vector": [0, 0, 0] + }, + "3.5833": { + "vector": [0, -1, 0], + "easing": "easeOutBack" + }, + "3.9167": { + "vector": [0, 0, 0], + "easing": "easeOutQuint" + } + } + }, + "bottomPlate": { + "scale": { + "1.25": { + "vector": [0.35, 0.35, 0.35] + }, + "1.8333": { + "vector": [1, 1, 1], + "easing": "easeOutExpo" + } + } + } + } + } + }, + "geckolib_format_version": 2 +} \ No newline at end of file diff --git a/src/main/resources/assets/oritech/geo/block/models/atomic_forge.geo.json b/src/main/resources/assets/oritech/geo/block/models/atomic_forge.geo.json new file mode 100644 index 000000000..7e494d721 --- /dev/null +++ b/src/main/resources/assets/oritech/geo/block/models/atomic_forge.geo.json @@ -0,0 +1,236 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.unknown", + "texture_width": 256, + "texture_height": 256, + "visible_bounds_width": 4, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 0.75, 0] + }, + "bones": [ + { + "name": "base", + "pivot": [0, 0, 0] + }, + { + "name": "bottomPlate", + "parent": "base", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-23, -0.003, -23], "size": [46, 1, 46], "uv": [0, 0]} + ] + }, + { + "name": "longPanel", + "parent": "base", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-8, 0, -24], "size": [16, 2, 48], "uv": [0, 47]} + ] + }, + { + "name": "shortpanels", + "parent": "base", + "pivot": [0, 0, 0] + }, + { + "name": "panelA", + "parent": "shortpanels", + "pivot": [-11, 1, 0], + "cubes": [ + { + "origin": [-24, 0, -8], + "size": [13, 2, 16], + "uv": { + "north": {"uv": [96, 63], "uv_size": [13, 2]}, + "east": {"uv": [80, 63], "uv_size": [16, 2]}, + "south": {"uv": [160, 63], "uv_size": [13, 2]}, + "west": {"uv": [15, 2], "uv_size": [16, 2]}, + "up": {"uv": [96, 47], "uv_size": [13, 16]}, + "down": {"uv": [145, 63], "uv_size": [-13, -16]} + } + } + ] + }, + { + "name": "panelB", + "parent": "shortpanels", + "pivot": [12.5, 1, 0], + "cubes": [ + { + "origin": [1, 0, -8], + "size": [13, 2, 16], + "pivot": [12.5, 1, 0], + "rotation": [0, 180, 0], + "uv": { + "north": {"uv": [96, 63], "uv_size": [13, 2]}, + "east": {"uv": [80, 63], "uv_size": [16, 2]}, + "south": {"uv": [160, 63], "uv_size": [13, 2]}, + "west": {"uv": [15, 2], "uv_size": [16, 2]}, + "up": {"uv": [96, 47], "uv_size": [13, 16]}, + "down": {"uv": [145, 63], "uv_size": [-13, -16]} + } + } + ] + }, + { + "name": "rods", + "pivot": [0, 0, 0] + }, + { + "name": "bone3", + "parent": "rods", + "pivot": [8, 14.375, 10], + "cubes": [ + {"origin": [6, 7, 6], "size": [4, 9, 4], "uv": [46, 125]} + ] + }, + { + "name": "bone4", + "parent": "rods", + "pivot": [8, 14.375, -10], + "cubes": [ + {"origin": [6, 7, -10], "size": [4, 9, 4], "uv": [30, 125]} + ] + }, + { + "name": "bone5", + "parent": "rods", + "pivot": [-8, 14.375, -10], + "cubes": [ + {"origin": [-10, 7, -10], "size": [4, 9, 4], "uv": [14, 125]} + ] + }, + { + "name": "bone6", + "parent": "rods", + "pivot": [-8, 14.375, 10], + "cubes": [ + {"origin": [-10, 7, 6], "size": [4, 9, 4], "uv": [80, 47]} + ] + }, + { + "name": "podest", + "pivot": [0, 0, 0] + }, + { + "name": "center", + "parent": "podest", + "pivot": [0, 9, 0], + "cubes": [ + {"origin": [-7, 9, -7], "size": [14, 2, 14], "uv": [72, 97]}, + {"origin": [-6, 6, -6], "size": [12, 3, 12], "uv": [0, 47]}, + {"origin": [-13, 5, -13], "size": [26, 2, 26], "inflate": 0.01, "uv": [80, 65]}, + {"origin": [-12, 1, -12], "size": [24, 4, 24], "inflate": 0.01, "uv": [0, 97]} + ] + }, + { + "name": "sidePillars", + "parent": "podest", + "pivot": [0, 10.5, 0], + "cubes": [ + {"origin": [-8, 4, -2], "size": [2, 8, 4], "uv": [0, 47]}, + {"origin": [-2, 4, 6], "size": [4, 8, 2], "uv": [0, 62]}, + {"origin": [-2, 4, -8], "size": [4, 8, 2], "uv": [72, 97]}, + {"origin": [6, 4, -2], "size": [2, 8, 4], "uv": [36, 47]} + ] + }, + { + "name": "outline_ring", + "pivot": [0, 0, 0] + }, + { + "name": "ring_a", + "parent": "outline_ring", + "pivot": [10.57409, 8.00667, -10.59258], + "cubes": [ + {"origin": [17, 7, -10], "size": [2, 2, 20], "uv": [0, 22]}, + {"origin": [11.75, 7.02, -19.75], "size": [2, 2, 12.75], "pivot": [12.75, 8, -14.75], "rotation": [0, 45, 0], "uv": [84, 118]}, + {"origin": [-10, 7, -19], "size": [20, 2, 2], "uv": [0, 85]} + ] + }, + { + "name": "ring_b", + "parent": "outline_ring", + "pivot": [-10.58294, 8.00667, 10.56446], + "cubes": [ + {"origin": [-19, 7, -10], "size": [2, 2, 20], "uv": [0, 0]}, + {"origin": [-27.1, 7.02, -19.75], "size": [2, 2, 12.75], "pivot": [12.75, 8, -14.75], "rotation": [0, 45, 0], "uv": [114, 97]}, + {"origin": [-10, 7, 17], "size": [20, 2, 2], "uv": [0, 81]} + ] + }, + { + "name": "ring_support", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-19, 1, -10], "size": [2, 6, 2], "uv": [24, 32]}, + {"origin": [17, 1, 8], "size": [2, 6, 2], "uv": [96, 81]}, + {"origin": [-10, 1, -19], "size": [2, 6, 2], "uv": [39, 73]}, + {"origin": [8, 1, 17], "size": [2, 6, 2], "uv": [36, 32]} + ] + }, + { + "name": "capacitor_bank", + "pivot": [17.50333, 1, 16.335], + "cubes": [ + {"origin": [14, 0, 13], "size": [7, 12, 1], "uv": [25, 62]}, + {"origin": [14, 0, 14.01], "size": [7, 11, 5], "uv": [80, 65]}, + {"origin": [20.01, 0, 14], "size": [1, 12, 6], "uv": [0, 125]}, + {"origin": [18.01, 0, 14], "size": [1, 12, 6], "uv": [112, 118]}, + {"origin": [16.01, 0, 14], "size": [1, 12, 6], "uv": [0, 22]}, + {"origin": [13.99, 0, 14], "size": [1, 12, 6], "uv": [0, 0]} + ] + }, + { + "name": "tanks", + "pivot": [-16.33333, 6, -17], + "cubes": [ + {"origin": [-16, 4, -24], "size": [4, 4, 7], "uv": [24, 0]}, + {"origin": [-24, 3, -24], "size": [6, 6, 13], "uv": [0, 62]}, + {"origin": [-16, 4, -15], "size": [4, 4, 4], "uv": [80, 81]} + ] + }, + { + "name": "tubes", + "pivot": [-13.58333, 4.51667, -17.58333], + "cubes": [ + {"origin": [-15, 1, -14], "size": [2, 3, 2], "uv": [16, 89]}, + {"origin": [-15, 1, -22], "size": [2, 3, 4], "uv": [12, 113]}, + {"origin": [-18, 5, -22], "size": [2, 2, 3], "uv": [8, 0]}, + {"origin": [-12, 5, -23], "size": [27, 2, 3], "uv": [72, 113]}, + {"origin": [-18, 5, -14], "size": [2, 2, 2], "uv": [36, 11]}, + {"origin": [-23, 1, -21], "size": [4, 3, 7], "uv": [24, 22]} + ] + }, + { + "name": "edge", + "pivot": [-17, 2, 17.5], + "cubes": [ + {"origin": [-18, 1, 18], "size": [6, 2, 2], "uv": [0, 89]}, + {"origin": [-20, 1, 12], "size": [2, 2, 8], "uv": [24, 32]} + ] + }, + { + "name": "tubes_second", + "pivot": [18.66667, 3.66667, -17.33333], + "cubes": [ + {"origin": [18, 1, -15], "size": [2, 3, 2], "uv": [8, 22]}, + {"origin": [18, 5, -18], "size": [2, 2, 2], "uv": [12, 16]}, + {"origin": [16, 1, -23], "size": [4, 3, 4], "uv": [0, 110]} + ] + }, + { + "name": "tanks_second", + "pivot": [18.5, 6.25, -17.5], + "cubes": [ + {"origin": [15, 3, -24], "size": [6, 7, 6], "uv": [0, 97]}, + {"origin": [17, 4, -16], "size": [4, 4, 4], "uv": [24, 11]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/oritech/textures/block/models/atomic_forge.png b/src/main/resources/assets/oritech/textures/block/models/atomic_forge.png new file mode 100644 index 0000000000000000000000000000000000000000..3031018a1eb86b6c4bc91e050d42bfa56cf0e3c1 GIT binary patch literal 8207 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