Back to Directional

- New vertical funnel models by @Kryppers
This commit is contained in:
simibubi 2021-02-21 22:29:46 +01:00
parent f6b9d71169
commit e3915792b1
55 changed files with 689 additions and 1061 deletions

View File

@ -16,7 +16,7 @@ a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets/create/blockstates/andesite_bric
96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json 96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json
82bd82270aff7d51e9239680ef4dd7b5c899ceb0 assets/create/blockstates/andesite_cobblestone_wall.json 82bd82270aff7d51e9239680ef4dd7b5c899ceb0 assets/create/blockstates/andesite_cobblestone_wall.json
9639b901ffdd2ecccab5575c5c9e6c7b5c901e02 assets/create/blockstates/andesite_encased_shaft.json 9639b901ffdd2ecccab5575c5c9e6c7b5c901e02 assets/create/blockstates/andesite_encased_shaft.json
7187eba21a32e6954261cc71008ec1834a2e8af7 assets/create/blockstates/andesite_funnel.json 53cf4cfd94db1f44e9865b9fe5db383d01a12671 assets/create/blockstates/andesite_funnel.json
398922758a6219544e5b85c91c9cf8a543b437e5 assets/create/blockstates/andesite_pillar.json 398922758a6219544e5b85c91c9cf8a543b437e5 assets/create/blockstates/andesite_pillar.json
1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json 1d2d8081581e07d9be4b382aede4f2de4401cc6b assets/create/blockstates/andesite_tunnel.json
e555e3c2b2d3f01440e48db4ba88f7e00fd99b6f assets/create/blockstates/basin.json e555e3c2b2d3f01440e48db4ba88f7e00fd99b6f assets/create/blockstates/basin.json
@ -34,7 +34,7 @@ ee1299a15fca849eb42bf81507f85a54c167bbfe assets/create/blockstates/brass_belt_fu
8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json
b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json
288bad07593a8a2c8efaf44bba0ffb0011d36cd3 assets/create/blockstates/brass_encased_shaft.json 288bad07593a8a2c8efaf44bba0ffb0011d36cd3 assets/create/blockstates/brass_encased_shaft.json
8b5e88dea4e10ba3c74f0f161e49fed31a376ea1 assets/create/blockstates/brass_funnel.json adfbd6cc5e44a0f431180aedbe65a19428299d8e assets/create/blockstates/brass_funnel.json
672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json 672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json
11ebdd9bd0815833e62ec1bea03a4cdd86ce00f3 assets/create/blockstates/brown_sail.json 11ebdd9bd0815833e62ec1bea03a4cdd86ce00f3 assets/create/blockstates/brown_sail.json
e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.json e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.json
@ -461,18 +461,14 @@ ad255a62a5f54b578db06e89fd7160001f905675 assets/create/models/block/andesite_cob
a033fbac3129bba9211c6c4a0e16c905643afa39 assets/create/models/block/andesite_cobblestone_stairs_outer.json a033fbac3129bba9211c6c4a0e16c905643afa39 assets/create/models/block/andesite_cobblestone_stairs_outer.json
1c574ee47aeb6fcb305bfc95dd131e153b795a0e assets/create/models/block/andesite_cobblestone_wall_post.json 1c574ee47aeb6fcb305bfc95dd131e153b795a0e assets/create/models/block/andesite_cobblestone_wall_post.json
0ed983628e8868f77301bea1111570d3631f24fb assets/create/models/block/andesite_cobblestone_wall_side.json 0ed983628e8868f77301bea1111570d3631f24fb assets/create/models/block/andesite_cobblestone_wall_side.json
7d5faceb2a8d67acddd39625da6d5853f07ea8bd assets/create/models/block/andesite_funnel_ceiling_pull.json 8d4e4a7c6ad6d45c7aa7ca3105a025511571ff26 assets/create/models/block/andesite_funnel_horizontal_pull.json
82393ded7287660d16549e321317dfe4488cc81d assets/create/models/block/andesite_funnel_ceiling_pull_powered.json 9841d6a09a09bf4d5d6a39bdc4904d86b3a825f8 assets/create/models/block/andesite_funnel_horizontal_pull_powered.json
40d7adae3b5eecd8ed08445b2d7f43d7a0684837 assets/create/models/block/andesite_funnel_ceiling_push.json 86d5df6e365d9b2e9682f0839f61058360828ba2 assets/create/models/block/andesite_funnel_horizontal_push.json
940cace1d38fef0d5d88a391b0ba8cf690b38a44 assets/create/models/block/andesite_funnel_ceiling_push_powered.json 50af1ff6ce9af162d4e438f21952c7215608dc8e assets/create/models/block/andesite_funnel_horizontal_push_powered.json
c77c660ea142419e93754c9702445c269dbcd0cc assets/create/models/block/andesite_funnel_floor_pull.json 618d6ca90addb5913c72789f6188c957afa503f3 assets/create/models/block/andesite_funnel_vertical_pull.json
16d402c764364254a704a13736bd68455edc28ba assets/create/models/block/andesite_funnel_floor_pull_powered.json 45365708fa75e2cd3d0702fb0e4960861ada27ab assets/create/models/block/andesite_funnel_vertical_pull_powered.json
6a809d0e0e53b845b587276444cb7b64a1e15e81 assets/create/models/block/andesite_funnel_floor_push.json 53bdeba42894242088e8f7e7734a101fa998d0e4 assets/create/models/block/andesite_funnel_vertical_push.json
6eac3e4f593e4182f5c216a900136a62ea953fb5 assets/create/models/block/andesite_funnel_floor_push_powered.json 3e88fa45e22868dae92a014e589585d37eb465ad assets/create/models/block/andesite_funnel_vertical_push_powered.json
cc187c98c62b47f5bdb6e5187f52d3d927486376 assets/create/models/block/andesite_funnel_wall_pull.json
525cf080df53a428d1321d25c2021b5f3b80a4e6 assets/create/models/block/andesite_funnel_wall_pull_powered.json
78fcd6a91a84f5824e3e0006609b6f01760238d4 assets/create/models/block/andesite_funnel_wall_push.json
6c48d1a0b8cb007a6eddaa9b2f6cb8a98334d34e assets/create/models/block/andesite_funnel_wall_push_powered.json
b1d0bb538fc8285b7d3fd77a977d78a104b83b62 assets/create/models/block/andesite_pillar.json b1d0bb538fc8285b7d3fd77a977d78a104b83b62 assets/create/models/block/andesite_pillar.json
aaf2e4259bcfcedd3400e9acb2d64c0cf06f7fb1 assets/create/models/block/andesite_tunnel/cross.json aaf2e4259bcfcedd3400e9acb2d64c0cf06f7fb1 assets/create/models/block/andesite_tunnel/cross.json
75f628178fa21a2bd301eea8d1cebf7e94f7d5cc assets/create/models/block/andesite_tunnel/straight.json 75f628178fa21a2bd301eea8d1cebf7e94f7d5cc assets/create/models/block/andesite_tunnel/straight.json
@ -513,18 +509,14 @@ dfc6250e28e12ff193a45891978ec50c406fc0c2 assets/create/models/block/brass_belt_f
97410a12b7c1461f88fb633f26ff566a0636b627 assets/create/models/block/brass_belt_funnel__retracted.json 97410a12b7c1461f88fb633f26ff566a0636b627 assets/create/models/block/brass_belt_funnel__retracted.json
71d0ad31d89d4ea3f243c6003b17f57fd168c933 assets/create/models/block/brass_block.json 71d0ad31d89d4ea3f243c6003b17f57fd168c933 assets/create/models/block/brass_block.json
166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json 166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json
f5f689dc8be53e560878d3dde7b6eda6b3bf28e3 assets/create/models/block/brass_funnel_ceiling_pull.json f7fd1f49857eca94e4135e65c85127510d666e4f assets/create/models/block/brass_funnel_horizontal_pull.json
142a56e522c74268d0b418985eb3fd285e371295 assets/create/models/block/brass_funnel_ceiling_pull_powered.json 45a23298ad03fd3b5dc2757dcd7edc18b8cce222 assets/create/models/block/brass_funnel_horizontal_pull_powered.json
e583d701961b68223778d28edc0e2686c1a5c5df assets/create/models/block/brass_funnel_ceiling_push.json a9fc7210d44b47202438668f11b31099e82c9ebd assets/create/models/block/brass_funnel_horizontal_push.json
ccb2b596c3f190c26fdec06dd2b53ac3e59b1ff2 assets/create/models/block/brass_funnel_ceiling_push_powered.json 4049bf503ec2ee22412c59e05299de20319b0dc6 assets/create/models/block/brass_funnel_horizontal_push_powered.json
7f541d8235326fea3ecb370c4cf2913867f439ad assets/create/models/block/brass_funnel_floor_pull.json 320e377a4380ac637bff2e0535f229c52d886437 assets/create/models/block/brass_funnel_vertical_pull.json
5277d7c614991a5bce0e9234c4094f02c6d201c2 assets/create/models/block/brass_funnel_floor_pull_powered.json 28c2f8ca6403f98b82e3a0eadb608a41490cc96f assets/create/models/block/brass_funnel_vertical_pull_powered.json
1831d87b5a9784c12cecefbb9d3173c29f4ddc87 assets/create/models/block/brass_funnel_floor_push.json c4c46d47854c9a6cf8f410006a35bbc8e599f0d5 assets/create/models/block/brass_funnel_vertical_push.json
6aee078641719086c9a98ebd1c0d0d61cd4d33a9 assets/create/models/block/brass_funnel_floor_push_powered.json fd6f6607a4742fa87dfe1768927a29dc4975ce7a assets/create/models/block/brass_funnel_vertical_push_powered.json
aa86ddeeb41aea5bd85dd488d932fbc913828b1f assets/create/models/block/brass_funnel_wall_pull.json
161b420ee4f41d436177e20314dcbe61ecec53a8 assets/create/models/block/brass_funnel_wall_pull_powered.json
24362e71ca3a6d0f2dbf129909eceb8b3937a66b assets/create/models/block/brass_funnel_wall_push.json
76cdebba3116be88926d9640917e579377ef3134 assets/create/models/block/brass_funnel_wall_push_powered.json
520087db8d479c66f85f3483af813fb668f27503 assets/create/models/block/brass_tunnel/cross.json 520087db8d479c66f85f3483af813fb668f27503 assets/create/models/block/brass_tunnel/cross.json
347ed67bf3426e323354e2d959fc9563dc7eeecd assets/create/models/block/brass_tunnel/straight.json 347ed67bf3426e323354e2d959fc9563dc7eeecd assets/create/models/block/brass_tunnel/straight.json
a959e03ca339badb49fe58ba53d86a84352e91f3 assets/create/models/block/brass_tunnel/t_left.json a959e03ca339badb49fe58ba53d86a84352e91f3 assets/create/models/block/brass_tunnel/t_left.json
@ -1587,7 +1579,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json 9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb assets/create/sounds.json e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb assets/create/sounds.json
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json 5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json 356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json

