You Chute see this

- Integrated new chute models by Kryppers
- Chutes can now be encased in Industrial Iron Blocks
- Chutes are now less prone to resetting shape when moved or rotated
- Moved metal deco blocks to Building Blocks tab
- Changed stonecutting ingredient of metal deco blocks from sheet to ingot
This commit is contained in:
simibubi 2023-03-24 13:21:58 +01:00
parent 5f1a67e4ce
commit 6e74cb8f58
57 changed files with 507 additions and 355 deletions

View file

@ -50,7 +50,7 @@ bd73bfdbe88c58883cc15fe31a9dac7860482ca3 assets/create/blockstates/brown_toolbox
ff1073a5451691c492102243084d92de42abfc26 assets/create/blockstates/calcite_pillar.json
d01a750e6e8214ca8481e40aa69cedeb5c7210f8 assets/create/blockstates/cart_assembler.json
470e8c6a9c37b91fa745bc4f6e9d3740bd72467e assets/create/blockstates/chocolate.json
b59324f051f21d8ce1a48a08f4721a61a3c414d6 assets/create/blockstates/chute.json
ab6053177b215a1714aa8ffd77b466f5fa840fdc assets/create/blockstates/chute.json
4947c261310445fa55b92038326ac82967d192dd assets/create/blockstates/clockwork_bearing.json
1f33834c685e3243882acfe20183fe64dfa872be assets/create/blockstates/clutch.json
e5e3757e99c139d67b2a70288466d8a74d818841 assets/create/blockstates/cogwheel.json
@ -2351,20 +2351,9 @@ cbe6b6d0eb188a8c0600b54cee860116d305e905 data/create/advancements/recipes/buildi
34ceb3033f5f41a5fdffeea0a3adead36748f65a data/create/advancements/recipes/building_blocks/smelting/nickel_ingot_compat_thermal.json
edb22e0bb018cf00e51f37d912939207c4bf5ac5 data/create/advancements/recipes/building_blocks/smelting/silver_ingot_compat_thermal.json
f10041d864bfb1e6f017e442ae85ee9503b3f5a4 data/create/advancements/recipes/building_blocks/smelting/tin_ingot_compat_thermal.json
d7d55d04aba6492690df1c68b75d457b0b537d2f data/create/advancements/recipes/create.base/andesite_bars_from_andesite_alloy_stonecutting.json
60608f8fff394857b8b7d3b1478b847fd20160f4 data/create/advancements/recipes/create.base/andesite_ladder_from_andesite_alloy_stonecutting.json
bc9aa565038013430adacea933fc32443e7fcdc8 data/create/advancements/recipes/create.base/andesite_scaffolding_from_andesite_alloy_stonecutting.json
ba80332510acab3f60f30d8b802ee2d450fd51b9 data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_crushed.json
4bb60ef5e186f12a9d52e61319db8c78300c64ab data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_ore.json
00ff89f208cb9023d7a2657c43d267e21755fb2e data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_raw_ore.json
ac987d22204c01642cbda1c8e3d81604741ff777 data/create/advancements/recipes/create.base/brass_bars_from_plates_brass_stonecutting.json
13ce2dba955de3b6b943fa406e3dde6863093820 data/create/advancements/recipes/create.base/brass_ladder_from_plates_brass_stonecutting.json
a039d4cb73eb870adcf0c0faa49ef89306ffc139 data/create/advancements/recipes/create.base/brass_scaffolding_from_plates_brass_stonecutting.json
d5b34cd969809370372860507c3efd3b6eac321e data/create/advancements/recipes/create.base/copper_bars_from_plates_copper_stonecutting.json
1dea56b4759da676f0edf0878ec834a4129d110b data/create/advancements/recipes/create.base/copper_ladder_from_plates_copper_stonecutting.json
9a082358daa8a0e5b91065e6fe38665f76d246b3 data/create/advancements/recipes/create.base/copper_scaffolding_from_plates_copper_stonecutting.json
3397bed32684183c2896348e3010f47137e3216d data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json
3c22b58635d4b1c1e4c4033e43b7b4a74b1af186 data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json
376bda381f3dedb52b03eb1504b103d8ddd1b672 data/create/advancements/recipes/create.base/crafting/appliances/copper_backtank.json
9833d16405f8c51646590e98588fb410f96d9523 data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json
680c982dd1d3c45bed4d390fc0da5042750c157a data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json
@ -2570,24 +2559,35 @@ b2b9c6d93ff4d912081cee2ab5e68209828cdc86 data/create/advancements/recipes/create
88a8661167993de0f2897c95e398b6f77429d724 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_raw_ore.json
e7134f9dd47eb9f706f1ec1bd886a14eb7d3010a data/create/advancements/recipes/create.palettes/acacia_window.json
abeb5dfa9931aac86b080309bd0ed5397fd1254b data/create/advancements/recipes/create.palettes/acacia_window_pane.json
d7d55d04aba6492690df1c68b75d457b0b537d2f data/create/advancements/recipes/create.palettes/andesite_bars_from_andesite_alloy_stonecutting.json
60608f8fff394857b8b7d3b1478b847fd20160f4 data/create/advancements/recipes/create.palettes/andesite_ladder_from_andesite_alloy_stonecutting.json
60545d0d6d70b4be2a22b03b09de45c6d4f7434b data/create/advancements/recipes/create.palettes/andesite_pillar_from_andesite_stonecutting.json
e742f68e9374ad009cd0325094b113c83570bcd2 data/create/advancements/recipes/create.palettes/andesite_pillar_from_stone_types_andesite_stonecutting.json
bc9aa565038013430adacea933fc32443e7fcdc8 data/create/advancements/recipes/create.palettes/andesite_scaffolding_from_andesite_alloy_stonecutting.json
72ec3cf271a07b0bd4d63265904280e8607c052d data/create/advancements/recipes/create.palettes/asurine_pillar_from_asurine_stonecutting.json
f1ba98fa90ae0b81cef3e8bfed4a63565539b4a2 data/create/advancements/recipes/create.palettes/asurine_pillar_from_stone_types_asurine_stonecutting.json
2e69af13ca72acd06ceb1079a371add27a1c0db0 data/create/advancements/recipes/create.palettes/birch_window.json
62772c540e195fc6b8cfa91f9ae32898c649f93e data/create/advancements/recipes/create.palettes/birch_window_pane.json
212ac086bb642f799f189e389ce0951696c892e3 data/create/advancements/recipes/create.palettes/brass_bars_from_ingots_brass_stonecutting.json
2714137931042cecc51f52d9659339bcc015ba52 data/create/advancements/recipes/create.palettes/brass_ladder_from_ingots_brass_stonecutting.json
692f5141251563b4275b9a78399780617103facc data/create/advancements/recipes/create.palettes/brass_scaffolding_from_ingots_brass_stonecutting.json
bfa045d74386df70fd1130c934ed814376442dee data/create/advancements/recipes/create.palettes/calcite_pillar_from_calcite_stonecutting.json
7d0d2554ea3e646941a1ed59c8f5e9d45f9d76d6 data/create/advancements/recipes/create.palettes/calcite_pillar_from_stone_types_calcite_stonecutting.json
8a4cdae4a4ad81b3366d38f793107d15bbb07cb7 data/create/advancements/recipes/create.palettes/copper_bars_from_ingots_copper_stonecutting.json
ee7e3a0350cf5cbf53241056ba3918aba2a2df67 data/create/advancements/recipes/create.palettes/copper_ladder_from_ingots_copper_stonecutting.json
c70e70c6f3ea39b20f67991026c841a0ced0c36d data/create/advancements/recipes/create.palettes/copper_scaffolding_from_ingots_copper_stonecutting.json
19b18800dfc55508e250ebb87fbaa70510736834 data/create/advancements/recipes/create.palettes/copper_shingle_slab.json
0a8b2f2e35c128e470d0fd1a886b9d6ca2e99483 data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json
6b066af05bef4c41a6b8fefa2cb38bcdb821eada data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json
f5ab02df55489afd71af8a54f41a7d9b89e28b6c data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json
c2ca0ac0d670fa4d7e8150ba6e314de2881248b6 data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json
523fa05f084794bbee1552d2691ef3c781d47f7c data/create/advancements/recipes/create.palettes/copper_shingles_from_ingots_copper_stonecutting.json
6d86dd16e892ea7fcaa9c98d6f1c80ee8b2b3d50 data/create/advancements/recipes/create.palettes/copper_tile_slab.json
4976383641eb8308fdaf9c5c02af7191154e232e data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json
9a4f929ad023abc111e4da7dce14104bcd162949 data/create/advancements/recipes/create.palettes/copper_tile_stairs.json
f605ac221fbd565152f8e987beb7697299588da2 data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json
5190d5c155ebd9a670dc8271e4920a048e633d25 data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json
f7d5c7b541fe640b2b9436d233d86fba8c20a388 data/create/advancements/recipes/create.palettes/copper_tiles_from_ingots_copper_stonecutting.json
9356c694361792421cef52e57b7d8919a7f317b0 data/create/advancements/recipes/create.palettes/copycat_panel_from_ingots_zinc_stonecutting.json
8a7e9beca47af614afe11b52edd8a90d0b391942 data/create/advancements/recipes/create.palettes/copycat_step_from_ingots_zinc_stonecutting.json
9a3666ff51dc8bc84fc19a662cbe7a74ba2ea6e1 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json
4401458a7b24d26a1195b1bcc8aa98dbc49b5343 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json
af9f28793d0fe25c09ffe695412f76db8e00aac9 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json
@ -4044,9 +4044,9 @@ c49e88f38ad624a56865bb293e2b81da09ebdf37 data/create/recipes/blasting/silver_ing
70b58fa5ee4ca088f5cd9d4bce2853b1bbf98780 data/create/recipes/blasting/zinc_ingot_from_crushed.json
3b1f91669d1133bb41f2d8e129d885465cb5b30e data/create/recipes/blasting/zinc_ingot_from_ore.json
2dff1a64b2c9974b768f4861ad90a9a110bdd021 data/create/recipes/blasting/zinc_ingot_from_raw_ore.json
b8364d0d29da881dce531f053b386f2a2dd63f01 data/create/recipes/brass_bars_from_plates_brass_stonecutting.json
25af3c80132496b17d71800a43538bc34812efa3 data/create/recipes/brass_ladder_from_plates_brass_stonecutting.json
50481685e206e4cbe20e3eb7d5a9819fcaa6da0f data/create/recipes/brass_scaffolding_from_plates_brass_stonecutting.json
6989a384bae700f7e5cbf6df729846edab0152aa data/create/recipes/brass_bars_from_ingots_brass_stonecutting.json
e6b2c672b3bef88a17a200b000f3cb6aab45faba data/create/recipes/brass_ladder_from_ingots_brass_stonecutting.json
352278016d869d7a7b571b99f223f2cf82576df7 data/create/recipes/brass_scaffolding_from_ingots_brass_stonecutting.json
89cc3710a1925239030329b151f9764901a647e5 data/create/recipes/calcite_pillar_from_calcite_stonecutting.json
2cf7208bfe82b26443d41c05edd321f76a3a3df0 data/create/recipes/calcite_pillar_from_stone_types_calcite_stonecutting.json
339bcf4a9c4e7b36c15970aa671af8620703b23e data/create/recipes/campfire_cooking/bread.json
@ -4056,21 +4056,21 @@ f7879d404d7a848d818278b4e788f285a9087e63 data/create/recipes/compacting/blaze_ca
ac91109efa5a253f54257904190b80a400ec6d0c data/create/recipes/compacting/diorite_from_flint.json
7657603e95ccf83dd0d4b104635db66e531d092a data/create/recipes/compacting/granite_from_flint.json
739a1d004c4be50cda2d706a64b797f66c3ca9c8 data/create/recipes/compacting/honey.json
a079cf471ed223bdec738b4c1c7d5bedbaf6db1e data/create/recipes/copper_bars_from_plates_copper_stonecutting.json
72ae29ce953c855eb52fa48e8dbde566574a45f6 data/create/recipes/copper_ladder_from_plates_copper_stonecutting.json
1be9a5dc5c6b039da6500719e9327f8528baed88 data/create/recipes/copper_scaffolding_from_plates_copper_stonecutting.json
583cab26b4f5685f036fa146f3b1257815d6d0f1 data/create/recipes/copper_bars_from_ingots_copper_stonecutting.json
8d88353f315f471ae5270b46a2e905c743f8686e data/create/recipes/copper_ladder_from_ingots_copper_stonecutting.json
83d89857a0825a60b7e81499603f5f2bbca88cde data/create/recipes/copper_scaffolding_from_ingots_copper_stonecutting.json
1a03af7f858946c395cc05714dd4d0a02206d2d4 data/create/recipes/copper_shingle_slab.json
059abbf567f7b5cf376447bdbee27285b29b7f0f data/create/recipes/copper_shingle_slab_from_copper_shingles_stonecutting.json
0d7569afe35b4bf7da05cd500d1b8d9bd78f9842 data/create/recipes/copper_shingle_stairs.json
88e7c02b8a3ac9cc8692fa44751d88880114b0a7 data/create/recipes/copper_shingle_stairs_from_copper_shingles_stonecutting.json
bea832822e0e5f0048eb94649641ea541e11f943 data/create/recipes/copper_shingles_from_plates_copper_stonecutting.json
7f4ef2f1331bb0454a35aae4979279550d21ee4e data/create/recipes/copper_shingles_from_ingots_copper_stonecutting.json
4c8597b9fba9b0f2b35c7c62df21fa11037a9af7 data/create/recipes/copper_tile_slab.json
454138a8adc681124e3e64fa9da54627e9413982 data/create/recipes/copper_tile_slab_from_copper_tiles_stonecutting.json
0c52acde7dc4d19349d859d76527b712542d36c5 data/create/recipes/copper_tile_stairs.json
15da07234ee005be984f060520d0cf87bca672f5 data/create/recipes/copper_tile_stairs_from_copper_tiles_stonecutting.json
10fdc13f5b2b745e13e6e4e949a07ceaf4544a26 data/create/recipes/copper_tiles_from_plates_copper_stonecutting.json
89aed29928cdfa7cdde43d4a51fc4387497ddde0 data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json
c06a4519139a33250c01297b532ba6ac7d76284c data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json
82316030429530a798020a6a31a3f1718b1123b2 data/create/recipes/copper_tiles_from_ingots_copper_stonecutting.json
64e802b3c6fc1c7e9926531cfa625d58505852f6 data/create/recipes/copycat_panel_from_ingots_zinc_stonecutting.json
4c4d62d9e95c6e37ab38c49cf472034d750530c7 data/create/recipes/copycat_step_from_ingots_zinc_stonecutting.json
eb18d5972484418fa5a768633e68688ad20d2bd7 data/create/recipes/crafting/appliances/copper_backtank.json
5771562086710eb5a3a05d464989d2f23d6c5e86 data/create/recipes/crafting/appliances/copper_diving_boots.json
ec38ddb44e4bf8eaaba6f9d27e8469234fc98528 data/create/recipes/crafting/appliances/copper_diving_helmet.json
@ -5731,7 +5731,7 @@ ee6d2b53d81f2bed492662b6c06f46c4f2b9ef9b data/create/tags/blocks/movable_empty_c
6e5d3b2123fbb00e7f439c091623619502551bca data/create/tags/blocks/non_movable.json
10781e8cfcbb3486327aace3aa00e437fb44b331 data/create/tags/blocks/ore_override_stone.json
760adb521c2e475a6414f97291f46c02d294fa74 data/create/tags/blocks/passive_boiler_heaters.json
9751aa15c651a076024eb52fcffa8ce6aa7a405e data/create/tags/blocks/safe_nbt.json
ec0c664fa776b60b61ef8a8069355b6613b3b34f data/create/tags/blocks/safe_nbt.json
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/blocks/seats.json
d063e12c9ef75f39518c6d129ea35d833464d547 data/create/tags/blocks/toolboxes.json
9460e92c8e483446318b849abe7e6f52dcd4a269 data/create/tags/blocks/tree_attachments.json
@ -5822,13 +5822,13 @@ cfa16b75227c9bf4f245c97ac55999b3903e5471 data/forge/tags/items/stripped_logs.jso
e002dfedc5e8762de0f97ea1f3fa546e92e748ae data/forge/tags/items/tools/wrench.json
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/azalea_root_replaceable.json
9f7a428085b1aac66da32a43e9d51c7efc1f0d81 data/minecraft/tags/blocks/beacon_base_blocks.json
ec81fd87e63a7e736440d8826c7c5e1b16b4cc67 data/minecraft/tags/blocks/climbable.json
cf71d9ad48f109da3a8b22a8d2d1a68d4eac99c0 data/minecraft/tags/blocks/climbable.json
e16d74571ae10007f06f3b86ddf05d3ca9b73559 data/minecraft/tags/blocks/doors.json
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/dripstone_replaceable_blocks.json
69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json
c8e34286079476e88406e44d8002e37e0bbfd05e data/minecraft/tags/blocks/mineable/axe.json
ed5f36f823ddbef1c10a8fee0da077b77433bf54 data/minecraft/tags/blocks/mineable/pickaxe.json
d6b2543575bcedb3796dd681717dd6ac4d1399e6 data/minecraft/tags/blocks/mineable/axe.json
90d279fe3866cca2717befb9d043c6677533685c data/minecraft/tags/blocks/mineable/pickaxe.json
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/moss_replaceable.json
e157c1d3af30e409e34bbefbe15a037e6e1c8daa data/minecraft/tags/blocks/needs_iron_tool.json
a08f67865337f62601c5e333b4011382d10020e4 data/minecraft/tags/blocks/needs_stone_tool.json

