From 769e585e53d562ad8db72f8d08b24aad0ffa82bd Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 20 Jun 2020 16:10:07 +0200 Subject: [PATCH] Logistical Mockups Part II - Added mockups for: - Packager - Chutes & Chute interfaces - Least's Reality Funnel (tm) --- src/generated/resources/.cache/cache | 22 +- .../create/blockstates/belt_funnel.json | 49 +++ .../assets/create/blockstates/chute.json | 10 + .../assets/create/blockstates/chute_port.json | 19 + .../assets/create/blockstates/fluid_pipe.json | 240 ++++++------ .../assets/create/blockstates/packager.json | 11 + .../create/blockstates/radial_chassis.json | 24 +- .../create/blockstates/reality_funnel.json | 30 ++ .../resources/assets/create/lang/en_ud.json | 5 + .../resources/assets/create/lang/en_us.json | 5 + .../assets/create/models/item/chute.json | 3 + .../assets/create/models/item/chute_port.json | 3 + .../assets/create/models/item/packager.json | 3 + .../create/models/item/reality_funnel.json | 3 + .../loot_tables/blocks/belt_funnel.json | 19 + .../data/create/loot_tables/blocks/chute.json | 19 + .../create/loot_tables/blocks/chute_port.json | 19 + .../create/loot_tables/blocks/packager.json | 19 + .../loot_tables/blocks/reality_funnel.json | 19 + .../com/simibubi/create/AllBlockPartials.java | 1 + .../java/com/simibubi/create/AllBlocks.java | 55 ++- .../java/com/simibubi/create/AllItems.java | 35 +- .../java/com/simibubi/create/AllShapes.java | 9 + .../java/com/simibubi/create/AllTags.java | 55 +-- .../com/simibubi/create/AllTileEntities.java | 8 + .../logistics/block/chute/ChuteBlock.java | 46 +++ .../logistics/block/chute/ChutePortBlock.java | 25 ++ .../block/packager/PackagerBlock.java | 21 ++ .../block/packager/PackagerRenderer.java | 33 ++ .../block/packager/PackagerTileEntity.java | 13 + .../block/realityFunnel/BeltFunnelBlock.java | 153 ++++++++ .../block/realityFunnel/FunnelItem.java | 36 ++ .../realityFunnel/RealityFunnelBlock.java | 56 +++ .../block/belt_funnel/block_default.json | 314 ++++++++++++++++ .../block/belt_funnel/block_extended.json | 345 ++++++++++++++++++ .../block/belt_funnel/block_retracted.json | 289 +++++++++++++++ .../create/models/block/chute/block.json | 118 ++++++ .../models/block/chute/block_windowed.json | 118 ++++++ .../create/models/block/chute_port.json | 23 ++ .../create/models/block/packager/block.json | 82 +++++ .../create/models/block/packager/item.json | 169 +++++++++ .../create/models/block/packager/sealer.json | 53 +++ .../models/block/reality_funnel/block.json | 117 ++++++ .../models/block/reality_funnel/item.json | 301 +++++++++++++++ .../assets/create/textures/block/chute.png | Bin 0 -> 804 bytes .../create/textures/block/chute_port.png | Bin 0 -> 1672 bytes .../create/textures/block/packager_top.png | Bin 0 -> 363 bytes .../create/textures/block/reality_funnel.png | Bin 0 -> 2280 bytes .../assets/create/textures/block/sealer.png | Bin 0 -> 599 bytes 49 files changed, 2823 insertions(+), 174 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/belt_funnel.json create mode 100644 src/generated/resources/assets/create/blockstates/chute.json create mode 100644 src/generated/resources/assets/create/blockstates/chute_port.json create mode 100644 src/generated/resources/assets/create/blockstates/packager.json create mode 100644 src/generated/resources/assets/create/blockstates/reality_funnel.json create mode 100644 src/generated/resources/assets/create/models/item/chute.json create mode 100644 src/generated/resources/assets/create/models/item/chute_port.json create mode 100644 src/generated/resources/assets/create/models/item/packager.json create mode 100644 src/generated/resources/assets/create/models/item/reality_funnel.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/belt_funnel.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/chute.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/chute_port.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/packager.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/reality_funnel.json create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/chute/ChutePortBlock.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/BeltFunnelBlock.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/FunnelItem.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/RealityFunnelBlock.java create mode 100644 src/main/resources/assets/create/models/block/belt_funnel/block_default.json create mode 100644 src/main/resources/assets/create/models/block/belt_funnel/block_extended.json create mode 100644 src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json create mode 100644 src/main/resources/assets/create/models/block/chute/block.json create mode 100644 src/main/resources/assets/create/models/block/chute/block_windowed.json create mode 100644 src/main/resources/assets/create/models/block/chute_port.json create mode 100644 src/main/resources/assets/create/models/block/packager/block.json create mode 100644 src/main/resources/assets/create/models/block/packager/item.json create mode 100644 src/main/resources/assets/create/models/block/packager/sealer.json create mode 100644 src/main/resources/assets/create/models/block/reality_funnel/block.json create mode 100644 src/main/resources/assets/create/models/block/reality_funnel/item.json create mode 100644 src/main/resources/assets/create/textures/block/chute.png create mode 100644 src/main/resources/assets/create/textures/block/chute_port.png create mode 100644 src/main/resources/assets/create/textures/block/packager_top.png create mode 100644 src/main/resources/assets/create/textures/block/reality_funnel.png create mode 100644 src/main/resources/assets/create/textures/block/sealer.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index f4f3cea87..dce23b6fb 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -17,6 +17,7 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets\create\blockstates\andesite_bric 398922758a6219544e5b85c91c9cf8a543b437e5 assets\create\blockstates\andesite_pillar.json f9fa6aa530eb0891a74eadfbebc663172a57147a assets\create\blockstates\basin.json 96a4fae5883eda130f8ec1a57d34534f6d0793c4 assets\create\blockstates\belt.json +86487988273d365436dbadad597c112aacf5aa92 assets\create\blockstates\belt_funnel.json 40d10934934ea142d71fc6ce598b1455c3ad47b4 assets\create\blockstates\belt_observer.json 4325605fbdea60d5f54286c309c825bebcd74b95 assets\create\blockstates\belt_tunnel.json cf9045eb16e5299a1d917c4cb536289f49411276 assets\create\blockstates\birch_window.json @@ -30,6 +31,8 @@ b8dd6e505943e06706d0718ece620ab3cf943650 assets\create\blockstates\brass_casing. 2ca82a3c4bf7ba1a9cf3bb674e786d9b23b020a4 assets\create\blockstates\chiseled_limestone.json cbcdab42d01f8085db9e5f8db884f8adf7f17625 assets\create\blockstates\chiseled_scoria.json 291952556c52fba2af5bbd793c71af81abd27e71 assets\create\blockstates\chiseled_weathered_limestone.json +e1391d1ae451b50af13a08cfe572b79ac9e3514d assets\create\blockstates\chute.json +9ca4713c8efed79da6ab11354a25e5f8fbd6341c assets\create\blockstates\chute_port.json 4947c261310445fa55b92038326ac82967d192dd assets\create\blockstates\clockwork_bearing.json 1f33834c685e3243882acfe20183fe64dfa872be assets\create\blockstates\clutch.json e5e3757e99c139d67b2a70288466d8a74d818841 assets\create\blockstates\cogwheel.json @@ -114,7 +117,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets\create\blockstates\fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets\create\blockstates\fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets\create\blockstates\fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets\create\blockstates\fancy_weathered_limestone_bricks_wall.json -3aa8213ea6cd12a6964e3a70900b12d76d794d20 assets\create\blockstates\fluid_pipe.json +1f290b70c7cdd53e336081ee5707fd25d08c0e2c assets\create\blockstates\fluid_pipe.json 9d0e78a4d6d0ccac37c06d0f5810a800a04844b2 assets\create\blockstates\fluid_tank.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets\create\blockstates\flywheel.json ac00d40e1ef50a37041c0481afa1a23a14dea78e assets\create\blockstates\framed_glass.json @@ -211,6 +214,7 @@ c46f0b62967cf483ec0720a9297c8ccc97f5547d assets\create\blockstates\overgrown_and 2398939c8be07cac0dcb7ea710eb98e74b408e0c assets\create\blockstates\overgrown_limestone.json fbb651b8e4a72bf0a17a6bfdbf4eef680e9d4a5c assets\create\blockstates\overgrown_scoria.json 9c8e210bdb29b2ab1535a25762498d7c03156444 assets\create\blockstates\overgrown_weathered_limestone.json +5ab323fefdbfff04aa5c224bf5f0237f0598b3b2 assets\create\blockstates\packager.json ab93ff18b747607dbc1d8d7311a2737e302b92d1 assets\create\blockstates\paved_andesite.json 89e88a0d2e7df66bac7ab11ac2c7b14812d8675f assets\create\blockstates\paved_andesite_slab.json f43d947077b3f4a11a9729c58709c56f09859da0 assets\create\blockstates\paved_andesite_stairs.json @@ -277,7 +281,8 @@ b7829c2ef2c47188713f8cab21b2c9bc7f9c5b79 assets\create\blockstates\portable_stor e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets\create\blockstates\powered_toggle_latch.json 3a739f9d4276828d83f2d2750bf3227c87bcd438 assets\create\blockstates\pulley_magnet.json 469e430d96cb0a5e1aaf6b7cc5d401d488c9e600 assets\create\blockstates\pulse_repeater.json -8d7e653bfd9846e684a0d3725595714a19201017 assets\create\blockstates\radial_chassis.json +5c1df061eb5efe49beee7219e113206fc31a4733 assets\create\blockstates\radial_chassis.json +35cc2bb35c9e2809f69d1fb70e854f69e0f9bbe6 assets\create\blockstates\reality_funnel.json 8929677f2cc5354aa19ef182af69f9f0b41eb242 assets\create\blockstates\redstone_contact.json c29213b77ac0c78d8979c5f6188d2b265696f9b9 assets\create\blockstates\redstone_link.json 1eac804cba08aebb5f4646758ae1ef9b32e01365 assets\create\blockstates\reinforced_rail.json @@ -329,8 +334,8 @@ c60c3115fd6eeaa3a696428a87a74d184ab7d62d assets\create\blockstates\weathered_lim c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets\create\blockstates\weathered_limestone_pillar.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json -81f8eb319377b9fbe2188304886316120bb29c64 assets\create\lang\en_ud.json -4158ea22d8b9a3e21a47180fbd1ff5040c0b6a06 assets\create\lang\en_us.json +0ef66cfa2ad2656989bd228b5281dd81ae215f4e assets\create\lang\en_ud.json +0a4d0882aa343ae0e943cf1bc542c2a96baedaa0 assets\create\lang\en_us.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets\create\models\block\acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets\create\models\block\acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets\create\models\block\acacia_window_pane_noside_alt.json @@ -957,6 +962,8 @@ afd697168c9786eb80e54eccdc6a23afa6c7fb0e assets\create\models\item\chiseled_gabb 0cb1692f6cdd007ac690fd1f0222dde3429d136f assets\create\models\item\chiseled_limestone.json a47fbe5f2da79080d99ef0975bfa8da4d08f8be4 assets\create\models\item\chiseled_scoria.json 70232ce9b88119fb383717e2c1ad113f7aad6a99 assets\create\models\item\chiseled_weathered_limestone.json +fe67c3f380d17735a9436a4579a8be1a02b8e4a0 assets\create\models\item\chute.json +3b91cda68b823bf8d49a2e0cccd1b7f7c090e103 assets\create\models\item\chute_port.json b1531a7bd3f7f27b9587d13e818a93dc2d088bc8 assets\create\models\item\clockwork_bearing.json 0a2a0f0aafeab0088172f77afd40c1fa2cc1f2b8 assets\create\models\item\clutch.json dcb09deae110077bcddf090996b51cc66e9a7de3 assets\create\models\item\cogwheel.json @@ -1157,6 +1164,7 @@ e34c7bbdd4fcaa3a73c61584418bb159db49758b assets\create\models\item\overgrown_gra e73e4be7e7eafdf9635a3d72eb7fa05c2bc1e54b assets\create\models\item\overgrown_limestone.json a64a649428a2e130059f3f1f8de81b907621589f assets\create\models\item\overgrown_scoria.json 3354b93677c87bfc82807503c8d658fc6ab114e2 assets\create\models\item\overgrown_weathered_limestone.json +15baa926f7208040c437c920ae0c159a06057073 assets\create\models\item\packager.json 014530344c8b7e53531e3c09095b6ed4839d5ab8 assets\create\models\item\paved_andesite.json bd81aa53b83c2f9683c024989d0305807cf28f5a assets\create\models\item\paved_andesite_slab.json c61f409eb1a24cf76017b677579cb0423a1951c6 assets\create\models\item\paved_andesite_stairs.json @@ -1226,6 +1234,7 @@ d3cfc1a1137c4bc98848947d425d2972df144c95 assets\create\models\item\powdered_obsi 16f363038d5afeae34e0724a6a9f0b8f6e65424a assets\create\models\item\propeller.json 4b8a27ff05ed5331889dfc4b0b4562f3e94b0dfe assets\create\models\item\pulse_repeater.json 469652eb5baa92008dbfc4deec232c3381684af6 assets\create\models\item\radial_chassis.json +c485de0c102ef2d2d709bfb8a26688f1dee78948 assets\create\models\item\reality_funnel.json b9a4ac219a27e60a82f55129f2df5ae6183981e2 assets\create\models\item\redstone_contact.json 52e561abeb954d0349e640566de92ef80ccbf919 assets\create\models\item\redstone_link.json ba99e2fdb64892f4f479a8ac51c226cb5f71f659 assets\create\models\item\red_sand_paper.json @@ -1722,6 +1731,7 @@ cb36b039a511aca643fe674a63de8d6ad8478256 data\create\loot_tables\blocks\andesite 6908f62c809ea2105bc92765d84d5655197346ab data\create\loot_tables\blocks\andesite_pillar.json 14bf1764b9313893b6a6f57094f9506ac9fa71a8 data\create\loot_tables\blocks\basin.json c7f81e30c31837a287d6d6040cdb02c7dec11441 data\create\loot_tables\blocks\belt.json +617f27876863dda6a16d6818231bc52de104fc70 data\create\loot_tables\blocks\belt_funnel.json 1104e323abb2a8c25769c47dc5d1154965113cc9 data\create\loot_tables\blocks\belt_observer.json f2acadb49cac3aa6347cae606536cbbde89f0a5f data\create\loot_tables\blocks\belt_tunnel.json 67a8e2513c3cb09e6fe80279fda94f79d5018c37 data\create\loot_tables\blocks\birch_window.json @@ -1735,6 +1745,8 @@ ab820bbaaf67c6697dfbab33c05fb73b18c70bfb data\create\loot_tables\blocks\chiseled 4b09725707bac4c5813e2bb489ff848d0d964ae9 data\create\loot_tables\blocks\chiseled_limestone.json 43f446abd3c1c184a08645979edf620e59955a30 data\create\loot_tables\blocks\chiseled_scoria.json adde89e46b12de1eee6fd0c5cb98c5f45feefc15 data\create\loot_tables\blocks\chiseled_weathered_limestone.json +07ccc1576a71338cb73c4e06f8c28a2c86843877 data\create\loot_tables\blocks\chute.json +dcd45562a3459e5fd620727090d9c3c01c8ce0a4 data\create\loot_tables\blocks\chute_port.json 778b53c36d73b6e9c78fd6c091c9c3535c3c18f7 data\create\loot_tables\blocks\clockwork_bearing.json d76113310fc56eca6382d44df174096f2210d416 data\create\loot_tables\blocks\clutch.json 673ba3a5deae9133b917d16c9eb87fe4c2873c8a data\create\loot_tables\blocks\cogwheel.json @@ -1916,6 +1928,7 @@ bab9f6fb35f2ba4aa45fd726a8e94f90ef155bfb data\create\loot_tables\blocks\overgrow 4b4acf9026d68de21b5804903556a505f913a778 data\create\loot_tables\blocks\overgrown_limestone.json e0fc59a8645dae8f87e62b34c08014077e14de66 data\create\loot_tables\blocks\overgrown_scoria.json 8af10a6b2d07ed1b84ce617502ad68044262e701 data\create\loot_tables\blocks\overgrown_weathered_limestone.json +131cb27de9d0b44d2ec335055558b8039d6d5fb9 data\create\loot_tables\blocks\packager.json fc529ec8d55abf361ba1b8c38875839530b082c6 data\create\loot_tables\blocks\paved_andesite.json 3658337cb8a5a6cdd7dd19dd8ac399b1397350d5 data\create\loot_tables\blocks\paved_andesite_slab.json 4dbc7c7537e680e4e7c8a5ba4e4ed394d788b10d data\create\loot_tables\blocks\paved_andesite_stairs.json @@ -1983,6 +1996,7 @@ a3fb7d3e3bf9dc73ce754002f10c469d57db1f71 data\create\loot_tables\blocks\powered_ 205f5899101262f31f5c1a88bb7d954918d08d04 data\create\loot_tables\blocks\pulley_magnet.json e8fb62c91226ac107dee45c5ebc54c8dd0aee224 data\create\loot_tables\blocks\pulse_repeater.json 768420dab8785909891e52c4d77a182d99ba11d3 data\create\loot_tables\blocks\radial_chassis.json +617f27876863dda6a16d6818231bc52de104fc70 data\create\loot_tables\blocks\reality_funnel.json f5907a694206facc01f61f3428f72488486761c7 data\create\loot_tables\blocks\redstone_contact.json 886a0c1386fb12104b736a15689030aaff771270 data\create\loot_tables\blocks\redstone_link.json 97c945de837a6360c0ab7e1371f16ebc1645f6ea data\create\loot_tables\blocks\reinforced_rail.json diff --git a/src/generated/resources/assets/create/blockstates/belt_funnel.json b/src/generated/resources/assets/create/blockstates/belt_funnel.json new file mode 100644 index 000000000..5ff1ee0c3 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/belt_funnel.json @@ -0,0 +1,49 @@ +{ + "variants": { + "facing=north,shape=retracted": { + "model": "create:block/belt_funnel/block_retracted" + }, + "facing=south,shape=retracted": { + "model": "create:block/belt_funnel/block_retracted", + "y": 180 + }, + "facing=west,shape=retracted": { + "model": "create:block/belt_funnel/block_retracted", + "y": 270 + }, + "facing=east,shape=retracted": { + "model": "create:block/belt_funnel/block_retracted", + "y": 90 + }, + "facing=north,shape=default": { + "model": "create:block/belt_funnel/block_default" + }, + "facing=south,shape=default": { + "model": "create:block/belt_funnel/block_default", + "y": 180 + }, + "facing=west,shape=default": { + "model": "create:block/belt_funnel/block_default", + "y": 270 + }, + "facing=east,shape=default": { + "model": "create:block/belt_funnel/block_default", + "y": 90 + }, + "facing=north,shape=extended": { + "model": "create:block/belt_funnel/block_extended" + }, + "facing=south,shape=extended": { + "model": "create:block/belt_funnel/block_extended", + "y": 180 + }, + "facing=west,shape=extended": { + "model": "create:block/belt_funnel/block_extended", + "y": 270 + }, + "facing=east,shape=extended": { + "model": "create:block/belt_funnel/block_extended", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/chute.json b/src/generated/resources/assets/create/blockstates/chute.json new file mode 100644 index 000000000..55bf812e4 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/chute.json @@ -0,0 +1,10 @@ +{ + "variants": { + "window=false": { + "model": "create:block/chute/block" + }, + "window=true": { + "model": "create:block/chute/block_windowed" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/chute_port.json b/src/generated/resources/assets/create/blockstates/chute_port.json new file mode 100644 index 000000000..dc926c2ca --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/chute_port.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "create:block/chute_port" + }, + "facing=south": { + "model": "create:block/chute_port", + "y": 180 + }, + "facing=west": { + "model": "create:block/chute_port", + "y": 270 + }, + "facing=east": { + "model": "create:block/chute_port", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/fluid_pipe.json b/src/generated/resources/assets/create/blockstates/fluid_pipe.json index 44255c27a..ef9384bb4 100644 --- a/src/generated/resources/assets/create/blockstates/fluid_pipe.json +++ b/src/generated/resources/assets/create/blockstates/fluid_pipe.json @@ -60,10 +60,10 @@ }, { "when": { - "up": "true", - "north": "true", "south": "false", - "down": "false" + "north": "true", + "down": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/lu_x" @@ -71,10 +71,10 @@ }, { "when": { - "up": "true", - "north": "false", "south": "true", - "down": "false" + "north": "false", + "down": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ru_x" @@ -82,10 +82,10 @@ }, { "when": { - "up": "false", - "north": "true", "south": "false", - "down": "true" + "north": "true", + "down": "true", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/ld_x" @@ -93,10 +93,10 @@ }, { "when": { - "up": "false", - "north": "false", "south": "true", - "down": "true" + "north": "false", + "down": "true", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/rd_x" @@ -104,10 +104,10 @@ }, { "when": { - "up": "true", - "north": "false", "south": "false", - "down": "true" + "north": "false", + "down": "true", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -115,10 +115,10 @@ }, { "when": { - "up": "true", - "north": "false", "south": "false", - "down": "false" + "north": "false", + "down": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -126,10 +126,10 @@ }, { "when": { - "up": "false", - "north": "false", "south": "false", - "down": "true" + "north": "false", + "down": "true", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -137,21 +137,21 @@ }, { "when": { - "up": "false", - "north": "true", "south": "true", - "down": "false" - }, - "apply": { - "model": "create:block/fluid_pipe/lr_x" - } - }, - { - "when": { - "up": "false", "north": "true", - "south": "false", - "down": "false" + "down": "false", + "up": "false" + }, + "apply": { + "model": "create:block/fluid_pipe/lr_x" + } + }, + { + "when": { + "south": "false", + "north": "true", + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -159,10 +159,10 @@ }, { "when": { - "up": "false", - "north": "false", "south": "true", - "down": "false" + "north": "false", + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -170,10 +170,10 @@ }, { "when": { - "up": "false", - "north": "false", "south": "false", - "down": "false" + "north": "false", + "down": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/none_x" @@ -181,10 +181,10 @@ }, { "when": { - "west": "true", - "east": "false", + "south": "true", "north": "false", - "south": "true" + "east": "false", + "west": "true" }, "apply": { "model": "create:block/fluid_pipe/lu_y" @@ -192,10 +192,10 @@ }, { "when": { - "west": "false", - "east": "true", + "south": "true", "north": "false", - "south": "true" + "east": "true", + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/ru_y" @@ -203,10 +203,10 @@ }, { "when": { - "west": "true", - "east": "false", + "south": "false", "north": "true", - "south": "false" + "east": "false", + "west": "true" }, "apply": { "model": "create:block/fluid_pipe/ld_y" @@ -214,10 +214,10 @@ }, { "when": { - "west": "false", - "east": "true", + "south": "false", "north": "true", - "south": "false" + "east": "true", + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/rd_y" @@ -225,10 +225,10 @@ }, { "when": { - "west": "false", - "east": "false", + "south": "true", "north": "true", - "south": "true" + "east": "false", + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -236,10 +236,10 @@ }, { "when": { - "west": "false", - "east": "false", + "south": "true", "north": "false", - "south": "true" + "east": "false", + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -247,10 +247,10 @@ }, { "when": { - "west": "false", - "east": "false", + "south": "false", "north": "true", - "south": "false" + "east": "false", + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -258,10 +258,10 @@ }, { "when": { - "west": "true", + "south": "false", + "north": "false", "east": "true", - "north": "false", - "south": "false" + "west": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -269,10 +269,10 @@ }, { "when": { - "west": "true", + "south": "false", + "north": "false", "east": "false", - "north": "false", - "south": "false" + "west": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -280,10 +280,10 @@ }, { "when": { - "west": "false", + "south": "false", + "north": "false", "east": "true", - "north": "false", - "south": "false" + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -291,10 +291,10 @@ }, { "when": { - "west": "false", - "east": "false", + "south": "false", "north": "false", - "south": "false" + "east": "false", + "west": "false" }, "apply": { "model": "create:block/fluid_pipe/none_y" @@ -302,10 +302,10 @@ }, { "when": { - "west": "false", + "down": "false", "east": "true", - "up": "true", - "down": "false" + "west": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/lu_z" @@ -313,10 +313,10 @@ }, { "when": { - "west": "true", + "down": "false", "east": "false", - "up": "true", - "down": "false" + "west": "true", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ru_z" @@ -324,10 +324,10 @@ }, { "when": { - "west": "false", + "down": "true", "east": "true", - "up": "false", - "down": "true" + "west": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/ld_z" @@ -335,10 +335,10 @@ }, { "when": { - "west": "true", + "down": "true", "east": "false", - "up": "false", - "down": "true" + "west": "true", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/rd_z" @@ -346,10 +346,10 @@ }, { "when": { - "west": "false", + "down": "true", "east": "false", - "up": "true", - "down": "true" + "west": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ud_z" @@ -357,10 +357,10 @@ }, { "when": { - "west": "false", + "down": "false", "east": "false", - "up": "true", - "down": "false" + "west": "false", + "up": "true" }, "apply": { "model": "create:block/fluid_pipe/ud_z" @@ -368,10 +368,10 @@ }, { "when": { - "west": "false", + "down": "true", "east": "false", - "up": "false", - "down": "true" + "west": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_z" @@ -379,32 +379,10 @@ }, { "when": { - "west": "true", + "down": "false", "east": "true", - "up": "false", - "down": "false" - }, - "apply": { - "model": "create:block/fluid_pipe/lr_z" - } - }, - { - "when": { - "west": "false", - "east": "true", - "up": "false", - "down": "false" - }, - "apply": { - "model": "create:block/fluid_pipe/lr_z" - } - }, - { - "when": { "west": "true", - "east": "false", - "up": "false", - "down": "false" + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_z" @@ -412,10 +390,32 @@ }, { "when": { + "down": "false", + "east": "true", "west": "false", + "up": "false" + }, + "apply": { + "model": "create:block/fluid_pipe/lr_z" + } + }, + { + "when": { + "down": "false", "east": "false", - "up": "false", - "down": "false" + "west": "true", + "up": "false" + }, + "apply": { + "model": "create:block/fluid_pipe/lr_z" + } + }, + { + "when": { + "down": "false", + "east": "false", + "west": "false", + "up": "false" }, "apply": { "model": "create:block/fluid_pipe/none_z" diff --git a/src/generated/resources/assets/create/blockstates/packager.json b/src/generated/resources/assets/create/blockstates/packager.json new file mode 100644 index 000000000..6236aa5cd --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/packager.json @@ -0,0 +1,11 @@ +{ + "variants": { + "axis=x": { + "model": "create:block/packager/block", + "y": 90 + }, + "axis=z": { + "model": "create:block/packager/block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 9d00ea8b1..7a1df3438 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -207,8 +207,8 @@ }, { "when": { - "sticky_east": "true", - "axis": "x" + "axis": "x", + "sticky_east": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -217,8 +217,8 @@ }, { "when": { - "sticky_east": "true", - "axis": "y" + "axis": "y", + "sticky_east": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -227,8 +227,8 @@ }, { "when": { - "sticky_east": "true", - "axis": "z" + "axis": "z", + "sticky_east": "true" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky" @@ -236,8 +236,8 @@ }, { "when": { - "sticky_east": "false", - "axis": "x" + "axis": "x", + "sticky_east": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -246,8 +246,8 @@ }, { "when": { - "sticky_east": "false", - "axis": "y" + "axis": "y", + "sticky_east": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -256,8 +256,8 @@ }, { "when": { - "sticky_east": "false", - "axis": "z" + "axis": "z", + "sticky_east": "false" }, "apply": { "model": "create:block/radial_chassis_side_z" diff --git a/src/generated/resources/assets/create/blockstates/reality_funnel.json b/src/generated/resources/assets/create/blockstates/reality_funnel.json new file mode 100644 index 000000000..63d9403e1 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/reality_funnel.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/reality_funnel/block", + "x": 180 + }, + "facing=up": { + "model": "create:block/reality_funnel/block" + }, + "facing=north": { + "model": "create:block/reality_funnel/block", + "x": 90 + }, + "facing=south": { + "model": "create:block/reality_funnel/block", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/reality_funnel/block", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/reality_funnel/block", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 6fd3cfafb..548827595 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -18,6 +18,7 @@ "block.create.andesite_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.basin": "u\u0131s\u0250\u15FA", "block.create.belt": "\u0287\u05DF\u01DD\u15FA", + "block.create.belt_funnel": "\u05DF\u01DDuun\u2132 \u0287\u05DF\u01DD\u15FA", "block.create.belt_observer": "\u0279\u01DD\u028C\u0279\u01DDsqO \u0287\u05DF\u01DD\u15FA", "block.create.belt_tunnel": "\u05DF\u01DDuun\u27D8 \u0287\u05DF\u01DD\u15FA", "block.create.birch_window": "\u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", @@ -31,6 +32,8 @@ "block.create.chiseled_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u05DF\u01DDs\u0131\u0265\u0186", "block.create.chiseled_scoria": "\u0250\u0131\u0279o\u0254S p\u01DD\u05DF\u01DDs\u0131\u0265\u0186", "block.create.chiseled_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u05DF\u01DDs\u0131\u0265\u0186", + "block.create.chute": "\u01DD\u0287n\u0265\u0186", + "block.create.chute_port": "\u0287\u0279o\u0500 \u01DD\u0287n\u0265\u0186", "block.create.clockwork_bearing": "bu\u0131\u0279\u0250\u01DD\u15FA \u029E\u0279o\u028D\u029E\u0254o\u05DF\u0186", "block.create.clutch": "\u0265\u0254\u0287n\u05DF\u0186", "block.create.cogwheel": "\u05DF\u01DD\u01DD\u0265\u028Dbo\u0186", @@ -212,6 +215,7 @@ "block.create.overgrown_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 u\u028Do\u0279b\u0279\u01DD\u028CO", "block.create.overgrown_scoria": "\u0250\u0131\u0279o\u0254S u\u028Do\u0279b\u0279\u01DD\u028CO", "block.create.overgrown_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM u\u028Do\u0279b\u0279\u01DD\u028CO", + "block.create.packager": "\u0279\u01DDb\u0250\u029E\u0254\u0250\u0500", "block.create.paved_andesite": "\u01DD\u0287\u0131s\u01DDpu\u2C6F p\u01DD\u028C\u0250\u0500", "block.create.paved_andesite_slab": "q\u0250\u05DFS \u01DD\u0287\u0131s\u01DDpu\u2C6F p\u01DD\u028C\u0250\u0500", "block.create.paved_andesite_stairs": "s\u0279\u0131\u0250\u0287S \u01DD\u0287\u0131s\u01DDpu\u2C6F p\u01DD\u028C\u0250\u0500", @@ -279,6 +283,7 @@ "block.create.pulley_magnet": "\u0287\u01DDub\u0250W \u028E\u01DD\u05DF\u05DFn\u0500", "block.create.pulse_repeater": "\u0279\u01DD\u0287\u0250\u01DDd\u01DD\u1D1A \u01DDs\u05DFn\u0500", "block.create.radial_chassis": "s\u0131ss\u0250\u0265\u0186 \u05DF\u0250\u0131p\u0250\u1D1A", + "block.create.reality_funnel": "\u05DF\u01DDuun\u2132 \u028E\u0287\u0131\u05DF\u0250\u01DD\u1D1A", "block.create.redstone_contact": "\u0287\u0254\u0250\u0287uo\u0186 \u01DDuo\u0287sp\u01DD\u1D1A", "block.create.redstone_link": "\u029Eu\u0131\uA780 \u01DDuo\u0287sp\u01DD\u1D1A", "block.create.reinforced_rail": "\u05DF\u0131\u0250\u1D1A p\u01DD\u0254\u0279o\u025Fu\u0131\u01DD\u1D1A", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 06a677af8..6d479372f 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -21,6 +21,7 @@ "block.create.andesite_pillar": "Andesite Pillar", "block.create.basin": "Basin", "block.create.belt": "Belt", + "block.create.belt_funnel": "Belt Funnel", "block.create.belt_observer": "Belt Observer", "block.create.belt_tunnel": "Belt Tunnel", "block.create.birch_window": "Birch Window", @@ -34,6 +35,8 @@ "block.create.chiseled_limestone": "Chiseled Limestone", "block.create.chiseled_scoria": "Chiseled Scoria", "block.create.chiseled_weathered_limestone": "Chiseled Weathered Limestone", + "block.create.chute": "Chute", + "block.create.chute_port": "Chute Port", "block.create.clockwork_bearing": "Clockwork Bearing", "block.create.clutch": "Clutch", "block.create.cogwheel": "Cogwheel", @@ -215,6 +218,7 @@ "block.create.overgrown_limestone": "Overgrown Limestone", "block.create.overgrown_scoria": "Overgrown Scoria", "block.create.overgrown_weathered_limestone": "Overgrown Weathered Limestone", + "block.create.packager": "Packager", "block.create.paved_andesite": "Paved Andesite", "block.create.paved_andesite_slab": "Paved Andesite Slab", "block.create.paved_andesite_stairs": "Paved Andesite Stairs", @@ -282,6 +286,7 @@ "block.create.pulley_magnet": "Pulley Magnet", "block.create.pulse_repeater": "Pulse Repeater", "block.create.radial_chassis": "Radial Chassis", + "block.create.reality_funnel": "Reality Funnel", "block.create.redstone_contact": "Redstone Contact", "block.create.redstone_link": "Redstone Link", "block.create.reinforced_rail": "Reinforced Rail", diff --git a/src/generated/resources/assets/create/models/item/chute.json b/src/generated/resources/assets/create/models/item/chute.json new file mode 100644 index 000000000..b894cc392 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/chute.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/chute/block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/chute_port.json b/src/generated/resources/assets/create/models/item/chute_port.json new file mode 100644 index 000000000..173b26be8 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/chute_port.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/chute_port" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/packager.json b/src/generated/resources/assets/create/models/item/packager.json new file mode 100644 index 000000000..18467506e --- /dev/null +++ b/src/generated/resources/assets/create/models/item/packager.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/packager/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/reality_funnel.json b/src/generated/resources/assets/create/models/item/reality_funnel.json new file mode 100644 index 000000000..38f4140ef --- /dev/null +++ b/src/generated/resources/assets/create/models/item/reality_funnel.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/reality_funnel/item" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/belt_funnel.json b/src/generated/resources/data/create/loot_tables/blocks/belt_funnel.json new file mode 100644 index 000000000..4f7095793 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/belt_funnel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:reality_funnel" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/chute.json b/src/generated/resources/data/create/loot_tables/blocks/chute.json new file mode 100644 index 000000000..aa1414e12 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/chute.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:chute" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/chute_port.json b/src/generated/resources/data/create/loot_tables/blocks/chute_port.json new file mode 100644 index 000000000..bd3837343 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/chute_port.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:chute_port" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/packager.json b/src/generated/resources/data/create/loot_tables/blocks/packager.json new file mode 100644 index 000000000..f3daac615 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/packager.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:packager" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/reality_funnel.json b/src/generated/resources/data/create/loot_tables/blocks/reality_funnel.json new file mode 100644 index 000000000..4f7095793 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/reality_funnel.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:reality_funnel" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 5d5ee020a..ccd9cd3bc 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -77,6 +77,7 @@ public class AllBlockPartials { ROPE_HALF = get("rope_pulley/rope_half"), ROPE_HALF_MAGNET = get("rope_pulley/rope_half_magnet"), MILLSTONE_COG = get("millstone/inner"), + PACKAGER_SEALER = get("packager/sealer"), SYMMETRY_PLANE = get("symmetry_effect/plane"), SYMMETRY_CROSSPLANE = get("symmetry_effect/crossplane"), diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 7ec9d31b0..be4a709a2 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -75,6 +75,8 @@ import com.simibubi.create.content.contraptions.relays.gauge.GaugeGenerator; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxBlock; import com.simibubi.create.content.logistics.block.belts.observer.BeltObserverBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; +import com.simibubi.create.content.logistics.block.chute.ChuteBlock; +import com.simibubi.create.content.logistics.block.chute.ChutePortBlock; import com.simibubi.create.content.logistics.block.diodes.AbstractDiodeGenerator; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterBlock; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterGenerator; @@ -92,6 +94,10 @@ import com.simibubi.create.content.logistics.block.funnel.VerticalFunnelGenerato import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; import com.simibubi.create.content.logistics.block.inventories.CreativeCrateBlock; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmBlock; +import com.simibubi.create.content.logistics.block.packager.PackagerBlock; +import com.simibubi.create.content.logistics.block.realityFunnel.BeltFunnelBlock; +import com.simibubi.create.content.logistics.block.realityFunnel.FunnelItem; +import com.simibubi.create.content.logistics.block.realityFunnel.RealityFunnelBlock; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeBlock; import com.simibubi.create.content.logistics.block.redstone.NixieTubeGenerator; @@ -117,6 +123,7 @@ import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.BlockEntry; import net.minecraft.block.Block; +import net.minecraft.block.Block.Properties; import net.minecraft.block.Blocks; import net.minecraft.block.SoundType; import net.minecraft.block.material.MaterialColor; @@ -352,7 +359,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_PRESS = REGISTRATE.block("mechanical_press", MechanicalPressBlock::new) .initialProperties(SharedProperties::stone) - .properties(p -> p.nonOpaque()) + .properties(Properties::nonOpaque) .blockstate(BlockStateGen.horizontalBlockProvider(true)) .transform(StressConfigDefaults.setImpact(8.0)) .item(BasinOperatorBlockItem::new) @@ -702,6 +709,52 @@ public class AllBlocks { .transform(BuilderTransformers.crate("creative")) .register(); + public static final BlockEntry CHUTE = REGISTRATE.block("chute", ChuteBlock::new) + .initialProperties(SharedProperties::softMetal) + .blockstate((c, p) -> p.getVariantBuilder(c.get()) + .forAllStates(s -> ConfiguredModel.builder() + .modelFile(s.get(ChuteBlock.WINDOW) ? AssetLookup.partialBaseModel(c, p, "windowed") + : AssetLookup.partialBaseModel(c, p)) + .build())) + .item() + .transform(customItemModel("_", "block")) + .register(); + + public static final BlockEntry CHUTE_PORT = REGISTRATE.block("chute_port", ChutePortBlock::new) + .initialProperties(SharedProperties::softMetal) + .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.standardModel(c, p))) + .simpleItem() + .register(); + + public static final BlockEntry PACKAGER = REGISTRATE.block("packager", PackagerBlock::new) + .initialProperties(SharedProperties::softMetal) + .transform(StressConfigDefaults.setImpact(4.0)) + .properties(Properties::nonOpaque) + .blockstate((c, p) -> p.getVariantBuilder(c.get()) + .forAllStates(s -> ConfiguredModel.builder() + .modelFile(AssetLookup.partialBaseModel(c, p)) + .rotationY(s.get(PackagerBlock.HORIZONTAL_AXIS) == Axis.X ? 90 : 0) + .build())) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry REALITY_FUNNEL = + REGISTRATE.block("reality_funnel", RealityFunnelBlock::new) + .initialProperties(SharedProperties::softMetal) + .blockstate((c, p) -> p.directionalBlock(c.get(), s -> AssetLookup.partialBaseModel(c, p))) + .item(FunnelItem::new) + .transform(customItemModel()) + .register(); + + public static final BlockEntry BELT_FUNNEL = REGISTRATE.block("belt_funnel", BeltFunnelBlock::new) + .initialProperties(SharedProperties::softMetal) + .blockstate((c, p) -> p.horizontalBlock(c.get(), + s -> AssetLookup.partialBaseModel(c, p, s.get(BeltFunnelBlock.SHAPE) + .getName()))) + .loot((p, b) -> p.registerDropping(b, REALITY_FUNNEL.get())) + .register(); + public static final BlockEntry BELT_OBSERVER = REGISTRATE.block("belt_observer", BeltObserverBlock::new) .initialProperties(SharedProperties::stone) diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index e2efd67a0..33482516b 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -1,13 +1,16 @@ package com.simibubi.create; import static com.simibubi.create.AllTags.forgeItemTag; +import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS; +import static com.simibubi.create.AllTags.AllItemTags.CRUSHED_ORES; +import static com.simibubi.create.AllTags.AllItemTags.NUGGETS; +import static com.simibubi.create.AllTags.AllItemTags.PLATES; import static com.simibubi.create.content.AllSections.CURIOSITIES; import static com.simibubi.create.content.AllSections.KINETICS; import static com.simibubi.create.content.AllSections.LOGISTICS; import static com.simibubi.create.content.AllSections.MATERIALS; import static com.simibubi.create.content.AllSections.SCHEMATICS; -import com.simibubi.create.AllTags.AllItemTags; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MinecartContraptionItem; import com.simibubi.create.content.contraptions.goggles.GogglesItem; @@ -55,26 +58,26 @@ public class AllItems { } public static final ItemEntry COPPER_NUGGET = - taggedIngredient("copper_nugget", forgeItemTag("nuggets/copper"), AllItemTags.nuggets.tag), - ZINC_NUGGET = taggedIngredient("zinc_nugget", forgeItemTag("nuggets/zinc"), AllItemTags.nuggets.tag), - BRASS_NUGGET = taggedIngredient("brass_nugget", forgeItemTag("nuggets/brass"), AllItemTags.nuggets.tag), + taggedIngredient("copper_nugget", forgeItemTag("nuggets/copper"), NUGGETS.tag), + ZINC_NUGGET = taggedIngredient("zinc_nugget", forgeItemTag("nuggets/zinc"), NUGGETS.tag), + BRASS_NUGGET = taggedIngredient("brass_nugget", forgeItemTag("nuggets/brass"), NUGGETS.tag), - COPPER_SHEET = taggedIngredient("copper_sheet", forgeItemTag("plates/copper"), AllItemTags.plates.tag), - BRASS_SHEET = taggedIngredient("brass_sheet", forgeItemTag("plates/brass"), AllItemTags.plates.tag), - IRON_SHEET = taggedIngredient("iron_sheet", forgeItemTag("plates/iron"), AllItemTags.plates.tag), - GOLDEN_SHEET = taggedIngredient("golden_sheet", forgeItemTag("plates/gold"), AllItemTags.plates.tag), + COPPER_SHEET = taggedIngredient("copper_sheet", forgeItemTag("plates/copper"), PLATES.tag), + BRASS_SHEET = taggedIngredient("brass_sheet", forgeItemTag("plates/brass"), PLATES.tag), + IRON_SHEET = taggedIngredient("iron_sheet", forgeItemTag("plates/iron"), PLATES.tag), + GOLDEN_SHEET = taggedIngredient("golden_sheet", forgeItemTag("plates/gold"), PLATES.tag), LAPIS_SHEET = ingredient("lapis_sheet"), - CRUSHED_IRON = taggedIngredient("crushed_iron_ore", AllItemTags.CRUSHED_ORES.tag), - CRUSHED_GOLD = taggedIngredient("crushed_gold_ore", AllItemTags.CRUSHED_ORES.tag), - CRUSHED_COPPER = taggedIngredient("crushed_copper_ore", AllItemTags.CRUSHED_ORES.tag), - CRUSHED_ZINC = taggedIngredient("crushed_zinc_ore", AllItemTags.CRUSHED_ORES.tag), - CRUSHED_BRASS = taggedIngredient("crushed_brass", AllItemTags.CRUSHED_ORES.tag), + CRUSHED_IRON = taggedIngredient("crushed_iron_ore", CRUSHED_ORES.tag), + CRUSHED_GOLD = taggedIngredient("crushed_gold_ore", CRUSHED_ORES.tag), + CRUSHED_COPPER = taggedIngredient("crushed_copper_ore", CRUSHED_ORES.tag), + CRUSHED_ZINC = taggedIngredient("crushed_zinc_ore", CRUSHED_ORES.tag), + CRUSHED_BRASS = taggedIngredient("crushed_brass", CRUSHED_ORES.tag), ANDESITE_ALLOY = ingredient("andesite_alloy"), - COPPER_INGOT = taggedIngredient("copper_ingot", forgeItemTag("ingots/copper"), AllItemTags.CREATE_INGOTS.tag), - ZINC_INGOT = taggedIngredient("zinc_ingot", forgeItemTag("ingots/zinc"), AllItemTags.CREATE_INGOTS.tag), - BRASS_INGOT = taggedIngredient("brass_ingot", forgeItemTag("ingots/brass"), AllItemTags.CREATE_INGOTS.tag), + COPPER_INGOT = taggedIngredient("copper_ingot", forgeItemTag("ingots/copper"), CREATE_INGOTS.tag), + ZINC_INGOT = taggedIngredient("zinc_ingot", forgeItemTag("ingots/zinc"), CREATE_INGOTS.tag), + BRASS_INGOT = taggedIngredient("brass_ingot", forgeItemTag("ingots/brass"), CREATE_INGOTS.tag), WHEAT_FLOUR = ingredient("wheat_flour"), DOUGH = ingredient("dough"), POWDERED_OBSIDIAN = ingredient("powdered_obsidian"), ROSE_QUARTZ = ingredient("rose_quartz"), diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 285d7c400..cbdd000f4 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -65,6 +65,13 @@ public class AllShapes { NIXIE_TUBE_CEILING = shape(0, 12, 0, 16, 16, 16).add(9, 1, 5, 15, 16, 11) .add(1, 1, 5, 7, 16, 11) .forHorizontalAxis(), + REALITY_FUNNEL = shape(2, 2, 14, 14, 14, 18).forDirectional(NORTH), + BELT_FUNNEL_RETRACTED = shape(3, -5, 14, 13, 13, 19).add(0, -5, 8, 16, 16, 14) + .forHorizontal(NORTH), + BELT_FUNNEL_DEFAULT = shape(3, -5, 12, 13, 13, 17).add(0, -5, 6, 16, 16, 12) + .forHorizontal(NORTH), + BELT_FUNNEL_EXTENDED = shape(3, -5, 6, 13, 13, 17).add(0, -5, 0, 16, 16, 6) + .forHorizontal(NORTH), PUMP = shape(2, 0, 2, 14, 5, 14).add(4, 0, 4, 12, 16, 12) .add(3, 12, 3, 13, 16, 13) .forDirectional(Direction.UP) @@ -119,6 +126,8 @@ public class AllShapes { .build(), MECHANICAL_ARM = shape(2, 0, 2, 14, 10, 14).add(3, 0, 3, 13, 14, 13) .build(), + CHUTE = shape(1, 8, 1, 15, 16, 15).add(2, 0, 2, 14, 8, 14) + .build(), TANK = shape(1, 0, 1, 15, 16, 15).build(), TANK_TOP = shape(TANK_TOP_LID).add(TANK) .build(), TANK_BOTTOM = shape(TANK_BOTTOM_LID).add(TANK) diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index cfa4fb101..e5876b3dc 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -1,5 +1,8 @@ package com.simibubi.create; +import static com.simibubi.create.AllTags.NameSpace.FORGE; +import static com.simibubi.create.AllTags.NameSpace.MOD; + import com.simibubi.create.foundation.data.CreateRegistrate; import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.builders.BlockBuilder; @@ -21,7 +24,7 @@ import net.minecraft.util.ResourceLocation; public class AllTags { private static final CreateRegistrate REGISTRATE = Create.registrate() .itemGroup(() -> Create.baseCreativeTab); - + public static NonNullFunction, ItemBuilder>> tagBlockAndItem( String tagName) { return b -> b.tag(forgeBlockTag(tagName)) @@ -45,36 +48,48 @@ public class AllTags { return collection.getOrCreate(new ResourceLocation(domain, name)); } + public static enum NameSpace { + + MOD(Create.ID), FORGE("forge"), MC("minecraft") + + ; + String id; + + private NameSpace(String id) { + this.id = id; + } + } + public static enum AllItemTags { - CRUSHED_ORES, - CREATE_INGOTS, - beacon_payment("", "forge"), - ingots("", "forge"), - nuggets("", "forge"), - plates("", "forge"); + CRUSHED_ORES(MOD), CREATE_INGOTS(MOD), BEACON_PAYMENT(FORGE), INGOTS(FORGE), NUGGETS(FORGE), PLATES(FORGE), + + ; public Tag tag; - private AllItemTags() { - this(""); + private AllItemTags(NameSpace namespace) { + this(namespace, ""); } - private AllItemTags(String path) { - this(path, Create.ID); - } - - private AllItemTags(String path, String modid) { + private AllItemTags(NameSpace namespace, String path) { tag = new ItemTags.Wrapper( - new ResourceLocation(modid, (path.isEmpty() ? "" : path + "/") + Lang.asId(name()))); + new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name()))); } public boolean matches(ItemStack stack) { return tag.contains(stack.getItem()); } + + public void includeIn(AllItemTags parent) { + REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.getBuilder(parent.tag) + .add(tag)); + } } public static enum AllBlockTags { - WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE,; + WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE, + + ; public Tag tag; @@ -91,11 +106,9 @@ public class AllTags { return tag.contains(block.getBlock()); } } - + public static void register() { - REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.getBuilder(AllItemTags.beacon_payment.tag) - .add(AllItemTags.CREATE_INGOTS.tag)); - REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.getBuilder(AllItemTags.ingots.tag) - .add(AllItemTags.CREATE_INGOTS.tag)); + AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.BEACON_PAYMENT); + AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.INGOTS); } } diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 1557f2432..b418708d8 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -82,6 +82,8 @@ import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateTi import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmRenderer; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity; +import com.simibubi.create.content.logistics.block.packager.PackagerRenderer; +import com.simibubi.create.content.logistics.block.packager.PackagerTileEntity; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverRenderer; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer; @@ -215,6 +217,11 @@ public class AllTileEntities { register("adjustable_crate", AdjustableCrateTileEntity::new, AllBlocks.ADJUSTABLE_CRATE); public static final TileEntityEntry CREATIVE_CRATE = register("creative_crate", CreativeCrateTileEntity::new, AllBlocks.CREATIVE_CRATE); + + public static final TileEntityEntry PACKAGER = + register("packager", PackagerTileEntity::new, AllBlocks.PACKAGER); + + public static final TileEntityEntry EXTRACTOR = register("extractor", ExtractorTileEntity::new, AllBlocks.EXTRACTOR, AllBlocks.VERTICAL_EXTRACTOR); public static final TileEntityEntry LINKED_EXTRACTOR = register("linked_extractor", @@ -285,6 +292,7 @@ public class AllTileEntities { bind(FLYWHEEL, FlywheelRenderer::new); bind(FURNACE_ENGINE, EngineRenderer::new); bind(ROTATION_SPEED_CONTROLLER, SpeedControllerRenderer::new); + bind(PACKAGER, PackagerRenderer::new); bind(CREATIVE_CRATE, SmartTileEntityRenderer::new); bind(REDSTONE_LINK, SmartTileEntityRenderer::new); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java new file mode 100644 index 000000000..60f9e0e18 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteBlock.java @@ -0,0 +1,46 @@ +package com.simibubi.create.content.logistics.block.chute; + +import com.simibubi.create.AllShapes; +import com.simibubi.create.content.contraptions.wrench.IWrenchable; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.ItemUseContext; +import net.minecraft.state.BooleanProperty; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; + +public class ChuteBlock extends Block implements IWrenchable { + + public static final BooleanProperty WINDOW = BooleanProperty.create("window"); + + public ChuteBlock(Properties p_i48440_1_) { + super(p_i48440_1_); + setDefaultState(getDefaultState().with(WINDOW, false)); + } + + @Override + public ActionResultType onWrenched(BlockState state, ItemUseContext context) { + if (!context.getWorld().isRemote) + context.getWorld().setBlockState(context.getPos(), state.cycle(WINDOW)); + return ActionResultType.SUCCESS; + } + + @Override + public VoxelShape getShape(BlockState p_220053_1_, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return AllShapes.CHUTE; + } + + @Override + protected void fillStateContainer(Builder p_206840_1_) { + super.fillStateContainer(p_206840_1_.add(WINDOW)); + } + + + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChutePortBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChutePortBlock.java new file mode 100644 index 000000000..021d743ba --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChutePortBlock.java @@ -0,0 +1,25 @@ +package com.simibubi.create.content.logistics.block.chute; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalBlock; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.state.StateContainer.Builder; + +public class ChutePortBlock extends HorizontalBlock { + + public ChutePortBlock(Properties p_i48377_1_) { + super(p_i48377_1_); + } + + @Override + protected void fillStateContainer(Builder p_206840_1_) { + super.fillStateContainer(p_206840_1_.add(HORIZONTAL_FACING)); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext p_196258_1_) { + return getDefaultState().with(HORIZONTAL_FACING, p_196258_1_.getPlacementHorizontalFacing()); + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java new file mode 100644 index 000000000..8fff2fd09 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java @@ -0,0 +1,21 @@ +package com.simibubi.create.content.logistics.block.packager; + +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock; + +import net.minecraft.block.BlockState; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockReader; + +public class PackagerBlock extends HorizontalAxisKineticBlock { + + public PackagerBlock(Properties properties) { + super(properties); + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.PACKAGER.create(); + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java new file mode 100644 index 000000000..eb43f54fd --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java @@ -0,0 +1,33 @@ +package com.simibubi.create.content.logistics.block.packager; + +import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; + +import net.minecraft.block.BlockState; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; + +public class PackagerRenderer extends KineticTileEntityRenderer { + + public PackagerRenderer(TileEntityRendererDispatcher dispatcher) { + super(dispatcher); + } + + @Override + protected void renderSafe(KineticTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, + int light, int overlay) { + super.renderSafe(te, partialTicks, ms, buffer, light, overlay); + AllBlockPartials.PACKAGER_SEALER.renderOn(te.getBlockState()) + .renderInto(ms, buffer.getBuffer(RenderType.getSolid())); + } + + @Override + protected BlockState getRenderedBlockState(KineticTileEntity te) { + return shaft(te.getBlockState() + .get(PackagerBlock.HORIZONTAL_AXIS)); + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java new file mode 100644 index 000000000..89738885a --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java @@ -0,0 +1,13 @@ +package com.simibubi.create.content.logistics.block.packager; + +import com.simibubi.create.content.contraptions.base.KineticTileEntity; + +import net.minecraft.tileentity.TileEntityType; + +public class PackagerTileEntity extends KineticTileEntity { + + public PackagerTileEntity(TileEntityType typeIn) { + super(typeIn); + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/BeltFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/BeltFunnelBlock.java new file mode 100644 index 000000000..d70964e0b --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/BeltFunnelBlock.java @@ -0,0 +1,153 @@ +package com.simibubi.create.content.logistics.block.realityFunnel; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllShapes; +import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; +import com.simibubi.create.content.contraptions.relays.belt.BeltBlock.Slope; +import com.simibubi.create.content.contraptions.wrench.IWrenchable; +import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.VoxelShaper; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.HorizontalBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUseContext; +import net.minecraft.state.EnumProperty; +import net.minecraft.state.IProperty; +import net.minecraft.state.StateContainer.Builder; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.ILightReader; +import net.minecraft.world.IWorld; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; + +public class BeltFunnelBlock extends HorizontalBlock implements IWrenchable { + + public static final IProperty SHAPE = EnumProperty.create("shape", Shape.class); + + public enum Shape implements IStringSerializable { + RETRACTED(AllShapes.BELT_FUNNEL_RETRACTED), + DEFAULT(AllShapes.BELT_FUNNEL_DEFAULT), + EXTENDED(AllShapes.BELT_FUNNEL_EXTENDED); + + VoxelShaper shaper; + + private Shape(VoxelShaper shaper) { + this.shaper = shaper; + } + + @Override + public String getName() { + return Lang.asId(name()); + } + } + + public BeltFunnelBlock(Properties p_i48377_1_) { + super(p_i48377_1_); + setDefaultState(getDefaultState().with(SHAPE, Shape.DEFAULT)); + } + + @Override + protected void fillStateContainer(Builder p_206840_1_) { + super.fillStateContainer(p_206840_1_.add(HORIZONTAL_FACING, SHAPE)); + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return state.get(SHAPE).shaper.get(state.get(HORIZONTAL_FACING)); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext p_196258_1_) { + return updateShape(super.getStateForPlacement(p_196258_1_), p_196258_1_.getWorld(), p_196258_1_.getPos()); + } + + @Override + public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, + PlayerEntity player) { + return AllBlocks.REALITY_FUNNEL.asStack(); + } + + @Override + public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState neighbour, IWorld world, + BlockPos pos, BlockPos p_196271_6_) { + if (direction == Direction.DOWN && !isOnValidBelt(state, world, pos)) + return AllBlocks.REALITY_FUNNEL.getDefaultState() + .with(RealityFunnelBlock.FACING, state.get(HORIZONTAL_FACING)); + if (direction == state.get(HORIZONTAL_FACING)) + return updateShape(state, world, pos); + return state; + } + + @Override + public boolean isValidPosition(BlockState state, IWorldReader world, BlockPos pos) { + return !world.getBlockState(pos.offset(state.get(HORIZONTAL_FACING) + .getOpposite())) + .getShape(world, pos) + .isEmpty(); + } + + public static boolean isOnValidBelt(BlockState state, IWorldReader world, BlockPos pos) { + BlockState stateBelow = world.getBlockState(pos.down()); + if (!(stateBelow.getBlock() instanceof BeltBlock)) + return false; + if (stateBelow.get(BeltBlock.SLOPE) == Slope.VERTICAL) + return false; + if (stateBelow.get(BeltBlock.HORIZONTAL_FACING) + .getAxis() != state.get(HORIZONTAL_FACING) + .getAxis()) + return false; + return true; + } + + @Override + public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + if (worldIn.isRemote) + return; + + Direction blockFacing = state.get(HORIZONTAL_FACING) + .getOpposite(); + if (fromPos.equals(pos.offset(blockFacing))) + if (!isValidPosition(state, worldIn, pos)) + worldIn.destroyBlock(pos, true); + } + + private BlockState updateShape(BlockState state, ILightReader world, BlockPos pos) { + state = state.with(SHAPE, Shape.DEFAULT); + BlockState neighbour = world.getBlockState(pos.offset(state.get(HORIZONTAL_FACING))); + if (canConnectTo(state, neighbour)) + return state.with(SHAPE, Shape.EXTENDED); + return state; + } + + private boolean canConnectTo(BlockState state, BlockState neighbour) { + if (neighbour.getBlock() instanceof BeltTunnelBlock) + return true; + if (neighbour.getBlock() == this && neighbour.get(HORIZONTAL_FACING) == state.get(HORIZONTAL_FACING) + .getOpposite()) + return true; + return false; + } + + @Override + public ActionResultType onWrenched(BlockState state, ItemUseContext context) { + if (!context.getWorld().isRemote) + context.getWorld() + .setBlockState(context.getPos(), state.cycle(SHAPE)); + return ActionResultType.SUCCESS; + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/FunnelItem.java b/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/FunnelItem.java new file mode 100644 index 000000000..a546eb1a9 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/FunnelItem.java @@ -0,0 +1,36 @@ +package com.simibubi.create.content.logistics.block.realityFunnel; + +import com.simibubi.create.AllBlocks; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.BlockItem; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.util.Direction; + +public class FunnelItem extends BlockItem { + + public FunnelItem(Block p_i48527_1_, Properties p_i48527_2_) { + super(p_i48527_1_, p_i48527_2_); + } + + @Override + protected BlockState getStateForPlacement(BlockItemUseContext ctx) { + BlockState state = super.getStateForPlacement(ctx); + if (state == null) + return state; + if (!(state.getBlock() instanceof RealityFunnelBlock)) + return state; + Direction direction = state.get(RealityFunnelBlock.FACING); + if (!direction.getAxis() + .isHorizontal()) + return state; + BlockState equivalentBeltFunnel = AllBlocks.BELT_FUNNEL.get() + .getStateForPlacement(ctx) + .with(BeltFunnelBlock.HORIZONTAL_FACING, direction); + if (BeltFunnelBlock.isOnValidBelt(equivalentBeltFunnel, ctx.getWorld(), ctx.getPos())) + return equivalentBeltFunnel; + return state; + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/RealityFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/RealityFunnelBlock.java new file mode 100644 index 000000000..68b669091 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/block/realityFunnel/RealityFunnelBlock.java @@ -0,0 +1,56 @@ +package com.simibubi.create.content.logistics.block.realityFunnel; + +import com.simibubi.create.AllShapes; +import com.simibubi.create.foundation.block.ProperDirectionalBlock; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.shapes.ISelectionContext; +import net.minecraft.util.math.shapes.VoxelShape; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.IWorldReader; +import net.minecraft.world.World; + +public class RealityFunnelBlock extends ProperDirectionalBlock { + + public RealityFunnelBlock(Properties p_i48415_1_) { + super(p_i48415_1_); + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + return getDefaultState().with(FACING, context.getFace()); + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return AllShapes.REALITY_FUNNEL.get(state.get(FACING)); + } + + @Override + public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + if (worldIn.isRemote) + return; + + Direction blockFacing = state.get(FACING) + .getOpposite(); + if (fromPos.equals(pos.offset(blockFacing))) + if (!isValidPosition(state, worldIn, pos)) + worldIn.destroyBlock(pos, true); + } + + @Override + public boolean isValidPosition(BlockState state, IWorldReader world, BlockPos pos) { + return !world.getBlockState(pos.offset(state.get(FACING) + .getOpposite())) + .getShape(world, pos) + .isEmpty(); + } + + +} diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_default.json b/src/main/resources/assets/create/models/block/belt_funnel/block_default.json new file mode 100644 index 000000000..6f50b49a7 --- /dev/null +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_default.json @@ -0,0 +1,314 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "10": "create:block/reality_funnel", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "RightWall", + "from": [0, -3, 6], + "to": [2, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "east": {"uv": [2.75, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 3.5, 7.5, 4], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftWall", + "from": [14, -3, 6], + "to": [16, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "east": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 7.5, 7.5, 8], "rotation": 270, "texture": "#10"}, + "down": {"uv": [4, 8, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Top", + "from": [2, 10, 6], + "to": [14, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 8]}, + "faces": { + "north": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "south": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "up": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"}, + "down": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "RightBottom", + "from": [0, -5, 6], + "to": [1, -3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 15, 12.5, 15.5], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 6], + "to": [16, -3, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 14.5, 12.5, 15], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "F1", + "from": [2, -2.5, 7.5], + "to": [5, 10.5, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F3", + "from": [8, -2.5, 7.5], + "to": [11, 10.5, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F2", + "from": [5, -2.5, 7.5], + "to": [8, 10.5, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F4", + "from": [11, -2.5, 7.5], + "to": [14, 10.5, 8.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "BackExtension", + "from": [2, -2, 10], + "to": [14, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [0.25, 3.25, 1.25, 7.25], "texture": "#10"}, + "south": {"uv": [5.5, 12, 8.5, 16], "texture": "#10"}, + "west": {"uv": [0.25, 3.25, 1.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [7, 0, 8, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "MidExtension", + "from": [1, -3, 9], + "to": [15, 15, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [9, 0, 12.5, 4.5], "texture": "#10"}, + "east": {"uv": [1.25, 2.75, 2.25, 7.25], "texture": "#10"}, + "south": {"uv": [8.5, 11.5, 12, 16], "texture": "#10"}, + "west": {"uv": [1.25, 2.75, 2.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [4.75, 4, 5.75, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "midBackPlateRight", + "from": [0, -5, 12], + "to": [1, -2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "west": {"uv": [3, 0, 3.5, 0.75], "texture": "#10"}, + "up": {"uv": [3, 0, 3.5, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "midBackPlateLeft", + "from": [15, -5, 12], + "to": [16, -2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [0.5, 7.25, 1, 8], "texture": "#10"}, + "up": {"uv": [3, 0, 3.5, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "BackBottom", + "from": [4, -5, 16], + "to": [12, 5, 31], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -5, 17]}, + "faces": { + "east": {"uv": [12.25, 8.75, 16, 11.25], "texture": "#10"}, + "west": {"uv": [12.25, 8.75, 16, 11.25], "rotation": 180, "texture": "#10"}, + "down": {"uv": [12.25, 6.75, 16, 8.75], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Back", + "from": [3, -4, 14], + "to": [13, 13, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "south": {"uv": [3, 11.75, 5.5, 16], "texture": "#10"}, + "west": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "up": {"uv": [8, 1, 8.75, 3.5], "rotation": 90, "texture": "#10"}, + "down": {"uv": [8, 1, 8.5, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "BackPlateMid", + "from": [1, -3, 10], + "to": [15, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "south": {"uv": [0.25, 7.25, 3.75, 7.5], "texture": "#10"}, + "up": {"uv": [14.5, 0.25, 16, 3.75], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "RearBackPlate", + "from": [1, -5, 15], + "to": [15, -3, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, + "faces": { + "south": {"uv": [0.25, 7.5, 3.75, 8], "texture": "#10"} + } + }, + { + "name": "BackPlateRight", + "from": [0, -5, 14], + "to": [1, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "south": {"uv": [0, 7.25, 0.25, 8], "texture": "#10"}, + "west": {"uv": [3.5, 0, 4, 0.75], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "BackPlateLeft", + "from": [15, -5, 14], + "to": [16, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [0, 7.25, 0.5, 8], "texture": "#10"}, + "south": {"uv": [3.75, 7.25, 4, 8], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3.25, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 1, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [0, 90, 0] + }, + "fixed": { + "rotation": [0, 90, 0], + "translation": [0, 1.5, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4, + { + "name": "Flap", + "origin": [8, 8, 8], + "children": [5, 6, 7, 8] + } + ] + }, + { + "name": "Extension", + "origin": [9, -4, 8], + "children": [9, 10] + }, + { + "name": "DELETABLEEXTESNIONMID", + "origin": [35, 12, 4], + "children": [11, 12] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [13, 14, 15, 16, 17, 18] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json b/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json new file mode 100644 index 000000000..80900143a --- /dev/null +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_extended.json @@ -0,0 +1,345 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "10": "create:block/reality_funnel", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "RightWall", + "from": [0, -3, 0], + "to": [2, 16, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "east": {"uv": [2.75, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 3.5, 7.5, 4], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftWall", + "from": [14, -3, 0], + "to": [16, 16, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "east": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 7.5, 7.5, 8], "rotation": 270, "texture": "#10"}, + "down": {"uv": [4, 8, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Top", + "from": [2, 10, 0], + "to": [14, 16, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 8]}, + "faces": { + "north": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "south": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "up": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"}, + "down": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "RightBottom", + "from": [0, -5, 0], + "to": [1, -3, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 15, 12.5, 15.5], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 0], + "to": [16, -3, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 14.5, 12.5, 15], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "F1", + "from": [2, -2.5, 1.5], + "to": [5, 10.5, 2.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F3", + "from": [8, -2.5, 1.5], + "to": [11, 10.5, 2.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F2", + "from": [5, -2.5, 1.5], + "to": [8, 10.5, 2.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F4", + "from": [11, -2.5, 1.5], + "to": [14, 10.5, 2.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "BackExtension", + "from": [2, -2, 10], + "to": [14, 14, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [0.25, 3.25, 1.25, 7.25], "texture": "#10"}, + "south": {"uv": [5.5, 12, 8.5, 16], "texture": "#10"}, + "west": {"uv": [0.25, 3.25, 1.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [7, 0, 8, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "MidExtension", + "from": [1, -3, 6], + "to": [15, 15, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [9, 0, 12.5, 4.5], "texture": "#10"}, + "east": {"uv": [1.25, 2.75, 2.25, 7.25], "texture": "#10"}, + "south": {"uv": [8.5, 11.5, 12, 16], "texture": "#10"}, + "west": {"uv": [1.25, 2.75, 2.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [4.75, 4, 5.75, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "MidRight", + "from": [0, -5, 6], + "to": [1, -2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [1, 7.25, 2.5, 8], "texture": "#10"}, + "west": {"uv": [1.5, 0, 3, 0.75], "texture": "#10"}, + "up": {"uv": [1.5, 0, 3, 0.25], "rotation": 90, "texture": "#10"}, + "down": {"uv": [1, 7.75, 2.5, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "MidLeft", + "from": [15, -5, 6], + "to": [16, -2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [1, 7.25, 2.5, 8], "texture": "#10"}, + "west": {"uv": [1.5, 0, 3, 0.75], "texture": "#10"}, + "up": {"uv": [1.5, 0, 3, 0.25], "rotation": 90, "texture": "#10"}, + "down": {"uv": [1, 7.75, 2.5, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "midBackPlateRight", + "from": [0, -5, 12], + "to": [1, -2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "west": {"uv": [3, 0, 3.5, 0.75], "texture": "#10"}, + "up": {"uv": [3, 0, 3.5, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "midBackPlateLeft", + "from": [15, -5, 12], + "to": [16, -2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [0.5, 7.25, 1, 8], "texture": "#10"}, + "up": {"uv": [3, 0, 3.5, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "BackBottom", + "from": [4, -5, 16], + "to": [12, 5, 31], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -5, 17]}, + "faces": { + "east": {"uv": [12.25, 8.75, 16, 11.25], "texture": "#10"}, + "west": {"uv": [12.25, 8.75, 16, 11.25], "rotation": 180, "texture": "#10"}, + "down": {"uv": [12.25, 6.75, 16, 8.75], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Back", + "from": [3, -4, 14], + "to": [13, 13, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "south": {"uv": [3, 11.75, 5.5, 16], "texture": "#10"}, + "west": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "up": {"uv": [8, 1, 8.75, 3.5], "rotation": 90, "texture": "#10"}, + "down": {"uv": [8, 1, 8.5, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "BackPlateMid", + "from": [1, -3, 10], + "to": [15, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "south": {"uv": [0.25, 7.25, 3.75, 7.5], "texture": "#10"}, + "up": {"uv": [14.5, 0.25, 16, 3.75], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "RearBackPlate", + "from": [1, -5, 15], + "to": [15, -3, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, + "faces": { + "south": {"uv": [0.25, 7.5, 3.75, 8], "texture": "#10"} + } + }, + { + "name": "BackPlateRight", + "from": [0, -5, 14], + "to": [1, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "south": {"uv": [0, 7.25, 0.25, 8], "texture": "#10"}, + "west": {"uv": [3.5, 0, 4, 0.75], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "BackPlateLeft", + "from": [15, -5, 14], + "to": [16, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [0, 7.25, 0.5, 8], "texture": "#10"}, + "south": {"uv": [3.75, 7.25, 4, 8], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3.25, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 1, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [0, 90, 0] + }, + "fixed": { + "rotation": [0, 90, 0], + "translation": [0, 1.5, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4, + { + "name": "Flap", + "origin": [8, 8, 8], + "children": [5, 6, 7, 8] + } + ] + }, + { + "name": "Extension", + "origin": [9, -4, 8], + "children": [9, 10] + }, + { + "name": "DELETABLEEXTENSION", + "origin": [9, -4, 8], + "children": [11, 12] + }, + { + "name": "DELETABLEEXTESNIONMID", + "origin": [35, 12, 4], + "children": [13, 14] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [15, 16, 17, 18, 19, 20] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json b/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json new file mode 100644 index 000000000..0fd0f5463 --- /dev/null +++ b/src/main/resources/assets/create/models/block/belt_funnel/block_retracted.json @@ -0,0 +1,289 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "10": "create:block/reality_funnel", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "RightWall", + "from": [0, -3, 8], + "to": [2, 16, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "east": {"uv": [2.75, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 3.5, 7.5, 4], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftWall", + "from": [14, -3, 8], + "to": [16, 16, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "east": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 7.5, 7.5, 8], "rotation": 270, "texture": "#10"}, + "down": {"uv": [4, 8, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Top", + "from": [2, 10, 8], + "to": [14, 16, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 8]}, + "faces": { + "north": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "south": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "up": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"}, + "down": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "RightBottom", + "from": [0, -5, 8], + "to": [1, -3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 15, 12.5, 15.5], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 8], + "to": [16, -3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 14.5, 12.5, 15], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "F1", + "from": [2, -2.5, 9.5], + "to": [5, 10.5, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F3", + "from": [8, -2.5, 9.5], + "to": [11, 10.5, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F2", + "from": [5, -2.5, 9.5], + "to": [8, 10.5, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F4", + "from": [11, -2.5, 9.5], + "to": [14, 10.5, 10.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 8]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "BackExtension", + "from": [2, -2, 12], + "to": [14, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [0.25, 3.25, 1.25, 7.25], "texture": "#10"}, + "south": {"uv": [5.5, 12, 8.5, 16], "texture": "#10"}, + "west": {"uv": [0.25, 3.25, 1.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [7, 0, 8, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "MidExtension", + "from": [1, -3, 11], + "to": [15, 15, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [9, 0, 12.5, 4.5], "texture": "#10"}, + "east": {"uv": [1.25, 2.75, 2.25, 7.25], "texture": "#10"}, + "south": {"uv": [8.5, 11.5, 12, 16], "texture": "#10"}, + "west": {"uv": [1.25, 2.75, 2.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [4.75, 4, 5.75, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "BackBottom", + "from": [4, -5, 16], + "to": [12, 5, 31], + "rotation": {"angle": -22.5, "axis": "x", "origin": [8, -5, 17]}, + "faces": { + "east": {"uv": [12.25, 8.75, 16, 11.25], "texture": "#10"}, + "west": {"uv": [12.25, 8.75, 16, 11.25], "rotation": 180, "texture": "#10"}, + "down": {"uv": [12.25, 6.75, 16, 8.75], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Back", + "from": [3, -4, 16], + "to": [13, 13, 19], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "east": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "south": {"uv": [3, 11.75, 5.5, 16], "texture": "#10"}, + "west": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "up": {"uv": [8, 1, 8.75, 3.5], "rotation": 90, "texture": "#10"}, + "down": {"uv": [8, 1, 8.5, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "BackPlateMid", + "from": [1, -3, 10], + "to": [15, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "south": {"uv": [0.25, 7.25, 3.75, 7.5], "texture": "#10"}, + "up": {"uv": [14.5, 0.25, 16, 3.75], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "RearBackPlate", + "from": [1, -5, 15], + "to": [15, -3, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 8]}, + "faces": { + "south": {"uv": [0.25, 7.5, 3.75, 8], "texture": "#10"} + } + }, + { + "name": "BackPlateRight", + "from": [0, -5, 14], + "to": [1, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "south": {"uv": [0, 7.25, 0.25, 8], "texture": "#10"}, + "west": {"uv": [3.5, 0, 4, 0.75], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "BackPlateLeft", + "from": [15, -5, 14], + "to": [16, -2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [0, 7.25, 0.5, 8], "texture": "#10"}, + "south": {"uv": [3.75, 7.25, 4, 8], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3.25, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 1, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [0, 90, 0] + }, + "fixed": { + "rotation": [0, 90, 0], + "translation": [0, 1.5, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4, + { + "name": "Flap", + "origin": [8, 8, 8], + "children": [5, 6, 7, 8] + } + ] + }, + { + "name": "Extension", + "origin": [9, -4, 8], + "children": [9, 10] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [11, 12, 13, 14, 15, 16] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/chute/block.json b/src/main/resources/assets/create/models/block/chute/block.json new file mode 100644 index 000000000..4fa5dae2b --- /dev/null +++ b/src/main/resources/assets/create/models/block/chute/block.json @@ -0,0 +1,118 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "13": "create:block/chute", + "particle": "create:block/zinc_block" + }, + "elements": [ + { + "from": [3, 8, 1], + "to": [13, 16, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 16, -3]}, + "faces": { + "north": {"uv": [10, 0, 15, 4], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [10, 0, 15, 4], "texture": "#13"}, + "west": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "up": {"uv": [1, 0, 6, 1], "texture": "#13"}, + "down": {"uv": [1, 6, 6, 7], "texture": "#13"} + } + }, + { + "from": [13, 8, 1], + "to": [15, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 16, 9]}, + "faces": { + "north": {"uv": [9, 0, 10, 4], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [15, 0, 16, 4], "texture": "#13"}, + "west": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "up": {"uv": [6, 0, 7, 7], "texture": "#13"}, + "down": {"uv": [6, 0, 7, 7], "texture": "#13"} + } + }, + { + "from": [3, 8, 13], + "to": [13, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 16, 9]}, + "faces": { + "north": {"uv": [10, 0, 15, 4], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [10, 0, 15, 4], "texture": "#13"}, + "west": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "up": {"uv": [1, 6, 6, 7], "texture": "#13"}, + "down": {"uv": [1, 0, 6, 1], "texture": "#13"} + } + }, + { + "from": [1, 8, 1], + "to": [3, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 16, 9]}, + "faces": { + "north": {"uv": [15, 0, 16, 4], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [9, 0, 10, 4], "texture": "#13"}, + "west": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "up": {"uv": [0, 0, 1, 7], "texture": "#13"}, + "down": {"uv": [0, 0, 1, 7], "texture": "#13"} + } + }, + { + "from": [13, 0, 2], + "to": [14, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 9]}, + "faces": { + "north": {"uv": [10, 4, 10.5, 8], "texture": "#13"}, + "east": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "south": {"uv": [15.5, 4, 16, 8], "texture": "#13"}, + "west": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "down": {"uv": [10, 7.5, 16, 8], "rotation": 90, "texture": "#13"} + } + }, + { + "from": [2, 0, 2], + "to": [3, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 9]}, + "faces": { + "north": {"uv": [15.5, 4, 16, 8], "texture": "#13"}, + "east": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "south": {"uv": [10, 4, 10.5, 8], "texture": "#13"}, + "west": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "down": {"uv": [10, 7.5, 16, 8], "rotation": 90, "texture": "#13"} + } + }, + { + "from": [3, 0, 13], + "to": [13, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 20]}, + "faces": { + "north": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "south": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "down": {"uv": [10.5, 7.5, 15.5, 8], "texture": "#13"} + } + }, + { + "from": [3, 0, 2], + "to": [13, 8, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 9]}, + "faces": { + "north": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "south": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "down": {"uv": [10.5, 7.5, 15.5, 8], "texture": "#13"} + } + } + ], + "groups": [ + { + "name": "ChuteTop", + "origin": [9, 16, -7], + "children": [0, 1, 2, 3] + }, + { + "name": "ChuteBase", + "origin": [8, 8, -7], + "children": [4, 5, 6, 7] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/chute/block_windowed.json b/src/main/resources/assets/create/models/block/chute/block_windowed.json new file mode 100644 index 000000000..2897f4c6f --- /dev/null +++ b/src/main/resources/assets/create/models/block/chute/block_windowed.json @@ -0,0 +1,118 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "13": "create:block/chute", + "particle": "create:block/zinc_block" + }, + "elements": [ + { + "from": [3, 8, 1], + "to": [13, 16, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 16, -3]}, + "faces": { + "north": {"uv": [1, 12, 6, 16], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [1, 12, 6, 16], "texture": "#13"}, + "west": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "up": {"uv": [1, 0, 6, 1], "texture": "#13"}, + "down": {"uv": [1, 6, 6, 7], "texture": "#13"} + } + }, + { + "from": [13, 8, 1], + "to": [15, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 16, 9]}, + "faces": { + "north": {"uv": [9, 0, 10, 4], "texture": "#13"}, + "east": {"uv": [0, 12, 7, 16], "texture": "#13"}, + "south": {"uv": [15, 0, 16, 4], "texture": "#13"}, + "west": {"uv": [0, 12, 7, 16], "texture": "#13"}, + "up": {"uv": [6, 0, 7, 7], "texture": "#13"}, + "down": {"uv": [6, 0, 7, 7], "texture": "#13"} + } + }, + { + "from": [3, 8, 13], + "to": [13, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 16, 9]}, + "faces": { + "north": {"uv": [1, 12, 6, 16], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [1, 12, 6, 16], "texture": "#13"}, + "west": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "up": {"uv": [1, 6, 6, 7], "texture": "#13"}, + "down": {"uv": [1, 0, 6, 1], "texture": "#13"} + } + }, + { + "from": [1, 8, 1], + "to": [3, 16, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 16, 9]}, + "faces": { + "north": {"uv": [15, 0, 16, 4], "texture": "#13"}, + "east": {"uv": [9, 0, 16, 4], "texture": "#13"}, + "south": {"uv": [9, 0, 10, 4], "texture": "#13"}, + "west": {"uv": [0, 12, 7, 16], "texture": "#13"}, + "up": {"uv": [0, 0, 1, 7], "texture": "#13"}, + "down": {"uv": [0, 0, 1, 7], "texture": "#13"} + } + }, + { + "from": [13, 0, 2], + "to": [14, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 9]}, + "faces": { + "north": {"uv": [10, 4, 10.5, 8], "texture": "#13"}, + "east": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "south": {"uv": [15.5, 4, 16, 8], "texture": "#13"}, + "west": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "down": {"uv": [10, 7.5, 16, 8], "rotation": 90, "texture": "#13"} + } + }, + { + "from": [2, 0, 2], + "to": [3, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 9]}, + "faces": { + "north": {"uv": [15.5, 4, 16, 8], "texture": "#13"}, + "east": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "south": {"uv": [10, 4, 10.5, 8], "texture": "#13"}, + "west": {"uv": [10, 4, 16, 8], "texture": "#13"}, + "down": {"uv": [10, 7.5, 16, 8], "rotation": 90, "texture": "#13"} + } + }, + { + "from": [3, 0, 13], + "to": [13, 8, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 20]}, + "faces": { + "north": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "south": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "down": {"uv": [10.5, 7.5, 15.5, 8], "texture": "#13"} + } + }, + { + "from": [3, 0, 2], + "to": [13, 8, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 9]}, + "faces": { + "north": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "south": {"uv": [10.5, 4, 15.5, 8], "texture": "#13"}, + "down": {"uv": [10.5, 7.5, 15.5, 8], "texture": "#13"} + } + } + ], + "groups": [ + { + "name": "ChuteTop", + "origin": [9, 16, -7], + "children": [0, 1, 2, 3] + }, + { + "name": "ChuteBase", + "origin": [8, 8, -7], + "children": [4, 5, 6, 7] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/chute_port.json b/src/main/resources/assets/create/models/block/chute_port.json new file mode 100644 index 000000000..631e2d653 --- /dev/null +++ b/src/main/resources/assets/create/models/block/chute_port.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "14": "create:block/chute_port", + "particle": "create:block/zinc_block" + }, + "elements": [ + { + "name": "Port", + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [12, 0, 16, 4], "texture": "#14"}, + "east": {"uv": [0, 0, 4, 4], "texture": "#14"}, + "south": {"uv": [0, 0, 4, 4], "texture": "#14"}, + "west": {"uv": [0, 0, 4, 4], "texture": "#14"}, + "up": {"uv": [4, 4, 8, 8], "texture": "#14"}, + "down": {"uv": [0, 4, 4, 8], "texture": "#14"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/packager/block.json b/src/main/resources/assets/create/models/block/packager/block.json new file mode 100644 index 000000000..ccf249c2c --- /dev/null +++ b/src/main/resources/assets/create/models/block/packager/block.json @@ -0,0 +1,82 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "create:block/brass_gearbox", + "2": "create:block/packager_top", + "3": "create:block/crafter_top", + "5": "create:block/brass_casing", + "particle": "create:block/brass_casing" + }, + "elements": [ + { + "name": "HudTop", + "from": [0, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, + "south": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "name": "HudBottom", + "from": [0, 0, 0], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, -6, 8]}, + "faces": { + "north": {"uv": [0, 14, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 14, 16, 16], "texture": "#3"}, + "south": {"uv": [0, 14, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#3"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#5"} + } + }, + { + "name": "HudLeft", + "from": [14, 2, 0], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 14], "texture": "#1"}, + "east": {"uv": [0, 2, 16, 14], "texture": "#3"}, + "south": {"uv": [14, 2, 16, 14], "texture": "#1"}, + "west": {"uv": [0, 2, 16, 14], "texture": "#1"} + } + }, + { + "name": "HudCenter", + "from": [2, 2, 1], + "to": [14, 14, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, + "faces": { + "north": {"uv": [2, 2, 14, 14], "texture": "#1"}, + "south": {"uv": [2, 2, 14, 14], "texture": "#1"} + } + }, + { + "name": "HudRight", + "from": [0, 2, 0], + "to": [2, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-22, -4, 8]}, + "faces": { + "north": {"uv": [14, 2, 16, 14], "texture": "#1"}, + "east": {"uv": [0, 2, 16, 14], "texture": "#1"}, + "south": {"uv": [0, 2, 2, 14], "texture": "#1"}, + "west": {"uv": [0, 2, 16, 14], "texture": "#3"} + } + } + ], + "groups": [ + { + "name": "hud", + "origin": [-22, -4, 8], + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/packager/item.json b/src/main/resources/assets/create/models/block/packager/item.json new file mode 100644 index 000000000..7d29349c2 --- /dev/null +++ b/src/main/resources/assets/create/models/block/packager/item.json @@ -0,0 +1,169 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "create:block/axis", + "1": "create:block/brass_gearbox", + "2": "create:block/packager_top", + "3": "create:block/crafter_top", + "5": "create:block/brass_casing", + "6": "create:block/sealer", + "particle": "create:block/axis", + "1_1": "create:block/axis_top" + }, + "elements": [ + { + "name": "Axis", + "from": [6, 6, 0], + "to": [10, 10, 16], + "shade": false, + "faces": { + "north": {"uv": [6, 6, 10, 10], "rotation": 180, "texture": "#1_1"}, + "east": {"uv": [6, 0, 10, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [6, 6, 10, 10], "texture": "#1_1"}, + "west": {"uv": [6, 0, 10, 16], "rotation": 270, "texture": "#0"}, + "up": {"uv": [6, 0, 10, 16], "texture": "#0"}, + "down": {"uv": [6, 0, 10, 16], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "HudTop", + "from": [0, 14, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, + "south": {"uv": [0, 0, 16, 2], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + }, + { + "name": "HudBottom", + "from": [0, 0, 0], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, -6, 8]}, + "faces": { + "north": {"uv": [0, 14, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 14, 16, 16], "texture": "#3"}, + "south": {"uv": [0, 14, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#3"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#5"} + } + }, + { + "name": "HudLeft", + "from": [14, 2, 0], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, + "faces": { + "north": {"uv": [0, 2, 2, 14], "texture": "#1"}, + "east": {"uv": [0, 2, 16, 14], "texture": "#3"}, + "south": {"uv": [14, 2, 16, 14], "texture": "#1"}, + "west": {"uv": [0, 2, 16, 14], "texture": "#1"} + } + }, + { + "name": "HudCenter", + "from": [2, 2, 1], + "to": [14, 14, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, + "faces": { + "north": {"uv": [2, 2, 14, 14], "texture": "#1"}, + "south": {"uv": [2, 2, 14, 14], "texture": "#1"} + } + }, + { + "name": "HudRight", + "from": [0, 2, 0], + "to": [2, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-22, -4, 8]}, + "faces": { + "north": {"uv": [14, 2, 16, 14], "texture": "#1"}, + "east": {"uv": [0, 2, 16, 14], "texture": "#1"}, + "south": {"uv": [0, 2, 2, 14], "texture": "#1"}, + "west": {"uv": [0, 2, 16, 14], "texture": "#3"} + } + }, + { + "name": "SealerKnob", + "from": [5, 25.15, 5], + "to": [11, 27.15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 33.15, 8]}, + "faces": { + "north": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "east": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "south": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "west": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "up": {"uv": [13, 1, 16, 4], "texture": "#6"}, + "down": {"uv": [13, 4, 16, 5], "texture": "#6"} + } + }, + { + "name": "Sealer", + "from": [2, 15.15, 2], + "to": [14, 25.15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 25.15, 8]}, + "faces": { + "north": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "east": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "south": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "west": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "up": {"uv": [10, 5, 16, 11], "texture": "#6"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, -1.75, 0], + "scale": [0.5, 0.5, 0.5] + }, + "fixed": { + "translation": [0, -1.75, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "shaft", + "origin": [8, 8, 8], + "children": [0] + }, + { + "name": "hud", + "origin": [-22, -4, 8], + "children": [1, 2, 3, 4, 5] + }, + { + "name": "group", + "origin": [-8, 25.15, 8], + "children": [6, 7] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/packager/sealer.json b/src/main/resources/assets/create/models/block/packager/sealer.json new file mode 100644 index 000000000..e0527d1d2 --- /dev/null +++ b/src/main/resources/assets/create/models/block/packager/sealer.json @@ -0,0 +1,53 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "6": "create:block/sealer", + "particle": "create:block/sealer" + }, + "elements": [ + { + "name": "SealerKnob", + "from": [5, 25.15, 5], + "to": [11, 27.15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 33.15, 8]}, + "faces": { + "north": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "east": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "south": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "west": {"uv": [13, 4, 16, 5], "texture": "#6"}, + "up": {"uv": [13, 1, 16, 4], "texture": "#6"} + } + }, + { + "name": "Sealer", + "from": [2, 15.15, 2], + "to": [14, 25.15, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [-8, 25.15, 8]}, + "faces": { + "north": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "east": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "south": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "west": {"uv": [10, 11, 16, 16], "texture": "#6"}, + "up": {"uv": [10, 5, 16, 11], "texture": "#6"} + } + } + ], + "groups": [ + { + "name": "shaft", + "origin": [8, 8, 8], + "children": [] + }, + { + "name": "hud", + "origin": [-22, -4, 8], + "children": [] + }, + { + "name": "Sealer", + "origin": [-8, 25.15, 8], + "children": [0, 1] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/reality_funnel/block.json b/src/main/resources/assets/create/models/block/reality_funnel/block.json new file mode 100644 index 000000000..ebfd1e4a6 --- /dev/null +++ b/src/main/resources/assets/create/models/block/reality_funnel/block.json @@ -0,0 +1,117 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "10": "create:block/reality_funnel", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "from": [2, -2, 2], + "to": [14, 0, 14], + "rotation": {"angle": 0, "axis": "z", "origin": [9, 8, 8]}, + "faces": { + "north": {"uv": [0, 13, 0.5, 16], "rotation": 270, "texture": "#10"}, + "east": {"uv": [0, 13, 0.5, 16], "rotation": 270, "texture": "#10"}, + "south": {"uv": [0, 13, 0.5, 16], "rotation": 270, "texture": "#10"}, + "west": {"uv": [0, 13, 0.5, 16], "rotation": 270, "texture": "#10"} + } + }, + { + "from": [3, -1, 3], + "to": [13, 1, 13], + "rotation": {"angle": 0, "axis": "z", "origin": [9, 9, 8]}, + "faces": { + "up": {"uv": [9.5, 1.75, 12, 4.25], "rotation": 90, "texture": "#10"} + } + }, + { + "from": [13, 0, 2], + "to": [14, 2, 14], + "rotation": {"angle": 0, "axis": "z", "origin": [9, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 13, 1, 13.25], "rotation": 270, "texture": "#10"}, + "east": {"uv": [0.5, 13, 1, 16], "rotation": 270, "texture": "#10"}, + "south": {"uv": [0.5, 13, 1, 13.25], "rotation": 270, "texture": "#10"}, + "west": {"uv": [0.5, 13, 1, 16], "rotation": 270, "texture": "#10"}, + "up": {"uv": [0.75, 13, 1, 16], "rotation": 180, "texture": "#10"} + } + }, + { + "from": [2, 0, 2], + "to": [3, 2, 14], + "rotation": {"angle": 0, "axis": "z", "origin": [9, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 15.75, 1, 16], "rotation": 270, "texture": "#10"}, + "east": {"uv": [0.5, 13, 1, 16], "rotation": 270, "texture": "#10"}, + "south": {"uv": [0.5, 15.75, 1, 16], "rotation": 270, "texture": "#10"}, + "west": {"uv": [0.5, 13, 1, 16], "rotation": 270, "texture": "#10"}, + "up": {"uv": [0.75, 13, 1, 16], "rotation": 180, "texture": "#10"} + } + }, + { + "from": [3, 0, 2], + "to": [13, 2, 3], + "rotation": {"angle": 0, "axis": "z", "origin": [9, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 13.25, 1, 15.75], "rotation": 270, "texture": "#10"}, + "south": {"uv": [0.5, 13.25, 1, 15.75], "rotation": 270, "texture": "#10"}, + "up": {"uv": [0.75, 13.25, 1, 15.75], "rotation": 90, "texture": "#10"} + } + }, + { + "from": [3, 0, 13], + "to": [13, 2, 14], + "rotation": {"angle": 0, "axis": "z", "origin": [9, 8, 8]}, + "faces": { + "north": {"uv": [0.5, 13.25, 1, 15.75], "rotation": 270, "texture": "#10"}, + "south": {"uv": [0.5, 13.25, 1, 15.75], "rotation": 270, "texture": "#10"}, + "up": {"uv": [0.75, 13.25, 1, 15.75], "rotation": 270, "texture": "#10"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3.25, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 1, 0], + "scale": [0.5, 0.5, 0.5] + }, + "head": { + "rotation": [0, 90, 0] + }, + "fixed": { + "rotation": [0, 90, 0], + "translation": [0, 1.5, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "BasicFunnel", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/reality_funnel/item.json b/src/main/resources/assets/create/models/block/reality_funnel/item.json new file mode 100644 index 000000000..b2ddbd530 --- /dev/null +++ b/src/main/resources/assets/create/models/block/reality_funnel/item.json @@ -0,0 +1,301 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "10": "create:block/reality_funnel", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "RightWall", + "from": [0, -3, 3], + "to": [2, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "east": {"uv": [2.75, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 3.5, 7.5, 4], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftWall", + "from": [14, -3, 3], + "to": [16, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [12, 11.25, 12.5, 16], "texture": "#10"}, + "east": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "south": {"uv": [15.5, 11.25, 16, 16], "texture": "#10"}, + "west": {"uv": [2.5, 2.75, 4, 7.5], "texture": "#10"}, + "up": {"uv": [6, 7.5, 7.5, 8], "rotation": 270, "texture": "#10"}, + "down": {"uv": [4, 8, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "Top", + "from": [2, 10, 3], + "to": [14, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [6, -8, 5]}, + "faces": { + "north": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "south": {"uv": [12.5, 11.25, 15.5, 12.75], "texture": "#10"}, + "up": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"}, + "down": {"uv": [6, 4, 7.5, 7.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "RightBottom", + "from": [0, -5, 3], + "to": [1, -3, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 5]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 15, 12.5, 15.5], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "LeftBottom", + "from": [15, -5, 3], + "to": [16, -3, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "south": {"uv": [12.25, 14.5, 12.5, 15], "texture": "#10"}, + "west": {"uv": [2.5, 7.5, 4, 8], "texture": "#10"}, + "down": {"uv": [2.5, 7.75, 4, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "F1", + "from": [2, -2.5, 4.5], + "to": [5, 10.5, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F3", + "from": [8, -2.5, 4.5], + "to": [11, 10.5, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 5]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F2", + "from": [5, -2.5, 4.5], + "to": [8, 10.5, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "F4", + "from": [11, -2.5, 4.5], + "to": [14, 10.5, 5.5], + "rotation": {"angle": 0, "axis": "y", "origin": [14, -8, 5]}, + "faces": { + "north": {"uv": [4, 0, 4.75, 3.25], "texture": "#10"}, + "east": {"uv": [4, 0, 4.25, 3.25], "texture": "#10"}, + "south": {"uv": [4, 0, 4.75, 3.25], "rotation": 180, "texture": "#10"}, + "west": {"uv": [4.5, 0, 4.75, 3.25], "texture": "#10"}, + "up": {"uv": [4, 0.25, 4.75, 0.5], "rotation": 180, "texture": "#10"}, + "down": {"uv": [4, 2.25, 4.75, 2.5], "rotation": 180, "texture": "#10"} + } + }, + { + "name": "BackExtension", + "from": [2, -2, 7], + "to": [14, 14, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "east": {"uv": [0.25, 3.25, 1.25, 7.25], "texture": "#10"}, + "south": {"uv": [5.5, 12, 8.5, 16], "texture": "#10"}, + "west": {"uv": [0.25, 3.25, 1.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [7, 0, 8, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "MidExtension", + "from": [1, -3, 6], + "to": [15, 15, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [9, 0, 12.5, 4.5], "texture": "#10"}, + "east": {"uv": [1.25, 2.75, 2.25, 7.25], "texture": "#10"}, + "south": {"uv": [8.5, 11.5, 12, 16], "texture": "#10"}, + "west": {"uv": [1.25, 2.75, 2.25, 7.25], "rotation": 180, "texture": "#10"}, + "up": {"uv": [4.75, 4, 5.75, 8], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "midBackPlateRight", + "from": [0, -5, 9], + "to": [1, -2, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 5]}, + "faces": { + "west": {"uv": [3, 0, 3.5, 0.75], "texture": "#10"}, + "up": {"uv": [3, 0, 3.5, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "midBackPlateLeft", + "from": [15, -5, 9], + "to": [16, -2, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "east": {"uv": [0.5, 7.25, 1, 8], "texture": "#10"}, + "up": {"uv": [3, 0, 3.5, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "Back", + "from": [3, -4, 11], + "to": [13, 13, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "east": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "south": {"uv": [3, 11.75, 5.5, 16], "texture": "#10"}, + "west": {"uv": [12.5, 0, 13.25, 4.5], "texture": "#10"}, + "up": {"uv": [8, 1, 8.75, 3.5], "rotation": 90, "texture": "#10"}, + "down": {"uv": [8, 1, 8.5, 3.5], "rotation": 270, "texture": "#10"} + } + }, + { + "name": "BackPlateMid", + "from": [1, -3, 7], + "to": [15, -2, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "south": {"uv": [0.25, 7.25, 3.75, 7.5], "texture": "#10"}, + "up": {"uv": [14.5, 0.25, 16, 3.75], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "RearBackPlate", + "from": [1, -5, 12], + "to": [15, -3, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -8, 5]}, + "faces": { + "south": {"uv": [0.25, 7.5, 3.75, 8], "texture": "#10"} + } + }, + { + "name": "BackPlateRight", + "from": [0, -5, 11], + "to": [1, -2, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [-7, -8, 5]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "south": {"uv": [0, 7.25, 0.25, 8], "texture": "#10"}, + "west": {"uv": [3.5, 0, 4, 0.75], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + }, + { + "name": "BackPlateLeft", + "from": [15, -5, 11], + "to": [16, -2, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 5]}, + "faces": { + "north": {"uv": [12, 13.75, 12.25, 14.25], "texture": "#10"}, + "east": {"uv": [0, 7.25, 0.5, 8], "texture": "#10"}, + "south": {"uv": [3.75, 7.25, 4, 8], "texture": "#10"}, + "up": {"uv": [3.5, 0, 4, 0.25], "rotation": 90, "texture": "#10"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [0, 1.75, 0], + "scale": [0.625, 0.625, 0.625] + }, + "head": { + "rotation": [0, 90, 0] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "BeltFunnel", + "origin": [9, -4, 8], + "children": [ + { + "name": "FrontSection", + "origin": [9, -4, 8], + "children": [0, 1, 2, 3, 4, + { + "name": "Flap", + "origin": [8, 8, 8], + "children": [5, 6, 7, 8] + } + ] + }, + { + "name": "Extension", + "origin": [9, -4, 8], + "children": [9, 10] + }, + { + "name": "DELETABLEEXTESNIONMID", + "origin": [35, 12, 4], + "children": [11, 12] + }, + { + "name": "Base", + "origin": [9, -4, 8], + "children": [13, 14, 15, 16, 17] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/chute.png b/src/main/resources/assets/create/textures/block/chute.png new file mode 100644 index 0000000000000000000000000000000000000000..d99d77012a47e238b662dee5543cfacc88a9948b GIT binary patch literal 804 zcmV+<1Ka$GP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00NXrL_t(oN4=J@ZsI@?hW&OlmY_fgL?q}y zqC=wL3JNHYLJ^6c_EKGY^*z8TDU&z2+(X=kZ~PPX*3>)Dxqe$S2#A6#d#!390U}`U@b?0Q zJkNtL7z`qa0lK$7mF@*31ysN$2NLWP3*wUha=9!Zn}A=XdzH)zv3C4ZTOeF6mvBCx zBTlDN*zI;Rz8% zfE4mN0a}k0fK17OlIvbT0HZ4A6ALQ6FTYK$Er=CJk$eTJl!cm5+c=xeimE0_z5@G- z+1GG99>+Nqw?0XdE|D~LiKMYhB#m7nY3vIBwFw`eUjul0`xD3Kzi%aYfAIKlS2ec9 zHR-?1T!{FXX14_NdcCT#E$)B)E(zcwu}1F?q5uvC9kDvOII--vfb8;P^kgXkTy>nZ~52&X~%oT=E;q3`>c&O_Gr!kr|B3FfpMTY-T7^ zCy6t&U6eKEV3%@>Rym94oM~tZu@=WIqR7Zjb)NIb`@YZTeV_O8c|L!THOV@m_A*=gfn~?04T+)v>{j>HsG=X;s7vy_{pG}yvRviaxHJq zA)Y@cjF%V^djfDnBBFV;=o38Ho<^r_-7*756aaw3db%?XBprQq&4okSLp;yPDsfN8 zF+4A1jw0npYTWF7d#KHRlp{59$H_S?kAqwS-q^s3im)UwL-voGgZq5_XYIbakyWg! zZAqGbRUbAzRXum=-F2t%u)f63_Rgu~*!ksq-<$nX9;NEa9o}r@vde%w+xGK+Tf3R6 znaA7Ba&yJ^TGm}?OB0M!3I;M-##P-Nmk#J@Jfx(R@mKFnqtg}+#wTbKsv8<^R4A2s zB^{iB?y(1@yJo6^IE{Z~=%LuetYP`%1I+0+s$R8f*=p)G#6v3n?#uVNoz9@2JQk`gZgeS)bauEo)8jM4Uuj;*`4E2aJ4zv9r1TU< zsue!*#;^jEM1UbaC_}v*FIK#@ew1h~>`6AM2z8Xl;IIoF`MIS-;AN(i z^mK19xfgTn8TDj%aewWlrulVtu7UNl&Hq*vDqLLSJ2*V!H3Ynob*eSwEAg<@C%uTM z3j>OV1@F6|K^AM=1Zo=zreuo)(J?#w_H6C#TTwVRNspena1MhoEactKKp%hkCa*}t z^PV6K*4`{&IlOlLmEjaZFoFw4NUczS_}ft+B{g<2MD{S&(@u}Q;nsC@g)zI!UN@zj z`T8)h2qmE6p^y4$YHEW1jB^hn3c!|en)aGhojD|%`cI3*3pF{K^Ko?3V)fhmHoSIwv8WtGH``yQI!rT3iJwRg5N{O*mvT_Dd8u2pH* zQ#U*_uLe#|PTwXZCi>Ub*Sid>^89J0hL8rF2G4xgLup2jyYd zExj*amU&K1PTIhkPq0FJWh-+wZ*HGBwH%6hI@@aE28_*j^0{2D@9yGx8F=(`_tBN! zdd_(pka6~MCBA!kd3obNPA_7ZVzGYLtyGFJg~n%V*;ueR!Gs3)AAqhsx%4i7~%#i!A(JO4CooU>^f=#^0Zj2anJfNU5V z3PP2*r&gfo8Ah#f!nN?=#A74j4rS|=CnFMPda7?Cgtaw*%Fu^eYQYUOjckRbr;ag0 zp3!M%MS|z+KW#T>e-#r_C;n&qDPup9d*S^nALtkehcmitV|W)_7XJPxBe zDP6e@qvD4AU?)Z3>{$VFMm`#q!K%q*9dwfNQ$8Uy>uO(6pWYvn^A}~6cw&==U1y&B zLlfyPmAh()IfSc(1dp>}^a$7VUV?`XfRqXw8xK&BTq|3Sbe!LrPnzavEj zJs2C!{8H+dy3h#0oO`1w>VGQ(0*yR3{s$_$rwg_ScPw2tdkjUW#c+>%;pxJyK$xH_F&qrP7d$E{FL^}sZDw6Jk3`)*f%7Dr7%Y^M_ zcPdQ_OO8Ki5ZmgC5=c}+*cG{;U5&M^|C~Y20#LT=By}Z;C1rt33 zJtM=93Yk-Zif((lIEGmGZ=H0ItI0vcm39B2Yi?hS9TS)A5O7@LE3kI)go4CIX>ShB zmW-FX?!V^yp6F<{SxDd0>@ ze)xTMFhkX})DqEO42@Qw1;P&5e!n^OgnMBqOHOx_PMs#pr?U~Y%=4^@m#$s=pJQ3( zsW(uuejOl?nQx_EO;BxenVp{LE{IDI9MZDmtl&Gb} zIfB9`-g3NZX18cxpeHZ4fvcTm_Y;najkm)Ec7GH8v~p7C<}m$7KyNa5y85}Sb4q9e E06a~IOaK4? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/reality_funnel.png b/src/main/resources/assets/create/textures/block/reality_funnel.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f93e3e389257a742423fa31893911696434de5 GIT binary patch literal 2280 zcmVP)<{98FWQhbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMGBNQWX_Wu~2xUn`K~#8N?V4F{6h{<=`3w93o)VHsHbR&O)+ZzcHny>`!6*rP z5LqCQhXgDyU_dszu~`fT2PrR60*VwRB>%3{-yP2QPPy9C-7~U10ZV79ySA=#>elUB z)n0dY=%eJ~$xo{|fBchb3Vt~AnSpvE-?b$Zmo{0-J?QA@NOtYomF(NMFG>H_)x)pT zUnFlH9ZyI>SbptddlF*!o3rduy9!Xx^8nSDMk-tyE&-lS9Lf#GHFlvb zdHv{wr3e7=+3~(5m>%slAP78a9$p3ruyg0m+)H53o;}M7zzmiV0O1gT6akoFk$y7K zpFF+ZUnPHcxI6jd$q8#$^YAjj2W;QIy^sLi-Q9^&2FySJi2EQ@3Y4( zWsM`i^jNQv2O^Ik_pbDq08Oy~d_YkP7#J8Z0Z19J)-L4`!cT18yg3)BOB+o8x0z$r zC4c}Sd1l@ONK?w2VgZc`;MXqYkP*3!8#fv@Y}il(<*OcTn03U^n@R$NJq>S?%lgLy^YuLfH=;Nw*aZ1Im%@Ln0kz~2X*QR zaQpIs>dcFLQw3lE+qP}X9S0zQe+~M9Q(jhp(RcljA^`7s$ZHuOfXH*t5+JsT4w8<- za22%#1w)|GK&V+3Fn*yu?dMBNC4gq$69SdR8FvfHr2K&X?qc z{e*;L0%(m%fQ6|eO9X(tgyfpMtfixT;0H|^&yfJE^B5!mb!j6%B43gh_R}l@LQ5hq zYw0N8M}eyW`^h7KoXpF~BSz%sTSK`7$XYte_c6d~z<%-wpg?2p`atT;`b>yW0P6cN zm%J>?Q9j^WeXKO>CnO93pHfFohI7KlSNrS?F-rh1T$TW9$^t^dF#+=UfKW*CvMgs! zSwM_*c*3NiGt27(LIJWYM}h*b)yGQ1enP@A0rL8QP=GAUk)VKU z^|8{hpO7#E*1ZB60t~M8u_Pt{^~0r;WjPYGO!U@F*iT3pkf)S7GG#nAAuT4IM}U>^ z0Zfi!d-_)DvFu(z0||+H0rFaawkDUbF89tCa zo#;0qssdTvS>=75QS0A>NP4qFWp04wm0 z&m(k#)c;>ufQOb`43r5h#b}4E28hWwc^~Ex^J5^|VXL8`I3U(xs{wO{WT`kH)?urG zCBW>KiUVRDwi;Lh{3n=w3?1vS*B-CK*=v1O%#0mO?xq$(41fR#hChgQ*lKw11*j~6 z50T)9Nbo}>_zv$?Bp4FJA&Q{#xF+9UgEeIVY@q=Msv$UE0RCRvZb)Iy9JpZOZyujC zP!2f5&_7kr-yAfkZYcqzsvtGF_DYBC>OtoRML-*#1tB>*JU!3}6yW+kuRjiD-qj07L z0K|Fa@ZKf(0CY?&ju3PVsjzJp5TUF9!{;gjh&(Xz>1=cSCddkOoJX6|0x-+GZ+X`e zc>()(^mHSlwN-==bsG_Y=LwJk+WHDj+YV!L2tcqw#HBUG283OhEMTPs7(d@`&kM`y zfi_I0nIGoLz{v>v|&7D1sM6Zt-JsnE)aEb%mg@a z`SIa9WhJ^&JB1mG-S_-iLXULSw}oT!Mr zkHI-_r;L7DMgStgq83ou2`(Np0h}MRuP-h|Oq#j`WQ-*&%Yq_UNI)hmuLs)LYful) zYXLOG#ABNc+6x+B*ggdHRF^a?&w|=CBEZC@P04?_nQw=g@zu-#0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;2FkAZe8V00GBIL_t(oN5z%BN&`U@g?+JYQY0>kRvK9X z62V3k#KI^NODnZeQbZApsEA@=V<1{YMf45Sry27N++|pAR9Nm>eB7P8!#QVulAUnQ z{VQs-NYthUH=P9s$2+s0-frSiCtHAdsZ{dRs#RYJqE5B|vp9~uITZ>GAUh!DJkwJr zTOd0iAqqbNxpbHch3-KAWYGtZ)yr6&Y(aPg5Ji#A5nv*SnHXjRfGUy)Oy---6vj!T z@tq{G4UpY|abr~^53Gs+h-)jKsn`8Gsj5gGv;dfe_;;ftFbRNY7$9pd#%4zlic0`Y zLwFA+mk?u2rH00Qh~!IXwgU)bOwAh0m#~lki2nrh%>D;t2Y$mO0HWE|(i?{=k_TCx zW}fZwtcv6TbN&Z_pP^L$ix}0p(WL~&giuBDP^nZ>Lot)phUQ?h1Bh12Wj9reeZ`z- z;GOhktcv6T!)|*z<*vKzZaYiv;dIRnPFB