View File

@ -1,183 +1,99 @@
{ {
"variants": { "variants": {
"extracting=false,face=floor,facing=north,powered=false": { "extracting=false,facing=down,powered=false": {
"model": "create:block/andesite_funnel_floor_pull" "model": "create:block/andesite_funnel_vertical_pull",
}, "x": 180,
"extracting=true,face=floor,facing=north,powered=false": {
"model": "create:block/andesite_funnel_floor_push"
},
"extracting=false,face=wall,facing=north,powered=false": {
"model": "create:block/andesite_funnel_wall_pull"
},
"extracting=true,face=wall,facing=north,powered=false": {
"model": "create:block/andesite_funnel_wall_push"
},
"extracting=false,face=ceiling,facing=north,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull"
},
"extracting=true,face=ceiling,facing=north,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push"
},
"extracting=false,face=floor,facing=south,powered=false": {
"model": "create:block/andesite_funnel_floor_pull",
"y": 180 "y": 180
}, },
"extracting=true,face=floor,facing=south,powered=false": { "extracting=true,facing=down,powered=false": {
"model": "create:block/andesite_funnel_floor_push", "model": "create:block/andesite_funnel_vertical_push",
"x": 180,
"y": 180 "y": 180
}, },
"extracting=false,face=wall,facing=south,powered=false": { "extracting=false,facing=up,powered=false": {
"model": "create:block/andesite_funnel_wall_pull", "model": "create:block/andesite_funnel_vertical_pull",
"y": 180 "y": 180
}, },
"extracting=true,face=wall,facing=south,powered=false": { "extracting=true,facing=up,powered=false": {
"model": "create:block/andesite_funnel_wall_push", "model": "create:block/andesite_funnel_vertical_push",
"y": 180 "y": 180
}, },
"extracting=false,face=ceiling,facing=south,powered=false": { "extracting=false,facing=north,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull", "model": "create:block/andesite_funnel_horizontal_pull"
},
"extracting=true,facing=north,powered=false": {
"model": "create:block/andesite_funnel_horizontal_push"
},
"extracting=false,facing=south,powered=false": {
"model": "create:block/andesite_funnel_horizontal_pull",
"y": 180 "y": 180
}, },
"extracting=true,face=ceiling,facing=south,powered=false": { "extracting=true,facing=south,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push", "model": "create:block/andesite_funnel_horizontal_push",
"y": 180 "y": 180
}, },
"extracting=false,face=floor,facing=west,powered=false": { "extracting=false,facing=west,powered=false": {
"model": "create:block/andesite_funnel_floor_pull", "model": "create:block/andesite_funnel_horizontal_pull",
"y": 270 "y": 270
}, },
"extracting=true,face=floor,facing=west,powered=false": { "extracting=true,facing=west,powered=false": {
"model": "create:block/andesite_funnel_floor_push", "model": "create:block/andesite_funnel_horizontal_push",
"y": 270 "y": 270
}, },
"extracting=false,face=wall,facing=west,powered=false": { "extracting=false,facing=east,powered=false": {
"model": "create:block/andesite_funnel_wall_pull", "model": "create:block/andesite_funnel_horizontal_pull",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=false": {
"model": "create:block/andesite_funnel_wall_push",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=false": {
"model": "create:block/andesite_funnel_floor_pull",
"y": 90 "y": 90
}, },
"extracting=true,face=floor,facing=east,powered=false": { "extracting=true,facing=east,powered=false": {
"model": "create:block/andesite_funnel_floor_push", "model": "create:block/andesite_funnel_horizontal_push",
"y": 90 "y": 90
}, },
"extracting=false,face=wall,facing=east,powered=false": { "extracting=false,facing=down,powered=true": {
"model": "create:block/andesite_funnel_wall_pull", "model": "create:block/andesite_funnel_vertical_pull_powered",
"y": 90 "x": 180,
},
"extracting=true,face=wall,facing=east,powered=false": {
"model": "create:block/andesite_funnel_wall_push",
"y": 90
},
"extracting=false,face=ceiling,facing=east,powered=false": {
"model": "create:block/andesite_funnel_ceiling_pull",
"y": 90
},
"extracting=true,face=ceiling,facing=east,powered=false": {
"model": "create:block/andesite_funnel_ceiling_push",
"y": 90
},
"extracting=false,face=floor,facing=north,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered"
},
"extracting=true,face=floor,facing=north,powered=true": {
"model": "create:block/andesite_funnel_floor_push_powered"
},
"extracting=false,face=wall,facing=north,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered"
},
"extracting=true,face=wall,facing=north,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered"
},
"extracting=false,face=ceiling,facing=north,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered"
},
"extracting=true,face=ceiling,facing=north,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered"
},
"extracting=false,face=floor,facing=south,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered",
"y": 180 "y": 180
}, },
"extracting=true,face=floor,facing=south,powered=true": { "extracting=true,facing=down,powered=true": {
"model": "create:block/andesite_funnel_floor_push_powered", "model": "create:block/andesite_funnel_vertical_push_powered",
"x": 180,
"y": 180 "y": 180
}, },
"extracting=false,face=wall,facing=south,powered=true": { "extracting=false,facing=up,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered", "model": "create:block/andesite_funnel_vertical_pull_powered",
"y": 180 "y": 180
}, },
"extracting=true,face=wall,facing=south,powered=true": { "extracting=true,facing=up,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered", "model": "create:block/andesite_funnel_vertical_push_powered",
"y": 180 "y": 180
}, },
"extracting=false,face=ceiling,facing=south,powered=true": { "extracting=false,facing=north,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered", "model": "create:block/andesite_funnel_horizontal_pull_powered"
},
"extracting=true,facing=north,powered=true": {
"model": "create:block/andesite_funnel_horizontal_push_powered"
},
"extracting=false,facing=south,powered=true": {
"model": "create:block/andesite_funnel_horizontal_pull_powered",
"y": 180 "y": 180
}, },
"extracting=true,face=ceiling,facing=south,powered=true": { "extracting=true,facing=south,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered", "model": "create:block/andesite_funnel_horizontal_push_powered",
"y": 180 "y": 180
}, },
"extracting=false,face=floor,facing=west,powered=true": { "extracting=false,facing=west,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered", "model": "create:block/andesite_funnel_horizontal_pull_powered",
"y": 270 "y": 270
}, },
"extracting=true,face=floor,facing=west,powered=true": { "extracting=true,facing=west,powered=true": {
"model": "create:block/andesite_funnel_floor_push_powered", "model": "create:block/andesite_funnel_horizontal_push_powered",
"y": 270 "y": 270
}, },
"extracting=false,face=wall,facing=west,powered=true": { "extracting=false,facing=east,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered", "model": "create:block/andesite_funnel_horizontal_pull_powered",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=true": {
"model": "create:block/andesite_funnel_floor_pull_powered",
"y": 90 "y": 90
}, },
"extracting=true,face=floor,facing=east,powered=true": { "extracting=true,facing=east,powered=true": {
"model": "create:block/andesite_funnel_floor_push_powered", "model": "create:block/andesite_funnel_horizontal_push_powered",
"y": 90
},
"extracting=false,face=wall,facing=east,powered=true": {
"model": "create:block/andesite_funnel_wall_pull_powered",
"y": 90
},
"extracting=true,face=wall,facing=east,powered=true": {
"model": "create:block/andesite_funnel_wall_push_powered",
"y": 90
},
"extracting=false,face=ceiling,facing=east,powered=true": {
"model": "create:block/andesite_funnel_ceiling_pull_powered",
"y": 90
},
"extracting=true,face=ceiling,facing=east,powered=true": {
"model": "create:block/andesite_funnel_ceiling_push_powered",
"y": 90 "y": 90
} }
} }

View File

@ -1,183 +1,99 @@
{ {
"variants": { "variants": {
"extracting=false,face=floor,facing=north,powered=false": { "extracting=false,facing=down,powered=false": {
"model": "create:block/brass_funnel_floor_pull" "model": "create:block/brass_funnel_vertical_pull",
}, "x": 180,
"extracting=true,face=floor,facing=north,powered=false": {
"model": "create:block/brass_funnel_floor_push"
},
"extracting=false,face=wall,facing=north,powered=false": {
"model": "create:block/brass_funnel_wall_pull"
},
"extracting=true,face=wall,facing=north,powered=false": {
"model": "create:block/brass_funnel_wall_push"
},
"extracting=false,face=ceiling,facing=north,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull"
},
"extracting=true,face=ceiling,facing=north,powered=false": {
"model": "create:block/brass_funnel_ceiling_push"
},
"extracting=false,face=floor,facing=south,powered=false": {
"model": "create:block/brass_funnel_floor_pull",
"y": 180 "y": 180
}, },
"extracting=true,face=floor,facing=south,powered=false": { "extracting=true,facing=down,powered=false": {
"model": "create:block/brass_funnel_floor_push", "model": "create:block/brass_funnel_vertical_push",
"x": 180,
"y": 180 "y": 180
}, },
"extracting=false,face=wall,facing=south,powered=false": { "extracting=false,facing=up,powered=false": {
"model": "create:block/brass_funnel_wall_pull", "model": "create:block/brass_funnel_vertical_pull",
"y": 180 "y": 180
}, },
"extracting=true,face=wall,facing=south,powered=false": { "extracting=true,facing=up,powered=false": {
"model": "create:block/brass_funnel_wall_push", "model": "create:block/brass_funnel_vertical_push",
"y": 180 "y": 180
}, },
"extracting=false,face=ceiling,facing=south,powered=false": { "extracting=false,facing=north,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull", "model": "create:block/brass_funnel_horizontal_pull"
},
"extracting=true,facing=north,powered=false": {
"model": "create:block/brass_funnel_horizontal_push"
},
"extracting=false,facing=south,powered=false": {
"model": "create:block/brass_funnel_horizontal_pull",
"y": 180 "y": 180
}, },
"extracting=true,face=ceiling,facing=south,powered=false": { "extracting=true,facing=south,powered=false": {
"model": "create:block/brass_funnel_ceiling_push", "model": "create:block/brass_funnel_horizontal_push",
"y": 180 "y": 180
}, },
"extracting=false,face=floor,facing=west,powered=false": { "extracting=false,facing=west,powered=false": {
"model": "create:block/brass_funnel_floor_pull", "model": "create:block/brass_funnel_horizontal_pull",
"y": 270 "y": 270
}, },
"extracting=true,face=floor,facing=west,powered=false": { "extracting=true,facing=west,powered=false": {
"model": "create:block/brass_funnel_floor_push", "model": "create:block/brass_funnel_horizontal_push",
"y": 270 "y": 270
}, },
"extracting=false,face=wall,facing=west,powered=false": { "extracting=false,facing=east,powered=false": {
"model": "create:block/brass_funnel_wall_pull", "model": "create:block/brass_funnel_horizontal_pull",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=false": {
"model": "create:block/brass_funnel_wall_push",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=false": {
"model": "create:block/brass_funnel_ceiling_push",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=false": {
"model": "create:block/brass_funnel_floor_pull",
"y": 90 "y": 90
}, },
"extracting=true,face=floor,facing=east,powered=false": { "extracting=true,facing=east,powered=false": {
"model": "create:block/brass_funnel_floor_push", "model": "create:block/brass_funnel_horizontal_push",
"y": 90 "y": 90
}, },
"extracting=false,face=wall,facing=east,powered=false": { "extracting=false,facing=down,powered=true": {
"model": "create:block/brass_funnel_wall_pull", "model": "create:block/brass_funnel_vertical_pull_powered",
"y": 90 "x": 180,
},
"extracting=true,face=wall,facing=east,powered=false": {
"model": "create:block/brass_funnel_wall_push",
"y": 90
},
"extracting=false,face=ceiling,facing=east,powered=false": {
"model": "create:block/brass_funnel_ceiling_pull",
"y": 90
},
"extracting=true,face=ceiling,facing=east,powered=false": {
"model": "create:block/brass_funnel_ceiling_push",
"y": 90
},
"extracting=false,face=floor,facing=north,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered"
},
"extracting=true,face=floor,facing=north,powered=true": {
"model": "create:block/brass_funnel_floor_push_powered"
},
"extracting=false,face=wall,facing=north,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered"
},
"extracting=true,face=wall,facing=north,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered"
},
"extracting=false,face=ceiling,facing=north,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered"
},
"extracting=true,face=ceiling,facing=north,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered"
},
"extracting=false,face=floor,facing=south,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered",
"y": 180 "y": 180
}, },
"extracting=true,face=floor,facing=south,powered=true": { "extracting=true,facing=down,powered=true": {
"model": "create:block/brass_funnel_floor_push_powered", "model": "create:block/brass_funnel_vertical_push_powered",
"x": 180,
"y": 180 "y": 180
}, },
"extracting=false,face=wall,facing=south,powered=true": { "extracting=false,facing=up,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered", "model": "create:block/brass_funnel_vertical_pull_powered",
"y": 180 "y": 180
}, },
"extracting=true,face=wall,facing=south,powered=true": { "extracting=true,facing=up,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered", "model": "create:block/brass_funnel_vertical_push_powered",
"y": 180 "y": 180
}, },
"extracting=false,face=ceiling,facing=south,powered=true": { "extracting=false,facing=north,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered", "model": "create:block/brass_funnel_horizontal_pull_powered"
},
"extracting=true,facing=north,powered=true": {
"model": "create:block/brass_funnel_horizontal_push_powered"
},
"extracting=false,facing=south,powered=true": {
"model": "create:block/brass_funnel_horizontal_pull_powered",
"y": 180 "y": 180
}, },
"extracting=true,face=ceiling,facing=south,powered=true": { "extracting=true,facing=south,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered", "model": "create:block/brass_funnel_horizontal_push_powered",
"y": 180 "y": 180
}, },
"extracting=false,face=floor,facing=west,powered=true": { "extracting=false,facing=west,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered", "model": "create:block/brass_funnel_horizontal_pull_powered",
"y": 270 "y": 270
}, },
"extracting=true,face=floor,facing=west,powered=true": { "extracting=true,facing=west,powered=true": {
"model": "create:block/brass_funnel_floor_push_powered", "model": "create:block/brass_funnel_horizontal_push_powered",
"y": 270 "y": 270
}, },
"extracting=false,face=wall,facing=west,powered=true": { "extracting=false,facing=east,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered", "model": "create:block/brass_funnel_horizontal_pull_powered",
"y": 270
},
"extracting=true,face=wall,facing=west,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered",
"y": 270
},
"extracting=false,face=ceiling,facing=west,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered",
"y": 270
},
"extracting=true,face=ceiling,facing=west,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered",
"y": 270
},
"extracting=false,face=floor,facing=east,powered=true": {
"model": "create:block/brass_funnel_floor_pull_powered",
"y": 90 "y": 90
}, },
"extracting=true,face=floor,facing=east,powered=true": { "extracting=true,facing=east,powered=true": {
"model": "create:block/brass_funnel_floor_push_powered", "model": "create:block/brass_funnel_horizontal_push_powered",
"y": 90
},
"extracting=false,face=wall,facing=east,powered=true": {
"model": "create:block/brass_funnel_wall_pull_powered",
"y": 90
},
"extracting=true,face=wall,facing=east,powered=true": {
"model": "create:block/brass_funnel_wall_push_powered",
"y": 90
},
"extracting=false,face=ceiling,facing=east,powered=true": {
"model": "create:block/brass_funnel_ceiling_pull_powered",
"y": 90
},
"extracting=true,face=ceiling,facing=east,powered=true": {
"model": "create:block/brass_funnel_ceiling_push_powered",
"y": 90 "y": 90
} }
} }

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_ceiling", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/andesite_casing", "particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating", "7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall", "5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull", "2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back" "3": "create:block/andesite_funnel_back",
"6": "create:block/andesite_funnel"
} }
} }

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_floor", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/andesite_casing", "particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating", "7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered", "5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull", "2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back" "3": "create:block/andesite_funnel_back",
"6": "create:block/andesite_funnel_powered"
} }
} }

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_wall", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/andesite_casing", "particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating", "7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall", "5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push", "2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back" "3": "create:block/andesite_funnel_back",
"6": "create:block/andesite_funnel"
} }
} }

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_wall", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/andesite_casing", "particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating", "7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered", "5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push", "2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back" "3": "create:block/andesite_funnel_back",
"6": "create:block/andesite_funnel_powered"
} }
} }

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back",
"8": "create:block/andesite_casing",
"9": "create:block/andesite_funnel_slope",
"10": "create:block/funnel_open"
}
}

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back",
"8": "create:block/andesite_casing",
"9": "create:block/andesite_funnel_slope",
"10": "create:block/funnel_closed"
}
}

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back",
"8": "create:block/andesite_casing",
"9": "create:block/andesite_funnel_slope",
"10": "create:block/funnel_open"
}
}

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_push",
"3": "create:block/andesite_funnel_back",
"8": "create:block/andesite_casing",
"9": "create:block/andesite_funnel_slope",
"10": "create:block/funnel_closed"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel",
"5": "create:block/andesite_funnel_tall",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/andesite_casing",
"7": "create:block/andesite_funnel_plating",
"6": "create:block/andesite_funnel_powered",
"5": "create:block/andesite_funnel_tall_powered",
"2_2": "create:block/andesite_funnel_pull",
"3": "create:block/andesite_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_ceiling",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_floor",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_wall", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/brass_casing", "particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating", "7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall", "5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull", "2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back" "3": "create:block/brass_funnel_back",
"6": "create:block/brass_funnel"
} }
} }

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_floor", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/brass_casing", "particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating", "7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered", "5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull", "2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back" "3": "create:block/brass_funnel_back",
"6": "create:block/brass_funnel_powered"
} }
} }

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_ceiling", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/brass_casing", "particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating", "7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall", "5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push", "2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back" "3": "create:block/brass_funnel_back",
"6": "create:block/brass_funnel"
} }
} }

View File

@ -1,11 +1,11 @@
{ {
"parent": "create:block/funnel/block_wall", "parent": "create:block/funnel/block_horizontal",
"textures": { "textures": {
"particle": "create:block/brass_casing", "particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating", "7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered", "5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push", "2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back" "3": "create:block/brass_funnel_back",
"6": "create:block/brass_funnel_powered"
} }
} }

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back",
"8": "create:block/brass_casing",
"9": "create:block/brass_funnel_slope",
"10": "create:block/funnel_open"
}
}

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back",
"8": "create:block/brass_casing",
"9": "create:block/brass_funnel_slope",
"10": "create:block/funnel_closed"
}
}

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back",
"8": "create:block/brass_casing",
"9": "create:block/brass_funnel_slope",
"10": "create:block/funnel_open"
}
}

