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:
parent
5f1a67e4ce
commit
6e74cb8f58
57 changed files with 507 additions and 355 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/brass"
|
||||
"tag": "forge:ingots/brass"
|
||||
},
|
||||
"result": "create:brass_bars",
|
||||
"count": 4
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/brass"
|
||||
"tag": "forge:ingots/brass"
|
||||
},
|
||||
"result": "create:brass_ladder",
|
||||
"count": 2
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/brass"
|
||||
"tag": "forge:ingots/brass"
|
||||
},
|
||||
"result": "create:brass_scaffolding",
|
||||
"count": 2
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/copper"
|
||||
"tag": "forge:ingots/copper"
|
||||
},
|
||||
"result": "create:copper_bars",
|
||||
"count": 4
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/copper"
|
||||
"tag": "forge:ingots/copper"
|
||||
},
|
||||
"result": "create:copper_ladder",
|
||||
"count": 2
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/copper"
|
||||
"tag": "forge:ingots/copper"
|
||||
},
|
||||
"result": "create:copper_scaffolding",
|
||||
"count": 2
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/copper"
|
||||
"tag": "forge:ingots/copper"
|
||||
},
|
||||
"result": "create:copper_shingles",
|
||||
"count": 2
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"tag": "forge:plates/copper"
|
||||
"tag": "forge:ingots/copper"
|
||||
},
|
||||
"result": "create:copper_tiles",
|
||||
"count": 2
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"item": "create:zinc_ingot"
|
||||
"tag": "forge:ingots/zinc"
|
||||
},
|
||||
"result": "create:copycat_panel",
|
||||
"count": 4
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"type": "minecraft:stonecutting",
|
||||
"ingredient": {
|
||||
"item": "create:zinc_ingot"
|
||||
"tag": "forge:ingots/zinc"
|
||||
},
|
||||
"result": "create:copycat_step",
|
||||
"count": 4
|
|
@ -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"
|
||||
]
|
||||
|
|
|
@ -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"
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
]
|
||||
}
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"},
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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"}
|
||||
|
|
|
@ -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]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -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"},
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue