Fluids not going swimmingly

- Fixed disconnecting fluid tank blocks not updating their window placement correctly
- Fixed Fluid tanks not updating fluid capabilities correctly
- Fixed Fluid pipes not reacting to modified fluid tanks in specific arrangements
- Fixed Fluid pipes not reacting to boiler shape updates
- Fixed Shafts turning into powered shafts when not directly targeted by any engine
- Fixed lighting and uv incosistency on windowed fluid pipes
- Fixed z-fighting on fluid pipe models
- Fixed placement of rims and nozzles on different pipe types
- Adjusted some of the copper related models to work better with modular rim attachments
- Hose pulley now scans adjacent fluid columns for sources
- Andesite alloy is now tagged #forge:ingots
- Re-adjusted a bunch of recipes for survival mode
- Fixed diagonal slope tracks allowing a very glitchy bezier connection
- Adjusted power output of passive steam engines
This commit is contained in:
simibubi 2022-05-23 00:25:51 +02:00
parent 047129eefe
commit d73fa81fe4
66 changed files with 811 additions and 727 deletions

View file

@ -215,7 +215,7 @@ ac00d40e1ef50a37041c0481afa1a23a14dea78e assets/create/blockstates/framed_glass.
9fa39a44bba30c5ae8fa245b122a837c705462b4 assets/create/blockstates/gantry_shaft.json
eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json
f34814b17cde3231a1dfb271f3dabf8d6de4fbf6 assets/create/blockstates/gearshift.json
93f8bdc22d9a5e04268964e35e4285c8cbf2b89d assets/create/blockstates/glass_fluid_pipe.json
dc3a593d2e32386c24b203165808cc6dee121a57 assets/create/blockstates/glass_fluid_pipe.json
f5928e309add6e414cf69e675cef9287750a427c assets/create/blockstates/granite_pillar.json
e506b85ed71dc4567295be3989f3302e57777ad9 assets/create/blockstates/gray_nixie_tube.json
5c40c4a27e1dec747a467dd251700c72a6ceb07d assets/create/blockstates/gray_sail.json
@ -2372,6 +2372,7 @@ f79cc141e2cfc8dde9f27b1e3b2e00aced8ee632 data/create/advancements/recipes/create
3a9aef30af8d9694548da236fe3129c16dba4883 data/create/advancements/recipes/create.base/crafting/kinetics/encased_fan.json
0669da1ba8a761589d14c9b172abd65f8a995bad data/create/advancements/recipes/create.base/crafting/kinetics/filter.json
8d4b4ebfe4b7b70dcb34f1b79eda3aee4f5b7abb data/create/advancements/recipes/create.base/crafting/kinetics/fluid_pipe.json
47137fffc868c37338e64549eff93714379ce603 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_pipe_vertical.json
450a84018a6df61921e2c7eac507928e42d82b93 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_tank.json
5b68a2e467e01d2255c448691ec5b4be20ac35c2 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_valve.json
36f5f608cba7cb563a4c8bffc964cd4baa5c3997 data/create/advancements/recipes/create.base/crafting/kinetics/flywheel.json
@ -3982,7 +3983,7 @@ ab3b69d035dae7fe696f5dd983d7018649f466a2 data/create/recipes/crafting/kinetics/b
9eab21724f64455376c12b14f42a09a3af547201 data/create/recipes/crafting/kinetics/brown_valve_handle_from_other_valve_handle.json
ac71fb7ad49c64bbe37230deeb1b06f7ea76036c data/create/recipes/crafting/kinetics/cart_assembler.json
7f48f8db6c9fbc7e39bf6e3580a86364b53df057 data/create/recipes/crafting/kinetics/chute.json
bc2313d0a4d94b858b4cef1b1dcbf4985a85c6cc data/create/recipes/crafting/kinetics/clockwork_bearing.json
507e4d788144224d977c5f136800b6c9e277f837 data/create/recipes/crafting/kinetics/clockwork_bearing.json
031788926b5d8b77ec061773a11c3cfd2b361cd1 data/create/recipes/crafting/kinetics/clutch.json
a79bb44c6b136ea3d3f28926adf84e37e6aa6aa6 data/create/recipes/crafting/kinetics/cogwheel.json
11fe2ccc11f470e5735c3e848a944f889697ff73 data/create/recipes/crafting/kinetics/controller_rail.json
@ -3998,15 +3999,16 @@ a79bb44c6b136ea3d3f28926adf84e37e6aa6aa6 data/create/recipes/crafting/kinetics/c
2fe66b3d37ff5b0f7f30d5baa4efd713dd8b502a data/create/recipes/crafting/kinetics/depot.json
37012670f9913fbaf83a44a5655693390dcf4a2b data/create/recipes/crafting/kinetics/display_board.json
93940e00c442077ce101dca50dbc28e0f1178560 data/create/recipes/crafting/kinetics/empty_blaze_burner.json
47c6a254c15b8c38fa54c88d0d6c8fe1c99a0ca2 data/create/recipes/crafting/kinetics/encased_chain_drive.json
f06e7bda5f4ac5b33eb45cc80a1c802d79836bd8 data/create/recipes/crafting/kinetics/encased_fan.json
882d1f0f2a05a067cc6c5d73440464310514f95b data/create/recipes/crafting/kinetics/encased_chain_drive.json
665cf36bbca980b538eee76c87e1d80dffca0669 data/create/recipes/crafting/kinetics/encased_fan.json
0dd0cc11eaa6789fc612af3231ed247893852178 data/create/recipes/crafting/kinetics/filter.json
9df7da02bcae5ae7c3b441ff0299f75394133145 data/create/recipes/crafting/kinetics/fluid_pipe.json
16e1192dbd5b54e4ebfdc3310170b6a1d51b8f6f data/create/recipes/crafting/kinetics/fluid_pipe_vertical.json
284e8554d7285989a1684a5e14c72063d152cc9e data/create/recipes/crafting/kinetics/fluid_tank.json
5f229a7024101b27d95e6c13991a5be81f400dad data/create/recipes/crafting/kinetics/fluid_valve.json
bae222e1eab464b25431909abe9a7da2ef9bd7a6 data/create/recipes/crafting/kinetics/flywheel.json
84153bd478c0e63a04c77579d6595043f604b7ab data/create/recipes/crafting/kinetics/furnace_minecart_from_contraption_cart.json
5d7ce9c5ec92df215ebbada5cf4f977ab2598a7e data/create/recipes/crafting/kinetics/gantry_carriage.json
eda6469171edb77bf82d05f0b196f003a4d4ad34 data/create/recipes/crafting/kinetics/gantry_carriage.json
21095a156547d4a7d215964be793f1e960b81c09 data/create/recipes/crafting/kinetics/gantry_shaft.json
5eb05cdf88bccdaddfe7ebfbd8b70d1196d422a6 data/create/recipes/crafting/kinetics/gearbox.json
b5da8c58f6b8aba525ae8a12ad906db37b78a566 data/create/recipes/crafting/kinetics/gearboxfrom_conversion.json
@ -4039,14 +4041,14 @@ fd0fced8aa6ae01ffb1dc0f55ec5d8522d864a02 data/create/recipes/crafting/kinetics/m
ba2fb8e07f03b376d3629262b2eaeda988e76af2 data/create/recipes/crafting/kinetics/magenta_seat_from_other_seat.json
631039797c71547fb4fe33ab5cb688e222f123ae data/create/recipes/crafting/kinetics/magenta_valve_handle_from_other_valve_handle.json
659cd6acdd15511c4b0a396740118b99b76a619d data/create/recipes/crafting/kinetics/mechanical_arm.json
28abfb50182783b95742361e852ab0288c05996b data/create/recipes/crafting/kinetics/mechanical_bearing.json
9dc5cec519159712eb7b49859a560a011b47ce9e data/create/recipes/crafting/kinetics/mechanical_bearing.json
a8174961cfd32d41823a065a0587ec193d25c383 data/create/recipes/crafting/kinetics/mechanical_crafter.json
4372830100d39c4a89ff397a62b01940e1a28cb3 data/create/recipes/crafting/kinetics/mechanical_drill.json
0972ab663a9f51ffc63463ee7329efe516321fbb data/create/recipes/crafting/kinetics/mechanical_harvester.json
8eb87da54e5439ba982e6df28cbfffef36a42f0c data/create/recipes/crafting/kinetics/mechanical_mixer.json
cdf5cc972b8d5c660e87ab48c15d7862ad3ba200 data/create/recipes/crafting/kinetics/mechanical_piston.json
21e29a75aae3e21012c32ef13a53e204396ea013 data/create/recipes/crafting/kinetics/mechanical_mixer.json
e8d842e3bd9949ea12682d9cddf29e7d54f926ec data/create/recipes/crafting/kinetics/mechanical_piston.json
8a2f9068d6fab81f46699f897e619461ca89e38f data/create/recipes/crafting/kinetics/mechanical_plough.json
5118c2f0144a280a8b778e2314f3f814f69d327e data/create/recipes/crafting/kinetics/mechanical_press.json
be0b5c980c310807253d54006a714534a4b27065 data/create/recipes/crafting/kinetics/mechanical_press.json
4307cc2c988ac19602f2f86afa2146c7e7fef026 data/create/recipes/crafting/kinetics/mechanical_pump.json
ce28bcb47a379976d4a1bdfcfd1cdd0bae0bcdae data/create/recipes/crafting/kinetics/mechanical_saw.json
353146e9501096b4cd9632ad5500b0a2406c6f5d data/create/recipes/crafting/kinetics/metal_bracket.json
@ -4054,7 +4056,7 @@ ce28bcb47a379976d4a1bdfcfd1cdd0bae0bcdae data/create/recipes/crafting/kinetics/m
43d0ba7b15a4280eb6c8932e877c14aad24cb022 data/create/recipes/crafting/kinetics/millstone.json
13fa2887d3c988973c9222ce5e2e3dd0d9bd8374 data/create/recipes/crafting/kinetics/minecart_from_contraption_cart.json
be4c7fdb0ba1e9ee6d3dcf200dc2718ad83ec8fb data/create/recipes/crafting/kinetics/mysterious_cuckoo_clock.json
94398a41b0eb3f49fb70b558b348510358fd4e21 data/create/recipes/crafting/kinetics/nixie_tube.json
34a00c20ad6cbf7e458459ef51594c883eb703c1 data/create/recipes/crafting/kinetics/nixie_tube.json
6b1b626394d7269a6861a836992ccdb344b6e7dd data/create/recipes/crafting/kinetics/nozzle.json
4088c9f8d9d74495860c2d0102277f5af1c22893 data/create/recipes/crafting/kinetics/orange_seat.json
7d87c973228c6a6705ed106ea7c195866f9f4f63 data/create/recipes/crafting/kinetics/orange_seat_from_other_seat.json
@ -4078,7 +4080,7 @@ c0c248fa1b8d8d8cb63d3c299e8b35c72b0aab03 data/create/recipes/crafting/kinetics/r
9f6fedefe1c1fda86fbb17763ec34c237d8e32c3 data/create/recipes/crafting/kinetics/sail_framefrom_conversion.json
5355790e4e3ca6f99b40d953afe989566b72f97d data/create/recipes/crafting/kinetics/schedule.json
66922e18791c87fadb7629cdf32d3dd2f50ccd13 data/create/recipes/crafting/kinetics/secondary_linear_chassisfrom_conversion.json
6635a22053556d6d4b3f0ee3abbaea2d699df168 data/create/recipes/crafting/kinetics/sequenced_gearshift.json
e5d97ca14c50fb2a4ae4df43751f94d0bf2b7bbd data/create/recipes/crafting/kinetics/sequenced_gearshift.json
2e36438665bfb97265fd4e6ea85505970eae67fd data/create/recipes/crafting/kinetics/shaft.json
683c9e128a976282eaa6cdbbee3914e4c66b1676 data/create/recipes/crafting/kinetics/smart_chute.json
319e75dc4be645efd4809dafc1331581a8022e93 data/create/recipes/crafting/kinetics/smart_fluid_pipe.json
@ -4103,7 +4105,7 @@ f508d510576c93712e7f5265345a32e8818bbf0d data/create/recipes/crafting/kinetics/w
61894b1302aef9413ca263eb89c3d9f4cfb92239 data/create/recipes/crafting/kinetics/white_seat.json
ceb3d574336ce5ff151db080fe517ba43ff77a49 data/create/recipes/crafting/kinetics/white_seat_from_other_seat.json
54a182603347c2d8898f9990f1536128611af749 data/create/recipes/crafting/kinetics/white_valve_handle_from_other_valve_handle.json
b6b6398bc40c6a734e6a93ee270f09eb6e72022e data/create/recipes/crafting/kinetics/windmill_bearing.json
d1c461b3541dd62032ed69232a3a539fe1230e53 data/create/recipes/crafting/kinetics/windmill_bearing.json
d11eee4005372b1d0fad283b28c8016d823b5e37 data/create/recipes/crafting/kinetics/wooden_bracket.json
3ec8bb5660656f1c676035d8ba5460462c1d1865 data/create/recipes/crafting/kinetics/wrench.json
8b7ca850a23126fd7d65084cbc6506145efee7af data/create/recipes/crafting/kinetics/yellow_seat.json
@ -4111,7 +4113,7 @@ c574b993d49874bbed5d064205c436271dfa27b8 data/create/recipes/crafting/kinetics/y
19333b83d10e307d715b5667b8623915880e1861 data/create/recipes/crafting/kinetics/yellow_valve_handle_from_other_valve_handle.json
cdef45f9fe02b031648b7b4dd4786b838f7ad105 data/create/recipes/crafting/logistics/andesite_funnel.json
660e824ab6042c145f02ffcfe95a34c38f113e19 data/create/recipes/crafting/logistics/andesite_tunnel.json
30230c732fe24ed9fa87c70cd32c8f61f6a5a89b data/create/recipes/crafting/logistics/brass_funnel.json
262879a029ed80e2068a4de26a6117e8847069e3 data/create/recipes/crafting/logistics/brass_funnel.json
2ae06df0357c494b53db0ddf9655c60ef2022d0b data/create/recipes/crafting/logistics/brass_tunnel.json
ce2228d3cbec4b770ba95a3940c36dfe156ebc1b data/create/recipes/crafting/logistics/content_observer.json
22d18bf94275f8e4153da4f03c657b7eaa766716 data/create/recipes/crafting/logistics/content_observerfrom_conversion.json
@ -4688,10 +4690,10 @@ a6c387d19c357d7c89aa44a10b9deb9e93b6c614 data/create/recipes/haunting/warped_fun
4e8d49934f9899f788d45d4347bfc085b2836699 data/create/recipes/horizontal_framed_glass_pane.json
1f14e213ce80509fe51d76016d0c9707d3ad12b8 data/create/recipes/item_application/andesite_casing_from_log.json
ec1cd543397750e5f74a78d1f79d49dafdd46460 data/create/recipes/item_application/andesite_casing_from_wood.json
b6b72466615bcce50e31238ee78b7f6dcee1bbfe data/create/recipes/item_application/brass_casing_from_log.json
62eb2897c263fdf2d2d24e5279f8b4c0f9acd101 data/create/recipes/item_application/brass_casing_from_wood.json
320cf6df9446236f42799aafbfad7a46cd425cb3 data/create/recipes/item_application/copper_casing_from_log.json
4cf9c45c5ffae0600d3c305818aa05e7ecf7b7b1 data/create/recipes/item_application/copper_casing_from_wood.json
27586f2309eacfc05a7a9eb1490357ea40576647 data/create/recipes/item_application/brass_casing_from_log.json
c67a9b39b0d7af304d130b5872ba806e1c127b75 data/create/recipes/item_application/brass_casing_from_wood.json
a97f29b1bdd1227f6c9e488a398415a5b4c1cac1 data/create/recipes/item_application/copper_casing_from_log.json
4b326ff824751ccfd60ec469a1352c4a7b780023 data/create/recipes/item_application/copper_casing_from_wood.json
5f44bb9745023db87264b98a416e7802d9b7e1b0 data/create/recipes/item_application/railway_casing.json
c3ccd16b7fe9878cc734d699b4c8b219ad556f46 data/create/recipes/jungle_window.json
76dab06d0bda78c4247f76d6a849e1aa083fceb1 data/create/recipes/jungle_window_pane.json
@ -5194,7 +5196,7 @@ ce7c3c6e1da9d6684c9537d1a558423925d89f33 data/create/recipes/smoking/bread.json
6e11d592dc9b19c4cd9bf2df2aa46b7ec4d9a331 data/create/recipes/splashing/brown_concrete_powder.json
2063d4133977bacf14a08be563bd40510e9bdcbe data/create/recipes/splashing/crushed_copper_ore.json
c01d2b2d12418a79124c941a803476c1047db4f9 data/create/recipes/splashing/crushed_gold_ore.json
f1b2f52d75006a92f1a64a68f7b39ce0ff4a7b00 data/create/recipes/splashing/crushed_iron_ore.json
e367e92deaf0f3601f6dd60676ac46444a6b955f data/create/recipes/splashing/crushed_iron_ore.json
6c49c0bf4a8c5c586ef005644684d5d7b1a87221 data/create/recipes/splashing/crushed_zinc_ore.json
42cee25fabf4f0f9fb4815a98134eaf38ae197d0 data/create/recipes/splashing/cyan_concrete_powder.json
678943fe2ae04dffa31c41bb40ec45cd9a0c1643 data/create/recipes/splashing/eidolon/crushed_lead_ore.json
@ -5283,7 +5285,7 @@ a8bdc387cfa6296ebcc4af14323e2ddb632234dc data/create/tags/fluids/bottomless/allo
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/items/blaze_burner_fuel/regular.json
97061ef67cac1fafd869493d06115b968bcb99bf data/create/tags/items/blaze_burner_fuel/special.json
d99d5c67bdffff60789a19bd51a5c5267c75e0a4 data/create/tags/items/casing.json
5212172aee2239136c94f9868ad39ec2e17cf1c6 data/create/tags/items/create_ingots.json
c98ffdc2780c2a7690c590f46f014aeee7b0b504 data/create/tags/items/create_ingots.json
4480f211f4a37bfee193eba945bc9f5a8d2c6e34 data/create/tags/items/crushed_ores.json
bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json