View File

@ -0,0 +1,13 @@
{
"parent": "create:block/funnel/block_vertical",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back",
"8": "create:block/brass_casing",
"9": "create:block/brass_funnel_slope",
"10": "create:block/funnel_closed"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel_powered",
"5": "create:block/brass_funnel_tall_powered",
"2_2": "create:block/brass_funnel_pull",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -1,11 +0,0 @@
{
"parent": "create:block/funnel/block_wall",
"textures": {
"particle": "create:block/brass_casing",
"7": "create:block/brass_funnel_plating",
"6": "create:block/brass_funnel",
"5": "create:block/brass_funnel_tall",
"2_2": "create:block/brass_funnel_push",
"3": "create:block/brass_funnel_back"
}
}

View File

@ -28,8 +28,8 @@
"trigger": "create:bracket_apply", "trigger": "create:bracket_apply",
"conditions": { "conditions": {
"accepted_entries": [ "accepted_entries": [
"create:cogwheel", "create:large_cogwheel",
"create:large_cogwheel" "create:cogwheel"
] ]
} }
}, },

View File

@ -133,6 +133,8 @@ import com.simibubi.create.content.logistics.block.funnel.AndesiteFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator;
import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.FunnelGenerator;
import com.simibubi.create.content.logistics.block.funnel.FunnelItem;
import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour; import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour;
import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; 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.inventories.CreativeCrateBlock;
@ -1081,7 +1083,10 @@ public class AllBlocks {
.initialProperties(SharedProperties::stone) .initialProperties(SharedProperties::stone)
.tag(AllBlockTags.SAFE_NBT.tag) .tag(AllBlockTags.SAFE_NBT.tag)
.onRegister(addMovementBehaviour(FunnelMovementBehaviour.andesite())) .onRegister(addMovementBehaviour(FunnelMovementBehaviour.andesite()))
.transform(BuilderTransformers.funnel("andesite", Create.asResource("block/andesite_casing"))) .blockstate(new FunnelGenerator("andesite")::generate)
.item(FunnelItem::new)
.model(FunnelGenerator.itemModel("andesite"))
.build()
.register(); .register();
public static final BlockEntry<BeltFunnelBlock> ANDESITE_BELT_FUNNEL = public static final BlockEntry<BeltFunnelBlock> ANDESITE_BELT_FUNNEL =
@ -1097,7 +1102,10 @@ public class AllBlocks {
.initialProperties(SharedProperties::softMetal) .initialProperties(SharedProperties::softMetal)
.tag(AllBlockTags.SAFE_NBT.tag) .tag(AllBlockTags.SAFE_NBT.tag)
.onRegister(addMovementBehaviour(FunnelMovementBehaviour.brass())) .onRegister(addMovementBehaviour(FunnelMovementBehaviour.brass()))
.transform(BuilderTransformers.funnel("brass", Create.asResource("block/brass_casing"))) .blockstate(new FunnelGenerator("brass")::generate)
.item(FunnelItem::new)
.model(FunnelGenerator.itemModel("brass"))
.build()
.register(); .register();
public static final BlockEntry<BeltFunnelBlock> BRASS_BELT_FUNNEL = public static final BlockEntry<BeltFunnelBlock> BRASS_BELT_FUNNEL =

View File

@ -78,7 +78,7 @@ public class AllShapes {
.add(0.1, 1, 10, 15.9, 5, 14) .add(0.1, 1, 10, 15.9, 5, 14)
.add(0.1, -3, 11, 15.9, 1, 15) .add(0.1, -3, 11, 15.9, 1, 15)
.forHorizontal(NORTH), .forHorizontal(NORTH),
FUNNEL = shape(2, 2, 14, 14, 14, 18).add(1, 8, 12, 15, 15, 14) FUNNEL_WALL = shape(2, 2, 14, 14, 14, 18).add(1, 8, 12, 15, 15, 14)
.add(0.1, 13, 7, 15.9, 15, 11) .add(0.1, 13, 7, 15.9, 15, 11)
.add(0.1, 9, 8, 15.9, 13, 12) .add(0.1, 9, 8, 15.9, 13, 12)
.add(0.1, 5, 9, 15.9, 9, 13) .add(0.1, 5, 9, 15.9, 9, 13)

View File

@ -0,0 +1,40 @@
package com.simibubi.create.content.logistics.block.funnel;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.state.DirectionProperty;
import net.minecraft.state.StateContainer.Builder;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction;
import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation;
public class AbstractDirectionalFunnelBlock extends AbstractFunnelBlock {
public static final DirectionProperty FACING = BlockStateProperties.FACING;
protected AbstractDirectionalFunnelBlock(Properties p_i48377_1_) {
super(p_i48377_1_);
}
@Override
protected void fillStateContainer(Builder<Block, BlockState> builder) {
super.fillStateContainer(builder.add(FACING));
}
@Override
protected Direction getFacing(BlockState state) {
return state.get(FACING);
}
@Override
public BlockState rotate(BlockState state, Rotation rot) {
return state.with(FACING, rot.rotate(state.get(FACING)));
}
@Override
public BlockState mirror(BlockState state, Mirror mirrorIn) {
return state.rotate(mirrorIn.toRotation(state.get(FACING)));
}
}

View File

@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.HorizontalBlock;
import net.minecraft.client.particle.ParticleManager; import net.minecraft.client.particle.ParticleManager;
import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.BlockItemUseContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -28,7 +27,7 @@ import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
public abstract class AbstractFunnelBlock extends HorizontalBlock implements ITE<FunnelTileEntity>, IWrenchable { public abstract class AbstractFunnelBlock extends Block implements ITE<FunnelTileEntity>, IWrenchable {
public static final BooleanProperty POWERED = BlockStateProperties.POWERED; public static final BooleanProperty POWERED = BlockStateProperties.POWERED;
@ -39,16 +38,13 @@ public abstract class AbstractFunnelBlock extends HorizontalBlock implements ITE
@Override @Override
public BlockState getStateForPlacement(BlockItemUseContext context) { public BlockState getStateForPlacement(BlockItemUseContext context) {
Direction facing = context.getPlacementHorizontalFacing() return getDefaultState().with(POWERED, context.getWorld()
.getOpposite();
return getDefaultState().with(HORIZONTAL_FACING, facing)
.with(POWERED, context.getWorld()
.isBlockPowered(context.getPos())); .isBlockPowered(context.getPos()));
} }
@Override @Override
protected void fillStateContainer(Builder<Block, BlockState> builder) { protected void fillStateContainer(Builder<Block, BlockState> builder) {
super.fillStateContainer(builder.add(POWERED, HORIZONTAL_FACING)); super.fillStateContainer(builder.add(POWERED));
} }
@Override @Override
@ -120,9 +116,7 @@ public abstract class AbstractFunnelBlock extends HorizontalBlock implements ITE
return ((AbstractFunnelBlock) state.getBlock()).getFacing(state); return ((AbstractFunnelBlock) state.getBlock()).getFacing(state);
} }
protected Direction getFacing(BlockState state) { protected abstract Direction getFacing(BlockState state);
return state.get(BlockStateProperties.HORIZONTAL_FACING);
}
@Override @Override
public void onReplaced(BlockState p_196243_1_, World p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_, public void onReplaced(BlockState p_196243_1_, World p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_,

View File

@ -0,0 +1,40 @@
package com.simibubi.create.content.logistics.block.funnel;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.state.DirectionProperty;
import net.minecraft.state.StateContainer.Builder;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.Direction;
import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation;
public abstract class AbstractHorizontalFunnelBlock extends AbstractFunnelBlock {
public static final DirectionProperty HORIZONTAL_FACING = BlockStateProperties.HORIZONTAL_FACING;
protected AbstractHorizontalFunnelBlock(Properties p_i48377_1_) {
super(p_i48377_1_);
}
@Override
protected void fillStateContainer(Builder<Block, BlockState> builder) {
super.fillStateContainer(builder.add(HORIZONTAL_FACING));
}
@Override
protected Direction getFacing(BlockState state) {
return state.get(HORIZONTAL_FACING);
}
@Override
public BlockState rotate(BlockState p_185499_1_, Rotation p_185499_2_) {
return p_185499_1_.with(HORIZONTAL_FACING, p_185499_2_.rotate(p_185499_1_.get(HORIZONTAL_FACING)));
}
@Override
public BlockState mirror(BlockState p_185471_1_, Mirror p_185471_2_) {
return p_185471_1_.rotate(p_185471_2_.toRotation(p_185471_1_.get(HORIZONTAL_FACING)));
}
}

View File

@ -15,7 +15,7 @@ public class AndesiteFunnelBlock extends FunnelBlock {
@Override @Override
public BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state) { public BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state) {
Direction facing = state.get(HORIZONTAL_FACING); Direction facing = getFunnelFacing(state);
return AllBlocks.ANDESITE_BELT_FUNNEL.getDefaultState() return AllBlocks.ANDESITE_BELT_FUNNEL.getDefaultState()
.with(BeltFunnelBlock.HORIZONTAL_FACING, facing) .with(BeltFunnelBlock.HORIZONTAL_FACING, facing)
.with(POWERED, state.get(POWERED)); .with(POWERED, state.get(POWERED));

View File

@ -35,7 +35,7 @@ import net.minecraft.world.IWorld;
import net.minecraft.world.IWorldReader; import net.minecraft.world.IWorldReader;
import net.minecraft.world.World; import net.minecraft.world.World;
public class BeltFunnelBlock extends AbstractFunnelBlock implements ISpecialBlockItemRequirement { public class BeltFunnelBlock extends AbstractHorizontalFunnelBlock implements ISpecialBlockItemRequirement {
private BlockEntry<? extends FunnelBlock> parent; private BlockEntry<? extends FunnelBlock> parent;
public static final IProperty<Shape> SHAPE = EnumProperty.create("shape", Shape.class); public static final IProperty<Shape> SHAPE = EnumProperty.create("shape", Shape.class);
@ -124,7 +124,7 @@ public class BeltFunnelBlock extends AbstractFunnelBlock implements ISpecialBloc
parentState = parentState.with(POWERED, true); parentState = parentState.with(POWERED, true);
if (state.get(SHAPE) == Shape.PUSHING) if (state.get(SHAPE) == Shape.PUSHING)
parentState = parentState.with(FunnelBlock.EXTRACTING, true); parentState = parentState.with(FunnelBlock.EXTRACTING, true);
return parentState.with(FunnelBlock.HORIZONTAL_FACING, state.get(HORIZONTAL_FACING)); return parentState.with(FunnelBlock.FACING, state.get(HORIZONTAL_FACING));
} }
Shape updatedShape = Shape updatedShape =
getShapeForPosition(world, pos, state.get(HORIZONTAL_FACING), state.get(SHAPE) == Shape.PUSHING); getShapeForPosition(world, pos, state.get(HORIZONTAL_FACING), state.get(SHAPE) == Shape.PUSHING);

View File

@ -15,7 +15,7 @@ public class BrassFunnelBlock extends FunnelBlock {
@Override @Override
public BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state) { public BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state) {
Direction facing = state.get(HORIZONTAL_FACING); Direction facing = getFacing(state);
return AllBlocks.BRASS_BELT_FUNNEL.getDefaultState() return AllBlocks.BRASS_BELT_FUNNEL.getDefaultState()
.with(BeltFunnelBlock.HORIZONTAL_FACING, facing) .with(BeltFunnelBlock.HORIZONTAL_FACING, facing)
.with(POWERED, state.get(POWERED)); .with(POWERED, state.get(POWERED));

View File

@ -14,10 +14,7 @@ import net.minecraft.item.BlockItemUseContext;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemUseContext; import net.minecraft.item.ItemUseContext;
import net.minecraft.state.BooleanProperty; import net.minecraft.state.BooleanProperty;
import net.minecraft.state.EnumProperty;
import net.minecraft.state.StateContainer.Builder; import net.minecraft.state.StateContainer.Builder;
import net.minecraft.state.properties.AttachFace;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.util.ActionResultType; import net.minecraft.util.ActionResultType;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.Direction.AxisDirection;
@ -31,15 +28,13 @@ import net.minecraft.world.IBlockReader;
import net.minecraft.world.IWorld; import net.minecraft.world.IWorld;
import net.minecraft.world.World; import net.minecraft.world.World;
public abstract class FunnelBlock extends AbstractFunnelBlock { public abstract class FunnelBlock extends AbstractDirectionalFunnelBlock {
public static final EnumProperty<AttachFace> FACE = BlockStateProperties.FACE;
public static final BooleanProperty EXTRACTING = BooleanProperty.create("extracting"); public static final BooleanProperty EXTRACTING = BooleanProperty.create("extracting");
public FunnelBlock(Properties p_i48415_1_) { public FunnelBlock(Properties p_i48415_1_) {
super(p_i48415_1_); super(p_i48415_1_);
setDefaultState(getDefaultState().with(FACE, AttachFace.WALL) setDefaultState(getDefaultState().with(EXTRACTING, false));
.with(EXTRACTING, false));
} }
public abstract BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state); public abstract BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state);
@ -53,13 +48,7 @@ public abstract class FunnelBlock extends AbstractFunnelBlock {
state = state.with(EXTRACTING, !sneak); state = state.with(EXTRACTING, !sneak);
for (Direction direction : context.getNearestLookingDirections()) { for (Direction direction : context.getNearestLookingDirections()) {
BlockState blockstate; BlockState blockstate = state.with(FACING, direction.getOpposite());
if (direction.getAxis() == Direction.Axis.Y)
blockstate = state.with(FACE, direction == Direction.UP ? AttachFace.CEILING : AttachFace.FLOOR)
.with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing());
else
blockstate = state.with(FACE, AttachFace.WALL)
.with(HORIZONTAL_FACING, direction.getOpposite());
if (blockstate.isValidPosition(context.getWorld(), context.getPos())) if (blockstate.isValidPosition(context.getWorld(), context.getPos()))
return blockstate.with(POWERED, state.get(POWERED)); return blockstate.with(POWERED, state.get(POWERED));
} }
@ -69,7 +58,7 @@ public abstract class FunnelBlock extends AbstractFunnelBlock {
@Override @Override
protected void fillStateContainer(Builder<Block, BlockState> builder) { protected void fillStateContainer(Builder<Block, BlockState> builder) {
super.fillStateContainer(builder.add(FACE, EXTRACTING)); super.fillStateContainer(builder.add(EXTRACTING));
} }
@Override @Override
@ -137,26 +126,17 @@ public abstract class FunnelBlock extends AbstractFunnelBlock {
return !state.get(POWERED) && !state.get(EXTRACTING); return !state.get(POWERED) && !state.get(EXTRACTING);
} }
@Override
protected Direction getFacing(BlockState state) {
if (state.get(FACE) == AttachFace.CEILING)
return Direction.DOWN;
if (state.get(FACE) == AttachFace.FLOOR)
return Direction.UP;
return super.getFacing(state);
}
@Override @Override
public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) { public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) {
AttachFace attachFace = state.get(FACE); Direction facing = state.get(FACING);
return attachFace == AttachFace.CEILING ? AllShapes.FUNNEL_CEILING return facing == Direction.DOWN ? AllShapes.FUNNEL_CEILING
: attachFace == AttachFace.FLOOR ? AllShapes.FUNNEL_FLOOR : facing == Direction.UP ? AllShapes.FUNNEL_FLOOR : AllShapes.FUNNEL_WALL.get(facing);
: AllShapes.FUNNEL.get(state.get(HORIZONTAL_FACING));
} }
@Override @Override
public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) { public VoxelShape getCollisionShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) {
if (context.getEntity() instanceof ItemEntity && state.get(FACE) == AttachFace.WALL) if (context.getEntity() instanceof ItemEntity && getFacing(state).getAxis()
.isHorizontal())
return AllShapes.FUNNEL_COLLISION.get(getFacing(state)); return AllShapes.FUNNEL_COLLISION.get(getFacing(state));
return getShape(state, world, pos, context); return getShape(state, world, pos, context);
} }
@ -164,7 +144,8 @@ public abstract class FunnelBlock extends AbstractFunnelBlock {
@Override @Override
public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState p_196271_3_, IWorld world, public BlockState updatePostPlacement(BlockState state, Direction direction, BlockState p_196271_3_, IWorld world,
BlockPos pos, BlockPos p_196271_6_) { BlockPos pos, BlockPos p_196271_6_) {
if (state.get(FACE) != AttachFace.WALL || direction != Direction.DOWN) if (getFacing(state).getAxis()
.isVertical() || direction != Direction.DOWN)
return state; return state;
BlockState equivalentFunnel = getEquivalentBeltFunnel(null, null, state); BlockState equivalentFunnel = getEquivalentBeltFunnel(null, null, state);
if (BeltFunnelBlock.isOnValidBelt(equivalentFunnel, world, pos)) if (BeltFunnelBlock.isOnValidBelt(equivalentFunnel, world, pos))

View File

@ -8,7 +8,6 @@ import com.simibubi.create.foundation.utility.MatrixStacker;
import com.simibubi.create.foundation.utility.VecHelper; import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.state.properties.AttachFace;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis; import net.minecraft.util.Direction.Axis;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
@ -36,50 +35,24 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided {
} }
} }
if (state.getBlock() instanceof FunnelBlock) { if (!funnelFacing.getAxis()
if (state.get(FunnelBlock.FACE) == AttachFace.WALL) .isHorizontal()) {
return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 12.1, 8.7f), horizontalAngle, Axis.Y); Vec3d southLocation = VecHelper.voxelSpace(8, funnelFacing == Direction.DOWN ? 14 : 2, 15.5f);
Vec3d southLocation = VecHelper.voxelSpace(8, funnelFacing == Direction.DOWN ? 6.5f : 9.5f, 13f); return VecHelper.rotateCentered(southLocation, horizontalAngle, Axis.Y);
return VecHelper.rotateCentered(southLocation,
AngleHelper.horizontalAngle(state.get(AbstractFunnelBlock.HORIZONTAL_FACING)), Axis.Y);
} }
return Vec3d.ZERO; return VecHelper.rotateCentered(VecHelper.voxelSpace(8, 12.1, 8.7f), horizontalAngle, Axis.Y);
// if (!funnelFacing.getAxis()
// .isHorizontal()) {
// Vec3d southLocation = VecHelper.voxelSpace(8, funnelFacing == Direction.DOWN ? 3 : 13, 15.5f);
// return VecHelper.rotateCentered(southLocation, horizontalAngle, Axis.Y);
// }
//
// Direction verticalDirection = DirectionHelper.rotateAround(getSide(), funnelFacing.rotateY()
// .getAxis());
// if (funnelFacing.getAxis() == Axis.Z)
// verticalDirection = verticalDirection.getOpposite();
// float yRot = -AngleHelper.horizontalAngle(verticalDirection) + 180;
// float xRot = -90;
// boolean alongX = funnelFacing.getAxis() == Axis.X;
// float zRotLast = alongX ^ funnelFacing.getAxisDirection() == AxisDirection.POSITIVE ? 180 : 0;
//
// Vec3d vec = VecHelper.voxelSpace(8, 13, .5f);
// vec = vec.subtract(.5, .5, .5);
// vec = VecHelper.rotate(vec, zRotLast, Axis.Z);
// vec = VecHelper.rotate(vec, yRot, Axis.Y);
// vec = VecHelper.rotate(vec, alongX ? 0 : xRot, Axis.X);
// vec = VecHelper.rotate(vec, alongX ? xRot : 0, Axis.Z);
// vec = vec.add(.5, .5, .5);
// return vec;
} }
@Override @Override
protected void rotate(BlockState state, MatrixStack ms) { protected void rotate(BlockState state, MatrixStack ms) {
Direction facing = FunnelBlock.getFunnelFacing(state); Direction facing = FunnelBlock.getFunnelFacing(state);
// if (facing.getAxis() if (facing.getAxis()
// .isVertical()) { .isVertical()) {
// super.rotate(state, ms); super.rotate(state, ms);
// return; return;
// } }
boolean isBeltFunnel = state.getBlock() instanceof BeltFunnelBlock; boolean isBeltFunnel = state.getBlock() instanceof BeltFunnelBlock;
if (isBeltFunnel && state.get(BeltFunnelBlock.SHAPE) != Shape.EXTENDED) { if (isBeltFunnel && state.get(BeltFunnelBlock.SHAPE) != Shape.EXTENDED) {
@ -92,15 +65,13 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided {
} }
if (state.getBlock() instanceof FunnelBlock) { if (state.getBlock() instanceof FunnelBlock) {
if (state.get(FunnelBlock.FACE) == AttachFace.WALL) {
super.rotate(state, ms); super.rotate(state, ms);
MatrixStacker.of(ms) MatrixStacker.of(ms)
.rotateX(-22.5f); .rotateX(-22.5f);
return; return;
} }
}
float yRot = AngleHelper.horizontalAngle(state.get(AbstractFunnelBlock.HORIZONTAL_FACING)) float yRot = AngleHelper.horizontalAngle(AbstractFunnelBlock.getFunnelFacing(state))
+ (facing == Direction.DOWN ? 180 : 0); + (facing == Direction.DOWN ? 180 : 0);
MatrixStacker.of(ms) MatrixStacker.of(ms)
.rotateY(yRot) .rotateY(yRot)
@ -113,6 +84,10 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided {
if (facing == null) if (facing == null)
return false; return false;
if (facing.getAxis()
.isVertical())
return direction.getAxis()
.isHorizontal();
if (state.getBlock() instanceof BeltFunnelBlock && state.get(BeltFunnelBlock.SHAPE) == Shape.EXTENDED) if (state.getBlock() instanceof BeltFunnelBlock && state.get(BeltFunnelBlock.SHAPE) == Shape.EXTENDED)
return direction == Direction.UP; return direction == Direction.UP;
return direction == facing; return direction == facing;

View File

@ -0,0 +1,80 @@
package com.simibubi.create.content.logistics.block.funnel;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.data.SpecialBlockStateGen;
import com.tterrag.registrate.providers.DataGenContext;
import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
import com.tterrag.registrate.providers.RegistrateItemModelProvider;
import com.tterrag.registrate.util.nullness.NonNullBiConsumer;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.item.Item;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.generators.BlockModelBuilder;
import net.minecraftforge.client.model.generators.ModelFile;
public class FunnelGenerator extends SpecialBlockStateGen {
private String type;
private ResourceLocation particleTexture;
public FunnelGenerator(String type) {
this.type = type;
this.particleTexture = Create.asResource("block/" + type + "_casing");
}
@Override
protected int getXRotation(BlockState state) {
return state.get(FunnelBlock.FACING) == Direction.DOWN ? 180 : 0;
}
@Override
protected int getYRotation(BlockState state) {
return horizontalAngle(state.get(FunnelBlock.FACING)) + 180;
}
@Override
public <T extends Block> ModelFile getModel(DataGenContext<Block, T> c, RegistrateBlockstateProvider p,
BlockState s) {
String powered = s.get(FunnelBlock.POWERED) ? "_powered" : "";
String closed = s.get(FunnelBlock.POWERED) ? "_closed" : "_open";
String extracting = s.get(FunnelBlock.EXTRACTING) ? "_push" : "_pull";
Direction facing = s.get(FunnelBlock.FACING);
boolean horizontal = facing.getAxis()
.isHorizontal();
String parent = horizontal ? "horizontal" : "vertical";
BlockModelBuilder model = p.models()
.withExistingParent("block/" + type + "_funnel_" + parent + extracting + powered,
p.modLoc("block/funnel/block_" + parent))
.texture("particle", particleTexture)
.texture("7", p.modLoc("block/" + type + "_funnel_plating"))
.texture("5", p.modLoc("block/" + type + "_funnel_tall" + powered))
.texture("2_2", p.modLoc("block/" + type + "_funnel" + extracting))
.texture("3", p.modLoc("block/" + type + "_funnel_back"));
if (horizontal)
return model.texture("6", p.modLoc("block/" + type + "_funnel" + powered));
return model.texture("8", particleTexture)
.texture("9", p.modLoc("block/" + type + "_funnel_slope"))
.texture("10", p.modLoc("block/funnel" + closed));
}
public static NonNullBiConsumer<DataGenContext<Item, FunnelItem>, RegistrateItemModelProvider> itemModel(
String type) {
ResourceLocation particleTexture = Create.asResource("block/" + type + "_casing");
return (c, p) -> {
p.withExistingParent("item/" + type + "_funnel", p.modLoc("block/funnel/item"))
.texture("particle", particleTexture)
.texture("7", p.modLoc("block/" + type + "_funnel_plating"))
.texture("2", p.modLoc("block/" + type + "_funnel_neutral"))
.texture("6", p.modLoc("block/" + type + "_funnel"))
.texture("5", p.modLoc("block/" + type + "_funnel_tall"))
.texture("3", p.modLoc("block/" + type + "_funnel_back"));
};
}
}

View File

@ -6,7 +6,6 @@ import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItem;
import net.minecraft.item.BlockItemUseContext; import net.minecraft.item.BlockItemUseContext;
import net.minecraft.state.properties.AttachFace;
import net.minecraft.util.Direction; import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -38,10 +37,12 @@ public class FunnelItem extends BlockItem {
return state; return state;
if (!(state.getBlock() instanceof FunnelBlock)) if (!(state.getBlock() instanceof FunnelBlock))
return state; return state;
if (state.get(FunnelBlock.FACE) != AttachFace.WALL) if (state.get(FunnelBlock.FACING)
.getAxis()
.isVertical())
return state; return state;
Direction direction = state.get(FunnelBlock.HORIZONTAL_FACING); Direction direction = state.get(FunnelBlock.FACING);
FunnelBlock block = (FunnelBlock) getBlock(); FunnelBlock block = (FunnelBlock) getBlock();
Block beltFunnelBlock = block.getEquivalentBeltFunnel(world, pos, state) Block beltFunnelBlock = block.getEquivalentBeltFunnel(world, pos, state)
.getBlock(); .getBlock();

View File

@ -26,7 +26,6 @@ import net.minecraft.block.BlockState;
import net.minecraft.entity.item.ItemEntity; import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.CompoundNBT;
import net.minecraft.state.properties.AttachFace;
import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityType; import net.minecraft.tileentity.TileEntityType;
@ -259,7 +258,7 @@ public class FunnelTileEntity extends SmartTileEntity implements IHaveHoveringIn
return false; return false;
if (!(blockState.getBlock() instanceof FunnelBlock)) if (!(blockState.getBlock() instanceof FunnelBlock))
return false; return false;
return blockState.get(FunnelBlock.FACE) == AttachFace.FLOOR; return FunnelBlock.getFunnelFacing(blockState) == Direction.UP;
} }
private boolean supportsFiltering() { private boolean supportsFiltering() {

View File

@ -6,7 +6,6 @@ import static com.simibubi.create.foundation.data.CreateRegistrate.connectedText
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -22,8 +21,6 @@ import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock.Shape; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock.Shape;
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelItem; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelItem;
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
import com.simibubi.create.content.logistics.block.funnel.FunnelItem;
import com.simibubi.create.content.logistics.block.inventories.CrateBlock; import com.simibubi.create.content.logistics.block.inventories.CrateBlock;
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
import com.simibubi.create.foundation.config.StressConfigDefaults; import com.simibubi.create.foundation.config.StressConfigDefaults;
@ -32,7 +29,6 @@ import com.tterrag.registrate.builders.BlockBuilder;
import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; import com.tterrag.registrate.util.nullness.NonNullUnaryOperator;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.item.DyeColor; import net.minecraft.item.DyeColor;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -99,41 +95,6 @@ public class BuilderTransformers {
.simpleItem(); .simpleItem();
} }
public static <B extends FunnelBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> funnel(String type,
ResourceLocation particleTexture) {
return b -> {
return b.blockstate((c, p) -> {
Function<BlockState, ModelFile> model = s -> {
String powered = s.get(FunnelBlock.POWERED) ? "_powered" : "";
String extracting = s.get(FunnelBlock.EXTRACTING) ? "_push" : "_pull";
String face = s.get(FunnelBlock.FACE)
.getName();
return p.models()
.withExistingParent("block/" + type + "_funnel_" + face + extracting + powered,
p.modLoc("block/funnel/block_" + face))
.texture("particle", particleTexture)
.texture("7", p.modLoc("block/" + type + "_funnel_plating"))
.texture("6", p.modLoc("block/" + type + "_funnel" + powered))
.texture("5", p.modLoc("block/" + type + "_funnel_tall" + powered))
.texture("2_2", p.modLoc("block/" + type + "_funnel" + extracting))
.texture("3", p.modLoc("block/" + type + "_funnel_back"));
};
p.horizontalFaceBlock(c.get(), model);
})
.item(FunnelItem::new)
.model((c, p) -> {
p.withExistingParent("item/" + type + "_funnel", p.modLoc("block/funnel/item"))
.texture("particle", particleTexture)
.texture("7", p.modLoc("block/" + type + "_funnel_plating"))
.texture("2", p.modLoc("block/" + type + "_funnel_neutral"))
.texture("6", p.modLoc("block/" + type + "_funnel"))
.texture("5", p.modLoc("block/" + type + "_funnel_tall"))
.texture("3", p.modLoc("block/" + type + "_funnel_back"));
})
.build();
};
}
public static <B extends BeltTunnelBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> beltTunnel( public static <B extends BeltTunnelBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> beltTunnel(
String type, ResourceLocation particleTexture) { String type, ResourceLocation particleTexture) {
return b -> b.initialProperties(SharedProperties::stone) return b -> b.initialProperties(SharedProperties::stone)

View File

@ -1,134 +0,0 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"3": "create:block/brass_funnel_back",
"5": "create:block/brass_funnel_tall",
"6": "create:block/brass_funnel",
"7": "create:block/brass_funnel_plating",
"2_2": "create:block/brass_funnel_pull"
},
"elements": [
{
"name": "LeftWall",
"from": [14, 6, 0],
"to": [16.05, 12, 16],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12, 2]},
"faces": {
"north": {"uv": [14, 0, 16, 6], "rotation": 180, "texture": "#2_2"},
"east": {"uv": [0, 0, 16, 6], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [0, 0, 2, 6], "rotation": 180, "texture": "#2_2"},
"west": {"uv": [0, 12, 16, 6], "texture": "#2_2"},
"up": {"uv": [15, 0, 16, 8], "texture": "#7"},
"down": {"uv": [0, 0, 1, 8], "rotation": 180, "texture": "#7"}
}
},
{
"name": "LeftWall",
"from": [-0.05, 6, 0],
"to": [2, 12, 16],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12, 2]},
"faces": {
"north": {"uv": [2, 0, 0, 6], "texture": "#2_2"},
"east": {"uv": [0, 6, 16, 12], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [14, 0, 16, 6], "rotation": 180, "texture": "#2_2"},
"west": {"uv": [0, 6, 16, 0], "texture": "#2_2"},
"up": {"uv": [8, 0, 9, 8], "texture": "#7"},
"down": {"uv": [7, 0, 8, 8], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 6, 0],
"to": [14, 12, 6],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12, 2]},
"faces": {
"north": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [9, 13, 15, 16], "rotation": 180, "texture": "#7"},
"up": {"uv": [9, 0, 15, 3], "texture": "#7"},
"down": {"uv": [1, 0, 7, 3], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 6, 14],
"to": [14, 12, 16],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12, 18]},
"faces": {
"north": {"uv": [15, 13, 9, 16], "rotation": 180, "texture": "#7"},
"south": {"uv": [14, 0, 2, 6], "rotation": 180, "texture": "#2_2"},
"up": {"uv": [9, 3, 15, 0], "texture": "#7"},
"down": {"uv": [0.5, 12.5, 7.5, 11.5], "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 7, 6],
"to": [14, 8, 15],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 12, 2]},
"faces": {
"down": {"uv": [0, 9, 6, 13.5], "rotation": 180, "texture": "#3"}
}
},
{
"from": [1, 11, 1],
"to": [15, 14, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 21, 10]},
"faces": {
"north": {"uv": [9, 6.5, 16, 8], "rotation": 180, "texture": "#3"},
"east": {"uv": [9, 6.5, 16, 8], "rotation": 180, "texture": "#3"},
"south": {"uv": [9, 6.5, 16, 8], "rotation": 180, "texture": "#3"},
"west": {"uv": [9, 6.5, 16, 8], "rotation": 180, "texture": "#3"},
"up": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, 14, 2.05],
"to": [13.9, 18.1, 14.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 24.1]},
"faces": {
"north": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"east": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"south": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"west": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"up": {"uv": [6, 8, 12, 14], "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, 11.9, 2.05],
"to": [13.9, 14, 13.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 22, 24.1]},
"faces": {
"north": {"uv": [0, 1.5, 6, 0.5], "rotation": 180, "texture": "#6"},
"east": {"uv": [2.5, 0.5, 8, 1.5], "texture": "#5"},
"west": {"uv": [2.5, 1.5, 8, 0.5], "rotation": 180, "texture": "#5"}
}
}
],
"groups": [
{
"name": "block_retracted",
"origin": [8, 8, 8],
"children": [
{
"name": "BeltFunnel",
"origin": [9, -4, 8],
"children": [
{
"name": "FrontSection",
"origin": [9, -4, 8],
"children": [0, 1, 2, 3, 4, 5]
},
{
"name": "Base",
"origin": [9, -4, 8],
"children": [6, 7]
}
]
}
]
}
]
}