View file

@ -53,6 +53,24 @@
"facing=east,shape=normal": {
"model": "create:block/chute/block_diagonal",
"y": 270
},
"facing=down,shape=encased": {
"model": "create:block/chute/block_intersection"
},
"facing=north,shape=encased": {
"model": "create:block/chute/block_diagonal_encased",
"y": 180
},
"facing=south,shape=encased": {
"model": "create:block/chute/block_diagonal_encased"
},
"facing=west,shape=encased": {
"model": "create:block/chute/block_diagonal_encased",
"y": 90
},
"facing=east,shape=encased": {
"model": "create:block/chute/block_diagonal_encased",
"y": 270
}
}
}

View file

@ -1,34 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copycat_panel_from_zinc_ingot_stonecutting"
]
},
"criteria": {
"has_zinc_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:zinc_ingot"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copycat_panel_from_zinc_ingot_stonecutting"
}
}
},
"requirements": [
[
"has_zinc_ingot",
"has_the_recipe"
]
]
}

View file

@ -1,34 +0,0 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copycat_step_from_zinc_ingot_stonecutting"
]
},
"criteria": {
"has_zinc_ingot": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"create:zinc_ingot"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copycat_step_from_zinc_ingot_stonecutting"
}
}
},
"requirements": [
[
"has_zinc_ingot",
"has_the_recipe"
]
]
}

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:brass_bars_from_plates_brass_stonecutting"
"create:brass_bars_from_ingots_brass_stonecutting"
]
},
"criteria": {
"has_plates_brass": {
"has_ingots_brass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:brass_bars_from_plates_brass_stonecutting"
"recipe": "create:brass_bars_from_ingots_brass_stonecutting"
}
}
},
"requirements": [
[
"has_plates_brass",
"has_ingots_brass",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:brass_ladder_from_plates_brass_stonecutting"
"create:brass_ladder_from_ingots_brass_stonecutting"
]
},
"criteria": {
"has_plates_brass": {
"has_ingots_brass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:brass_ladder_from_plates_brass_stonecutting"
"recipe": "create:brass_ladder_from_ingots_brass_stonecutting"
}
}
},
"requirements": [
[
"has_plates_brass",
"has_ingots_brass",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:brass_scaffolding_from_plates_brass_stonecutting"
"create:brass_scaffolding_from_ingots_brass_stonecutting"
]
},
"criteria": {
"has_plates_brass": {
"has_ingots_brass": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:brass_scaffolding_from_plates_brass_stonecutting"
"recipe": "create:brass_scaffolding_from_ingots_brass_stonecutting"
}
}
},
"requirements": [
[
"has_plates_brass",
"has_ingots_brass",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copper_bars_from_plates_copper_stonecutting"
"create:copper_bars_from_ingots_copper_stonecutting"
]
},
"criteria": {
"has_plates_copper": {
"has_ingots_copper": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copper_bars_from_plates_copper_stonecutting"
"recipe": "create:copper_bars_from_ingots_copper_stonecutting"
}
}
},
"requirements": [
[
"has_plates_copper",
"has_ingots_copper",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copper_ladder_from_plates_copper_stonecutting"
"create:copper_ladder_from_ingots_copper_stonecutting"
]
},
"criteria": {
"has_plates_copper": {
"has_ingots_copper": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copper_ladder_from_plates_copper_stonecutting"
"recipe": "create:copper_ladder_from_ingots_copper_stonecutting"
}
}
},
"requirements": [
[
"has_plates_copper",
"has_ingots_copper",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copper_scaffolding_from_plates_copper_stonecutting"
"create:copper_scaffolding_from_ingots_copper_stonecutting"
]
},
"criteria": {
"has_plates_copper": {
"has_ingots_copper": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copper_scaffolding_from_plates_copper_stonecutting"
"recipe": "create:copper_scaffolding_from_ingots_copper_stonecutting"
}
}
},
"requirements": [
[
"has_plates_copper",
"has_ingots_copper",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copper_shingles_from_plates_copper_stonecutting"
"create:copper_shingles_from_ingots_copper_stonecutting"
]
},
"criteria": {
"has_plates_copper": {
"has_ingots_copper": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copper_shingles_from_plates_copper_stonecutting"
"recipe": "create:copper_shingles_from_ingots_copper_stonecutting"
}
}
},
"requirements": [
[
"has_plates_copper",
"has_ingots_copper",
"has_the_recipe"
]
]