View file

@ -6,7 +6,7 @@
"y": 90
},
"alt=true,axis=x": {
"model": "create:block/fluid_pipe/window_alt",
"model": "create:block/fluid_pipe/window",
"x": 90,
"y": 90
},
@ -14,17 +14,15 @@
"model": "create:block/fluid_pipe/window"
},
"alt=true,axis=y": {
"model": "create:block/fluid_pipe/window_alt"
"model": "create:block/fluid_pipe/window"
},
"alt=false,axis=z": {
"model": "create:block/fluid_pipe/window",
"x": 90,
"y": 180
"x": 90
},
"alt=true,axis=z": {
"model": "create:block/fluid_pipe/window_alt",
"x": 90,
"y": 180
"model": "create:block/fluid_pipe/window",
"x": 90
}
}
}

View file

@ -0,0 +1,34 @@
{
"parent": "minecraft:recipes/root",
"rewards": {
"recipes": [
"create:crafting/kinetics/fluid_pipe_vertical"
]
},
"criteria": {
"has_item": {
"trigger": "minecraft:inventory_changed",
"conditions": {
"items": [
{
"items": [
"minecraft:copper_ingot"
]
}
]
}
},
"has_the_recipe": {
"trigger": "minecraft:recipe_unlocked",
"conditions": {
"recipe": "create:crafting/kinetics/fluid_pipe_vertical"
}
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
]
}

View file

@ -10,7 +10,7 @@
"item": "create:electron_tube"
},
"B": {
"item": "create:turntable"
"tag": "minecraft:wooden_slabs"
},
"C": {
"item": "create:brass_casing"

View file

@ -5,7 +5,13 @@
"item": "create:andesite_casing"
},
{
"item": "minecraft:chain"
"tag": "forge:nuggets/iron"
},
{
"tag": "forge:nuggets/iron"
},
{
"tag": "forge:nuggets/iron"
}
],
"result": {

View file

@ -1,6 +1,7 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"S",
"A",
"P"
],
@ -8,6 +9,9 @@
"A": {
"item": "create:andesite_casing"
},
"S": {
"item": "create:shaft"
},
"P": {
"item": "create:propeller"
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"S",
"C",
"S"
],
"key": {
"S": {
"tag": "forge:plates/copper"
},
"C": {
"item": "minecraft:copper_ingot"
}
},
"result": {
"item": "create:fluid_pipe",
"count": 4
}
}

View file

@ -3,17 +3,17 @@
"pattern": [
"B",
"C",
"S"
"I"
],
"key": {
"B": {
"tag": "minecraft:planks"
},
"S": {
"item": "create:cogwheel"
"tag": "minecraft:wooden_slabs"
},
"C": {
"item": "create:andesite_casing"
},
"I": {
"item": "create:cogwheel"
}
},
"result": {

View file

@ -2,14 +2,18 @@
"type": "minecraft:crafting_shaped",
"pattern": [
"B",
"C"
"C",
"I"
],
"key": {
"B": {
"item": "create:turntable"
"tag": "minecraft:wooden_slabs"
},
"C": {
"item": "create:andesite_casing"
},
"I": {
"item": "create:shaft"
}
},
"result": {

View file

@ -1,6 +1,7 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"S",
"C",
"I"
],
@ -8,6 +9,9 @@
"C": {
"item": "create:andesite_casing"
},
"S": {
"item": "create:cogwheel"
},
"I": {
"item": "create:whisk"
}

View file

@ -7,7 +7,7 @@
],
"key": {
"B": {
"tag": "minecraft:planks"
"tag": "minecraft:wooden_slabs"
},
"C": {
"item": "create:andesite_casing"

View file

@ -1,6 +1,7 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"S",
"C",
"I"
],
@ -8,6 +9,9 @@
"C": {
"item": "create:andesite_casing"
},
"S": {
"item": "create:shaft"
},
"I": {
"tag": "forge:storage_blocks/iron"
}

View file

@ -9,6 +9,7 @@
}
],
"result": {
"item": "create:nixie_tube"
"item": "create:nixie_tube",
"count": 4
}
}

View file

@ -1,21 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"B",
"C",
"I"
],
"key": {
"B": {
"item": "create:electron_tube"
},
"C": {
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "create:brass_casing"
},
"I": {
"item": "minecraft:clock"
{
"item": "create:cogwheel"
},
{
"item": "create:electron_tube"
}
},
],
"result": {
"item": "create:sequenced_gearshift"
}

View file

@ -2,14 +2,18 @@
"type": "minecraft:crafting_shaped",
"pattern": [
"B",
"C"
"C",
"I"
],
"key": {
"B": {
"item": "create:turntable"
"tag": "minecraft:wooden_slabs"
},
"C": {
"tag": "forge:stone"
},
"I": {
"item": "create:shaft"
}
},
"result": {

View file

@ -7,7 +7,7 @@
],
"key": {
"A": {
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
},
"K": {
"item": "minecraft:dried_kelp"

View file

@ -5,7 +5,7 @@
"tag": "forge:stripped_logs"
},
{
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
}
],
"results": [

View file

@ -5,7 +5,7 @@
"tag": "forge:stripped_wood"
},
{
"tag": "forge:plates/brass"
"tag": "forge:ingots/brass"
}
],
"results": [

View file

@ -5,7 +5,7 @@
"tag": "forge:stripped_logs"
},
{
"tag": "forge:plates/copper"
"item": "minecraft:copper_ingot"
}
],
"results": [

View file

@ -5,7 +5,7 @@
"tag": "forge:stripped_wood"
},
{
"tag": "forge:plates/copper"
"item": "minecraft:copper_ingot"
}
],
"results": [

View file

@ -12,7 +12,7 @@
},
{
"item": "minecraft:redstone",
"chance": 0.125
"chance": 0.75
}
]
}

View file