View File

@ -1,147 +0,0 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"3": "create:block/brass_funnel_back",
"5": "create:block/brass_funnel_tall",
"6": "create:block/brass_funnel",
"7": "create:block/brass_funnel_plating",
"2_2": "create:block/brass_funnel_pull"
},
"elements": [
{
"name": "LeftWall",
"from": [14, 6, -2],
"to": [16.05, 12, 14],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 12, 0]},
"faces": {
"north": {"uv": [0, 0, 2, 6], "texture": "#2_2"},
"east": {"uv": [0, 0, 16, 6], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [14, 0, 16, 6], "texture": "#2_2"},
"west": {"uv": [0, 12, 16, 6], "texture": "#2_2"},
"up": {"uv": [15, 0, 16, 8], "texture": "#7"},
"down": {"uv": [0, 0, 1, 8], "rotation": 180, "texture": "#7"}
}
},
{
"name": "LeftWall",
"from": [-0.05, 6, -2],
"to": [2, 12, 14],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 12, 0]},
"faces": {
"north": {"uv": [16, 0, 14, 6], "rotation": 180, "texture": "#2_2"},
"east": {"uv": [0, 6, 16, 12], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [0, 0, 2, 6], "texture": "#2_2"},
"west": {"uv": [0, 6, 16, 0], "texture": "#2_2"},
"up": {"uv": [8, 0, 9, 8], "texture": "#7"},
"down": {"uv": [7, 0, 8, 8], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 6, -2],
"to": [14, 12, 4],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 12, 0]},
"faces": {
"north": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [9, 13, 15, 16], "rotation": 180, "texture": "#7"},
"up": {"uv": [9, 0, 15, 3], "texture": "#7"},
"down": {"uv": [1, 0, 7, 3], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 7, 4],
"to": [14, 8, 13],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 12, 0]},
"faces": {
"down": {"uv": [0, 9, 6, 13.5], "rotation": 180, "texture": "#3"}
}
},
{
"name": "Top",
"from": [0.05, 12, 14],
"to": [15.95, 15.95, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 2]},
"faces": {
"north": {"uv": [8, 11, 16, 13], "rotation": 180, "texture": "#7"},
"east": {"uv": [16, 11, 15, 13], "texture": "#7"},
"south": {"uv": [8, 11, 16, 13], "rotation": 180, "texture": "#7"},
"west": {"uv": [9, 11, 8, 13], "texture": "#7"},
"up": {"uv": [0, 13.5, 8, 14.5], "texture": "#7"},
"down": {"uv": [0, 11.5, 8, 12.5], "texture": "#7"}
}
},
{
"name": "Top",
"from": [0, 14, 13.1],
"to": [16, 16, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 17, 1.1]},
"faces": {
"east": {"uv": [6, 13, 5, 13.5], "rotation": 270, "texture": "#7"},
"south": {"uv": [0, 13.5, 8, 14.5], "rotation": 180, "texture": "#7"},
"west": {"uv": [7, 13, 6, 13.5], "rotation": 270, "texture": "#7"},
"up": {"uv": [0, 13, 8, 13.5], "texture": "#7"}
}
},
{
"from": [1, 11, 0],
"to": [15, 14, 7],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 21, 9]},
"faces": {
"north": {"uv": [6.5, 0, 8, 6], "rotation": 270, "texture": "#3"},
"east": {"uv": [1, 6.5, 4.5, 8], "rotation": 180, "texture": "#3"},
"west": {"uv": [1, 6, 4.5, 7.5], "texture": "#3"},
"up": {"uv": [8, 0, 11.5, 6], "rotation": 90, "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, 14, 1.05],
"to": [13.9, 18.1, 13.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6, 23.1]},
"faces": {
"north": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"east": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"south": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"west": {"uv": [0, 0, 12, 4], "rotation": 180, "texture": "#6"},
"up": {"uv": [6, 8, 12, 14], "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, 11.9, 1.05],
"to": [13.9, 14, 12.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 22, 23.1]},
"faces": {
"north": {"uv": [0, 1.5, 6, 0.5], "rotation": 180, "texture": "#6"},
"east": {"uv": [2.5, 0.5, 8, 1.5], "texture": "#5"},
"west": {"uv": [2.5, 1.5, 8, 0.5], "rotation": 180, "texture": "#5"}
}
}
],
"groups": [
{
"name": "block_retracted",
"origin": [8, 8, 8],
"children": [
{
"name": "BeltFunnel",
"origin": [9, -4, 8],
"children": [
{
"name": "FrontSection",
"origin": [9, -4, 8],
"children": [0, 1, 2, 3, 4, 5, 6]
},
{
"name": "Base",
"origin": [9, -4, 8],
"children": [7, 8]
}
]
}
]
}
]
}