View file

@ -2,16 +2,16 @@
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copper_tiles_from_plates_copper_stonecutting"
"create:copper_tiles_from_ingots_copper_stonecutting"
]
},
"criteria": {
"has_plates_copper": {
"has_ingots_copper": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
}
]
}
@ -19,13 +19,13 @@
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copper_tiles_from_plates_copper_stonecutting"
"recipe": "create:copper_tiles_from_ingots_copper_stonecutting"
}
}
},
"requirements": [
[
"has_plates_copper",
"has_ingots_copper",
"has_the_recipe"
]
]

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copycat_panel_from_ingots_zinc_stonecutting"
]
},
"criteria": {
"has_ingots_zinc": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/zinc"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copycat_panel_from_ingots_zinc_stonecutting"
}
}
},
"requirements": [
[
"has_ingots_zinc",
"has_the_recipe"
]
]
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:copycat_step_from_ingots_zinc_stonecutting"
]
},
"criteria": {
"has_ingots_zinc": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"tag": "forge:ingots/zinc"
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:copycat_step_from_ingots_zinc_stonecutting"
}
}
},
"requirements": [
[
"has_ingots_zinc",
"has_the_recipe"
]
]
}

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
},
"result": "create:brass_bars",
"count": 4

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
},
"result": "create:brass_ladder",
"count": 2

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
},
"result": "create:brass_scaffolding",
"count": 2

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
},
"result": "create:copper_bars",
"count": 4

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
},
"result": "create:copper_ladder",
"count": 2

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
},
"result": "create:copper_scaffolding",
"count": 2

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
},
"result": "create:copper_shingles",
"count": 2

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"tag": "forge:plates/copper"
"tag": "forge:ingots/copper"
},
"result": "create:copper_tiles",
"count": 2

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"item": "create:zinc_ingot"
"tag": "forge:ingots/zinc"
},
"result": "create:copycat_panel",
"count": 4

View file