@ -1,6 +1,7 @@
{
"replace": false,
"values": [
"create:andesite_alloy",
"create:zinc_ingot",
"create:brass_ingot"
]

View file

@ -203,7 +203,6 @@ import com.simibubi.create.foundation.block.BlockStressDefaults;
import com.simibubi.create.foundation.block.CopperBlockSet;
import com.simibubi.create.foundation.block.DyedBlockList;
import com.simibubi.create.foundation.block.ItemUseOverrides;
import com.simibubi.create.foundation.block.connected.HorizontalCTBehaviour;
import com.simibubi.create.foundation.data.AssetLookup;
import com.simibubi.create.foundation.data.BlockStateGen;
import com.simibubi.create.foundation.data.BuilderTransformers;
@ -235,6 +234,7 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.PistonType;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor;
@ -725,7 +725,7 @@ public class AllBlocks {
.initialProperties(SharedProperties::copperMetal)
.transform(pickaxeOnly())
.blockstate(BlockStateGen.pipe())
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
.item()
.transform(customItemModel())
.register();
@ -739,7 +739,7 @@ public class AllBlocks {
.onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING)))
.onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING,
(s, f) -> !s.getValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(f)))))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
.loot((p, b) -> p.dropOther(b, FLUID_PIPE.get()))
.register();
@ -748,10 +748,20 @@ public class AllBlocks {
.initialProperties(SharedProperties::copperMetal)
.addLayer(() -> RenderType::cutoutMipped)
.transform(pickaxeOnly())
.blockstate((c, p) -> BlockStateGen.axisBlock(c, p, s -> p.models()
.getExistingFile(
p.modLoc("block/fluid_pipe/window" + (s.getValue(GlassFluidPipeBlock.ALT) ? "_alt" : "")))))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
.blockstate((c, p) -> {
p.getVariantBuilder(c.getEntry())
.forAllStatesExcept(state -> {
Axis axis = state.getValue(BlockStateProperties.AXIS);
return ConfiguredModel.builder()
.modelFile(p.models()
.getExistingFile(p.modLoc("block/fluid_pipe/window")))
.uvLock(false)
.rotationX(axis == Axis.Y ? 0 : 90)
.rotationY(axis == Axis.X ? 90 : 0)
.build();
}, BlockStateProperties.WATERLOGGED);
})
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::transparent))
.loot((p, b) -> p.dropOther(b, FLUID_PIPE.get()))
.register();
@ -759,7 +769,7 @@ public class AllBlocks {
.initialProperties(SharedProperties::copperMetal)
.transform(pickaxeOnly())
.blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
.transform(BlockStressDefaults.setImpact(4.0))
.item()
.transform(customItemModel())
@ -770,7 +780,7 @@ public class AllBlocks {
.initialProperties(SharedProperties::copperMetal)
.transform(pickaxeOnly())
.blockstate(new SmartFluidPipeGenerator()::generate)
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::transparent))
.item()
.transform(customItemModel())
.register();
@ -781,7 +791,7 @@ public class AllBlocks {
.blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p,
(state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal",
state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed")))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
.item()
.transform(customItemModel())
.register();
@ -837,6 +847,7 @@ public class AllBlocks {
public static final BlockEntry<HosePulleyBlock> HOSE_PULLEY = REGISTRATE.block("hose_pulley", HosePulleyBlock::new)
.initialProperties(SharedProperties::copperMetal)
.properties(BlockBehaviour.Properties::noOcclusion)
.transform(pickaxeOnly())
.blockstate(BlockStateGen.horizontalBlockProvider(true))
.transform(BlockStressDefaults.setImpact(4.0))

View file

@ -146,7 +146,7 @@ public class AllItems {
public static final ItemEntry<Item> RAW_ZINC =
taggedIngredient("raw_zinc", forgeItemTag("raw_materials/zinc"), forgeItemTag("raw_materials"));
public static final ItemEntry<Item> ANDESITE_ALLOY = ingredient("andesite_alloy"),
public static final ItemEntry<Item> ANDESITE_ALLOY = taggedIngredient("andesite_alloy", CREATE_INGOTS.tag),
ZINC_INGOT = taggedIngredient("zinc_ingot", forgeItemTag("ingots/zinc"), CREATE_INGOTS.tag),
BRASS_INGOT = taggedIngredient("brass_ingot", forgeItemTag("ingots/brass"), CREATE_INGOTS.tag);

View file

@ -82,7 +82,7 @@ public class AllShapes {
.add(0.1, 1, 10, 15.9, 5, 14)
.add(0.1, -1, 11, 15.9, 1, 15)
.forHorizontal(NORTH),
FLUID_VALVE = shape(3, -1, 3, 13, 17, 13).add(2, 2, 2, 14, 14, 14)
FLUID_VALVE = shape(3, 0, 3, 13, 16, 13).add(2, 2, 2, 14, 14, 14)
.forAxis(),
TOOLBOX = shape(1, 0, 4, 15, 9, 12).forHorizontal(NORTH),
SMART_FLUID_PIPE_FLOOR = shape(4, 4, 0, 12, 12, 16).add(3, 3, 3, 13, 13, 13)

View file

@ -1,29 +1,5 @@
package com.simibubi.create.api.connectivity;
import com.simibubi.create.content.contraptions.fluids.tank.CreativeFluidTankTileEntity;
import com.simibubi.create.foundation.tileEntity.IMultiTileContainer;
import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.CapabilityItemHandler;
import org.apache.commons.lang3.tuple.Pair;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@ -33,6 +9,26 @@ import java.util.Optional;
import java.util.PriorityQueue;
import java.util.Set;
import javax.annotation.Nullable;
import org.apache.commons.lang3.tuple.Pair;
import com.simibubi.create.content.contraptions.fluids.tank.CreativeFluidTankTileEntity;
import com.simibubi.create.foundation.tileEntity.IMultiTileContainer;
import com.simibubi.create.foundation.utility.Iterate;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.items.CapabilityItemHandler;
public class ConnectivityHandler {
public static <T extends BlockEntity & IMultiTileContainer> void formMulti(T be) {
@ -320,11 +316,13 @@ public class ConnectivityHandler {
for (int yOffset = 0; yOffset < height; yOffset++) {
for (int xOffset = 0; xOffset < width; xOffset++) {
for (int zOffset = 0; zOffset < width; zOffset++) {
BlockPos pos = switch (axis) {
case X -> origin.offset(yOffset, xOffset, zOffset);
case Y -> origin.offset(xOffset, yOffset, zOffset);
case Z -> origin.offset(xOffset, zOffset, yOffset);
};
T partAt = partAt(be.getType(), level, pos);
if (partAt == null)
continue;
@ -356,23 +354,21 @@ public class ConnectivityHandler {
frontier.add(partAt);
partAt.preventConnectivityUpdate();
}
if (cache != null) {
if (cache != null)
cache.put(pos, partAt);
}
}
}
}
if (be instanceof IMultiTileContainer.Inventory iinv && iinv.hasInventory()) {
if (be instanceof IMultiTileContainer.Inventory iinv && iinv.hasInventory())
be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
.invalidate();
}
if (be instanceof IMultiTileContainer.Fluid ifluid && ifluid.hasTank()) {
if (be instanceof IMultiTileContainer.Fluid ifluid && ifluid.hasTank())
be.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
.invalidate();
}
if (tryReconnect) {
if (tryReconnect)
formMulti(be.getType(), level, cache == null ? new SearchCache<>() : cache, frontier);
}
}
private static <T extends BlockEntity & IMultiTileContainer> PriorityQueue<Pair<Integer, T>> makeCreationQueue() {
@ -383,9 +379,8 @@ public class ConnectivityHandler {
public static <T extends BlockEntity & IMultiTileContainer> T partAt(BlockEntityType<?> type, BlockGetter level,
BlockPos pos) {
BlockEntity be = level.getBlockEntity(pos);
if (be != null && be.getType() == type)
if (be != null && be.getType() == type && !be.isRemoved())
return checked(be);
return null;
}

View file

@ -12,7 +12,6 @@ import com.simibubi.create.foundation.utility.BlockHelper;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;

View file

@ -39,12 +39,12 @@ public class PoweredShaftBlock extends AbstractShaftBlock {
public BlockEntityType<? extends KineticTileEntity> getTileEntityType() {
return AllTileEntities.POWERED_SHAFT.get();
}
@Override
public RenderShape getRenderShape(BlockState pState) {
return RenderShape.ENTITYBLOCK_ANIMATED;
}
@Override
public void tick(BlockState pState, ServerLevel pLevel, BlockPos pPos, Random pRandom) {
if (!stillValid(pState, pLevel, pPos))
@ -57,19 +57,23 @@ public class PoweredShaftBlock extends AbstractShaftBlock {
public ItemStack getCloneItemStack(BlockGetter pLevel, BlockPos pPos, BlockState pState) {
return AllBlocks.SHAFT.asStack();
}
@Override
public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) {
return stillValid(pState, pLevel, pPos);
}
public static boolean stillValid(BlockState pState, LevelReader pLevel, BlockPos pPos) {
for (Direction d : Iterate.directions) {
if (d.getAxis() == pState.getValue(AXIS))
continue;
BlockState engineState = pLevel.getBlockState(pPos.relative(d, 2));
BlockPos enginePos = pPos.relative(d, 2);
BlockState engineState = pLevel.getBlockState(enginePos);
if (!(engineState.getBlock()instanceof SteamEngineBlock engine))
continue;
if (!SteamEngineBlock.getShaftPos(engineState, enginePos)
.equals(pPos))
continue;
if (SteamEngineBlock.isShaftValid(engineState, pState))
return true;
}

View file

@ -12,6 +12,7 @@ import com.simibubi.create.content.contraptions.fluids.PipeConnection.Flow;
import com.simibubi.create.content.contraptions.fluids.pipes.AxisPipeBlock;
import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock;
import com.simibubi.create.content.contraptions.fluids.pipes.VanillaFluidTargets;
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity;
import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.utility.BlockHelper;
@ -30,7 +31,9 @@ import net.minecraft.world.level.block.LiquidBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
public class FluidPropagator {
@ -126,8 +129,10 @@ public class FluidPropagator {
BlockPos neighborPos, boolean isMoving) {
if (world.isClientSide)
return null;
// calling getblockstate() as otherBlock param seems to contain the block which was replaced
otherBlock = world.getBlockState(neighborPos).getBlock();
// calling getblockstate() as otherBlock param seems to contain the block which
// was replaced
otherBlock = world.getBlockState(neighborPos)
.getBlock();
if (otherBlock instanceof FluidPipeBlock)
return null;
if (otherBlock instanceof AxisPipeBlock)
@ -185,31 +190,13 @@ public class FluidPropagator {
return AllConfigs.SERVER.fluids.mechanicalPumpRange.get();
}
// static AABB smallCenter = new AABB(BlockPos.ZERO).shrink(.25);
//
// @Deprecated
// public static OutlineParams showBlockFace(BlockFace face) {
// MutableObject<OutlineParams> params = new MutableObject<>(new OutlineParams());
// DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
// Vector3d directionVec = new Vector3d(face.getFace()
// .getDirectionVec());
// Vector3d scaleVec = directionVec.scale(-.25f * face.getFace()
// .getAxisDirection()
// .getOffset());
// directionVec = directionVec.scale(.45f);
// params.setValue(CreateClient.outliner.showAABB(face,
// FluidPropagator.smallCenter.offset(directionVec.add(new Vector3d(face.getPos())))
// .grow(scaleVec.x, scaleVec.y, scaleVec.z)
// .grow(1 / 16f)));
// });
// return params.getValue()
// .lineWidth(1 / 16f);
// }
public static boolean hasFluidCapability(BlockGetter world, BlockPos pos, Direction side) {
BlockEntity tileEntity = world.getBlockEntity(pos);
return tileEntity != null && tileEntity.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side)
.isPresent();
if (tileEntity == null)
return false;
LazyOptional<IFluidHandler> capability =
tileEntity.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side);
return capability.isPresent();
}
@Nullable

View file

@ -241,13 +241,12 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour {
BlockPos offsetPos = pos.relative(direction);
BlockState facingState = world.getBlockState(offsetPos);
if (facingState.getBlock() instanceof PumpBlock && facingState.getValue(PumpBlock.FACING)
.getAxis() == direction.getAxis())
if (facingState.getBlock() instanceof PumpBlock && facingState.getValue(PumpBlock.FACING) != direction)
return AttachmentTypes.NONE;
if (AllBlocks.ENCASED_FLUID_PIPE.has(facingState)
&& facingState.getValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(direction.getOpposite())))
return AttachmentTypes.NONE;
return AttachmentTypes.RIM;
if (FluidPropagator.hasFluidCapability(world, offsetPos, direction.getOpposite())
&& !AllBlocks.HOSE_PULLEY.has(facingState))

View file

@ -27,9 +27,19 @@ import net.minecraftforge.client.model.data.ModelProperty;
public class PipeAttachmentModel extends BakedModelWrapperWithData {
private static final ModelProperty<PipeModelData> PIPE_PROPERTY = new ModelProperty<>();
private boolean hideAttachmentConnector;
public PipeAttachmentModel(BakedModel template) {
public static PipeAttachmentModel opaque(BakedModel template) {
return new PipeAttachmentModel(template, false);
}
public static PipeAttachmentModel transparent(BakedModel template) {
return new PipeAttachmentModel(template, true);
}
public PipeAttachmentModel(BakedModel template, boolean hideAttachmentConnector) {
super(template);
this.hideAttachmentConnector = hideAttachmentConnector;
}
@Override
@ -61,6 +71,11 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
private void addQuads(List<BakedQuad> quads, BlockState state, Direction side, Random rand, IModelData data,
PipeModelData pipeData) {
BakedModel bracket = pipeData.getBracket();
if (bracket != null)
quads.addAll(bracket.getQuads(state, side, rand, data));
if (hideAttachmentConnector && side == Direction.UP)
return;
for (Direction d : Iterate.directions)
if (pipeData.hasRim(d))
quads.addAll(AllBlockPartials.PIPE_ATTACHMENTS.get(pipeData.getRim(d))
@ -70,9 +85,6 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
if (pipeData.isEncased())
quads.addAll(AllBlockPartials.FLUID_PIPE_CASING.get()
.getQuads(state, side, rand, data));
BakedModel bracket = pipeData.getBracket();
if (bracket != null)
quads.addAll(bracket.getQuads(state, side, rand, data));
}
private static class PipeModelData {

View file

@ -12,10 +12,12 @@ import com.simibubi.create.foundation.advancement.AllTriggers;
import com.simibubi.create.foundation.fluid.FluidHelper;
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType;
import com.simibubi.create.foundation.utility.Iterate;
import it.unimi.dsi.fastutil.PriorityQueue;
import it.unimi.dsi.fastutil.objects.ObjectHeapPriorityQueue;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Blocks;
@ -88,7 +90,8 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour {
BlockState emptied = blockState;
Fluid fluid = Fluids.EMPTY;
if (blockState.hasProperty(BlockStateProperties.WATERLOGGED) && blockState.getValue(BlockStateProperties.WATERLOGGED)) {
if (blockState.hasProperty(BlockStateProperties.WATERLOGGED)
&& blockState.getValue(BlockStateProperties.WATERLOGGED)) {
emptied = blockState.setValue(BlockStateProperties.WATERLOGGED, Boolean.valueOf(false));
fluid = Fluids.WATER;
} else if (blockState.getBlock() instanceof LiquidBlock) {
@ -108,8 +111,7 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour {
continue;
}
} else if (blockState.getFluidState()
.getType() != Fluids.EMPTY
&& blockState.getCollisionShape(world, currentPos, CollisionContext.empty())
.getType() != Fluids.EMPTY && blockState.getCollisionShape(world, currentPos, CollisionContext.empty())
.isEmpty()) {
fluid = blockState.getFluidState()
.getType();
@ -135,7 +137,9 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour {
AllTriggers.triggerForNearbyPlayers(AllTriggers.HOSE_PULLEY, world, tileEntity.getBlockPos(), 8);
if (infinite) {
AllTriggers.triggerForNearbyPlayers(AllTriggers.INFINITE_FLUID.constructTriggerFor(FluidHelper.convertToStill(fluid)), world, tileEntity.getBlockPos(), 8);
AllTriggers.triggerForNearbyPlayers(
AllTriggers.INFINITE_FLUID.constructTriggerFor(FluidHelper.convertToStill(fluid)), world,
tileEntity.getBlockPos(), 8);
return true;
}
@ -180,6 +184,11 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour {
for (int timeout = 1000; timeout > 0 && !root.equals(tileEntity.getBlockPos()); timeout--) {
FluidBlockType canPullFluidsFrom = canPullFluidsFrom(world.getBlockState(currentPos), currentPos);
if (canPullFluidsFrom == FluidBlockType.FLOWING) {
for (Direction d : Iterate.directions) {
BlockPos side = currentPos.relative(d);
if (canPullFluidsFrom(world.getBlockState(side), side) == FluidBlockType.SOURCE)
return true;
}
currentPos = currentPos.above();
continue;
}
@ -202,7 +211,8 @@ public class FluidDrainingBehaviour extends FluidManipulationBehaviour {
}
protected FluidBlockType canPullFluidsFrom(BlockState blockState, BlockPos pos) {
if (blockState.hasProperty(BlockStateProperties.WATERLOGGED) && blockState.getValue(BlockStateProperties.WATERLOGGED))
if (blockState.hasProperty(BlockStateProperties.WATERLOGGED)
&& blockState.getValue(BlockStateProperties.WATERLOGGED))
return FluidBlockType.SOURCE;
if (blockState.getBlock() instanceof LiquidBlock)
return blockState.getValue(LiquidBlock.LEVEL) == 0 ? FluidBlockType.SOURCE : FluidBlockType.FLOWING;

View file

@ -87,13 +87,6 @@ public class HosePulleyBlock extends HorizontalKineticBlock implements ITE<HoseP
}
}
@Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
return AllShapes.PULLEY.get(state.getValue(HORIZONTAL_FACING)
.getClockWise()
.getAxis());
}
@Override
public Class<HosePulleyTileEntity> getTileEntityClass() {
return HosePulleyTileEntity.class;

View file

@ -185,20 +185,13 @@ public class FluidPipeBlock extends PipeBlock
public static boolean shouldDrawRim(BlockAndTintGetter world, BlockPos pos, BlockState state, Direction direction) {
BlockPos offsetPos = pos.relative(direction);
BlockState facingState = world.getBlockState(offsetPos);
if (facingState.getBlock() instanceof EncasedPipeBlock)
return true;
if (!isPipe(facingState))
return true;
if (!canConnectTo(world, offsetPos, facingState, direction))
return true;
return false;
// if (!isCornerOrEndPipe(world, pos, state))
// return false;
// if (FluidPropagator.getStraightPipeAxis(facingState) != null)
// return true;
// if (!shouldDrawCasing(world, pos, state) && shouldDrawCasing(world, offsetPos, facingState))
// return true;
// if (isCornerOrEndPipe(world, offsetPos, facingState))
// return direction.getAxisDirection() == AxisDirection.POSITIVE;
// return true;
}
public static boolean isOpenAt(BlockState state, Direction direction) {

View file

@ -59,16 +59,16 @@ public class FluidPipeTileEntity extends SmartTileEntity implements ITransformab
Direction direction) {
AttachmentTypes attachment = super.getRenderedRimAttachment(world, pos, state, direction);
if (attachment == AttachmentTypes.RIM && AllBlocks.ENCASED_FLUID_PIPE.has(state))
return AttachmentTypes.NONE;
BlockPos offsetPos = pos.relative(direction);
if (!FluidPipeBlock.isPipe(world.getBlockState(offsetPos))) {
BlockState otherState = world.getBlockState(offsetPos);
if (attachment == AttachmentTypes.RIM && !FluidPipeBlock.isPipe(otherState)
&& !AllBlocks.MECHANICAL_PUMP.has(otherState) && !AllBlocks.ENCASED_FLUID_PIPE.has(otherState)) {
FluidTransportBehaviour pipeBehaviour =
TileEntityBehaviour.get(world, offsetPos, FluidTransportBehaviour.TYPE);
if (pipeBehaviour != null
&& pipeBehaviour.canHaveFlowToward(world.getBlockState(offsetPos), direction.getOpposite()))
return AttachmentTypes.RIM;
if (pipeBehaviour != null)
if (pipeBehaviour.canHaveFlowToward(otherState, direction.getOpposite()))
return AttachmentTypes.NONE;
}
if (attachment == AttachmentTypes.RIM && !FluidPipeBlock.shouldDrawRim(world, pos, state, direction))

View file

@ -10,7 +10,6 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Direction.Axis;
import net.minecraft.core.Direction.AxisDirection;
import net.minecraft.world.level.BlockAndTintGetter;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
@ -47,12 +46,12 @@ public class StraightPipeTileEntity extends SmartTileEntity {
Axis axis = IAxisPipe.getAxisOf(state);
Axis otherAxis = IAxisPipe.getAxisOf(otherState);
if (attachment == AttachmentTypes.RIM && FluidPipeBlock.isPipe(otherState))
if (attachment == AttachmentTypes.RIM && state.getBlock() instanceof FluidValveBlock)
return AttachmentTypes.NONE;
if (attachment == AttachmentTypes.RIM && FluidPipeBlock.isPipe(otherState))
return AttachmentTypes.RIM;
if (axis == otherAxis && axis != null)
if (state.getBlock() == otherState.getBlock() || direction.getAxisDirection() == AxisDirection.POSITIVE)
return AttachmentTypes.NONE;
return AttachmentTypes.NONE;
if (otherState.getBlock() instanceof FluidValveBlock
&& FluidValveBlock.getPipeAxis(otherState) == direction.getAxis())

View file

@ -34,7 +34,7 @@ public class BoilerData {
static final int SAMPLE_RATE = 5;
private static final int waterSupplyPerLevel = 10;
private static final float passiveEngineEfficiency = 1 / 32f;
private static final float passiveEngineEfficiency = 1 / 8f;
// pooled water supply
int gatheredSupply;

View file

@ -307,8 +307,15 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
if (wasBoiler != boiler.isActive()) {
if (boiler.isActive())
setWindows(false);
refreshCapability();
for (int yOffset = 0; yOffset < height; yOffset++)
for (int xOffset = 0; xOffset < width; xOffset++)
for (int zOffset = 0; zOffset < width; zOffset++)
if (level.getBlockEntity(
worldPosition.offset(xOffset, yOffset, zOffset))instanceof FluidTankTileEntity fte)
fte.refreshCapability();
}
if (changed)
notifyUpdate();
}
@ -509,7 +516,9 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
}
@Override
public void preventConnectivityUpdate() { updateConnectivity = false; }
public void preventConnectivityUpdate() {
updateConnectivity = false;
}
@Override
public void notifyMultiUpdated() {
@ -517,9 +526,10 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
if (FluidTankBlock.isTank(state)) { // safety
state = state.setValue(FluidTankBlock.BOTTOM, getController().getY() == getBlockPos().getY());
state = state.setValue(FluidTankBlock.TOP, getController().getY() + height - 1 == getBlockPos().getY());
level.setBlock(getBlockPos(), state, 22);
level.setBlock(getBlockPos(), state, 6);
}
setWindows(window);
if (isController())
setWindows(window);
onFluidStackChanged(tankInventory.getFluid());
updateBoilerState();
setChanged();
@ -527,12 +537,15 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
@Override
public void setExtraData(@Nullable Object data) {
if (data instanceof Boolean) window = (boolean)data;
if (data instanceof Boolean)
window = (boolean) data;
}
@Override
@Nullable
public Object getExtraData() { return window; }
public Object getExtraData() {
return window;
}
@Override
public Object modifyExtraData(Object data) {
@ -544,34 +557,51 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
}
@Override
public Direction.Axis getMainConnectionAxis() { return Direction.Axis.Y; }
public Direction.Axis getMainConnectionAxis() {
return Direction.Axis.Y;
}
@Override
public int getMaxLength(Direction.Axis longAxis, int width) {
if (longAxis == Direction.Axis.Y) return getMaxHeight();
if (longAxis == Direction.Axis.Y)
return getMaxHeight();
return getMaxWidth();
}
@Override
public int getMaxWidth() { return MAX_SIZE; }
public int getMaxWidth() {
return MAX_SIZE;
}
@Override
public int getHeight() { return height; }
public int getHeight() {
return height;
}
@Override
public void setHeight(int height) { this.height = height; }
public void setHeight(int height) {
this.height = height;
}
@Override
public int getWidth() { return width; }
public int getWidth() {
return width;
}
@Override
public void setWidth(int width) { this.width = width; }
public void setWidth(int width) {
this.width = width;
}
@Override
public boolean hasTank() { return true; }
public boolean hasTank() {
return true;
}
@Override
public int getTankSize(int tank) { return getCapacityMultiplier(); }
public int getTankSize(int tank) {
return getCapacityMultiplier();
}
@Override
public void setTankSize(int tank, int blocks) {
@ -585,6 +615,7 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
@Override
public FluidStack getFluid(int tank) {
return tankInventory.getFluid().copy();
return tankInventory.getFluid()
.copy();
}
}

View file

@ -271,7 +271,7 @@ public class ItemVaultTileEntity extends SmartTileEntity implements IMultiTileCo
public void notifyMultiUpdated() {
BlockState state = this.getBlockState();
if (ItemVaultBlock.isVault(state)) { // safety
level.setBlock(getBlockPos(), state.setValue(ItemVaultBlock.LARGE, radius > 2), 22);
level.setBlock(getBlockPos(), state.setValue(ItemVaultBlock.LARGE, radius > 2), 6);
}
itemCapability.invalidate();
setChanged();

View file

@ -258,7 +258,7 @@ public class TrackPlacement {
info.end2Extent = (int) Math.round(dist2 - dist1);
double turnSize = Math.min(dist1, dist2);
if (intersect[0] < 0)
if (intersect[0] < 0 || intersect[1] < 0)
return info.withMessage("too_sharp")
.tooJumbly();
if (turnSize < 2)

View file

@ -14,8 +14,8 @@ import net.minecraft.world.level.ItemLike;
public class ItemApplicationRecipeGen extends ProcessingRecipeGen {
GeneratedRecipe ANDESITE = woodCasing("andesite", I::andesite, I::andesiteCasing);
GeneratedRecipe COPPER = woodCasingTag("copper", I::copperSheet, I::copperCasing);
GeneratedRecipe BRASS = woodCasingTag("brass", I::brassSheet, I::brassCasing);
GeneratedRecipe COPPER = woodCasing("copper", I::copper, I::copperCasing);
GeneratedRecipe BRASS = woodCasingTag("brass", I::brass, I::brassCasing);
GeneratedRecipe RAILWAY = create("railway_casing", b -> b.require(I.brassCasing())
.require(I.reinforcedSheet())
.output(I.railwayCasing()));

View file

@ -241,7 +241,9 @@ public class StandardRecipeGen extends CreateRecipeProvider {
MECHANICAL_PRESS = create(AllBlocks.MECHANICAL_PRESS).unlockedBy(I::andesiteCasing)
.viaShaped(b -> b.define('C', I.andesiteCasing())
.define('S', I.shaft())
.define('I', AllTags.forgeItemTag("storage_blocks/iron"))
.pattern("S")
.pattern("C")
.pattern("I")),
@ -254,7 +256,7 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.pattern("I")),
MECHANICAL_PISTON = create(AllBlocks.MECHANICAL_PISTON).unlockedBy(I::andesiteCasing)
.viaShaped(b -> b.define('B', ItemTags.PLANKS)
.viaShaped(b -> b.define('B', ItemTags.WOODEN_SLABS)
.define('C', I.andesiteCasing())
.define('I', AllBlocks.PISTON_EXTENSION_POLE.get())
.pattern("B")
@ -282,12 +284,12 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.pattern("P")),
GANTRY_PINION = create(AllBlocks.GANTRY_CARRIAGE).unlockedBy(I::andesiteCasing)
.viaShaped(b -> b.define('B', ItemTags.PLANKS)
.define('S', I.cog())
.viaShaped(b -> b.define('B', ItemTags.WOODEN_SLABS)
.define('C', I.andesiteCasing())
.define('I', I.cog())
.pattern("B")
.pattern("C")
.pattern("S")),
.pattern("I")),
GANTRY_SHAFT = create(AllBlocks.GANTRY_SHAFT).returns(8)
.unlockedBy(I::andesite)
@ -367,7 +369,9 @@ public class StandardRecipeGen extends CreateRecipeProvider {
ENCASED_FAN = create(AllBlocks.ENCASED_FAN).unlockedByTag(I::ironSheet)
.viaShaped(b -> b.define('A', I.andesiteCasing())
.define('S', I.shaft())
.define('P', AllItems.PROPELLER.get())
.pattern("S")
.pattern("A")
.pattern("P")),
@ -389,20 +393,24 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.pattern("R")),
WINDMILL_BEARING = create(AllBlocks.WINDMILL_BEARING).unlockedBy(I::andesite)
.viaShaped(b -> b.define('B', AllBlocks.TURNTABLE.get())
.viaShaped(b -> b.define('B', ItemTags.WOODEN_SLABS)
.define('C', I.stone())
.define('I', I.shaft())
.pattern("B")
.pattern("C")),
.pattern("C")
.pattern("I")),
MECHANICAL_BEARING = create(AllBlocks.MECHANICAL_BEARING).unlockedBy(I::andesiteCasing)
.viaShaped(b -> b.define('B', AllBlocks.TURNTABLE.get())
.viaShaped(b -> b.define('B', ItemTags.WOODEN_SLABS)
.define('C', I.andesiteCasing())
.define('I', I.shaft())
.pattern("B")
.pattern("C")),
.pattern("C")
.pattern("I")),
CLOCKWORK_BEARING = create(AllBlocks.CLOCKWORK_BEARING).unlockedBy(I::brassCasing)
.viaShaped(b -> b.define('S', I.electronTube())
.define('B', AllBlocks.TURNTABLE.get())
.define('B', I.woodSlab())
.define('C', I.brassCasing())
.pattern("B")
.pattern("C")
@ -457,6 +465,15 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.define('C', I.copper())
.pattern("SCS")),
FLUID_PIPE_2 = create(AllBlocks.FLUID_PIPE).withSuffix("_vertical")
.returns(4)
.unlockedBy(I::copper)
.viaShaped(b -> b.define('S', I.copperSheet())
.define('C', I.copper())
.pattern("S")
.pattern("C")
.pattern("S")),
MECHANICAL_PUMP = create(AllBlocks.MECHANICAL_PUMP).unlockedBy(I::copper)
.viaShapeless(b -> b.requires(I.cog())
.requires(AllBlocks.FLUID_PIPE.get())),
@ -600,7 +617,9 @@ public class StandardRecipeGen extends CreateRecipeProvider {
MECHANICAL_MIXER = create(AllBlocks.MECHANICAL_MIXER).unlockedBy(I::andesite)
.viaShaped(b -> b.define('C', I.andesiteCasing())
.define('S', I.cog())
.define('I', AllItems.WHISK.get())
.pattern("S")
.pattern("C")
.pattern("I")),
@ -678,7 +697,9 @@ public class StandardRecipeGen extends CreateRecipeProvider {
ENCASED_CHAIN_DRIVE = create(AllBlocks.ENCASED_CHAIN_DRIVE).unlockedBy(I::andesiteCasing)
.viaShapeless(b -> b.requires(I.andesiteCasing())
.requires(Items.CHAIN)),
.requires(I.ironNugget())
.requires(I.ironNugget())
.requires(I.ironNugget())),
FLYWHEEL = create(AllBlocks.FLYWHEEL).unlockedByTag(I::brass)
.viaShaped(b -> b.define('C', I.brass())
@ -701,7 +722,8 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.pattern("B")
.pattern("C")),
NIXIE_TUBE = create(AllBlocks.ORANGE_NIXIE_TUBE).unlockedBy(I::brassCasing)
NIXIE_TUBE = create(AllBlocks.ORANGE_NIXIE_TUBE).returns(4)
.unlockedBy(I::brassCasing)
.viaShapeless(b -> b.requires(I.electronTube())
.requires(I.electronTube())),
@ -738,12 +760,9 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.pattern(" C ")),
SEQUENCED_GEARSHIFT = create(AllBlocks.SEQUENCED_GEARSHIFT).unlockedBy(I::brassCasing)
.viaShaped(b -> b.define('B', I.electronTube())
.define('C', I.brassCasing())
.define('I', Items.CLOCK)
.pattern("B")
.pattern("C")
.pattern("I"))
.viaShapeless(b -> b.requires(I.brassCasing())
.requires(I.cog())
.requires(I.electronTube()))
;
@ -769,7 +788,7 @@ public class StandardRecipeGen extends CreateRecipeProvider {
BRASS_FUNNEL = create(AllBlocks.BRASS_FUNNEL).returns(2)
.unlockedByTag(I::brass)
.viaShaped(b -> b.define('A', I.brassSheet())
.viaShaped(b -> b.define('A', I.brass())
.define('K', Items.DRIED_KELP)
.define('E', I.electronTube())
.pattern("E")

View file

@ -50,7 +50,7 @@ public class WashingRecipeGen extends ProcessingRecipeGen {
CRUSHED_COPPER = crushedOre(AllItems.CRUSHED_COPPER, AllItems.COPPER_NUGGET::get, () -> Items.CLAY_BALL, .5f),
CRUSHED_ZINC = crushedOre(AllItems.CRUSHED_ZINC, AllItems.ZINC_NUGGET::get, () -> Items.GUNPOWDER, .25f),
CRUSHED_GOLD = crushedOre(AllItems.CRUSHED_GOLD, () -> Items.GOLD_NUGGET, () -> Items.QUARTZ, .5f),
CRUSHED_IRON = crushedOre(AllItems.CRUSHED_IRON, () -> Items.IRON_NUGGET, () -> Items.REDSTONE, .125f),
CRUSHED_IRON = crushedOre(AllItems.CRUSHED_IRON, () -> Items.IRON_NUGGET, () -> Items.REDSTONE, .75f),
CRUSHED_OSMIUM = moddedCrushedOre(AllItems.CRUSHED_OSMIUM, OSMIUM),
CRUSHED_PLATINUM = moddedCrushedOre(AllItems.CRUSHED_PLATINUM, PLATINUM),

View file

@ -35,10 +35,10 @@
"from": [4, 2, 4],
"to": [12, 4, 12],
"faces": {
"north": {"uv": [0, 9, 4, 10], "texture": "#0"},
"east": {"uv": [0, 9, 4, 10], "texture": "#0"},
"south": {"uv": [4, 9, 0, 10], "texture": "#0"},
"west": {"uv": [4, 9, 0, 10], "texture": "#0"}
"north": {"uv": [0, 9, 4, 10], "texture": "#0", "cullface": "up"},
"east": {"uv": [0, 9, 4, 10], "texture": "#0", "cullface": "up"},
"south": {"uv": [4, 9, 0, 10], "texture": "#0", "cullface": "up"},
"west": {"uv": [4, 9, 0, 10], "texture": "#0", "cullface": "up"}
}
}
]

View file

@ -10,10 +10,10 @@
"from": [12, 4, 4],
"to": [14, 12, 12],
"faces": {
"north": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"south": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"up": {"uv": [4, 8, 0, 9], "rotation": 90, "texture": "#0"},
"down": {"uv": [4, 9, 0, 10], "rotation": 270, "texture": "#0"}
"north": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"south": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [4, 8, 0, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"down": {"uv": [4, 9, 0, 10], "rotation": 270, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -11,10 +11,10 @@
"to": [12, 12, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"},
"down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"}
"east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0", "cullface": "up"},
"down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -11,10 +11,10 @@
"to": [12, 12, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"},
"down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"}
"east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0", "cullface": "up"},
"down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -10,10 +10,10 @@
"from": [4, 12, 4],
"to": [12, 14, 12],
"faces": {
"north": {"uv": [0, 8, 4, 9], "texture": "#0"},
"east": {"uv": [0, 8, 4, 9], "texture": "#0"},
"south": {"uv": [4, 8, 0, 9], "texture": "#0"},
"west": {"uv": [4, 8, 0, 9], "texture": "#0"}
"north": {"uv": [0, 8, 4, 9], "texture": "#0", "cullface": "up"},
"east": {"uv": [0, 8, 4, 9], "texture": "#0", "cullface": "up"},
"south": {"uv": [4, 8, 0, 9], "texture": "#0", "cullface": "up"},
"west": {"uv": [4, 8, 0, 9], "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -10,10 +10,10 @@
"from": [2, 4, 4],
"to": [4, 12, 12],
"faces": {
"north": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"south": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"up": {"uv": [4, 9, 0, 10], "rotation": 90, "texture": "#0"},
"down": {"uv": [4, 8, 0, 9], "rotation": 270, "texture": "#0"}
"north": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"south": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [4, 9, 0, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"down": {"uv": [4, 8, 0, 9], "rotation": 270, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -10,10 +10,10 @@
"from": [4, 2, 4],
"to": [12, 4, 12],
"faces": {
"north": {"uv": [0, 9, 4, 10], "texture": "#0"},
"east": {"uv": [0, 9, 4, 10], "texture": "#0"},
"south": {"uv": [4, 9, 0, 10], "texture": "#0"},
"west": {"uv": [4, 9, 0, 10], "texture": "#0"}
"north": {"uv": [0, 9, 4, 10], "texture": "#0", "cullface": "up"},
"east": {"uv": [0, 9, 4, 10], "texture": "#0", "cullface": "up"},
"south": {"uv": [4, 9, 0, 10], "texture": "#0", "cullface": "up"},
"west": {"uv": [4, 9, 0, 10], "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -10,10 +10,10 @@
"from": [12, 4, 4],
"to": [14, 12, 12],
"faces": {
"north": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"south": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"up": {"uv": [4, 8, 0, 9], "rotation": 90, "texture": "#0"},
"down": {"uv": [4, 9, 0, 10], "rotation": 270, "texture": "#0"}
"north": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"south": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [4, 8, 0, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"down": {"uv": [4, 9, 0, 10], "rotation": 270, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -11,10 +11,10 @@
"to": [12, 12, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"},
"down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"}
"east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0", "cullface": "up"},
"down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -11,10 +11,10 @@
"to": [12, 12, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"},
"down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"}
"east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0", "cullface": "up"},
"down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -22,10 +22,10 @@
"from": [4, 12, 4],
"to": [12, 14, 12],
"faces": {
"north": {"uv": [0, 8, 4, 9], "texture": "#0"},
"east": {"uv": [0, 8, 4, 9], "texture": "#0"},
"south": {"uv": [4, 8, 0, 9], "texture": "#0"},
"west": {"uv": [4, 8, 0, 9], "texture": "#0"}
"north": {"uv": [0, 8, 4, 9], "texture": "#0", "cullface": "up"},
"east": {"uv": [0, 8, 4, 9], "texture": "#0", "cullface": "up"},
"south": {"uv": [4, 8, 0, 9], "texture": "#0", "cullface": "up"},
"west": {"uv": [4, 8, 0, 9], "texture": "#0", "cullface": "up"}
}
}
]

View file

@ -10,10 +10,10 @@
"from": [2, 4, 4],
"to": [4, 12, 12],
"faces": {
"north": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"},
"south": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"},
"up": {"uv": [4, 9, 0, 10], "rotation": 90, "texture": "#0"},
"down": {"uv": [4, 8, 0, 9], "rotation": 270, "texture": "#0"}
"north": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0", "cullface": "up"},
"south": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"up": {"uv": [4, 9, 0, 10], "rotation": 90, "texture": "#0", "cullface": "up"},
"down": {"uv": [4, 8, 0, 9], "rotation": 270, "texture": "#0", "cullface": "up"}
}
},
{

View file

@ -3,17 +3,16 @@
"parent": "block/block",
"textures": {
"0": "create:block/glass_fluid_pipe",
"particle": "#0"
"particle": "create:block/copper_plating"
},
"elements": [
{
"name": "Outer",
"from": [4, 0, 4],
"to": [12, 16, 12],
"shade": false,
"faces": {
"north": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"},
"east": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"},
"north": {"uv": [0, 16, 16, 8], "rotation": 90, "texture": "#0"},
"east": {"uv": [0, 16, 16, 8], "rotation": 90, "texture": "#0"},
"south": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"},
"west": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}
}
@ -22,7 +21,6 @@
"name": "Inner",
"from": [4, 0, 11.9],
"to": [12, 16, 11.9],
"shade": false,
"faces": {
"north": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}
}
@ -31,7 +29,6 @@
"name": "Inner",
"from": [4.1, 0, 4],
"to": [4.1, 16, 12],
"shade": false,
"faces": {
"east": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}
}
@ -40,7 +37,6 @@
"name": "Inner",
"from": [4, 0, 4.1],
"to": [12, 16, 4.1],
"shade": false,
"faces": {
"south": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}
}
@ -49,7 +45,6 @@
"name": "Inner",
"from": [11.9, 0, 4],
"to": [11.9, 16, 12],
"shade": false,
"faces": {
"west": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}
}

View file

@ -22,26 +22,26 @@
},
{
"from": [3, 14, 3],
"to": [13, 17, 13],
"to": [13, 16, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"east": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"south": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"west": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"north": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"east": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"south": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"west": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"up": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#4"},
"down": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"}
}
},
{
"from": [3, -1, 3],
"from": [3, 0, 3],
"to": [13, 2, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"east": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"south": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"west": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"north": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"east": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"south": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"west": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"up": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"},
"down": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#4"}
}

View file

@ -22,26 +22,26 @@
},
{
"from": [3, 14, 3],
"to": [13, 17, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"to": [13, 16, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"east": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"south": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"west": {"uv": [4, 8, 9, 9.5], "texture": "#4"},
"north": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"east": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"south": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"west": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
"up": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#4"},
"down": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"}
}
},
{
"from": [3, -1, 3],
"from": [3, 0, 3],
"to": [13, 2, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"east": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"south": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"west": {"uv": [4, 9.5, 9, 8], "texture": "#4"},
"north": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"east": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"south": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"west": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
"up": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"},
"down": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#4"}
}

View file

@ -21,29 +21,29 @@
}
},
{
"from": [-1, 3, 3],
"from": [0, 3, 3],
"to": [2, 13, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#3"},
"north": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#3"},
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
"south": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"},
"south": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
"west": {"uv": [11, 11, 16, 16], "texture": "#3"},
"up": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"}
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"}
}
},
{
"from": [14, 3, 3],
"to": [17, 13, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"to": [16, 13, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#3"},
"north": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#3"},
"east": {"uv": [16, 11, 11, 16], "texture": "#3"},
"south": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"},
"south": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
"up": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"}
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"}
}
}
]

View file

@ -21,29 +21,29 @@
}
},
{
"from": [-1, 3, 3],
"from": [0, 3, 3],
"to": [2, 13, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#3"},
"north": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#3"},
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
"south": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"},
"south": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
"west": {"uv": [11, 11, 16, 16], "texture": "#3"},
"up": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"}
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"}
}
},
{
"from": [14, 3, 3],
"to": [17, 13, 13],
"to": [16, 13, 13],
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#3"},
"north": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#3"},
"east": {"uv": [16, 11, 11, 16], "texture": "#3"},
"south": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"},
"south": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
"up": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"}
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"}
}
}
]

View file

@ -102,25 +102,26 @@
}
},
{
"from": [-1, 3, 3],
"from": [0, 3, 3],
"to": [2, 13, 13],
"faces": {
"north": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#3"},
"south": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"},
"north": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#3"},
"south": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
"west": {"uv": [11, 11, 16, 16], "texture": "#3"},
"up": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 8, 9, 9.5], "rotation": 270, "texture": "#3"}
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"}
}
},
{
"from": [14, 3, 3],
"to": [17, 13, 13],
"to": [16, 13, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]},
"faces": {
"north": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#3"},
"north": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#3"},
"east": {"uv": [16, 11, 11, 16], "texture": "#3"},
"south": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"},
"up": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 9.5, 9, 8], "rotation": 270, "texture": "#3"}
"south": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
"down": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"}
}
}
],

View file

@ -2,9 +2,9 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"3": "create:block/encased_pipe",
"4": "create:block/copper_gearbox",
"8": "create:block/copper_plating",
"9": "create:block/fluid_pipe",
"particle": "create:block/copper_plating"
},
"elements": [
@ -21,208 +21,169 @@
},
{
"name": "side",
"from": [1, 2, 2],
"to": [2, 14, 14],
"from": [0, 0, 0],
"to": [2, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"east": {"uv": [14, 2, 2, 14], "texture": "#8"},
"west": {"uv": [14, 2, 2, 14], "texture": "#8"},
"down": {"uv": [2, 12, 14, 11], "rotation": 90, "texture": "#4"}
"east": {"uv": [16, 0, 0, 16], "texture": "#3"},
"west": {"uv": [16, 0, 0, 16], "texture": "#3"}
}
},
{
"name": "side",
"from": [-1.1, 2.9, 2.9],
"to": [1, 13.1, 13.1],
"rotation": {"angle": 0, "axis": "y", "origin": [7, -7, 7]},
"from": [-1, 3.05, 3.05],
"to": [1, 12.95, 12.95],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [11, 5, 6, 6], "rotation": 90, "texture": "#9"},
"south": {"uv": [11, 5, 6, 6], "rotation": 270, "texture": "#9"},
"west": {"uv": [11, 0, 6, 5], "texture": "#9"},
"up": {"uv": [11, 5, 6, 6], "rotation": 270, "texture": "#9"},
"down": {"uv": [11, 5, 6, 6], "rotation": 270, "texture": "#9"}
"north": {"uv": [4, 3, 3, 13], "texture": "#3"},
"south": {"uv": [13, 3, 12, 13], "texture": "#3"},
"west": {"uv": [13, 3, 3, 13], "texture": "#3"},
"up": {"uv": [3, 3, 13, 4], "rotation": 90, "texture": "#3"},
"down": {"uv": [3, 12, 13, 13], "rotation": 90, "texture": "#3"}
}
},
{
"name": "side_frame",
"from": [14, 2, 14],
"to": [16, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [0, 2, 2, 14], "texture": "#8"},
"east": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#8"},
"south": {"uv": [14, 2, 16, 14], "texture": "#8"},
"west": {"uv": [14, 2, 16, 14], "texture": "#8"},
"up": {"uv": [0, 14, 2, 16], "rotation": 270, "texture": "#8"},
"down": {"uv": [0, 0, 2, 2], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 2, 14],
"to": [2, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [2, 2, 0, 14], "texture": "#8"},
"east": {"uv": [16, 2, 14, 14], "texture": "#8"},
"south": {"uv": [16, 2, 14, 14], "texture": "#8"},
"west": {"uv": [16, 2, 14, 14], "rotation": 180, "texture": "#8"},
"up": {"uv": [0, 16, 2, 14], "rotation": 270, "texture": "#8"},
"down": {"uv": [0, 2, 2, 0], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [14, 2, 0],
"from": [13, 2, 0],
"to": [16, 14, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [16, 2, 14, 14], "texture": "#8"},
"east": {"uv": [16, 2, 14, 14], "rotation": 180, "texture": "#8"},
"south": {"uv": [2, 2, 0, 14], "texture": "#8"},
"west": {"uv": [2, 2, 0, 14], "rotation": 180, "texture": "#8"},
"north": {"uv": [3, 2, 0, 14], "rotation": 180, "texture": "#8"},
"east": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"south": {"uv": [14, 2, 15, 14], "texture": "#4"},
"west": {"uv": [1, 2, 3, 14], "rotation": 180, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [13, 2, 14],
"to": [16, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [1, 2, 2, 14], "texture": "#4"},
"east": {"uv": [2, 14, 0, 2], "rotation": 180, "texture": "#4"},
"south": {"uv": [16, 2, 13, 14], "rotation": 180, "texture": "#8"},
"west": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"}
}
},
{
"name": "side_frame",
"from": [13, 0, 0],
"to": [16, 2, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [0, 14, 3, 16], "texture": "#8"},
"east": {"uv": [0, 14, 16, 16], "texture": "#4"},
"south": {"uv": [13, 14, 16, 16], "texture": "#8"},
"west": {"uv": [5, 14, 11, 16], "texture": "#4"},
"up": {"uv": [0, 15, 16, 14], "rotation": 90, "texture": "#4"},
"down": {"uv": [16, 16, 13, 0], "rotation": 180, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [13, 14, 0],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]},
"faces": {
"north": {"uv": [3, 2, 0, 0], "rotation": 180, "texture": "#8"},
"east": {"uv": [16, 2, 0, 0], "rotation": 180, "texture": "#4"},
"south": {"uv": [16, 2, 13, 0], "rotation": 180, "texture": "#8"},
"west": {"uv": [4, 0, 11, 2], "texture": "#8"},
"up": {"uv": [16, 16, 13, 0], "rotation": 180, "texture": "#8"},
"down": {"uv": [0, 16, 16, 14], "rotation": 270, "texture": "#4"}
}
},
{
"name": "side_frame",
"from": [0, 0, 0],
"to": [3, 2, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [13, 14, 16, 16], "texture": "#8"},
"east": {"uv": [5, 14, 11, 16], "texture": "#4"},
"south": {"uv": [0, 14, 3, 16], "texture": "#8"},
"up": {"uv": [0, 15, 16, 14], "rotation": 90, "texture": "#4"},
"down": {"uv": [3, 16, 0, 0], "rotation": 180, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 2, 0],
"to": [3, 14, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [16, 2, 13, 14], "rotation": 180, "texture": "#8"},
"east": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"south": {"uv": [13, 2, 15, 14], "texture": "#4"},
"up": {"uv": [2, 14, 0, 16], "rotation": 270, "texture": "#8"},
"down": {"uv": [2, 0, 0, 2], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 2, 0],
"to": [2, 14, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [14, 2, 16, 14], "texture": "#8"},
"east": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#8"},
"south": {"uv": [0, 2, 2, 14], "texture": "#8"},
"west": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#8"},
"up": {"uv": [2, 16, 0, 14], "rotation": 270, "texture": "#8"},
"down": {"uv": [2, 2, 0, 0], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [14, 0, 0],
"to": [16, 2, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [0, 14, 2, 16], "texture": "#8"},
"east": {"uv": [0, 14, 16, 16], "texture": "#8"},
"south": {"uv": [14, 14, 16, 16], "texture": "#8"},
"west": {"uv": [0, 14, 16, 16], "texture": "#8"},
"up": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [14, 14, 0],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]},
"faces": {
"north": {"uv": [0, 16, 2, 14], "texture": "#8"},
"east": {"uv": [0, 16, 16, 14], "texture": "#8"},
"south": {"uv": [14, 16, 16, 14], "texture": "#8"},
"west": {"uv": [0, 16, 16, 14], "texture": "#8"},
"up": {"uv": [0, 16, 16, 14], "rotation": 90, "texture": "#8"},
"down": {"uv": [0, 16, 16, 14], "rotation": 270, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 0, 0],
"to": [2, 2, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [2, 14, 0, 16], "texture": "#8"},
"east": {"uv": [16, 14, 0, 16], "texture": "#8"},
"south": {"uv": [16, 14, 14, 16], "texture": "#8"},
"west": {"uv": [16, 14, 0, 16], "texture": "#8"},
"up": {"uv": [0, 16, 16, 14], "rotation": 90, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 14, 0],
"to": [2, 16, 16],
"to": [3, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]},
"faces": {
"north": {"uv": [2, 16, 0, 14], "texture": "#8"},
"east": {"uv": [16, 16, 0, 14], "texture": "#8"},
"south": {"uv": [16, 16, 14, 14], "texture": "#8"},
"west": {"uv": [16, 16, 0, 14], "texture": "#8"},
"up": {"uv": [0, 16, 16, 14], "rotation": 270, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#8"}
"north": {"uv": [16, 2, 13, 0], "rotation": 180, "texture": "#8"},
"east": {"uv": [4, 0, 11, 2], "texture": "#8"},
"south": {"uv": [3, 2, 0, 0], "rotation": 180, "texture": "#8"},
"up": {"uv": [3, 16, 0, 0], "rotation": 180, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 270, "texture": "#4"}
}
},
{
"name": "side_frame",
"from": [0, 2, 14],
"to": [3, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"east": {"uv": [2, 14, 0, 2], "rotation": 180, "texture": "#3"},
"south": {"uv": [0, 2, 3, 14], "rotation": 180, "texture": "#8"},
"up": {"uv": [0, 14, 2, 16], "rotation": 270, "texture": "#8"},
"down": {"uv": [0, 0, 2, 2], "rotation": 90, "texture": "#8"}
}
},
{
"name": "front",
"from": [2, 1, 13],
"to": [14, 3, 15],
"from": [3, 0, 13],
"to": [13, 2, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#8"},
"north": {"uv": [3, 14, 13, 16], "texture": "#8"},
"east": {"uv": [0, 0, 0, 0], "texture": "#8"},
"south": {"uv": [2, 14, 14, 16], "texture": "#8"},
"south": {"uv": [3, 14, 13, 16], "texture": "#8"},
"west": {"uv": [0, 0, 0, 0], "texture": "#8"},
"up": {"uv": [2, 0, 14, 2], "rotation": 180, "texture": "#8"},
"down": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#8"}
"up": {"uv": [3, 13, 13, 15], "texture": "#8"},
"down": {"uv": [3, 1, 13, 3], "texture": "#8"}
}
},
{
"name": "front",
"from": [2, 1, 1],
"to": [14, 3, 3],
"from": [3, 0, 1],
"to": [13, 2, 3],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [14, 14, 2, 16], "texture": "#8"},
"north": {"uv": [13, 14, 3, 16], "texture": "#8"},
"east": {"uv": [0, 0, 0, 0], "texture": "#8"},
"south": {"uv": [14, 14, 2, 16], "rotation": 180, "texture": "#8"},
"south": {"uv": [13, 14, 3, 16], "texture": "#8"},
"west": {"uv": [0, 0, 0, 0], "texture": "#8"},
"up": {"uv": [2, 2, 14, 0], "texture": "#8"},
"down": {"uv": [2, 16, 14, 14], "rotation": 180, "texture": "#8"}
}
},
{
"name": "front",
"from": [2, 13, 1],
"to": [14, 15, 3],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]},
"faces": {
"north": {"uv": [14, 16, 2, 14], "texture": "#8"},
"east": {"uv": [0, 0, 0, 0], "texture": "#8"},
"south": {"uv": [14, 2, 2, 0], "texture": "#8"},
"west": {"uv": [0, 0, 0, 0], "texture": "#8"},
"up": {"uv": [14, 15, 2, 13], "texture": "#8"},
"down": {"uv": [14, 2, 2, 0], "rotation": 180, "texture": "#8"}
}
},
{
"name": "front",
"from": [2, 13, 13],
"to": [14, 15, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]},
"faces": {
"north": {"uv": [2, 2, 14, 0], "texture": "#8"},
"east": {"uv": [0, 0, 0, 0], "texture": "#8"},
"south": {"uv": [2, 16, 14, 14], "texture": "#8"},
"west": {"uv": [0, 0, 0, 0], "texture": "#8"},
"up": {"uv": [14, 13, 2, 15], "texture": "#8"},
"down": {"uv": [14, 0, 2, 2], "texture": "#8"}
"up": {"uv": [3, 15, 13, 13], "texture": "#8"},
"down": {"uv": [3, 15, 13, 13], "rotation": 180, "texture": "#8"}
}
},
{
"name": "top",
"from": [2, 14, 2],
"to": [14, 16, 14],
"from": [3, 14, 1],
"to": [13, 16, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]},
"faces": {
"north": {"uv": [2, 1, 14, 3], "rotation": 180, "texture": "#8"},
"east": {"uv": [0, 0, 0, 0], "texture": "#8"},
"south": {"uv": [2, 13, 14, 15], "texture": "#8"},
"west": {"uv": [0, 0, 0, 0], "texture": "#8"},
"up": {"uv": [2, 2, 14, 14], "texture": "#8"},
"down": {"uv": [2, 2, 14, 14], "rotation": 180, "texture": "#8"}
"north": {"uv": [13, 0, 3, 2], "texture": "#8"},
"south": {"uv": [13, 0, 3, 2], "texture": "#8"},
"up": {"uv": [3, 1, 13, 15], "texture": "#8"},
"down": {"uv": [3, 1, 13, 15], "texture": "#8"}
}
}
],
@ -257,15 +218,32 @@
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
"groups": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
{
"name": "shaft",
"origin": [8, 8, 8],
"color": 0,
"children": []
},
{
"name": "rope_half_magnet",
"origin": [8, 8, 8],
"color": 0,
"children": []
}, 15]
},
13
]
}

View file

@ -2,56 +2,14 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"0": "create:block/axis",
"1": "create:block/axis_top",
"3": "create:block/encased_pipe",
"4": "create:block/copper_gearbox",
"5": "create:block/hose_pulley_rope",
"6": "create:block/hose_pulley_magnet",
"8": "create:block/copper_plating",
"9": "create:block/fluid_pipe",
"particle": "create:block/copper_plating"
},
"elements": [
{
"name": "coil",
"from": [4, 4, 2],
"to": [12, 12, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, -10]},
"faces": {
"east": {"uv": [2, 1, 14, 9], "texture": "#5"},
"west": {"uv": [2, 1, 14, 9], "rotation": 180, "texture": "#5"},
"up": {"uv": [2, 1, 14, 9], "rotation": 270, "texture": "#5"},
"down": {"uv": [2, 1, 14, 9], "rotation": 90, "texture": "#5"}
}
},
{
"name": "coil",
"from": [3.5, 3.5, 3],
"to": [12.5, 12.5, 7],
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, -10]},
"faces": {
"north": {"uv": [0, 0, 1, 1], "texture": "#5"},
"east": {"uv": [0, 3, 4, 12], "rotation": 180, "texture": "#5"},
"south": {"uv": [0, 0, 1, 1], "texture": "#5"},
"west": {"uv": [0, 3, 4, 12], "texture": "#5"},
"up": {"uv": [0, 3, 4, 12], "rotation": 90, "texture": "#5"},
"down": {"uv": [0, 3, 4, 12], "rotation": 270, "texture": "#5"}
}
},
{
"name": "coil",
"from": [3.5, 3.5, 9],
"to": [12.5, 12.5, 13],
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, -4]},
"faces": {
"north": {"uv": [0, 0, 1, 1], "texture": "#5"},
"east": {"uv": [0, 3, 4, 12], "rotation": 180, "texture": "#5"},
"south": {"uv": [0, 0, 1, 1], "texture": "#5"},
"west": {"uv": [0, 3, 4, 12], "texture": "#5"},
"up": {"uv": [0, 3, 4, 12], "rotation": 90, "texture": "#5"},
"down": {"uv": [0, 3, 4, 12], "rotation": 270, "texture": "#5"}
}
},
{
"name": "side",
"from": [2, 2, 14],
@ -65,274 +23,262 @@
},
{
"name": "side",
"from": [2, 2, 1],
"to": [14, 14, 2],
"from": [0, 0, 0],
"to": [16, 16, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [14, 2, 2, 14], "texture": "#8"},
"south": {"uv": [14, 2, 2, 14], "texture": "#8"},
"down": {"uv": [2, 12, 14, 11], "texture": "#4"}
"north": {"uv": [16, 0, 0, 16], "texture": "#3"},
"south": {"uv": [16, 0, 0, 16], "texture": "#3"}
}
},
{
"name": "side",
"from": [3, 3, -1],
"to": [13, 13, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [9, -7, 7]},
"from": [3.05, 3.05, -1],
"to": [12.95, 12.95, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [11, 0, 6, 5], "texture": "#9"},
"east": {"uv": [11, 5, 6, 6], "rotation": 90, "texture": "#9"},
"west": {"uv": [11, 5, 6, 6], "rotation": 270, "texture": "#9"},
"up": {"uv": [11, 5, 6, 6], "texture": "#9"},
"down": {"uv": [11, 5, 6, 6], "rotation": 180, "texture": "#9"}
"north": {"uv": [13, 3, 3, 13], "texture": "#3"},
"east": {"uv": [4, 3, 3, 13], "texture": "#3"},
"west": {"uv": [13, 3, 12, 13], "texture": "#3"},
"up": {"uv": [3, 3, 13, 4], "rotation": 180, "texture": "#3"},
"down": {"uv": [3, 12, 13, 13], "texture": "#3"}
}
},
{
"name": "side_frame",
"from": [0, 2, 14],
"to": [2, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [14, 2, 16, 14], "texture": "#8"},
"east": {"uv": [0, 2, 2, 14], "texture": "#8"},
"south": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#8"},
"west": {"uv": [14, 2, 16, 14], "texture": "#8"},
"up": {"uv": [0, 14, 2, 16], "texture": "#8"},
"down": {"uv": [0, 0, 2, 2], "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 2, 0],
"to": [2, 14, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [16, 2, 14, 14], "rotation": 180, "texture": "#8"},
"east": {"uv": [2, 2, 0, 14], "texture": "#8"},
"south": {"uv": [16, 2, 14, 14], "texture": "#8"},
"west": {"uv": [16, 2, 14, 14], "texture": "#8"},
"up": {"uv": [0, 16, 2, 14], "texture": "#8"},
"down": {"uv": [0, 2, 2, 0], "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [14, 2, 14],
"from": [14, 2, 13],
"to": [16, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [2, 2, 0, 14], "rotation": 180, "texture": "#8"},
"east": {"uv": [16, 2, 14, 14], "texture": "#8"},
"south": {"uv": [16, 2, 14, 14], "rotation": 180, "texture": "#8"},
"west": {"uv": [2, 2, 0, 14], "texture": "#8"},
"north": {"uv": [1, 2, 3, 14], "rotation": 180, "texture": "#8"},
"east": {"uv": [3, 2, 0, 14], "rotation": 180, "texture": "#8"},
"south": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"west": {"uv": [14, 2, 15, 14], "texture": "#4"}
}
},
{
"name": "side_frame",
"from": [0, 2, 13],
"to": [2, 14, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"east": {"uv": [1, 2, 2, 14], "texture": "#4"},
"south": {"uv": [2, 14, 0, 2], "rotation": 180, "texture": "#4"},
"west": {"uv": [16, 2, 13, 14], "rotation": 180, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 0, 13],
"to": [16, 2, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [5, 14, 11, 16], "texture": "#4"},
"east": {"uv": [0, 14, 3, 16], "texture": "#8"},
"south": {"uv": [0, 14, 16, 16], "texture": "#4"},
"west": {"uv": [13, 14, 16, 16], "texture": "#8"},
"up": {"uv": [0, 15, 16, 14], "rotation": 180, "texture": "#4"},
"down": {"uv": [16, 16, 13, 0], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 14, 13],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]},
"faces": {
"north": {"uv": [4, 0, 11, 2], "texture": "#8"},
"east": {"uv": [3, 2, 0, 0], "rotation": 180, "texture": "#8"},
"south": {"uv": [16, 2, 0, 0], "rotation": 180, "texture": "#4"},
"west": {"uv": [16, 2, 13, 0], "rotation": 180, "texture": "#8"},
"up": {"uv": [16, 16, 13, 0], "rotation": 270, "texture": "#8"},
"down": {"uv": [0, 16, 16, 14], "rotation": 180, "texture": "#4"}
}
},
{
"name": "side_frame",
"from": [0, 0, 0],
"to": [16, 2, 3],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"east": {"uv": [13, 14, 16, 16], "texture": "#8"},
"south": {"uv": [5, 14, 11, 16], "texture": "#4"},
"west": {"uv": [0, 14, 3, 16], "texture": "#8"},
"up": {"uv": [0, 15, 16, 14], "rotation": 180, "texture": "#4"},
"down": {"uv": [3, 16, 0, 0], "rotation": 90, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [14, 2, 0],
"to": [16, 14, 3],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"east": {"uv": [16, 2, 13, 14], "rotation": 180, "texture": "#8"},
"south": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"west": {"uv": [13, 2, 15, 14], "texture": "#4"},
"up": {"uv": [2, 14, 0, 16], "texture": "#8"},
"down": {"uv": [2, 0, 0, 2], "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [14, 2, 0],
"to": [16, 14, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [14, 2, 16, 14], "rotation": 180, "texture": "#8"},
"east": {"uv": [14, 2, 16, 14], "texture": "#8"},
"south": {"uv": [0, 2, 2, 14], "rotation": 180, "texture": "#8"},
"west": {"uv": [0, 2, 2, 14], "texture": "#8"},
"up": {"uv": [2, 16, 0, 14], "texture": "#8"},
"down": {"uv": [2, 2, 0, 0], "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 0, 14],
"to": [16, 2, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [0, 14, 16, 16], "texture": "#8"},
"east": {"uv": [0, 14, 2, 16], "texture": "#8"},
"south": {"uv": [0, 14, 16, 16], "texture": "#8"},
"west": {"uv": [14, 14, 16, 16], "texture": "#8"},
"up": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 14, 14],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]},
"faces": {
"north": {"uv": [0, 16, 16, 14], "texture": "#8"},
"east": {"uv": [0, 16, 2, 14], "texture": "#8"},
"south": {"uv": [0, 16, 16, 14], "texture": "#8"},
"west": {"uv": [14, 16, 16, 14], "texture": "#8"},
"up": {"uv": [0, 16, 16, 14], "rotation": 180, "texture": "#8"},
"down": {"uv": [0, 16, 16, 14], "rotation": 180, "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 0, 0],
"to": [16, 2, 2],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"north": {"uv": [16, 14, 0, 16], "texture": "#8"},
"east": {"uv": [2, 14, 0, 16], "texture": "#8"},
"south": {"uv": [16, 14, 0, 16], "texture": "#8"},
"west": {"uv": [16, 14, 14, 16], "texture": "#8"},
"up": {"uv": [0, 16, 16, 14], "rotation": 180, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "texture": "#8"}
}
},
{
"name": "side_frame",
"from": [0, 14, 0],
"to": [16, 16, 2],
"to": [16, 16, 3],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 15, 8]},
"faces": {
"north": {"uv": [16, 16, 0, 14], "texture": "#8"},
"east": {"uv": [2, 16, 0, 14], "texture": "#8"},
"south": {"uv": [16, 16, 0, 14], "texture": "#8"},
"west": {"uv": [16, 16, 14, 14], "texture": "#8"},
"up": {"uv": [0, 16, 16, 14], "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#8"}
"east": {"uv": [16, 2, 13, 0], "rotation": 180, "texture": "#8"},
"south": {"uv": [4, 0, 11, 2], "texture": "#8"},
"west": {"uv": [3, 2, 0, 0], "rotation": 180, "texture": "#8"},
"up": {"uv": [3, 16, 0, 0], "rotation": 270, "texture": "#8"},
"down": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#4"}
}
},
{
"name": "side_frame",
"from": [0, 2, 0],
"to": [2, 14, 3],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 8]},
"faces": {
"east": {"uv": [16, 14, 14, 2], "rotation": 180, "texture": "#4"},
"south": {"uv": [2, 14, 0, 2], "rotation": 180, "texture": "#3"},
"west": {"uv": [0, 2, 3, 14], "rotation": 180, "texture": "#8"},
"up": {"uv": [0, 14, 2, 16], "texture": "#8"},
"down": {"uv": [0, 0, 2, 2], "texture": "#8"}
}
},
{
"name": "front",
"from": [1, 1, 2],
"to": [3, 3, 14],
"from": [1, 0, 3],
"to": [3, 2, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [0, 0, 0, 0], "texture": "#8"},
"east": {"uv": [2, 14, 14, 16], "rotation": 180, "texture": "#8"},
"east": {"uv": [3, 14, 13, 16], "texture": "#8"},
"south": {"uv": [0, 0, 0, 0], "texture": "#8"},
"west": {"uv": [2, 14, 14, 16], "texture": "#8"},
"up": {"uv": [2, 0, 14, 2], "rotation": 270, "texture": "#8"},
"down": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#8"}
"west": {"uv": [3, 14, 13, 16], "texture": "#8"},
"up": {"uv": [3, 13, 13, 15], "rotation": 90, "texture": "#8"},
"down": {"uv": [3, 1, 13, 3], "rotation": 270, "texture": "#8"}
}
},
{
"name": "front",
"from": [13, 1, 2],
"to": [15, 3, 14],
"from": [13, 0, 3],
"to": [15, 2, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [8, -8, 8]},
"faces": {
"north": {"uv": [0, 0, 0, 0], "texture": "#8"},
"east": {"uv": [14, 14, 2, 16], "texture": "#8"},
"east": {"uv": [13, 14, 3, 16], "texture": "#8"},
"south": {"uv": [0, 0, 0, 0], "texture": "#8"},
"west": {"uv": [14, 14, 2, 16], "rotation": 180, "texture": "#8"},
"up": {"uv": [2, 2, 14, 0], "rotation": 90, "texture": "#8"},
"down": {"uv": [2, 16, 14, 14], "rotation": 90, "texture": "#8"}
"west": {"uv": [13, 14, 3, 16], "texture": "#8"},
"up": {"uv": [3, 15, 13, 13], "rotation": 90, "texture": "#8"},
"down": {"uv": [3, 15, 13, 13], "rotation": 90, "texture": "#8"}
}
},
{
"name": "front",
"from": [13, 13, 2],
"to": [15, 15, 14],
"name": "top",
"from": [1, 14, 3],
"to": [15, 16, 13],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]},
"faces": {
"north": {"uv": [0, 0, 0, 0], "texture": "#8"},
"east": {"uv": [14, 16, 2, 14], "texture": "#8"},
"south": {"uv": [0, 0, 0, 0], "texture": "#8"},
"west": {"uv": [14, 2, 2, 0], "texture": "#8"},
"up": {"uv": [14, 15, 2, 13], "rotation": 90, "texture": "#8"},
"down": {"uv": [14, 2, 2, 0], "rotation": 90, "texture": "#8"}
"east": {"uv": [13, 0, 3, 2], "texture": "#8"},
"west": {"uv": [13, 0, 3, 2], "texture": "#8"},
"up": {"uv": [3, 1, 13, 15], "rotation": 90, "texture": "#8"},
"down": {"uv": [3, 1, 13, 15], "rotation": 270, "texture": "#8"}
}
},
{
"name": "front",
"from": [1, 13, 2],
"to": [3, 15, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]},
"name": "coil",
"from": [4, 4, 2],
"to": [12, 12, 14],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 0, 0], "texture": "#8"},
"east": {"uv": [2, 2, 14, 0], "texture": "#8"},
"south": {"uv": [0, 0, 0, 0], "texture": "#8"},
"west": {"uv": [2, 16, 14, 14], "texture": "#8"},
"up": {"uv": [14, 13, 2, 15], "rotation": 90, "texture": "#8"},
"down": {"uv": [14, 0, 2, 2], "rotation": 270, "texture": "#8"}
"east": {"uv": [2, 1, 14, 9], "rotation": 180, "texture": "#5"},
"west": {"uv": [2, 1, 14, 9], "texture": "#5"},
"up": {"uv": [2, 1, 14, 9], "rotation": 90, "texture": "#5"},
"down": {"uv": [2, 1, 14, 9], "rotation": 270, "texture": "#5"}
}
},
{
"name": "Axis",
"from": [6, 6, 8],
"to": [10, 10, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 16]},
"name": "coil",
"from": [3.5, 3.5, 9],
"to": [12.5, 12.5, 13],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"east": {"uv": [6, 8, 10, 16], "rotation": 90, "texture": "#0"},
"south": {"uv": [6, 6, 10, 10], "texture": "#1"},
"west": {"uv": [6, 8, 10, 16], "rotation": 270, "texture": "#0"},
"up": {"uv": [6, 8, 10, 16], "texture": "#0"},
"down": {"uv": [6, 8, 10, 16], "rotation": 180, "texture": "#0"}
"north": {"uv": [0, 0, 1, 1], "texture": "#5"},
"east": {"uv": [0, 3, 4, 12], "texture": "#5"},
"south": {"uv": [0, 0, 1, 1], "texture": "#5"},
"west": {"uv": [0, 3, 4, 12], "rotation": 180, "texture": "#5"},
"up": {"uv": [0, 3, 4, 12], "rotation": 270, "texture": "#5"},
"down": {"uv": [0, 3, 4, 12], "rotation": 90, "texture": "#5"}
}
},
{
"name": "coil",
"from": [3.5, 3.5, 3],
"to": [12.5, 12.5, 7],
"rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 1, 1], "texture": "#5"},
"east": {"uv": [0, 3, 4, 12], "texture": "#5"},
"south": {"uv": [0, 0, 1, 1], "texture": "#5"},
"west": {"uv": [0, 3, 4, 12], "rotation": 180, "texture": "#5"},
"up": {"uv": [0, 3, 4, 12], "rotation": 270, "texture": "#5"},
"down": {"uv": [0, 3, 4, 12], "rotation": 90, "texture": "#5"}
}
},
{
"name": "rope",
"from": [6, 2, 6],
"to": [10, 8, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [7.75, 13, 8]},
"from": [6, 1, 6],
"to": [10, 15, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 13, 7.75]},
"faces": {
"north": {"uv": [12, 10, 16, 16], "texture": "#6"},
"east": {"uv": [12, 10, 16, 16], "texture": "#6"},
"south": {"uv": [12, 10, 16, 16], "texture": "#6"},
"west": {"uv": [12, 10, 16, 16], "texture": "#6"},
"up": {"uv": [12, 0, 16, 4], "rotation": 90, "texture": "#6"}
"north": {"uv": [12, 2, 16, 16], "texture": "#6"},
"east": {"uv": [12, 2, 16, 16], "texture": "#6"},
"south": {"uv": [12, 2, 16, 16], "texture": "#6"},
"west": {"uv": [12, 2, 16, 16], "texture": "#6"},
"up": {"uv": [12, 0, 16, 4], "rotation": 180, "texture": "#6"}
}
},
{
"name": "drain 1",
"from": [4.5, 0, 4.5],
"to": [11.5, 2, 11.5],
"rotation": {"angle": 0, "axis": "y", "origin": [6.75, 14, 6]},
"rotation": {"angle": 0, "axis": "y", "origin": [10, 14, 6.75]},
"faces": {
"north": {"uv": [0, 0, 7, 2], "texture": "#6"},
"east": {"uv": [0, 0, 7, 2], "texture": "#6"},
"south": {"uv": [0, 0, 7, 2], "texture": "#6"},
"west": {"uv": [0, 0, 7, 2], "texture": "#6"},
"down": {"uv": [0, 2, 7, 9], "texture": "#6"}
"down": {"uv": [0, 2, 7, 9], "rotation": 270, "texture": "#6"}
}
},
{
"name": "drain 2",
"from": [4.5, 2, 4.5],
"to": [11.5, 3, 11.5],
"rotation": {"angle": 0, "axis": "y", "origin": [6.75, 16, 6]},
"rotation": {"angle": 0, "axis": "y", "origin": [10, 16, 6.75]},
"faces": {
"north": {"uv": [0, 1, 7, 2], "texture": "#6"},
"east": {"uv": [0, 1, 7, 2], "texture": "#6"},
"south": {"uv": [0, 1, 7, 2], "texture": "#6"},
"west": {"uv": [0, 1, 7, 2], "texture": "#6"},
"up": {"uv": [0, 2, 7, 9], "rotation": 90, "texture": "#6"},
"down": {"uv": [0, 9, 7, 16], "texture": "#6"}
"up": {"uv": [0, 2, 7, 9], "rotation": 180, "texture": "#6"},
"down": {"uv": [0, 9, 7, 16], "rotation": 270, "texture": "#6"}
}
},
{
"name": "drain 3",
"from": [5.5, 2, 5.5],
"to": [10.5, 5, 10.5],
"rotation": {"angle": 0, "axis": "y", "origin": [7.75, 16, 7]},
"rotation": {"angle": 0, "axis": "y", "origin": [9, 16, 7.75]},
"faces": {
"north": {"uv": [7, 2, 10, 7], "rotation": 270, "texture": "#6"},
"east": {"uv": [7, 2, 10, 7], "rotation": 270, "texture": "#6"},
"south": {"uv": [7, 2, 10, 7], "rotation": 270, "texture": "#6"},
"west": {"uv": [7, 2, 10, 7], "rotation": 270, "texture": "#6"},
"up": {"uv": [1, 3, 6, 8], "rotation": 90, "texture": "#6"}
}
},
{
"name": "top",
"from": [2, 14, 2],
"to": [14, 16, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]},
"faces": {
"north": {"uv": [0, 0, 0, 0], "texture": "#8"},
"east": {"uv": [2, 1, 14, 3], "rotation": 180, "texture": "#8"},
"south": {"uv": [0, 0, 0, 0], "texture": "#8"},
"west": {"uv": [2, 13, 14, 15], "texture": "#8"},
"up": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#8"},
"down": {"uv": [2, 2, 14, 14], "rotation": 90, "texture": "#8"}
"up": {"uv": [1, 3, 6, 8], "rotation": 180, "texture": "#6"}
}
}
],
@ -367,15 +313,51 @@
"scale": [0.5, 0.5, 0.5]
}
},
"groups": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
"groups": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
{
"name": "shaft",
"origin": [8, 8, 8],
"children": [18]
"color": 0,
"children": []
},
{
"name": "rope_half_magnet",
"origin": [8, 8, 8],
"children": [19, 20, 21, 22]
}, 23]
"color": 0,
"children": []
},
13,
{
"name": "rope_coil",
"origin": [8, 8, 8],
"color": 0,
"children": [14, 15, 16]
},
{
"name": "pulley_magnet",
"origin": [8, 8, 8],
"color": 0,
"children": [
{
"name": "rope_half_magnet",
"origin": [8, 8, 8],
"color": 0,
"children": [17, 18, 19, 20]
}
]
}
]
}