View File

@ -1,134 +0,0 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"3": "create:block/brass_funnel_back",
"5": "create:block/brass_funnel_tall",
"6": "create:block/brass_funnel",
"7": "create:block/brass_funnel_plating",
"2_2": "create:block/brass_funnel_pull"
},
"elements": [
{
"name": "LeftWall",
"from": [-0.05, 4, 0],
"to": [2, 10, 16],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 2]},
"faces": {
"north": {"uv": [14, 0, 16, 6], "texture": "#2_2"},
"east": {"uv": [0, 12, 16, 6], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [0, 0, 2, 6], "texture": "#2_2"},
"west": {"uv": [0, 0, 16, 6], "texture": "#2_2"},
"up": {"uv": [0, 0, 1, 8], "texture": "#7"},
"down": {"uv": [15, 0, 16, 8], "rotation": 180, "texture": "#7"}
}
},
{
"name": "LeftWall",
"from": [14, 4, 0],
"to": [16.05, 10, 16],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 2]},
"faces": {
"north": {"uv": [2, 0, 0, 6], "rotation": 180, "texture": "#2_2"},
"east": {"uv": [0, 6, 16, 0], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [14, 0, 16, 6], "texture": "#2_2"},
"west": {"uv": [0, 6, 16, 12], "texture": "#2_2"},
"up": {"uv": [7, 0, 8, 8], "texture": "#7"},
"down": {"uv": [8, 0, 9, 8], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 4, 0],
"to": [14, 10, 6],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 2]},
"faces": {
"north": {"uv": [2, 0, 14, 6], "texture": "#2_2"},
"south": {"uv": [9, 13, 15, 16], "texture": "#7"},
"up": {"uv": [1, 0, 7, 3], "texture": "#7"},
"down": {"uv": [9, 0, 15, 3], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 4, 14],
"to": [14, 10, 16],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 18]},
"faces": {
"north": {"uv": [15, 13, 9, 16], "texture": "#7"},
"south": {"uv": [14, 0, 2, 6], "texture": "#2_2"},
"up": {"uv": [0.5, 12.5, 7.5, 11.5], "rotation": 180, "texture": "#7"},
"down": {"uv": [9, 3, 15, 0], "rotation": 180, "texture": "#7"}
}
},
{
"name": "Top",
"from": [2, 8, 6],
"to": [14, 9, 15],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 2]},
"faces": {
"up": {"uv": [0, 9, 6, 13.5], "texture": "#3"}
}
},
{
"from": [1, 2, 1],
"to": [15, 5, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [7, -5, 10]},
"faces": {
"north": {"uv": [9, 6.5, 16, 8], "texture": "#3"},
"east": {"uv": [9, 6.5, 16, 8], "texture": "#3"},
"south": {"uv": [9, 6.5, 16, 8], "texture": "#3"},
"west": {"uv": [9, 6.5, 16, 8], "texture": "#3"},
"down": {"uv": [0, 0, 6, 6], "rotation": 270, "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, -2.1, 2.05],
"to": [13.9, 2, 14.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 24.1]},
"faces": {
"north": {"uv": [0, 0, 12, 4], "texture": "#6"},
"east": {"uv": [0, 0, 12, 4], "texture": "#6"},
"south": {"uv": [0, 0, 12, 4], "texture": "#6"},
"west": {"uv": [0, 0, 12, 4], "texture": "#6"},
"down": {"uv": [6, 8, 12, 14], "rotation": 180, "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, 2, 2.05],
"to": [13.9, 4.1, 13.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6, 24.1]},
"faces": {
"north": {"uv": [0, 1.5, 6, 0.5], "texture": "#6"},
"east": {"uv": [2.5, 1.5, 8, 0.5], "texture": "#5"},
"west": {"uv": [2.5, 0.5, 8, 1.5], "rotation": 180, "texture": "#5"}
}
}
],
"groups": [
{
"name": "block_retracted",
"origin": [8, 8, 8],
"children": [
{
"name": "BeltFunnel",
"origin": [9, -4, 8],
"children": [
{
"name": "FrontSection",
"origin": [9, -4, 8],
"children": [0, 1, 2, 3, 4, 5]
},
{
"name": "Base",
"origin": [9, -4, 8],
"children": [6, 7]
}
]
}
]
}
]
}