@ -1,7 +1,7 @@
{
"type": "minecraft:stonecutting",
"ingredient": {
"item": "create:zinc_ingot"
"tag": "forge:ingots/zinc"
},
"result": "create:copycat_step",
"count": 4

View file

@ -15,8 +15,6 @@
"create:radial_chassis",
"create:sequenced_gearshift",
"create:rotation_speed_controller",
"create:copycat_step",
"create:copycat_panel",
"create:andesite_funnel",
"create:andesite_belt_funnel",
"create:brass_funnel",
@ -27,6 +25,8 @@
"create:placard",
"create:pulse_repeater",
"create:pulse_extender",
"create:copycat_step",
"create:copycat_panel",
"#minecraft:banners",
"#minecraft:signs"
]

View file

@ -1,13 +1,13 @@
{
"replace": false,
"values": [
"create:rope",
"create:pulley_magnet",
"create:andesite_ladder",
"create:brass_ladder",
"create:copper_ladder",
"create:andesite_scaffolding",
"create:brass_scaffolding",
"create:copper_scaffolding",
"create:rope",
"create:pulley_magnet"
"create:copper_scaffolding"
]
}

View file

@ -103,14 +103,14 @@
"create:rotation_speed_controller",
"create:mechanical_arm",
"create:railway_casing",
"create:copycat_step",
"create:copycat_panel",
"create:content_observer",
"create:stockpile_switch",
"create:creative_crate",
"create:display_link",
"create:redstone_link",
"create:analog_lever",
"create:lectern_controller"
"create:lectern_controller",
"create:copycat_step",
"create:copycat_panel"
]
}

View file

@ -45,12 +45,6 @@
"create:metal_bracket",
"create:metal_girder",
"create:metal_girder_encased_shaft",
"create:andesite_ladder",
"create:brass_ladder",
"create:copper_ladder",
"create:andesite_scaffolding",
"create:brass_scaffolding",
"create:copper_scaffolding",
"create:fluid_pipe",
"create:encased_fluid_pipe",
"create:glass_fluid_pipe",
@ -133,9 +127,6 @@
"create:train_trapdoor",
"create:framed_glass_door",
"create:framed_glass_trapdoor",
"create:copycat_base",
"create:copycat_step",
"create:copycat_panel",
"create:item_vault",
"create:andesite_funnel",
"create:andesite_belt_funnel",
@ -172,6 +163,15 @@
"create:netherite_backtank",
"create:peculiar_bell",
"create:haunted_bell",
"create:andesite_ladder",
"create:brass_ladder",
"create:copper_ladder",
"create:andesite_scaffolding",
"create:brass_scaffolding",
"create:copper_scaffolding",
"create:copycat_base",
"create:copycat_step",
"create:copycat_panel",
"create:zinc_ore",
"create:deepslate_zinc_ore",
"create:raw_zinc_block",

View file

