Merge branch 'mc1.15/dev' of https://github.com/Creators-of-Create/Create into mc1.15/dev

This commit is contained in:
simibubi 2020-11-29 23:01:21 +01:00
commit 0a7ebac586
33 changed files with 1200 additions and 35 deletions

View file

@ -49,6 +49,7 @@ b59324f051f21d8ce1a48a08f4721a61a3c414d6 assets/create/blockstates/chute.json
1f33834c685e3243882acfe20183fe64dfa872be assets/create/blockstates/clutch.json
e5e3757e99c139d67b2a70288466d8a74d818841 assets/create/blockstates/cogwheel.json
36f54136a7756c97f71bc6b47ef4e8e575e72879 assets/create/blockstates/content_observer.json
c309aead7e052aef770baebfb4d0e65dfd257b66 assets/create/blockstates/controller_rail.json
f8eff64c75fc599e9a44a003f54ae9931cd8ce7c assets/create/blockstates/copper_block.json
cabf6b8c59eb0e3d56a0a5a856ca058bb3200882 assets/create/blockstates/copper_casing.json
3355a852cdc717e257ca19b3db836068964733e3 assets/create/blockstates/copper_ore.json
@ -137,7 +138,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_
fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json
b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json
6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json
fe9169716dd21a81a3710a89f0a9b7ea4dcd4d51 assets/create/blockstates/fluid_pipe.json
3d97226b5e8d8f70ed08e45e78db1faf78d5e28b assets/create/blockstates/fluid_pipe.json
f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json
5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json
e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json
@ -393,17 +394,17 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
67f9a92292948241e01ce6043445b2b3ddcf5350 assets/create/lang/en_ud.json
64119d621b012cb67a88a72297cfbe64e276bd76 assets/create/lang/en_us.json
276e7bf74972ab6a32ffa1fcc91bb8adbfca7a45 assets/create/lang/unfinished/de_de.json
37cda56935f196f3c531afb0bf001c0ba56053c6 assets/create/lang/unfinished/fr_fr.json
96592f7ce4ed4ede69c3f42b5870d1b805f1fc23 assets/create/lang/unfinished/it_it.json
84b5c9d2586f1dd4067cdb60568420d151589e7f assets/create/lang/unfinished/ja_jp.json
4171adac242132ab5b8da5d362eeb6b9fae03213 assets/create/lang/unfinished/ko_kr.json
6798dd2c517ad9a201175fdbba5108b346478a44 assets/create/lang/unfinished/nl_nl.json
8c9358acc37b949dfc8c15fc750fd6f13a8104a3 assets/create/lang/unfinished/pt_br.json
fff47b09b35b20294dbc814fceb05430c2eec9af assets/create/lang/unfinished/ru_ru.json
c1481426852c9a0e651342ecaea541aa300a5168 assets/create/lang/unfinished/zh_cn.json
458ea82f1528fc105ae5511619a8673dbd71101f assets/create/lang/en_ud.json
0b031873dee4854906c42ca74431796809529979 assets/create/lang/en_us.json
e0edef1fd82761c99556a8f9f968817c9d00a389 assets/create/lang/unfinished/de_de.json
80bd81070645f36dc5a4a3355985b68aadee932c assets/create/lang/unfinished/fr_fr.json
74e0f3f8635be43ae96f199374d95b2e4b467c46 assets/create/lang/unfinished/it_it.json
d2d2239b0c6a750a0aa0cb9fc6e190522202b5e7 assets/create/lang/unfinished/ja_jp.json
71a75e1739dea9a0d26a6c3cb07c9c1f5e3bcd00 assets/create/lang/unfinished/ko_kr.json
036ace865f424c6d38330a5dda3783df6fc9feac assets/create/lang/unfinished/nl_nl.json
53dddb1c29cf6739750567350c89f7ae01cda588 assets/create/lang/unfinished/pt_br.json
03d1bf6e868f87fe27704acdde55e75f5101acd9 assets/create/lang/unfinished/ru_ru.json
72c0f7e67c59b4e3f13c348d007044d86afb7e75 assets/create/lang/unfinished/zh_cn.json
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json
@ -1157,6 +1158,7 @@ c1da21be9f1af4f7a2ef4ec9cd92195d65ada316 assets/create/models/item/clockwork_bea
0a2a0f0aafeab0088172f77afd40c1fa2cc1f2b8 assets/create/models/item/clutch.json
dcb09deae110077bcddf090996b51cc66e9a7de3 assets/create/models/item/cogwheel.json
7717e3b21cff39f497f07687c70c1fa40eaa756d assets/create/models/item/content_observer.json
17a8889e54d6e82fd1a6eec9e87c46feba903cb1 assets/create/models/item/controller_rail.json
965a90a882d85dba93b30af9bce7ecf8e68ce747 assets/create/models/item/copper_block.json
759bcb5fe7dfdd628716f9b4ff19a5ab00393381 assets/create/models/item/copper_casing.json
c5bcfba46f5824654dedaa2c5d5f42deb29e3baf assets/create/models/item/copper_ingot.json
@ -2196,6 +2198,7 @@ adde89e46b12de1eee6fd0c5cb98c5f45feefc15 data/create/loot_tables/blocks/chiseled
d76113310fc56eca6382d44df174096f2210d416 data/create/loot_tables/blocks/clutch.json
673ba3a5deae9133b917d16c9eb87fe4c2873c8a data/create/loot_tables/blocks/cogwheel.json
096af6b5df6e87d36cb936eea9b00982a554f4af data/create/loot_tables/blocks/content_observer.json
80c2cb21714651116a71f449368c06bb22e841ce data/create/loot_tables/blocks/controller_rail.json
f38802b919c49f162f102d6e5d94113f05bf4ab1 data/create/loot_tables/blocks/copper_block.json
5a65a18ea787130ac7b8f5652bfa5ed187446649 data/create/loot_tables/blocks/copper_casing.json
31a51237763c374b7cdf39b9b62c14e965871047 data/create/loot_tables/blocks/copper_ore.json
@ -3316,7 +3319,7 @@ ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/br
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/copper.json
7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/items/storage_blocks/zinc.json
31424fe956db0354a9f24c61baf977a2961c8db6 data/minecraft/tags/blocks/impermeable.json
9dadc647e17b6262c13b6d8eda9139e30ce7e7d0 data/minecraft/tags/blocks/rails.json
378b01e288301e0835d3d25167889077a2070780 data/minecraft/tags/blocks/rails.json
29e6f7e3d4be9a9b0af1fca5d32fa55e29905ce2 data/minecraft/tags/blocks/slabs.json
0d188ad2c33d10ee8f0d455c4e63a4460a8302fb data/minecraft/tags/blocks/stairs.json
92584f914c53e00c111f9ff5e3894e2e3594946b data/minecraft/tags/blocks/walls.json