View File

@ -0,0 +1,212 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"3": "create:block/brass_funnel_back",
"5": "create:block/brass_funnel_tall",
"7": "create:block/brass_funnel_plating",
"8": "create:block/brass_storage_block",
"9": "create:block/brass_funnel_slope",
"10": "create:block/funnel_closed",
"2_2": "create:block/brass_funnel_pull"
},
"elements": [
{
"name": "LeftWall",
"from": [0, 4, 0],
"to": [2, 10, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 2]},
"faces": {
"north": {"uv": [14, 0, 16, 6], "texture": "#2_2"},
"south": {"uv": [0, 0, 2, 6], "texture": "#2_2"},
"west": {"uv": [0, 0, 16, 6], "texture": "#2_2"},
"up": {"uv": [0, 0, 2, 16], "texture": "#8"},
"down": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#8"}
}
},
{
"name": "LeftWall",
"from": [14, 4, 0],
"to": [16, 10, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 2]},
"faces": {
"north": {"uv": [2, 0, 0, 6], "rotation": 180, "texture": "#2_2"},
"east": {"uv": [0, 6, 16, 0], "rotation": 180, "texture": "#2_2"},
"south": {"uv": [14, 0, 16, 6], "texture": "#2_2"},
"up": {"uv": [14, 0, 16, 16], "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#8"}
}
},
{
"name": "Top",
"from": [2, 4, 0],
"to": [14, 10, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 2]},
"faces": {
"north": {"uv": [2, 0, 14, 6], "texture": "#2_2"},
"up": {"uv": [2, 0, 14, 2], "texture": "#8"},
"down": {"uv": [0, 2, 2, 14], "rotation": 270, "texture": "#8"}
}
},
{
"name": "Top",
"from": [2, 4, 14],
"to": [14, 10, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 18]},
"faces": {
"south": {"uv": [14, 0, 2, 6], "texture": "#2_2"},
"up": {"uv": [2, 16, 14, 14], "rotation": 180, "texture": "#8"},
"down": {"uv": [14, 14, 16, 2], "rotation": 270, "texture": "#8"}
}
},
{
"from": [1, 1, 1],
"to": [15, 4, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [7, -6, 10]},
"faces": {
"north": {"uv": [1, 0, 15, 3], "texture": "#5"},
"east": {"uv": [1, 0, 15, 3], "texture": "#5"},
"south": {"uv": [1, 0, 15, 3], "texture": "#5"},
"west": {"uv": [1, 0, 15, 3], "texture": "#5"},
"down": {"uv": [2, 2, 14, 14], "rotation": 270, "texture": "#8"}
}
},
{
"from": [1, 5, 2],
"to": [2, 10, 14],
"rotation": {"angle": 22.5, "axis": "z", "origin": [2, 10, 8]},
"faces": {
"east": {"uv": [2, 2, 14, 7], "texture": "#9"}
}
},
{
"from": [14, 5, 2],
"to": [15, 10, 14],
"rotation": {"angle": -22.5, "axis": "z", "origin": [14, 10, 8]},
"faces": {
"west": {"uv": [2, 2, 14, 7], "texture": "#9"}
}
},
{
"from": [2, 5, 14],
"to": [14, 10, 15],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 10, 14]},
"faces": {
"north": {"uv": [2, 2, 14, 7], "texture": "#9"}
}
},
{
"from": [2, 5, 1],
"to": [14, 10, 2],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 10, 2]},
"faces": {
"south": {"uv": [2, 2, 14, 7], "texture": "#9"}
}
},
{
"from": [3, 5, 3],
"to": [13, 6, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [11, 13, 11]},
"faces": {
"up": {"uv": [3, 3, 13, 13], "texture": "#10"}
}
},
{
"name": "Back",
"from": [1.95, -1.95, 1.95],
"to": [14.05, 2, 14.05],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0.025, 8]},
"faces": {
"north": {"uv": [2, 12, 14, 16], "texture": "#9"},
"east": {"uv": [2, 12, 14, 16], "texture": "#9"},
"south": {"uv": [2, 12, 14, 16], "texture": "#9"},
"west": {"uv": [2, 12, 14, 16], "texture": "#9"},
"down": {"uv": [6, 8, 12, 14], "rotation": 180, "texture": "#3"}
}
},
{
"name": "Back",
"from": [2.1, 2, 2.05],
"to": [13.9, 4.1, 13.1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6, 24.1]},
"faces": {
"east": {"uv": [2.5, 1.5, 8, 0.5], "texture": "#5"},
"west": {"uv": [2.5, 0.5, 8, 1.5], "rotation": 180, "texture": "#5"}
}
},
{
"from": [5.05, -0.95, 0.05],
"to": [10.95, 4, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [2.5, 0.5, 5.5, 3], "texture": "#7"},
"east": {"uv": [4.5, 0.5, 5.5, 3], "texture": "#7"},
"west": {"uv": [2.5, 0.5, 3.5, 3], "texture": "#7"},
"down": {"uv": [2.5, 11.5, 5.5, 12.5], "texture": "#7"}
}
},
{
"from": [5.05, -0.95, 14],
"to": [10.95, 4, 15.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"east": {"uv": [2.5, 0.5, 3.5, 3], "texture": "#7"},
"south": {"uv": [2.5, 0.5, 5.5, 3], "texture": "#7"},
"west": {"uv": [4.5, 0.5, 5.5, 3], "texture": "#7"},
"down": {"uv": [2.5, 11.5, 5.5, 12.5], "rotation": 180, "texture": "#7"}
}
},
{
"from": [14, -0.95, 5.05],
"to": [15.95, 4, 10.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [2.5, 0.5, 3.5, 3], "texture": "#7"},
"east": {"uv": [2.5, 0.5, 5.5, 3], "texture": "#7"},
"south": {"uv": [4.5, 0.5, 5.5, 3], "texture": "#7"},
"down": {"uv": [2.5, 11.5, 5.5, 12.5], "rotation": 270, "texture": "#7"}
}
},
{
"from": [0.05, -0.95, 5.05],
"to": [2, 4, 10.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]},
"faces": {
"north": {"uv": [4.5, 0.5, 5.5, 3], "texture": "#7"},
"south": {"uv": [2.5, 0.5, 3.5, 3], "texture": "#7"},
"west": {"uv": [2.5, 0.5, 5.5, 3], "texture": "#7"},
"down": {"uv": [2.5, 11.5, 5.5, 12.5], "rotation": 90, "texture": "#7"}
}
}
],
"display": {},
"groups": [
{
"name": "block_retracted",
"origin": [8, 8, 8],
"children": [
{
"name": "BeltFunnel",
"origin": [9, -4, 8],
"children": [
{
"name": "FrontSection",
"origin": [9, -4, 8],
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
},
{
"name": "Base",
"origin": [9, -4, 8],
"children": [10, 11]
}
]
}
]
},
{
"name": "Item Filter",
"origin": [8, 0, 8],
"children": [12, 13, 14, 15]
}
]
}