@ -774,6 +774,7 @@ public class AllBlocks {
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
.properties(p -> p.noOcclusion())
.transform(pickaxeOnly())
.blockstate((c, p) -> BlockStateGen.simpleBlock(c, p, AssetLookup.forPowered(c, p)))
.item()
@ -843,51 +844,6 @@ public class AllBlocks {
.onRegister(CreateRegistrate.blockModel(() -> ConnectedGirderModel::new))
.register();
public static final BlockEntry<MetalLadderBlock> ANDESITE_LADDER =
REGISTRATE.block("andesite_ladder", MetalLadderBlock::new)
.transform(
BuilderTransformers.ladder("andesite", () -> DataIngredient.items(AllItems.ANDESITE_ALLOY.get())))
.register();
public static final BlockEntry<MetalLadderBlock> BRASS_LADDER =
REGISTRATE.block("brass_ladder", MetalLadderBlock::new)
.transform(
BuilderTransformers.ladder("brass", () -> DataIngredient.tag(AllTags.forgeItemTag("plates/brass"))))
.register();
public static final BlockEntry<MetalLadderBlock> COPPER_LADDER =
REGISTRATE.block("copper_ladder", MetalLadderBlock::new)
.transform(
BuilderTransformers.ladder("copper", () -> DataIngredient.tag(AllTags.forgeItemTag("plates/copper"))))
.register();
public static final BlockEntry<IronBarsBlock> ANDESITE_BARS =
MetalBarsGen.createBars("andesite", true, () -> DataIngredient.items(AllItems.ANDESITE_ALLOY.get()));
public static final BlockEntry<IronBarsBlock> BRASS_BARS =
MetalBarsGen.createBars("brass", true, () -> DataIngredient.tag(AllTags.forgeItemTag("plates/brass")));
public static final BlockEntry<IronBarsBlock> COPPER_BARS =
MetalBarsGen.createBars("copper", true, () -> DataIngredient.tag(AllTags.forgeItemTag("plates/copper")));
public static final BlockEntry<MetalScaffoldingBlock> ANDESITE_SCAFFOLD =
REGISTRATE.block("andesite_scaffolding", MetalScaffoldingBlock::new)
.transform(BuilderTransformers.scaffold("andesite",
() -> DataIngredient.items(AllItems.ANDESITE_ALLOY.get()), AllSpriteShifts.ANDESITE_SCAFFOLD,
AllSpriteShifts.ANDESITE_SCAFFOLD_INSIDE, AllSpriteShifts.ANDESITE_CASING))
.register();
public static final BlockEntry<MetalScaffoldingBlock> BRASS_SCAFFOLD = REGISTRATE
.block("brass_scaffolding", MetalScaffoldingBlock::new)
.transform(BuilderTransformers.scaffold("brass", () -> DataIngredient.tag(AllTags.forgeItemTag("plates/brass")),
AllSpriteShifts.BRASS_SCAFFOLD, AllSpriteShifts.BRASS_SCAFFOLD_INSIDE, AllSpriteShifts.BRASS_CASING))
.register();
public static final BlockEntry<MetalScaffoldingBlock> COPPER_SCAFFOLD =
REGISTRATE.block("copper_scaffolding", MetalScaffoldingBlock::new)
.transform(BuilderTransformers.scaffold("copper",
() -> DataIngredient.tag(AllTags.forgeItemTag("plates/copper")), AllSpriteShifts.COPPER_SCAFFOLD,
AllSpriteShifts.COPPER_SCAFFOLD_INSIDE, AllSpriteShifts.COPPER_CASING))
.register();
// Fluids
public static final BlockEntry<FluidPipeBlock> FLUID_PIPE = REGISTRATE.block("fluid_pipe", FluidPipeBlock::new)
@ -1767,38 +1723,6 @@ public class AllBlocks {
.addLayer(() -> RenderType::cutoutMipped)
.register();
public static final BlockEntry<Block> COPYCAT_BASE = REGISTRATE.block("copycat_base", Block::new)
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.color(MaterialColor.GLOW_LICHEN))
.addLayer(() -> RenderType::cutoutMipped)
.transform(pickaxeOnly())
.blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.partialBaseModel(c, p)))
.register();
public static final BlockEntry<CopycatStepBlock> COPYCAT_STEP =
REGISTRATE.block("copycat_step", CopycatStepBlock::new)
.transform(BuilderTransformers.copycat())
.onRegister(CreateRegistrate.blockModel(() -> CopycatStepModel::new))
.item()
.recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4))
.transform(customItemModel("copycat_base", "step"))
.register();
public static final BlockEntry<CopycatPanelBlock> COPYCAT_PANEL =
REGISTRATE.block("copycat_panel", CopycatPanelBlock::new)
.transform(BuilderTransformers.copycat())
.onRegister(CreateRegistrate.blockModel(() -> CopycatPanelModel::new))
.item()
.recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4))
.transform(customItemModel("copycat_base", "panel"))
.register();
public static final BlockEntry<WrenchableDirectionalBlock> COPYCAT_BARS =
REGISTRATE.block("copycat_bars", WrenchableDirectionalBlock::new)
.blockstate(new SpecialCopycatPanelBlockState("bars")::generate)
.onRegister(CreateRegistrate.blockModel(() -> CopycatBarsModel::new))
.register();
public static final BlockEntry<ItemVaultBlock> ITEM_VAULT = REGISTRATE.block("item_vault", ItemVaultBlock::new)
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.color(MaterialColor.TERRACOTTA_BLUE))
@ -2124,11 +2048,88 @@ public class AllBlocks {
});
// Materials
static {
REGISTRATE.creativeModeTab(() -> AllCreativeModeTabs.PALETTES_CREATIVE_TAB);
}
public static final BlockEntry<MetalLadderBlock> ANDESITE_LADDER =
REGISTRATE.block("andesite_ladder", MetalLadderBlock::new)
.transform(
BuilderTransformers.ladder("andesite", () -> DataIngredient.items(AllItems.ANDESITE_ALLOY.get())))
.register();
public static final BlockEntry<MetalLadderBlock> BRASS_LADDER =
REGISTRATE.block("brass_ladder", MetalLadderBlock::new)
.transform(
BuilderTransformers.ladder("brass", () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/brass"))))
.register();
public static final BlockEntry<MetalLadderBlock> COPPER_LADDER =
REGISTRATE.block("copper_ladder", MetalLadderBlock::new)
.transform(
BuilderTransformers.ladder("copper", () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/copper"))))
.register();
public static final BlockEntry<IronBarsBlock> ANDESITE_BARS =
MetalBarsGen.createBars("andesite", true, () -> DataIngredient.items(AllItems.ANDESITE_ALLOY.get()));
public static final BlockEntry<IronBarsBlock> BRASS_BARS =
MetalBarsGen.createBars("brass", true, () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/brass")));
public static final BlockEntry<IronBarsBlock> COPPER_BARS =
MetalBarsGen.createBars("copper", true, () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/copper")));
public static final BlockEntry<MetalScaffoldingBlock> ANDESITE_SCAFFOLD =
REGISTRATE.block("andesite_scaffolding", MetalScaffoldingBlock::new)
.transform(BuilderTransformers.scaffold("andesite",
() -> DataIngredient.items(AllItems.ANDESITE_ALLOY.get()), AllSpriteShifts.ANDESITE_SCAFFOLD,
AllSpriteShifts.ANDESITE_SCAFFOLD_INSIDE, AllSpriteShifts.ANDESITE_CASING))
.register();
public static final BlockEntry<MetalScaffoldingBlock> BRASS_SCAFFOLD = REGISTRATE
.block("brass_scaffolding", MetalScaffoldingBlock::new)
.transform(BuilderTransformers.scaffold("brass", () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/brass")),
AllSpriteShifts.BRASS_SCAFFOLD, AllSpriteShifts.BRASS_SCAFFOLD_INSIDE, AllSpriteShifts.BRASS_CASING))
.register();
public static final BlockEntry<MetalScaffoldingBlock> COPPER_SCAFFOLD =
REGISTRATE.block("copper_scaffolding", MetalScaffoldingBlock::new)
.transform(BuilderTransformers.scaffold("copper",
() -> DataIngredient.tag(AllTags.forgeItemTag("ingots/copper")), AllSpriteShifts.COPPER_SCAFFOLD,
AllSpriteShifts.COPPER_SCAFFOLD_INSIDE, AllSpriteShifts.COPPER_CASING))
.register();
public static final BlockEntry<Block> COPYCAT_BASE = REGISTRATE.block("copycat_base", Block::new)
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.color(MaterialColor.GLOW_LICHEN))
.addLayer(() -> RenderType::cutoutMipped)
.transform(pickaxeOnly())
.blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.partialBaseModel(c, p)))
.register();
public static final BlockEntry<CopycatStepBlock> COPYCAT_STEP =
REGISTRATE.block("copycat_step", CopycatStepBlock::new)
.transform(BuilderTransformers.copycat())
.onRegister(CreateRegistrate.blockModel(() -> CopycatStepModel::new))
.item()
.recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/zinc")), c::get, 4))
.transform(customItemModel("copycat_base", "step"))
.register();
public static final BlockEntry<CopycatPanelBlock> COPYCAT_PANEL =
REGISTRATE.block("copycat_panel", CopycatPanelBlock::new)
.transform(BuilderTransformers.copycat())
.onRegister(CreateRegistrate.blockModel(() -> CopycatPanelModel::new))
.item()
.recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/zinc")), c::get, 4))
.transform(customItemModel("copycat_base", "panel"))
.register();
public static final BlockEntry<WrenchableDirectionalBlock> COPYCAT_BARS =
REGISTRATE.block("copycat_bars", WrenchableDirectionalBlock::new)
.blockstate(new SpecialCopycatPanelBlockState("bars")::generate)
.onRegister(CreateRegistrate.blockModel(() -> CopycatBarsModel::new))
.register();
public static final BlockEntry<Block> ZINC_ORE = REGISTRATE.block("zinc_ore", Block::new)
.initialProperties(() -> Blocks.GOLD_ORE)
.properties(p -> p.color(MaterialColor.METAL))
@ -2210,6 +2211,7 @@ public class AllBlocks {
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.blockstate(simpleCubeAll("industrial_iron_block"))
.tag(AllBlockTags.WRENCH_PICKUP.tag)
.lang("Block of Industrial Iron")
.simpleItem()
.register();
@ -2266,12 +2268,12 @@ public class AllBlocks {
public static final CopperBlockSet COPPER_SHINGLES = new CopperBlockSet(REGISTRATE, "copper_shingles",
"copper_roof_top", CopperBlockSet.DEFAULT_VARIANTS, (c, p) -> {
p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("plates/copper")), c::get, 2);
p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/copper")), c::get, 2);
});
public static final CopperBlockSet COPPER_TILES =
new CopperBlockSet(REGISTRATE, "copper_tiles", "copper_roof_top", CopperBlockSet.DEFAULT_VARIANTS, (c, p) -> {
p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("plates/copper")), c::get, 2);
p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/copper")), c::get, 2);
});
// Load this class

View file

@ -261,9 +261,6 @@ public class AllShapes {
.build(),
CHUTE = shape(1, 8, 1, 15, 16, 15).add(2, 0, 2, 14, 8, 14)
.build(),
SMART_CHUTE = shape(0, 0, 0, 16, 5, 16).add(0, 9, 0, 16, 15, 16)
.add(1, 0, 1, 15, 16, 15)
.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)

View file

@ -1,5 +1,6 @@
package com.simibubi.create.content.logistics.block.chute;
import java.util.Random;
import java.util.function.Consumer;
import javax.annotation.Nullable;
@ -14,6 +15,7 @@ import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.Entity;
@ -39,7 +41,7 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
public AbstractChuteBlock(Properties p_i48440_1_) {
super(p_i48440_1_);
}
@OnlyIn(Dist.CLIENT)
public void initializeClient(Consumer<IBlockRenderProperties> consumer) {
consumer.accept(new ReducedDestroyEffects());
@ -79,7 +81,7 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack);
AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer);
}
@Override
public void updateEntityAfterFallOn(BlockGetter worldIn, Entity entityIn) {
super.updateEntityAfterFallOn(worldIn, entityIn);
@ -109,8 +111,6 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
@Override
public void onPlace(BlockState state, Level world, BlockPos pos, BlockState p_220082_4_, boolean p_220082_5_) {
withBlockEntityDo(world, pos, ChuteBlockEntity::onAdded);
if (p_220082_5_)
return;
updateDiagonalNeighbour(state, world, pos);
}
@ -125,16 +125,16 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
toUpdate = toUpdate.relative(facing.getOpposite());
BlockState stateToUpdate = world.getBlockState(toUpdate);
BlockState updated = updateChuteState(stateToUpdate, world.getBlockState(toUpdate.above()), world, toUpdate);
if (stateToUpdate != updated && !world.isClientSide)
world.setBlockAndUpdate(toUpdate, updated);
if (isChute(stateToUpdate) && !world.getBlockTicks()
.hasScheduledTick(toUpdate, stateToUpdate.getBlock()))
world.scheduleTick(toUpdate, stateToUpdate.getBlock(), 1);
}
@Override
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) {
IBE.onRemove(state, world, pos, newState);
if (isMoving || state.is(newState.getBlock()))
if (state.is(newState.getBlock()))
return;
updateDiagonalNeighbour(state, world, pos);
@ -143,15 +143,19 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
BlockPos toUpdate = pos.above()
.relative(direction);
BlockState stateToUpdate = world.getBlockState(toUpdate);
if (!isChute(stateToUpdate))
continue;
BlockState updated = ((AbstractChuteBlock) stateToUpdate.getBlock()).updateChuteState(stateToUpdate,
world.getBlockState(toUpdate.above()), world, toUpdate);
if (stateToUpdate != updated && !world.isClientSide)
world.setBlockAndUpdate(toUpdate, updated);
if (isChute(stateToUpdate) && !world.getBlockTicks()
.hasScheduledTick(toUpdate, stateToUpdate.getBlock()))
world.scheduleTick(toUpdate, stateToUpdate.getBlock(), 1);
}
}
@Override
public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) {
BlockState updated = updateChuteState(pState, pLevel.getBlockState(pPos.above()), pLevel, pPos);
if (pState != updated)
pLevel.setBlockAndUpdate(pPos, updated);
}
@Override
public BlockState updateShape(BlockState state, Direction direction, BlockState above, LevelAccessor world,
BlockPos pos, BlockPos p_196271_6_) {
@ -194,7 +198,7 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
public InteractionResult use(BlockState p_225533_1_, Level world, BlockPos pos, Player player, InteractionHand hand,
BlockHitResult p_225533_6_) {
if (!player.getItemInHand(hand)
.isEmpty())
.isEmpty())
return InteractionResult.PASS;
if (world.isClientSide)
return InteractionResult.SUCCESS;
@ -202,7 +206,8 @@ public abstract class AbstractChuteBlock extends Block implements IWrenchable, I
return onBlockEntityUse(world, pos, be -> {
if (be.item.isEmpty())
return InteractionResult.PASS;
player.getInventory().placeItemBackInInventory(be.item);
player.getInventory()
.placeItemBackInInventory(be.item);
be.setItem(ItemStack.EMPTY);
return InteractionResult.SUCCESS;
});

View file

@ -4,20 +4,27 @@ import java.util.HashMap;
import java.util.Map;
import com.simibubi.create.AllBlockEntityTypes;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
import com.simibubi.create.foundation.utility.Iterate;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Mirror;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition.Builder;
@ -26,9 +33,10 @@ import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.level.block.state.properties.EnumProperty;
import net.minecraft.world.level.block.state.properties.Property;
import net.minecraft.world.level.pathfinder.PathComputationType;
import net.minecraft.world.phys.BlockHitResult;
public class ChuteBlock extends AbstractChuteBlock {
public static final Property<Shape> SHAPE = EnumProperty.create("shape", Shape.class);
public static final DirectionProperty FACING = BlockStateProperties.FACING_HOPPER;
@ -39,7 +47,7 @@ public class ChuteBlock extends AbstractChuteBlock {
}
public enum Shape implements StringRepresentable {
INTERSECTION, WINDOW, NORMAL;
INTERSECTION, WINDOW, NORMAL, ENCASED;
@Override
public String getSerializedName() {
@ -66,11 +74,36 @@ public class ChuteBlock extends AbstractChuteBlock {
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
Shape shape = state.getValue(SHAPE);
boolean down = state.getValue(FACING) == Direction.DOWN;
if (!context.getLevel().isClientSide && down && shape != Shape.INTERSECTION) {
context.getLevel()
.setBlockAndUpdate(context.getClickedPos(),
state.setValue(SHAPE, shape == Shape.WINDOW ? Shape.NORMAL : Shape.WINDOW));
if (shape == Shape.INTERSECTION)
return InteractionResult.PASS;
Level level = context.getLevel();
if (level.isClientSide)
return InteractionResult.SUCCESS;
if (shape == Shape.ENCASED) {
level.setBlockAndUpdate(context.getClickedPos(), state.setValue(SHAPE, Shape.NORMAL));
level.levelEvent(2001, context.getClickedPos(),
Block.getId(AllBlocks.INDUSTRIAL_IRON_BLOCK.getDefaultState()));
return InteractionResult.SUCCESS;
}
if (down)
level.setBlockAndUpdate(context.getClickedPos(),
state.setValue(SHAPE, shape != Shape.NORMAL ? Shape.NORMAL : Shape.WINDOW));
return InteractionResult.SUCCESS;
}
@Override
public InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand,
BlockHitResult hitResult) {
Shape shape = state.getValue(SHAPE);
if (!AllBlocks.INDUSTRIAL_IRON_BLOCK.isIn(player.getItemInHand(hand)))
return super.use(state, level, pos, player, hand, hitResult);
if (shape == Shape.INTERSECTION || shape == Shape.ENCASED)
return super.use(state, level, pos, player, hand, hitResult);
if (player == null || level.isClientSide)
return InteractionResult.SUCCESS;
level.setBlockAndUpdate(pos, state.setValue(SHAPE, Shape.ENCASED));
level.playSound(null, pos, SoundEvents.NETHERITE_BLOCK_HIT, SoundSource.BLOCKS, 0.5f, 1.05f);
return InteractionResult.SUCCESS;
}
@ -129,7 +162,8 @@ public class ChuteBlock extends AbstractChuteBlock {
boolean noConnections = amtConnections == 0;
if (vertical)
return state.setValue(SHAPE,
noConnections ? state.getValue(SHAPE) == Shape.WINDOW ? Shape.WINDOW : Shape.NORMAL : Shape.INTERSECTION);
noConnections ? state.getValue(SHAPE) == Shape.INTERSECTION ? Shape.NORMAL : state.getValue(SHAPE)
: Shape.INTERSECTION);
if (noConnections)
return state.setValue(SHAPE, Shape.INTERSECTION);
if (connections.get(Direction.NORTH) && connections.get(Direction.SOUTH))
@ -138,15 +172,26 @@ public class ChuteBlock extends AbstractChuteBlock {
return state.setValue(SHAPE, Shape.INTERSECTION);
if (amtConnections == 1 && connections.get(facing) && !(getChuteFacing(above) == Direction.DOWN)
&& !(above.getBlock() instanceof FunnelBlock && FunnelBlock.getFunnelFacing(above) == Direction.DOWN))
return state.setValue(SHAPE, Shape.NORMAL);
return state.setValue(SHAPE, state.getValue(SHAPE) == Shape.ENCASED ? Shape.ENCASED : Shape.NORMAL);
return state.setValue(SHAPE, Shape.INTERSECTION);
}
@Override
public BlockState rotate(BlockState pState, Rotation pRot) {
return pState.setValue(FACING, pRot.rotate(pState.getValue(FACING)));
}
@Override
@SuppressWarnings("deprecation")
public BlockState mirror(BlockState pState, Mirror pMirror) {
return pState.rotate(pMirror.getRotation(pState.getValue(FACING)));
}
@Override
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
return false;
}
@Override
public BlockEntityType<? extends ChuteBlockEntity> getBlockEntityType() {
return AllBlockEntityTypes.CHUTE.get();

View file

@ -701,30 +701,32 @@ public class ChuteBlockEntity extends SmartBlockEntity implements IHaveGoggleInf
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
boolean downward = getItemMotion() < 0;
tooltip.add(componentSpacing.plainCopy()
.append(Lang.translateDirect("tooltip.chute.header")));
Lang.translate("tooltip.chute.header")
.forGoggles(tooltip);
if (pull == 0 && push == 0)
tooltip.add(componentSpacing.plainCopy()
.append(Lang.translateDirect("tooltip.chute.no_fans_attached"))
.withStyle(ChatFormatting.GRAY));
Lang.translate("tooltip.chute.no_fans_attached")
.style(ChatFormatting.GRAY)
.forGoggles(tooltip);
if (pull != 0)
tooltip.add(componentSpacing.plainCopy()
.append(Lang.translateDirect("tooltip.chute.fans_" + (pull > 0 ? "pull_up" : "push_down"))
.withStyle(ChatFormatting.GRAY)));
Lang.translate("tooltip.chute.fans_" + (pull > 0 ? "pull_up" : "push_down"))
.style(ChatFormatting.GRAY)
.forGoggles(tooltip);
if (push != 0)
tooltip.add(componentSpacing.plainCopy()
.append(Lang.translateDirect("tooltip.chute.fans_" + (push > 0 ? "push_up" : "pull_down"))
.withStyle(ChatFormatting.GRAY)));
tooltip.add(componentSpacing.plainCopy()
.append("-> ")
.append(Lang.translateDirect("tooltip.chute.items_move_" + (downward ? "down" : "up"))
.withStyle(ChatFormatting.YELLOW)));
if (!item.isEmpty()) {
tooltip.add(componentSpacing.plainCopy()
.append(Lang.translateDirect("tooltip.chute.contains", Components.translatable(item.getDescriptionId())
.getString(), item.getCount()))
.withStyle(ChatFormatting.GREEN));
}
Lang.translate("tooltip.chute.fans_" + (push > 0 ? "push_up" : "pull_down"))
.style(ChatFormatting.GRAY)
.forGoggles(tooltip);
Lang.text("-> ")
.add(Lang.translate("tooltip.chute.items_move_" + (downward ? "down" : "up")))
.style(ChatFormatting.YELLOW)
.forGoggles(tooltip);
if (!item.isEmpty())
Lang.translate("tooltip.chute.contains", Components.translatable(item.getDescriptionId())
.getString(), item.getCount())
.style(ChatFormatting.GREEN)
.forGoggles(tooltip);
return true;
}

View file

@ -31,10 +31,12 @@ public class ChuteGenerator extends SpecialBlockStateGen {
if (!horizontal)
return shape == Shape.NORMAL ? AssetLookup.partialBaseModel(ctx, prov)
: shape == Shape.INTERSECTION ? AssetLookup.partialBaseModel(ctx, prov, "intersection")
: shape == Shape.INTERSECTION || shape == Shape.ENCASED
? AssetLookup.partialBaseModel(ctx, prov, "intersection")
: AssetLookup.partialBaseModel(ctx, prov, "windowed");
return shape == Shape.INTERSECTION ? AssetLookup.partialBaseModel(ctx, prov, "diagonal", "intersection")
: AssetLookup.partialBaseModel(ctx, prov, "diagonal");
: shape == Shape.ENCASED ? AssetLookup.partialBaseModel(ctx, prov, "diagonal", "encased")
: AssetLookup.partialBaseModel(ctx, prov, "diagonal");
}
}

View file

@ -24,12 +24,12 @@ public class ChuteShapes {
public static VoxelShape createShape(BlockState state) {
if (AllBlocks.SMART_CHUTE.has(state))
return AllShapes.SMART_CHUTE;
return Shapes.block();
Direction direction = state.getValue(ChuteBlock.FACING);
Shape shape = state.getValue(ChuteBlock.SHAPE);
boolean intersection = shape == Shape.INTERSECTION;
boolean intersection = shape == Shape.INTERSECTION || shape == Shape.ENCASED;
if (direction == Direction.DOWN)
return intersection ? Shapes.block() : AllShapes.CHUTE;

View file

@ -15,7 +15,7 @@ public class SmartChuteFilterSlotPositioning extends ValueBoxTransform.Sided {
protected Vec3 getLocalOffset(BlockState state) {
Direction side = getSide();
float horizontalAngle = AngleHelper.horizontalAngle(side);
Vec3 southLocation = VecHelper.voxelSpace(8, 12, 15.5f);
Vec3 southLocation = VecHelper.voxelSpace(8, 11, 15.5f);
return VecHelper.rotateCentered(southLocation, horizontalAngle, Axis.Y);
}

View file

@ -21,8 +21,8 @@
},
{
"name": "Basin Interior",
"from": [2, 16, 2],
"to": [14, 2, 14],
"from": [1.95, 16, 1.95],
"to": [14.05, 2, 14.05],
"faces": {
"north": {"uv": [9, 0, 15, 7], "rotation": 180, "texture": "#12"},
"east": {"uv": [9, 0, 15, 7], "rotation": 180, "texture": "#12"},

View file

@ -31,8 +31,8 @@
}
},
{
"from": [3, 0, 13],
"to": [13, 2, 3],
"from": [2.95, 0, 13.05],
"to": [13.05, 2, 2.95],
"faces": {
"north": {"uv": [9.5, 7, 14.5, 8], "texture": "#2"},
"east": {"uv": [9.5, 7, 14.5, 8], "texture": "#2"},
@ -42,8 +42,8 @@
}
},
{
"from": [3, 14, 13],
"to": [13, 16, 3],
"from": [2.95, 14, 13.05],
"to": [13.05, 16, 2.95],
"faces": {
"north": {"uv": [9.5, 0, 14.5, 1], "texture": "#2"},
"east": {"uv": [9.5, 0, 14.5, 1], "texture": "#2"},

View file

@ -22,7 +22,7 @@
},
{
"from": [4, -16, -1],
"to": [12, -5.4, 0],
"to": [12, -5.35, 0],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -16, 0]},
"faces": {
"east": {"uv": [6.5, 9.5, 7, 15], "texture": "#3"},
@ -32,7 +32,7 @@
},
{
"from": [2.1, -16, -13],
"to": [13.9, -5.4, -1],
"to": [13.9, -5.35, -1],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -16, 0]},
"faces": {
"north": {"uv": [9, 1.5, 15, 7], "texture": "#3"},

View file

@ -0,0 +1,70 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"3": "create:block/chute",
"4": "create:block/chute_large",
"particle": "create:block/industrial_iron_block"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#particle"},
"east": {"uv": [0, 0, 16, 16], "texture": "#particle"},
"south": {"uv": [0, 0, 16, 16], "texture": "#particle"},
"west": {"uv": [0, 0, 16, 16], "texture": "#particle"},
"up": {"uv": [0, 0, 16, 16], "texture": "#particle"},
"down": {"uv": [0, 0, 8, 8], "texture": "#4"}
}
},
{
"from": [4, -16, -1],
"to": [12, -5.15, 0],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -16, 0]},
"faces": {
"east": {"uv": [6.5, 9.5, 7, 15], "texture": "#4"},
"south": {"uv": [2, 9.5, 6, 15], "texture": "#4"},
"west": {"uv": [1, 9.5, 1.5, 15], "texture": "#4"}
}
},
{
"from": [1.1, -11.8, 2],
"to": [14.9, 0, 16],
"rotation": {"angle": 45, "axis": "x", "origin": [8, 0, 16]},
"faces": {
"north": {"uv": [8.5, 9.5, 15.5, 15], "texture": "#4"},
"east": {"uv": [8.5, 9.5, 15.5, 15], "texture": "#4"},
"south": {"uv": [8.5, 9.5, 15.5, 15], "texture": "#4"},
"west": {"uv": [8.5, 9.5, 15.5, 15], "texture": "#4"},
"down": {"uv": [0.5, 8.5, 7.5, 15.5], "rotation": 180, "texture": "#3"}
}
},
{
"from": [2.1, -16, -13],
"to": [13.9, -5.15, -1],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -16, 0]},
"faces": {
"north": {"uv": [9, 1.5, 15, 7], "texture": "#4"},
"east": {"uv": [9, 1.5, 15, 7], "texture": "#4"},
"south": {"uv": [9, 1.5, 15, 7], "texture": "#4"},
"west": {"uv": [9, 1.5, 15, 7], "texture": "#4"}
}
}
],
"groups": [
{
"name": "group",
"origin": [8, 8, 8],
"color": 0,
"children": [0]
},
{
"name": "group",
"origin": [8, -16, 0],
"color": 0,
"children": [1, 2, 3]
}
]
}