View file

@ -2,7 +2,6 @@
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"1": "create:block/pipes",
"2": "create:block/smart_pipe_1",
"3": "create:block/smart_pipe_2",
"particle": "create:block/copper_plating"
@ -21,25 +20,25 @@
}
},
{
"from": [4, 4, 0],
"to": [12, 12, 4],
"from": [4.05, 4.05, 0],
"to": [11.95, 11.95, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0]},
"faces": {
"east": {"uv": [0, 8, 4, 6], "rotation": 270, "texture": "#1"},
"west": {"uv": [0, 8, 4, 6], "rotation": 90, "texture": "#1"},
"up": {"uv": [0, 8, 4, 6], "rotation": 180, "texture": "#1"},
"down": {"uv": [0, 8, 4, 6], "rotation": 180, "texture": "#1"}
"east": {"uv": [10, 3, 6, 11], "texture": "#2"},
"west": {"uv": [10, 3, 6, 11], "rotation": 180, "texture": "#2"},
"up": {"uv": [6, 11, 10, 3], "rotation": 90, "texture": "#2"},
"down": {"uv": [6, 11, 10, 3], "rotation": 270, "texture": "#2"}
}
},
{
"from": [4, 4, 12],
"to": [12, 12, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 16]},
"from": [4.05, 4.05, 12],
"to": [11.95, 11.95, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14]},
"faces": {
"east": {"uv": [0, 6, 4, 8], "rotation": 270, "texture": "#1"},
"west": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#1"},
"up": {"uv": [0, 6, 4, 8], "rotation": 180, "texture": "#1"},
"down": {"uv": [0, 6, 4, 8], "rotation": 180, "texture": "#1"}
"east": {"uv": [10, 3, 6, 11], "rotation": 180, "texture": "#2"},
"west": {"uv": [10, 3, 6, 11], "texture": "#2"},
"up": {"uv": [6, 11, 10, 3], "rotation": 270, "texture": "#2"},
"down": {"uv": [6, 11, 10, 3], "rotation": 90, "texture": "#2"}
}
},
{

View file

@ -22,8 +22,8 @@
},
{
"name": "GuageMetalBack",
"from": [14, 3, 3],
"to": [16, 13, 13],
"from": [14, 3.05, 3.05],
"to": [15.95, 12.95, 12.95],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]},
"faces": {
"north": {"uv": [11, 0, 13, 10], "texture": "#1"},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

After

Width:  |  Height:  |  Size: 458 B