View file

@ -0,0 +1,724 @@
{
"variants": {
"backwards=false,power=0,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_off"
},
"backwards=true,power=0,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_off",
"y": 180
},
"backwards=false,power=1,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=1,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=2,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=2,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=3,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=3,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=4,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=4,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=5,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=5,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=6,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=6,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=7,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=7,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=8,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=8,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=9,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=9,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=10,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=10,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=11,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=11,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=12,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=12,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=13,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=13,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=14,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog"
},
"backwards=true,power=14,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 180
},
"backwards=false,power=15,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_on"
},
"backwards=true,power=15,shape=north_south": {
"model": "create:block/controller_rail/block_north_south_on",
"y": 180
},
"backwards=false,power=0,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_off",
"y": 270
},
"backwards=true,power=0,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_off",
"y": 90
},
"backwards=false,power=1,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=1,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=2,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=2,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=3,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=3,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=4,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=4,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=5,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=5,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=6,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=6,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=7,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=7,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=8,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=8,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=9,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=9,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=10,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=10,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=11,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=11,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=12,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=12,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=13,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=13,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=14,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 270
},
"backwards=true,power=14,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_analog",
"y": 90
},
"backwards=false,power=15,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_on",
"y": 270
},
"backwards=true,power=15,shape=east_west": {
"model": "create:block/controller_rail/block_north_south_on",
"y": 90
},
"backwards=false,power=0,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_off",
"y": 90
},
"backwards=true,power=0,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_off",
"y": 270
},
"backwards=false,power=1,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=1,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=2,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=2,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=3,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=3,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=4,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=4,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=5,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=5,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=6,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=6,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=7,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=7,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=8,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=8,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=9,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=9,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=10,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=10,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=11,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=11,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=12,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=12,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=13,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=13,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=14,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 90
},
"backwards=true,power=14,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 270
},
"backwards=false,power=15,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_north_on",
"y": 90
},
"backwards=true,power=15,shape=ascending_east": {
"model": "create:block/controller_rail/block_ascending_south_on",
"y": 270
},
"backwards=false,power=0,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_off",
"y": 270
},
"backwards=true,power=0,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_off",
"y": 90
},
"backwards=false,power=1,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=1,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=2,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=2,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=3,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=3,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=4,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=4,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=5,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=5,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=6,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=6,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=7,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=7,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=8,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=8,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=9,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=9,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=10,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=10,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=11,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=11,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=12,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=12,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=13,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=13,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=14,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 270
},
"backwards=true,power=14,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 90
},
"backwards=false,power=15,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_north_on",
"y": 270
},
"backwards=true,power=15,shape=ascending_west": {
"model": "create:block/controller_rail/block_ascending_south_on",
"y": 90
},
"backwards=false,power=0,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_off"
},
"backwards=true,power=0,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_off",
"y": 180
},
"backwards=false,power=1,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=1,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=2,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=2,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=3,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=3,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=4,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=4,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=5,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=5,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=6,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=6,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=7,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=7,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=8,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=8,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=9,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=9,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=10,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=10,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=11,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=11,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=12,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=12,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=13,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=13,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=14,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_analog"
},
"backwards=true,power=14,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_analog",
"y": 180
},
"backwards=false,power=15,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_north_on"
},
"backwards=true,power=15,shape=ascending_north": {
"model": "create:block/controller_rail/block_ascending_south_on",
"y": 180
},
"backwards=false,power=0,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_off",
"y": 180
},
"backwards=true,power=0,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_off"
},
"backwards=false,power=1,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=1,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=2,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=2,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=3,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=3,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=4,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=4,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=5,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=5,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=6,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=6,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=7,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=7,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=8,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=8,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=9,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=9,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=10,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=10,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=11,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=11,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=12,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=12,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=13,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=13,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=14,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_analog",
"y": 180
},
"backwards=true,power=14,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_analog"
},
"backwards=false,power=15,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_north_on",
"y": 180
},
"backwards=true,power=15,shape=ascending_south": {
"model": "create:block/controller_rail/block_ascending_south_on"
}
}
}