View file

@ -21,8 +21,8 @@
}
},
{
"from": [3, 14, 13],
"to": [13, 16, 3],
"from": [2.95, 14, 13.05],
"to": [13.05, 16, 2.95],
"faces": {
"north": {"uv": [9.5, 0, 14.5, 1], "texture": "#3"},
"east": {"uv": [9.5, 0, 14.5, 1], "texture": "#3"},
@ -33,7 +33,7 @@
},
{
"from": [4, -16, -1],
"to": [12, -5.2, 0],
"to": [12, -5.15, 0],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -16, 0]},
"faces": {
"east": {"uv": [6.5, 9.5, 7, 15], "texture": "#4"},
@ -55,7 +55,7 @@
},
{
"from": [2.1, -16, -13],
"to": [13.9, -5.2, -1],
"to": [13.9, -5.15, -1],
"rotation": {"angle": 45, "axis": "x", "origin": [8, -16, 0]},
"faces": {
"north": {"uv": [9, 1.5, 15, 7], "texture": "#4"},

View file

@ -21,8 +21,8 @@
}
},
{
"from": [3, 14, 13],
"to": [13, 16, 3],
"from": [2.95, 14, 13.05],
"to": [13.05, 16, 2.95],
"faces": {
"north": {"uv": [9.5, 0, 14.5, 1], "texture": "#5"},
"east": {"uv": [9.5, 0, 14.5, 1], "texture": "#5"},
@ -32,8 +32,8 @@
}
},
{
"from": [3, 0, 13],
"to": [13, 2, 3],
"from": [2.95, 0, 13.05],
"to": [13.05, 2, 2.95],
"faces": {
"north": {"uv": [9.5, 7, 14.5, 8], "texture": "#5"},
"east": {"uv": [9.5, 7, 14.5, 8], "texture": "#5"},

View file

@ -19,8 +19,8 @@
}
},
{
"from": [13, 0, 3],
"to": [3, 16, 13],
"from": [13.05, 0, 2.95],
"to": [2.95, 16, 13.05],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [1.5, 0, 6.5, 8], "texture": "#3"},

View file

@ -2,9 +2,9 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"side": "create:block/encased_chain_drive",
"2": "create:block/encased_chain_drive_end",
"particle": "#side"
"particle": "create:block/encased_chain_drive",
"side": "create:block/encased_chain_drive"
},
"elements": [
{
@ -22,8 +22,8 @@
},
{
"name": "Core",
"from": [1, 2, 0],
"to": [15, 14, 14],
"from": [0.95, 2, 0],
"to": [15.05, 14, 14],
"faces": {
"east": {"uv": [2, 2, 16, 14], "texture": "#2"},
"west": {"uv": [2, 2, 16, 14], "rotation": 180, "texture": "#2"}

View file

@ -2,15 +2,15 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"side": "create:block/encased_chain_drive",
"2": "create:block/encased_chain_drive_end",
"particle": "#side"
"particle": "create:block/encased_chain_drive",
"side": "create:block/encased_chain_drive"
},
"elements": [
{
"name": "Core",
"from": [2, 1, 2],
"to": [14, 15, 16],
"from": [2, 0.95, 2],
"to": [14, 15.05, 16],
"faces": {
"up": {"uv": [2, 2, 16, 14], "rotation": 90, "texture": "#2"},
"down": {"uv": [2, 2, 16, 14], "rotation": 270, "texture": "#2"}

View file

@ -2,9 +2,9 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"side": "create:block/encased_chain_drive",
"1": "create:block/gearbox",
"particle": "#side",
"particle": "create:block/encased_chain_drive",
"side": "create:block/encased_chain_drive",
"1_0": "create:block/axis",
"1_1": "create:block/axis_top"
},
@ -24,8 +24,8 @@
},
{
"name": "Core",
"from": [2, 2, 1],
"to": [14, 14, 15],
"from": [2, 2, 0.95],
"to": [14, 14, 15.05],
"faces": {
"north": {"uv": [2, 2, 14, 14], "texture": "#1"},
"south": {"uv": [2, 2, 14, 14], "texture": "#1"}
@ -80,10 +80,16 @@
}
}
],
"groups": [0, 1, 2, 3, 4,
"groups": [
0,
1,
2,
3,
4,
{
"name": "shaft",
"origin": [8, 8, 8],
"color": 0,
"children": [5]
}
]

View file

@ -2,9 +2,9 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"side": "create:block/encased_chain_drive",
"1": "create:block/encased_chain_drive_middle",
"particle": "#side"
"particle": "create:block/encased_chain_drive",
"side": "create:block/encased_chain_drive"
},
"elements": [
{
@ -22,8 +22,8 @@
},
{
"name": "Core",
"from": [1, 2, 0],
"to": [15, 14, 16],
"from": [0.95, 2, 0],
"to": [15.05, 14, 16],
"faces": {
"east": {"uv": [0, 2, 16, 14], "texture": "#1"},
"west": {"uv": [0, 2, 16, 14], "rotation": 180, "texture": "#1"}

View file

@ -2,9 +2,9 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"side": "create:block/encased_chain_drive",
"1": "create:block/encased_chain_drive_middle",
"particle": "#side"
"particle": "create:block/encased_chain_drive",
"side": "create:block/encased_chain_drive"
},
"elements": [
{
@ -22,8 +22,8 @@
},
{
"name": "Core",
"from": [2, 1, 0],
"to": [14, 15, 16],
"from": [2, 0.95, 0],
"to": [14, 15.05, 16],
"faces": {
"up": {"uv": [0, 2, 16, 14], "rotation": 270, "texture": "#1"},
"down": {"uv": [0, 2, 16, 14], "rotation": 90, "texture": "#1"}

View file

@ -2,9 +2,9 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"side": "create:block/encased_chain_drive",
"1": "create:block/gearbox",
"particle": "#side"
"particle": "create:block/encased_chain_drive",
"side": "create:block/encased_chain_drive"
},
"elements": [
{
@ -22,8 +22,8 @@
},
{
"name": "Core",
"from": [2, 2, 1],
"to": [14, 14, 15],
"from": [2, 2, 0.95],
"to": [14, 14, 15.05],
"faces": {
"north": {"uv": [2, 2, 14, 14], "texture": "#1"},
"south": {"uv": [2, 2, 14, 14], "texture": "#1"}

View file

@ -21,8 +21,8 @@
},
{
"name": "Core",
"from": [1, 1, 2],
"to": [15, 15, 14],
"from": [1, 0.95, 2],
"to": [15, 15.05, 14],
"faces": {
"up": {"uv": [1, 2, 15, 14], "rotation": 180, "texture": "#1"},
"down": {"uv": [1, 2, 15, 14], "texture": "#1"}

View file

@ -22,8 +22,8 @@
},
{
"name": "Core",
"from": [1, 1, 2],
"to": [15, 15, 14],
"from": [1, 0.95, 2],
"to": [15, 15.05, 14],
"faces": {
"up": {"uv": [1, 2, 15, 14], "rotation": 180, "texture": "#1"},
"down": {"uv": [1, 2, 15, 14], "texture": "#1"}

View file

@ -24,8 +24,8 @@
},
{
"name": "Core",
"from": [1, 2, 1],
"to": [15, 14, 15],
"from": [1, 2, 0.95],
"to": [15, 14, 15.05],
"faces": {
"north": {"uv": [1, 2, 15, 14], "texture": "#1"},
"south": {"uv": [1, 2, 15, 14], "texture": "#1"}
@ -80,10 +80,16 @@
}
}
],
"groups": [0, 1, 2, 3, 4,
"groups": [
0,
1,
2,
3,
4,
{
"name": "shaft",
"origin": [8, 8, 8],
"color": 0,
"children": [5]
}
]

View file

@ -6,7 +6,8 @@
"7": "create:block/chute_smart",
"8": "create:block/funnel/funnel_open",
"9": "create:block/chute_smart_top",
"13": "create:block/chute"
"13": "create:block/chute",
"particle": "create:block/chute_smart"
},
"elements": [
{
@ -22,8 +23,8 @@
}
},
{
"from": [3, 14, 13],
"to": [13, 16, 3],
"from": [2.95, 14, 13.05],
"to": [13.05, 16, 2.95],
"faces": {
"north": {"uv": [3, 1, 13, 3], "texture": "#9"},
"east": {"uv": [3, 1, 13, 3], "texture": "#9"},
@ -33,8 +34,8 @@
}
},
{
"from": [3, 0, 13],
"to": [13, 2, 3],
"from": [2.95, 0, 13.05],
"to": [13.05, 2, 2.95],
"faces": {
"north": {"uv": [9.5, 7, 14.5, 8], "texture": "#13"},
"east": {"uv": [9.5, 7, 14.5, 8], "texture": "#13"},

View file

@ -2,6 +2,8 @@
"credit": "Made with Blockbench",
"parent": "create:block/smart_chute/block",
"textures": {
"redstone": "create:block/funnel/brass_funnel_powered"
"8": "create:block/funnel/funnel_closed",
"7": "create:block/chute_smart_powered",
"particle": "create:block/chute_smart_powered"
}
}