View file

@ -303,8 +303,8 @@
{
"when": {
"west": "false",
"east": "true",
"down": "false",
"east": "true",
"up": "true"
},
"apply": {
@ -314,8 +314,8 @@
{
"when": {
"west": "true",
"east": "false",
"down": "false",
"east": "false",
"up": "true"
},
"apply": {
@ -325,8 +325,8 @@
{
"when": {
"west": "false",
"east": "true",
"down": "true",
"east": "true",
"up": "false"
},
"apply": {
@ -336,8 +336,8 @@
{
"when": {
"west": "true",
"east": "false",
"down": "true",
"east": "false",
"up": "false"
},
"apply": {
@ -347,8 +347,8 @@
{
"when": {
"west": "false",
"east": "false",
"down": "true",
"east": "false",
"up": "true"
},
"apply": {
@ -358,8 +358,8 @@
{
"when": {
"west": "false",
"east": "false",
"down": "false",
"east": "false",
"up": "true"
},
"apply": {
@ -369,8 +369,8 @@
{
"when": {
"west": "false",
"east": "false",
"down": "true",
"east": "false",
"up": "false"
},
"apply": {
@ -380,8 +380,8 @@
{
"when": {
"west": "true",
"east": "true",
"down": "false",
"east": "true",
"up": "false"
},
"apply": {
@ -391,8 +391,8 @@
{
"when": {
"west": "false",
"east": "true",
"down": "false",
"east": "true",
"up": "false"
},
"apply": {
@ -402,8 +402,8 @@
{
"when": {
"west": "true",
"east": "false",
"down": "false",
"east": "false",
"up": "false"
},
"apply": {
@ -413,8 +413,8 @@
{
"when": {
"west": "false",
"east": "false",
"down": "false",
"east": "false",
"up": "false"
},
"apply": {

View file

@ -50,6 +50,7 @@
"block.create.clutch": "\u0265\u0254\u0287n\u05DF\u0186",
"block.create.cogwheel": "\u05DF\u01DD\u01DD\u0265\u028Dbo\u0186",
"block.create.content_observer": "\u0279\u01DD\u028C\u0279\u01DDsqO \u0287u\u01DD\u0287uo\u0186",
"block.create.controller_rail": "\u05DF\u0131\u0250\u1D1A \u0279\u01DD\u05DF\u05DFo\u0279\u0287uo\u0186",
"block.create.copper_block": "\u029E\u0254o\u05DF\u15FA \u0279\u01DDddo\u0186",
"block.create.copper_casing": "bu\u0131s\u0250\u0186 \u0279\u01DDddo\u0186",
"block.create.copper_ore": "\u01DD\u0279O \u0279\u01DDddo\u0186",

View file

@ -53,6 +53,7 @@
"block.create.clutch": "Clutch",
"block.create.cogwheel": "Cogwheel",
"block.create.content_observer": "Content Observer",
"block.create.controller_rail": "Controller Rail",
"block.create.copper_block": "Copper Block",
"block.create.copper_casing": "Copper Casing",
"block.create.copper_ore": "Copper Ore",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1050",
"_": "Missing Localizations: 1051",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "Kupplung",
"block.create.cogwheel": "Zahnrad",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "UNLOCALIZED: Copper Block",
"block.create.copper_casing": "UNLOCALIZED: Copper Casing",
"block.create.copper_ore": "UNLOCALIZED: Copper Ore",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 680",
"_": "Missing Localizations: 681",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "Embrayage",
"block.create.cogwheel": "Roue dentée",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "Bloc de cuivre",
"block.create.copper_casing": "Boîtier en cuivre",
"block.create.copper_ore": "Minerai de cuivre",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 664",
"_": "Missing Localizations: 665",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "Frizione",
"block.create.cogwheel": "Ruota Dentata",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "Blocco di Rame",
"block.create.copper_casing": "Involucro di Rame",
"block.create.copper_ore": "Rame Grezzo",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 663",
"_": "Missing Localizations: 664",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "クラッチ",
"block.create.cogwheel": "歯車",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "銅ブロック",
"block.create.copper_casing": "銅ケーシング",
"block.create.copper_ore": "銅鉱石",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 664",
"_": "Missing Localizations: 665",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "클러치",
"block.create.cogwheel": "톱나버퀴",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "구리 블럭",
"block.create.copper_casing": "구리 케이스",
"block.create.copper_ore": "구리 광석",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 991",
"_": "Missing Localizations: 992",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "Koppeling",
"block.create.cogwheel": "Tandwiel",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "UNLOCALIZED: Copper Block",
"block.create.copper_casing": "UNLOCALIZED: Copper Casing",
"block.create.copper_ore": "UNLOCALIZED: Copper Ore",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1057",
"_": "Missing Localizations: 1058",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "Embreagem",
"block.create.cogwheel": "Roda Dentada",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "UNLOCALIZED: Copper Block",
"block.create.copper_casing": "UNLOCALIZED: Copper Casing",
"block.create.copper_ore": "UNLOCALIZED: Copper Ore",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 333",
"_": "Missing Localizations: 334",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "Сцепление",
"block.create.cogwheel": "Шестерня",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "Медный блок",
"block.create.copper_casing": "Медный корпус",
"block.create.copper_ore": "Медная руда",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 346",
"_": "Missing Localizations: 347",
"_": "->------------------------] Game Elements [------------------------<-",
@ -54,6 +54,7 @@
"block.create.clutch": "离合器",
"block.create.cogwheel": "齿轮",
"block.create.content_observer": "UNLOCALIZED: Content Observer",
"block.create.controller_rail": "UNLOCALIZED: Controller Rail",
"block.create.copper_block": "铜块",
"block.create.copper_casing": "铜机壳",
"block.create.copper_ore": "铜矿石",

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "create:block/controller_rail_analog"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "create:controller_rail"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -2,6 +2,7 @@
"replace": false,
"values": [
"create:cart_assembler",
"create:reinforced_rail"
"create:reinforced_rail",
"create:controller_rail"
]
}

View file

@ -61,6 +61,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.pis
import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonHeadBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.piston.PistonExtensionPoleBlock;
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock;
import com.simibubi.create.content.contraptions.components.tracks.ControllerRailBlock;
import com.simibubi.create.content.contraptions.components.tracks.ReinforcedRailBlock;
import com.simibubi.create.content.contraptions.components.turntable.TurntableBlock;
import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelBlock;
@ -735,6 +736,16 @@ public class AllBlocks {
.build()
.register();
public static final BlockEntry<ControllerRailBlock> CONTROLLER_RAIL =
REGISTRATE.block("controller_rail", ControllerRailBlock::new)
.initialProperties(() -> Blocks.POWERED_RAIL)
.blockstate(BlockStateGen.controllerRail())
.addLayer(() -> RenderType::getCutoutMipped)
.tag(BlockTags.RAILS)
.item()
.model((c, p) -> p.generated(c, Create.asResource("block/controller_rail_analog")))
.build().register();
public static final BlockEntry<MinecartAnchorBlock> MINECART_ANCHOR =
REGISTRATE.block("minecart_anchor", MinecartAnchorBlock::new)
.initialProperties(SharedProperties::stone)

View file

@ -0,0 +1,292 @@
package com.simibubi.create.content.contraptions.components.tracks;
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
import com.simibubi.create.foundation.utility.VecHelper;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.block.AbstractRailBlock;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.entity.item.minecart.AbstractMinecartEntity;
import net.minecraft.item.BlockItemUseContext;
import net.minecraft.item.ItemUseContext;
import net.minecraft.state.*;
import net.minecraft.state.properties.BlockStateProperties;
import net.minecraft.state.properties.RailShape;
import net.minecraft.util.ActionResultType;
import net.minecraft.util.Direction;
import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3i;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.World;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import static net.minecraft.state.properties.RailShape.*;
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
@SuppressWarnings("deprecation")
public class ControllerRailBlock extends AbstractRailBlock implements IWrenchable {
public static final EnumProperty<RailShape> SHAPE = BlockStateProperties.RAIL_SHAPE_STRAIGHT;
public static final IntegerProperty POWER = BlockStateProperties.POWER_0_15;
public static final BooleanProperty BACKWARDS = BooleanProperty.create("backwards");
public ControllerRailBlock(Properties p_i48444_2_) {
super(true, p_i48444_2_);
this.setDefaultState(this.stateContainer.getBaseState().with(POWER, 0).with(BACKWARDS, false).with(SHAPE, NORTH_SOUTH));
}
private static Vec3i getAccelerationVector(BlockState state) {
Direction pointingTo = getPointingTowards(state);
return (state.get(BACKWARDS) ? pointingTo.getOpposite() : pointingTo).getDirectionVec();
}
private static Direction getPointingTowards(BlockState state) {
switch (state.get(SHAPE)) {
case ASCENDING_WEST:
case EAST_WEST:
return Direction.WEST;
case ASCENDING_EAST:
return Direction.EAST;
case ASCENDING_SOUTH:
return Direction.SOUTH;
default:
return Direction.NORTH;
}
}
private static void decelerateCart(BlockPos pos, AbstractMinecartEntity cart) {
Vec3d diff = VecHelper.getCenterOf(pos).subtract(cart.getPositionVec());
cart.setMotion(diff.x / 16f, 0, diff.z / 16f);
}
private static boolean isStableWith(BlockState testState, IBlockReader world, BlockPos pos) {
return hasSolidSideOnTop(world, pos.down()) && (!testState.get(SHAPE).isAscending() || hasSolidSideOnTop(world, pos.offset(getPointingTowards(testState))));
}
@Override
public BlockState getStateForPlacement(BlockItemUseContext p_196258_1_) {
Direction direction = p_196258_1_.getPlacementHorizontalFacing();
BlockState base = super.getStateForPlacement(p_196258_1_);
return (base == null ? getDefaultState() : base).with(BACKWARDS, direction == Direction.SOUTH || direction == Direction.EAST);
}
@Override
public IProperty<RailShape> getShapeProperty() {
return SHAPE;
}
@Override
protected void fillStateContainer(StateContainer.Builder<Block, BlockState> p_206840_1_) {
p_206840_1_.add(SHAPE, POWER, BACKWARDS);
}
@Override
public void onMinecartPass(BlockState state, World world, BlockPos pos, AbstractMinecartEntity cart) {
if (world.isRemote)
return;
Vec3d accelerationVec = new Vec3d(getAccelerationVector(state));
double targetSpeed = cart.getMaxSpeedWithRail() * state.get(POWER) / 15.;
if ((cart.getMotion().dotProduct(accelerationVec) >= 0 || cart.getMotion().lengthSquared() < 0.0001) && targetSpeed > 0)
cart.setMotion(accelerationVec.scale(targetSpeed));
else
decelerateCart(pos, cart);
}
@Override
protected void updateState(BlockState state, World world, BlockPos pos, Block block) {
int newPower = calculatePower(world, pos);
if (state.get(POWER) != newPower)
placeAndNotify(state.with(POWER, newPower), pos, world);
}
private int calculatePower(World world, BlockPos pos) {
int newPower = world.getRedstonePowerFromNeighbors(pos);
if (newPower != 0)
return newPower;
int forwardDistance = 0;
int backwardsDistance = 0;
BlockPos lastForwardRail = pos;
BlockPos lastBackwardsRail = pos;
int forwardPower = 0;
int backwardsPower = 0;
for (int i = 0; i < 15; i++) {
BlockPos testPos = findNextRail(lastForwardRail, world, false);
if (testPos == null)
break;
forwardDistance++;
lastForwardRail = testPos;
forwardPower = world.getRedstonePowerFromNeighbors(testPos);
if (forwardPower != 0)
break;
}
for (int i = 0; i < 15; i++) {
BlockPos testPos = findNextRail(lastBackwardsRail, world, true);
if (testPos == null)
break;
backwardsDistance++;
lastBackwardsRail = testPos;
backwardsPower = world.getRedstonePowerFromNeighbors(testPos);
if (backwardsPower != 0)
break;
}
if (forwardDistance > 8 && backwardsDistance > 8)
return 0;
else if (backwardsPower == 0 && forwardDistance <= 8)
return forwardPower;
else if (forwardPower == 0 && backwardsDistance <= 8)
return backwardsPower;
else if (backwardsPower != 0 && forwardPower != 0)
return MathHelper.ceil((backwardsPower * forwardDistance + forwardPower * backwardsDistance) / (double) (forwardDistance + backwardsDistance));
return 0;
}
@Override
public BlockState rotate(BlockState p_185499_1_, Rotation p_185499_2_) {
switch (p_185499_2_) {
case CLOCKWISE_180:
switch (p_185499_1_.get(SHAPE)) {
case ASCENDING_EAST:
return p_185499_1_.with(SHAPE, ASCENDING_WEST);
case ASCENDING_WEST:
return p_185499_1_.with(SHAPE, ASCENDING_EAST);
case ASCENDING_NORTH:
return p_185499_1_.with(SHAPE, ASCENDING_SOUTH);
case ASCENDING_SOUTH:
return p_185499_1_.with(SHAPE, ASCENDING_NORTH);
default:
return p_185499_1_.with(BACKWARDS, !p_185499_1_.get(BACKWARDS));
}
case COUNTERCLOCKWISE_90:
switch (p_185499_1_.get(SHAPE)) {
case ASCENDING_EAST:
return p_185499_1_.with(SHAPE, ASCENDING_NORTH);
case ASCENDING_WEST:
return p_185499_1_.with(SHAPE, ASCENDING_SOUTH);
case ASCENDING_NORTH:
return p_185499_1_.with(SHAPE, ASCENDING_WEST);
case ASCENDING_SOUTH:
return p_185499_1_.with(SHAPE, ASCENDING_EAST);
case NORTH_SOUTH:
return p_185499_1_.with(SHAPE, EAST_WEST);
case EAST_WEST:
return p_185499_1_.with(SHAPE, NORTH_SOUTH).with(BACKWARDS, !p_185499_1_.get(BACKWARDS));
}
case CLOCKWISE_90:
switch (p_185499_1_.get(SHAPE)) {
case ASCENDING_EAST:
return p_185499_1_.with(SHAPE, ASCENDING_SOUTH);
case ASCENDING_WEST:
return p_185499_1_.with(SHAPE, ASCENDING_NORTH);
case ASCENDING_NORTH:
return p_185499_1_.with(SHAPE, ASCENDING_EAST);
case ASCENDING_SOUTH:
return p_185499_1_.with(SHAPE, ASCENDING_WEST);
case NORTH_SOUTH:
return p_185499_1_.with(SHAPE, EAST_WEST).with(BACKWARDS, !p_185499_1_.get(BACKWARDS));
case EAST_WEST:
return p_185499_1_.with(SHAPE, NORTH_SOUTH);
}
default:
return p_185499_1_;
}
}
@Override
public BlockState mirror(BlockState p_185471_1_, Mirror p_185471_2_) {
RailShape railshape = p_185471_1_.get(SHAPE);
switch (p_185471_2_) {
case LEFT_RIGHT:
switch (railshape) {
case ASCENDING_NORTH:
return p_185471_1_.with(SHAPE, RailShape.ASCENDING_SOUTH);
case ASCENDING_SOUTH:
return p_185471_1_.with(SHAPE, RailShape.ASCENDING_NORTH);
case NORTH_SOUTH:
return p_185471_1_.with(BACKWARDS, !p_185471_1_.get(BACKWARDS));
default:
return super.mirror(p_185471_1_, p_185471_2_);
}
case FRONT_BACK:
switch (railshape) {
case ASCENDING_EAST:
return p_185471_1_.with(SHAPE, RailShape.ASCENDING_WEST);
case ASCENDING_WEST:
return p_185471_1_.with(SHAPE, RailShape.ASCENDING_EAST);
case EAST_WEST:
return p_185471_1_.with(BACKWARDS, !p_185471_1_.get(BACKWARDS));
default:
break;
}
}
return super.mirror(p_185471_1_, p_185471_2_);
}
@Override
public ActionResultType onWrenched(BlockState state, ItemUseContext context) {
World world = context.getWorld();
if (world.isRemote)
return ActionResultType.SUCCESS;
BlockPos pos = context.getPos();
for (Rotation testRotation : new Rotation[]{Rotation.CLOCKWISE_90, Rotation.CLOCKWISE_180, Rotation.COUNTERCLOCKWISE_90}) {
BlockState testState = rotate(state, testRotation);
if (isStableWith(testState, world, pos)) {
placeAndNotify(testState, pos, world);
break;
}
}
return ActionResultType.SUCCESS;
}
@Override
public ActionResultType onSneakWrenched(BlockState state, ItemUseContext context) {
World world = context.getWorld();
BlockPos pos = context.getPos();
BlockState testState = state.with(BACKWARDS, !state.get(BACKWARDS));
if (isStableWith(testState, world, pos))
placeAndNotify(testState, pos, world);
return ActionResultType.SUCCESS;
}
private void placeAndNotify(BlockState state, BlockPos pos, World world) {
world.setBlockState(pos, state, 3);
world.notifyNeighborsOfStateChange(pos.down(), this);
if (state.get(SHAPE).isAscending())
world.notifyNeighborsOfStateChange(pos.up(), this);
}
@Nullable
private BlockPos findNextRail(BlockPos from, IBlockReader world, boolean reversed) {
BlockState current = world.getBlockState(from);
if (!(current.getBlock() instanceof ControllerRailBlock))
return null;
Vec3i accelerationVec = getAccelerationVector(current);
BlockPos baseTestPos = reversed ? from.subtract(accelerationVec) : from.add(accelerationVec);
for (BlockPos testPos : new BlockPos[]{baseTestPos, baseTestPos.down(), baseTestPos.up()}) {
if (testPos.getY() > from.getY() && !current.get(SHAPE).isAscending())
continue;
BlockState testState = world.getBlockState(testPos);
if (testState.getBlock() instanceof ControllerRailBlock && getAccelerationVector(testState).equals(accelerationVec))
return testPos;
}
return null;
}
@Override
public boolean hasComparatorInputOverride(BlockState state) {
return true;
}
@Override
public int getComparatorInputOverride(BlockState state, World world, BlockPos pos) {
return state.get(POWER);
}
}

View file

@ -251,7 +251,7 @@ public class BasinTileEntity extends SmartTileEntity implements ITickableTileEnt
newFacing = test;
}
if (preferredSpoutput != null && BasinBlock.canOutputTo(world, pos, preferredSpoutput))
if (preferredSpoutput != null && BasinBlock.canOutputTo(world, pos, preferredSpoutput) && preferredSpoutput != Direction.UP)
newFacing = preferredSpoutput;
if (newFacing != currentFacing)

View file

@ -9,6 +9,7 @@ import java.util.Vector;
import java.util.function.BiFunction;
import java.util.function.Function;
import com.simibubi.create.content.contraptions.components.tracks.ControllerRailBlock;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.collect.ImmutableList;
@ -434,4 +435,47 @@ public class BlockStateGen {
.end();
}
public static NonNullBiConsumer<DataGenContext<Block, ControllerRailBlock>, RegistrateBlockstateProvider> controllerRail() {
return (c, p) -> p.getVariantBuilder(c.get())
.forAllStates(state -> {
int power = state.get(ControllerRailBlock.POWER);
boolean backwards = state.get(ControllerRailBlock.BACKWARDS);
String powerStr = power == 0 ? "off" : (power == 15 ? "on" : "analog");
RailShape shape = state.get(ControllerRailBlock.SHAPE);
String shapeName = shape.isAscending() ? RailShape.ASCENDING_NORTH.getName() : RailShape.NORTH_SOUTH.getName();
int rotation = 0;
switch (shape) {
case EAST_WEST:
rotation += 270;
shapeName = RailShape.NORTH_SOUTH.getName();
break;
case ASCENDING_EAST:
rotation += 90;
break;
case ASCENDING_SOUTH:
rotation += 180;
break;
case ASCENDING_WEST:
rotation += 270;
break;
default:
break;
}
if (backwards) {
rotation += 180;
shapeName = shape.isAscending() ? RailShape.ASCENDING_SOUTH.getName() : RailShape.NORTH_SOUTH.getName();
}
return ConfiguredModel.builder()
.modelFile(p.models()
.getExistingFile(p.modLoc(
"block/" + c.getName() + "/block_" + shapeName + "_" +
powerStr)))
.rotationY(rotation % 360)
.build();
});
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_rail_raised_ne",
"textures": {
"rail": "create:block/controller_rail_analog"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_rail_raised_ne",
"textures": {
"rail": "create:block/controller_rail_off"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_rail_raised_ne",
"textures": {
"rail": "create:block/controller_rail_on"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_rail_raised_sw",
"textures": {
"rail": "create:block/controller_rail_analog"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_rail_raised_sw",
"textures": {
"rail": "create:block/controller_rail_off"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_rail_raised_sw",
"textures": {
"rail": "create:block/controller_rail_on"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/rail_flat",
"textures": {
"rail": "create:block/controller_rail_analog"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/rail_flat",
"textures": {
"rail": "create:block/controller_rail_off"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/rail_flat",
"textures": {
"rail": "create:block/controller_rail_on"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B