mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-10 20:11:35 +01:00
Ponder and Polish
- Ponder scenes for depot, chute and smart chute - Fixed saws and drains ejecting items when mounted funnel is backstuffed - Fixed extracting funnels allowing items to be inserted by arms and belt input - Vanilla items in ponder tags are marked purple instead of red - Vertical funnels now block chutes - Large cogs can no longer be placed right next to crafters or millstones - Mechanical Arms now stall targeted belt items
This commit is contained in:
parent
f6cfd377a7
commit
a356f8a91a
47 changed files with 1174 additions and 358 deletions
|
@ -140,7 +140,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
|
||||
48086bf71a824faf14841b698050cc8544b09a9b assets/create/blockstates/fluid_pipe.json
|
||||
37bc041b7449dc4d7962225e606125ba1b188974 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
|
||||
|
@ -337,7 +337,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl
|
|||
d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json
|
||||
92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json
|
||||
61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json
|
||||
4439fc83a8c7370ab44b211a3fd48abde20a4728 assets/create/blockstates/radial_chassis.json
|
||||
8d7e653bfd9846e684a0d3725595714a19201017 assets/create/blockstates/radial_chassis.json
|
||||
45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json
|
||||
da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json
|
||||
722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json
|
||||
|
@ -402,19 +402,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
2b12f3cf99e498899207a8c4855210e7b5dc55cd assets/create/lang/en_ud.json
|
||||
cb22b256847375aa973491ca51858a704a3edf2c assets/create/lang/en_us.json
|
||||
d2c8c43f990f7844f3dea35fd0a98ee7f4d40576 assets/create/lang/unfinished/de_de.json
|
||||
69ce4c93ab2d6afd93352fd269be68f4c53ed963 assets/create/lang/unfinished/es_es.json
|
||||
2a63880625f84655bee39fa5ff0e4d5f0933f8f9 assets/create/lang/unfinished/es_mx.json
|
||||
a568c0d8943021d8f438d80692a62e7987b35c7d assets/create/lang/unfinished/fr_fr.json
|
||||
b21c69ffdb9f09324bfb51fb843af000bf9c2c13 assets/create/lang/unfinished/it_it.json
|
||||
230ab0c62a7e8b6a6e0c68b3081f06e0148e120a assets/create/lang/unfinished/ja_jp.json
|
||||
c42a6c5d2ae9b97d4c79751cd7f60f70864f8c36 assets/create/lang/unfinished/ko_kr.json
|
||||
b640c6137991b8e25139105a44d0d13b0b66ed18 assets/create/lang/unfinished/nl_nl.json
|
||||
b9c2f45ac232045e6c1124d48017154504096dbd assets/create/lang/unfinished/pt_br.json
|
||||
d69e5e26891d5ff7a1d93a1f5cc0bd775e1dfa08 assets/create/lang/unfinished/ru_ru.json
|
||||
dbf513ee2276e1460adf3f3f50f336d104a74884 assets/create/lang/unfinished/zh_cn.json
|
||||
40fd381d585db529a20f31adf001ecaf6dc77104 assets/create/lang/unfinished/zh_tw.json
|
||||
3522bc1dd15fd219aaf506766fb96be5f65b1939 assets/create/lang/en_us.json
|
||||
d389c171d3d6a7382fb5b2e80b14e9bee53d8179 assets/create/lang/unfinished/de_de.json
|
||||
b3caab7bb37be53ea93895cbaae2081452cd095e assets/create/lang/unfinished/es_es.json
|
||||
0039068794faea032b0a39c954f142e2c8e4dfc1 assets/create/lang/unfinished/es_mx.json
|
||||
1e34083359caea11cf9fdbb3f04a5881ea62a55e assets/create/lang/unfinished/fr_fr.json
|
||||
c9abd10d296055f56877317a5c7dee14d0e33bf5 assets/create/lang/unfinished/it_it.json
|
||||
83298d57034c2bb54924dff2d9b5257502ac3b9a assets/create/lang/unfinished/ja_jp.json
|
||||
2c0e5fbfc813949d973e9f95af9501ed65b80b82 assets/create/lang/unfinished/ko_kr.json
|
||||
4b3b113e5f9351b741974bc18d13d9d648d38f91 assets/create/lang/unfinished/nl_nl.json
|
||||
9bddfffdf5349353d37d7003546c94799c6e812d assets/create/lang/unfinished/pt_br.json
|
||||
5119b6690e8faa7e25450674caebf3c9c53fd54b assets/create/lang/unfinished/ru_ru.json
|
||||
f11eb922b49753b60894f0dfe8baabe004d13e05 assets/create/lang/unfinished/zh_cn.json
|
||||
017a9c9cc6f4538c8c497097cbd59f590b4af160 assets/create/lang/unfinished/zh_tw.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
|
||||
|
@ -1585,7 +1585,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
|
|||
9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json
|
||||
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
|
||||
e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb assets/create/sounds.json
|
||||
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json
|
||||
5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json
|
||||
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
|
||||
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
|
||||
356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json
|
||||
|
|
|
@ -181,10 +181,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "true",
|
||||
"east": "false",
|
||||
"west": "true",
|
||||
"north": "false",
|
||||
"east": "false"
|
||||
"south": "true",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lu_y"
|
||||
|
@ -192,10 +192,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "true",
|
||||
"east": "true",
|
||||
"west": "false",
|
||||
"north": "false",
|
||||
"east": "true"
|
||||
"south": "true",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ru_y"
|
||||
|
@ -203,10 +203,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "false",
|
||||
"west": "true",
|
||||
"north": "true",
|
||||
"east": "false"
|
||||
"south": "false",
|
||||
"north": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ld_y"
|
||||
|
@ -214,10 +214,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "true",
|
||||
"west": "false",
|
||||
"north": "true",
|
||||
"east": "true"
|
||||
"south": "false",
|
||||
"north": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/rd_y"
|
||||
|
@ -225,10 +225,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"south": "true",
|
||||
"west": "false",
|
||||
"north": "true",
|
||||
"east": "false"
|
||||
"north": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ud_y"
|
||||
|
@ -236,10 +236,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"south": "true",
|
||||
"west": "false",
|
||||
"north": "false",
|
||||
"east": "false"
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ud_y"
|
||||
|
@ -247,10 +247,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"north": "true",
|
||||
"east": "false"
|
||||
"south": "false",
|
||||
"north": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ud_y"
|
||||
|
@ -258,10 +258,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "true",
|
||||
"west": "true",
|
||||
"north": "false",
|
||||
"east": "true"
|
||||
"south": "false",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lr_y"
|
||||
|
@ -269,10 +269,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "false",
|
||||
"west": "true",
|
||||
"north": "false",
|
||||
"east": "false"
|
||||
"south": "false",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lr_y"
|
||||
|
@ -280,10 +280,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "true",
|
||||
"west": "false",
|
||||
"north": "false",
|
||||
"east": "true"
|
||||
"south": "false",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lr_y"
|
||||
|
@ -291,10 +291,10 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"north": "false",
|
||||
"east": "false"
|
||||
"south": "false",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/none_y"
|
||||
|
@ -303,9 +303,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "true",
|
||||
"east": "true",
|
||||
"west": "false",
|
||||
"east": "true"
|
||||
"up": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lu_z"
|
||||
|
@ -314,9 +314,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "true",
|
||||
"east": "false",
|
||||
"west": "true",
|
||||
"east": "false"
|
||||
"up": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ru_z"
|
||||
|
@ -325,9 +325,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "true",
|
||||
"up": "false",
|
||||
"east": "true",
|
||||
"west": "false",
|
||||
"east": "true"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ld_z"
|
||||
|
@ -336,9 +336,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "true",
|
||||
"up": "false",
|
||||
"east": "false",
|
||||
"west": "true",
|
||||
"east": "false"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/rd_z"
|
||||
|
@ -347,9 +347,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "true",
|
||||
"up": "true",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"east": "false"
|
||||
"up": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ud_z"
|
||||
|
@ -358,9 +358,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "true",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"east": "false"
|
||||
"up": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ud_z"
|
||||
|
@ -369,9 +369,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "true",
|
||||
"up": "false",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"east": "false"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/ud_z"
|
||||
|
@ -380,9 +380,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "false",
|
||||
"east": "true",
|
||||
"west": "true",
|
||||
"east": "true"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lr_z"
|
||||
|
@ -391,9 +391,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "false",
|
||||
"east": "true",
|
||||
"west": "false",
|
||||
"east": "true"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lr_z"
|
||||
|
@ -402,9 +402,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "false",
|
||||
"east": "false",
|
||||
"west": "true",
|
||||
"east": "false"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/lr_z"
|
||||
|
@ -413,9 +413,9 @@
|
|||
{
|
||||
"when": {
|
||||
"down": "false",
|
||||
"up": "false",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"east": "false"
|
||||
"up": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/none_z"
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_south": "true"
|
||||
"sticky_south": "true",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x_sticky",
|
||||
|
@ -39,8 +39,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_south": "true"
|
||||
"sticky_south": "true",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y_sticky"
|
||||
|
@ -48,8 +48,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_south": "true"
|
||||
"sticky_south": "true",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x_sticky",
|
||||
|
@ -59,8 +59,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_south": "false"
|
||||
"sticky_south": "false",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x",
|
||||
|
@ -69,8 +69,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_south": "false"
|
||||
"sticky_south": "false",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y"
|
||||
|
@ -78,8 +78,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_south": "false"
|
||||
"sticky_south": "false",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x",
|
||||
|
@ -89,8 +89,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_west": "true"
|
||||
"sticky_west": "true",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x_sticky",
|
||||
|
@ -99,8 +99,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_west": "true"
|
||||
"sticky_west": "true",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y_sticky",
|
||||
|
@ -109,8 +109,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_west": "true"
|
||||
"sticky_west": "true",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_z_sticky",
|
||||
|
@ -119,8 +119,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_west": "false"
|
||||
"sticky_west": "false",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x",
|
||||
|
@ -129,8 +129,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_west": "false"
|
||||
"sticky_west": "false",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y",
|
||||
|
@ -139,8 +139,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_west": "false"
|
||||
"sticky_west": "false",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_z",
|
||||
|
@ -149,8 +149,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_north": "true"
|
||||
"sticky_north": "true",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x_sticky"
|
||||
|
@ -158,8 +158,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_north": "true"
|
||||
"sticky_north": "true",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y_sticky",
|
||||
|
@ -168,8 +168,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_north": "true"
|
||||
"sticky_north": "true",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x_sticky",
|
||||
|
@ -178,8 +178,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_north": "false"
|
||||
"sticky_north": "false",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x"
|
||||
|
@ -187,8 +187,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_north": "false"
|
||||
"sticky_north": "false",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y",
|
||||
|
@ -197,8 +197,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_north": "false"
|
||||
"sticky_north": "false",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x",
|
||||
|
@ -207,8 +207,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_east": "true"
|
||||
"sticky_east": "true",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x_sticky",
|
||||
|
@ -217,8 +217,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_east": "true"
|
||||
"sticky_east": "true",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y_sticky",
|
||||
|
@ -227,8 +227,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_east": "true"
|
||||
"sticky_east": "true",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_z_sticky"
|
||||
|
@ -236,8 +236,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "x",
|
||||
"sticky_east": "false"
|
||||
"sticky_east": "false",
|
||||
"axis": "x"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_x",
|
||||
|
@ -246,8 +246,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "y",
|
||||
"sticky_east": "false"
|
||||
"sticky_east": "false",
|
||||
"axis": "y"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_y",
|
||||
|
@ -256,8 +256,8 @@
|
|||
},
|
||||
{
|
||||
"when": {
|
||||
"axis": "z",
|
||||
"sticky_east": "false"
|
||||
"sticky_east": "false",
|
||||
"axis": "z"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/radial_chassis_side_z"
|
||||
|
|
|
@ -1906,7 +1906,7 @@
|
|||
"create.ponder.belt_directions.text_3": "2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "Moving belts will transport Items and other Entities",
|
||||
|
@ -1957,6 +1957,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2021,6 +2031,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "Using Depots",
|
||||
"create.ponder.depot.text_1": "Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2068,7 +2084,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2294,6 +2310,12 @@
|
|||
"create.ponder.shaft_casing.header": "Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1425",
|
||||
"_": "Missing Localizations: 1443",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 456",
|
||||
"_": "Missing Localizations: 474",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1355",
|
||||
"_": "Missing Localizations: 1373",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1137",
|
||||
"_": "Missing Localizations: 1155",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 473",
|
||||
"_": "Missing Localizations: 491",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 480",
|
||||
"_": "Missing Localizations: 498",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 526",
|
||||
"_": "Missing Localizations: 544",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1624",
|
||||
"_": "Missing Localizations: 1642",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1690",
|
||||
"_": "Missing Localizations: 1708",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 476",
|
||||
"_": "Missing Localizations: 494",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 474",
|
||||
"_": "Missing Localizations: 492",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 479",
|
||||
"_": "Missing Localizations: 497",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1907,7 +1907,7 @@
|
|||
"create.ponder.belt_directions.text_3": "UNLOCALIZED: 2. They can connect diagonally",
|
||||
"create.ponder.belt_directions.text_4": "UNLOCALIZED: 3. They can connect vertically",
|
||||
"create.ponder.belt_directions.text_5": "UNLOCALIZED: 4. And they can connect vertical shafts horizontally",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions.\nBelts can span any Length between 2 and 20 blocks",
|
||||
"create.ponder.belt_directions.text_6": "UNLOCALIZED: These are all possible directions. Belts can span any Length between 2 and 20 blocks",
|
||||
|
||||
"create.ponder.belt_transport.header": "UNLOCALIZED: Using Mechanical Belts for Logistics",
|
||||
"create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities",
|
||||
|
@ -1958,6 +1958,16 @@
|
|||
"create.ponder.chain_gearshift.text_5": "UNLOCALIZED: Using analog signals, the ratio can be adjusted more precisely between 1 and 2",
|
||||
"create.ponder.chain_gearshift.text_6": "UNLOCALIZED: 12 RPM",
|
||||
|
||||
"create.ponder.chute.header": "UNLOCALIZED: Transporting Items downward via Chutes",
|
||||
"create.ponder.chute.text_1": "UNLOCALIZED: Chutes can transport items vertically from and to inventories",
|
||||
"create.ponder.chute.text_2": "UNLOCALIZED: Using the Wrench, a window can be created",
|
||||
"create.ponder.chute.text_3": "UNLOCALIZED: Placing chutes targeting the side faces of another will make it diagonal",
|
||||
|
||||
"create.ponder.chute_upward.header": "UNLOCALIZED: Transporting Items upward via Chutes",
|
||||
"create.ponder.chute_upward.text_1": "UNLOCALIZED: Using Encased Fans at the top or bottom, a Chute can move items upward",
|
||||
"create.ponder.chute_upward.text_2": "UNLOCALIZED: Inspecting chutes with Engineers' Goggles reveals information about the movement direction",
|
||||
"create.ponder.chute_upward.text_3": "UNLOCALIZED: On the 'blocked' end, items will have to be inserted/taken from the sides",
|
||||
|
||||
"create.ponder.clockwork_bearing.header": "UNLOCALIZED: Animating Structures using Clockwork Bearings",
|
||||
"create.ponder.clockwork_bearing.text_1": "UNLOCALIZED: Clockwork Bearings attach to blocks in front of them",
|
||||
"create.ponder.clockwork_bearing.text_2": "UNLOCALIZED: Upon receiving Rotational Force, the structure will be rotated according to the hour of the day",
|
||||
|
@ -2022,6 +2032,12 @@
|
|||
"create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles",
|
||||
"create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle",
|
||||
|
||||
"create.ponder.depot.header": "UNLOCALIZED: Using Depots",
|
||||
"create.ponder.depot.text_1": "UNLOCALIZED: Depots can serve as 'stationary' belt elements",
|
||||
"create.ponder.depot.text_2": "UNLOCALIZED: Right-Click to manually place or remove Items from it",
|
||||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners",
|
||||
"create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it",
|
||||
"create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly",
|
||||
|
@ -2069,7 +2085,7 @@
|
|||
"create.ponder.funnel_intro.text_1": "UNLOCALIZED: Funnels are ideal for transferring items from and to inventories.",
|
||||
|
||||
"create.ponder.funnel_redstone.header": "UNLOCALIZED: Redstone control",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting.",
|
||||
"create.ponder.funnel_redstone.text_1": "UNLOCALIZED: Redstone power will prevent any funnel from acting",
|
||||
|
||||
"create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer",
|
||||
"create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.",
|
||||
|
@ -2295,6 +2311,12 @@
|
|||
"create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts",
|
||||
"create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts",
|
||||
|
||||
"create.ponder.smart_chute.header": "UNLOCALIZED: Filtering Items using Smart Chutes",
|
||||
"create.ponder.smart_chute.text_1": "UNLOCALIZED: Smart Chutes are vertical chutes with additional control",
|
||||
"create.ponder.smart_chute.text_2": "UNLOCALIZED: Items in the filter slot specify what exactly they can extract and transfer",
|
||||
"create.ponder.smart_chute.text_3": "UNLOCALIZED: Use the Mouse Wheel to specify the extracted stack size",
|
||||
"create.ponder.smart_chute.text_4": "UNLOCALIZED: Redstone power will prevent Smart Chutes from acting.",
|
||||
|
||||
"create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer",
|
||||
"create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components",
|
||||
"create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge",
|
||||
|
|
|
@ -28,8 +28,8 @@
|
|||
"trigger": "create:bracket_apply",
|
||||
"conditions": {
|
||||
"accepted_entries": [
|
||||
"create:cogwheel",
|
||||
"create:large_cogwheel"
|
||||
"create:large_cogwheel",
|
||||
"create:cogwheel"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
|
@ -7,6 +7,8 @@ import java.util.Random;
|
|||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import com.simibubi.create.AllRecipeTypes;
|
||||
import com.simibubi.create.content.contraptions.components.actors.BlockBreakingKineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingInventory;
|
||||
|
@ -57,15 +59,13 @@ import net.minecraftforge.common.util.LazyOptional;
|
|||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
@MethodsReturnNonnullByDefault
|
||||
public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
||||
|
||||
private static final Object cuttingRecipesKey = new Object();
|
||||
public static final LazyValue<IRecipeType<?>> woodcuttingRecipeType = new LazyValue<>(() -> Registry.RECIPE_TYPE.getOrDefault(new ResourceLocation("druidcraft", "woodcutting")));
|
||||
public static final LazyValue<IRecipeType<?>> woodcuttingRecipeType =
|
||||
new LazyValue<>(() -> Registry.RECIPE_TYPE.getOrDefault(new ResourceLocation("druidcraft", "woodcutting")));
|
||||
|
||||
public ProcessingInventory inventory;
|
||||
private int recipeIndex;
|
||||
|
@ -151,10 +151,14 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
|||
continue;
|
||||
ItemStack tryExportingToBeltFunnel = getBehaviour(DirectBeltInputBehaviour.TYPE)
|
||||
.tryExportingToBeltFunnel(stack, itemMovementFacing.getOpposite());
|
||||
if (tryExportingToBeltFunnel.getCount() != stack.getCount()) {
|
||||
inventory.setStackInSlot(slot, tryExportingToBeltFunnel);
|
||||
notifyUpdate();
|
||||
return;
|
||||
if (tryExportingToBeltFunnel != null) {
|
||||
if (tryExportingToBeltFunnel.getCount() != stack.getCount()) {
|
||||
inventory.setStackInSlot(slot, tryExportingToBeltFunnel);
|
||||
notifyUpdate();
|
||||
return;
|
||||
}
|
||||
if (!tryExportingToBeltFunnel.isEmpty())
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -277,19 +281,19 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
|||
|
||||
private List<? extends IRecipe<?>> getRecipes() {
|
||||
/*
|
||||
Predicate<IRecipe<?>> types = AllConfigs.SERVER.recipes.allowStonecuttingOnSaw.get()
|
||||
? RecipeConditions.isOfType(IRecipeType.STONECUTTING, AllRecipeTypes.CUTTING.getType())
|
||||
: RecipeConditions.isOfType(AllRecipeTypes.CUTTING.getType());
|
||||
|
||||
* Predicate<IRecipe<?>> types =
|
||||
* AllConfigs.SERVER.recipes.allowStonecuttingOnSaw.get() ?
|
||||
* RecipeConditions.isOfType(IRecipeType.STONECUTTING,
|
||||
* AllRecipeTypes.CUTTING.getType()) :
|
||||
* RecipeConditions.isOfType(AllRecipeTypes.CUTTING.getType());
|
||||
*
|
||||
*/
|
||||
|
||||
Predicate<IRecipe<?>> types = RecipeConditions.isOfType(
|
||||
AllRecipeTypes.CUTTING.getType(),
|
||||
Predicate<IRecipe<?>> types = RecipeConditions.isOfType(AllRecipeTypes.CUTTING.getType(),
|
||||
AllConfigs.SERVER.recipes.allowStonecuttingOnSaw.get() ? IRecipeType.STONECUTTING : null,
|
||||
AllConfigs.SERVER.recipes.allowWoodcuttingOnSaw.get() ? woodcuttingRecipeType.getValue() : null
|
||||
);
|
||||
AllConfigs.SERVER.recipes.allowWoodcuttingOnSaw.get() ? woodcuttingRecipeType.getValue() : null);
|
||||
|
||||
List<IRecipe<?>> startedSearch = RecipeFinder.get(cuttingRecipesKey, world, types);
|
||||
List<IRecipe<?>> startedSearch = RecipeFinder.get(cuttingRecipesKey, world, types);
|
||||
return startedSearch.stream()
|
||||
.filter(RecipeConditions.outputMatchesFilter(filtering))
|
||||
.filter(RecipeConditions.firstIngredientMatches(inventory.getStackInSlot(0)))
|
||||
|
|
|
@ -99,7 +99,7 @@ public class ItemDrainTileEntity extends SmartTileEntity implements IHaveGoggleI
|
|||
}
|
||||
|
||||
boolean onClient = world.isRemote && !isVirtual();
|
||||
|
||||
|
||||
if (processingTicks > 0) {
|
||||
heldItem.prevBeltPosition = .5f;
|
||||
boolean wasAtBeginning = processingTicks == FILLING_TIME;
|
||||
|
@ -129,13 +129,17 @@ public class ItemDrainTileEntity extends SmartTileEntity implements IHaveGoggleI
|
|||
|
||||
ItemStack tryExportingToBeltFunnel = getBehaviour(DirectBeltInputBehaviour.TYPE)
|
||||
.tryExportingToBeltFunnel(heldItem.stack, side.getOpposite());
|
||||
if (tryExportingToBeltFunnel.getCount() != heldItem.stack.getCount()) {
|
||||
if (tryExportingToBeltFunnel.isEmpty())
|
||||
heldItem = null;
|
||||
else
|
||||
heldItem.stack = tryExportingToBeltFunnel;
|
||||
notifyUpdate();
|
||||
return;
|
||||
if (tryExportingToBeltFunnel != null) {
|
||||
if (tryExportingToBeltFunnel.getCount() != heldItem.stack.getCount()) {
|
||||
if (tryExportingToBeltFunnel.isEmpty())
|
||||
heldItem = null;
|
||||
else
|
||||
heldItem.stack = tryExportingToBeltFunnel;
|
||||
notifyUpdate();
|
||||
return;
|
||||
}
|
||||
if (!tryExportingToBeltFunnel.isEmpty())
|
||||
return;
|
||||
}
|
||||
|
||||
BlockPos nextPosition = pos.offset(side);
|
||||
|
|
|
@ -237,7 +237,8 @@ public class BeltTileEntity extends KineticTileEntity implements ILightListener
|
|||
|
||||
if (casingBefore == casing)
|
||||
return;
|
||||
requestModelDataUpdate();
|
||||
if (!isVirtual())
|
||||
requestModelDataUpdate();
|
||||
if (hasWorld())
|
||||
world.notifyBlockUpdate(getPos(), getBlockState(), getBlockState(), 16);
|
||||
}
|
||||
|
@ -290,10 +291,8 @@ public class BeltTileEntity extends KineticTileEntity implements ILightListener
|
|||
}
|
||||
|
||||
public boolean isController() {
|
||||
return controller != null &&
|
||||
pos.getX() == controller.getX() &&
|
||||
pos.getY() == controller.getY() &&
|
||||
pos.getZ() == controller.getZ();
|
||||
return controller != null && pos.getX() == controller.getX() && pos.getY() == controller.getY()
|
||||
&& pos.getZ() == controller.getZ();
|
||||
}
|
||||
|
||||
public float getBeltMovementSpeed() {
|
||||
|
|
|
@ -107,6 +107,12 @@ public class BeltInventory {
|
|||
// Don't move if held by processing (client)
|
||||
if (world.isRemote && currentItem.locked)
|
||||
continue;
|
||||
|
||||
// Don't move if held by external components
|
||||
if (currentItem.lockedExternally) {
|
||||
currentItem.lockedExternally = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Don't move if other items are waiting in front
|
||||
float currentPos = currentItem.beltPosition;
|
||||
|
|
|
@ -20,6 +20,7 @@ public class TransportedItemStack implements Comparable<TransportedItemStack> {
|
|||
public int insertedAt;
|
||||
public Direction insertedFrom;
|
||||
public boolean locked;
|
||||
public boolean lockedExternally;
|
||||
|
||||
public float prevBeltPosition;
|
||||
public float prevSideOffset;
|
||||
|
@ -73,7 +74,10 @@ public class TransportedItemStack implements Comparable<TransportedItemStack> {
|
|||
nbt.putInt("InSegment", insertedAt);
|
||||
nbt.putInt("Angle", angle);
|
||||
nbt.putInt("InDirection", insertedFrom.getIndex());
|
||||
nbt.putBoolean("Locked", locked);
|
||||
if (locked)
|
||||
nbt.putBoolean("Locked", locked);
|
||||
if (lockedExternally)
|
||||
nbt.putBoolean("LockedExternally", lockedExternally);
|
||||
return nbt;
|
||||
}
|
||||
|
||||
|
@ -87,6 +91,7 @@ public class TransportedItemStack implements Comparable<TransportedItemStack> {
|
|||
stack.angle = nbt.getInt("Angle");
|
||||
stack.insertedFrom = Direction.byIndex(nbt.getInt("InDirection"));
|
||||
stack.locked = nbt.getBoolean("Locked");
|
||||
stack.lockedExternally = nbt.getBoolean("LockedExternally");
|
||||
return stack;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,102 +26,114 @@ import net.minecraft.world.World;
|
|||
|
||||
public class CogWheelBlock extends AbstractShaftBlock {
|
||||
|
||||
boolean isLarge;
|
||||
boolean isLarge;
|
||||
|
||||
private CogWheelBlock(boolean large, Properties properties) {
|
||||
super(properties);
|
||||
isLarge = large;
|
||||
}
|
||||
private CogWheelBlock(boolean large, Properties properties) {
|
||||
super(properties);
|
||||
isLarge = large;
|
||||
}
|
||||
|
||||
public static CogWheelBlock small(Properties properties) {
|
||||
return new CogWheelBlock(false, properties);
|
||||
}
|
||||
public static CogWheelBlock small(Properties properties) {
|
||||
return new CogWheelBlock(false, properties);
|
||||
}
|
||||
|
||||
public static CogWheelBlock large(Properties properties) {
|
||||
return new CogWheelBlock(true, properties);
|
||||
}
|
||||
public static CogWheelBlock large(Properties properties) {
|
||||
return new CogWheelBlock(true, properties);
|
||||
}
|
||||
|
||||
public static boolean isSmallCog(BlockState state) {
|
||||
return AllBlocks.COGWHEEL.has(state);
|
||||
}
|
||||
public static boolean isSmallCog(BlockState state) {
|
||||
return AllBlocks.COGWHEEL.has(state);
|
||||
}
|
||||
|
||||
public static boolean isLargeCog(BlockState state) {
|
||||
return AllBlocks.LARGE_COGWHEEL.has(state);
|
||||
}
|
||||
public static boolean isLargeCog(BlockState state) {
|
||||
return AllBlocks.LARGE_COGWHEEL.has(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) {
|
||||
return (isLarge ? AllShapes.LARGE_GEAR : AllShapes.SMALL_GEAR).get(state.get(AXIS));
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) {
|
||||
return (isLarge ? AllShapes.LARGE_GEAR : AllShapes.SMALL_GEAR).get(state.get(AXIS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) {
|
||||
for (Direction facing : Iterate.directions) {
|
||||
if (facing.getAxis() == state.get(AXIS))
|
||||
continue;
|
||||
@Override
|
||||
public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) {
|
||||
for (Direction facing : Iterate.directions) {
|
||||
if (facing.getAxis() == state.get(AXIS))
|
||||
continue;
|
||||
|
||||
BlockState blockState = worldIn.getBlockState(pos.offset(facing));
|
||||
if (blockState.has(AXIS) && facing.getAxis() == blockState.get(AXIS))
|
||||
continue;
|
||||
|
||||
if (isLargeCog(blockState) || isLarge && isSmallCog(blockState))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
BlockPos offsetPos = pos.offset(facing);
|
||||
BlockState blockState = worldIn.getBlockState(offsetPos);
|
||||
if (blockState.has(AXIS) && facing.getAxis() == blockState.get(AXIS))
|
||||
continue;
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockItemUseContext context) {
|
||||
BlockPos placedOnPos = context.getPos().offset(context.getFace().getOpposite());
|
||||
World world = context.getWorld();
|
||||
BlockState placedAgainst = world.getBlockState(placedOnPos);
|
||||
Block block = placedAgainst.getBlock();
|
||||
boolean smallCog = isSmallCog(blockState);
|
||||
if (!smallCog && blockState.getBlock() instanceof IRotate)
|
||||
smallCog = ((IRotate) blockState.getBlock()).hasIntegratedCogwheel(worldIn, offsetPos, blockState);
|
||||
|
||||
if (context.getPlayer() != null && context.getPlayer().isSneaking())
|
||||
return this.getDefaultState().with(AXIS, context.getFace().getAxis());
|
||||
|
||||
BlockState stateBelow = world.getBlockState(context.getPos()
|
||||
.down());
|
||||
IFluidState ifluidstate = context.getWorld().getFluidState(context.getPos());
|
||||
if (AllBlocks.ROTATION_SPEED_CONTROLLER.has(stateBelow) && isLarge) {
|
||||
return this.getDefaultState()
|
||||
.with(BlockStateProperties.WATERLOGGED, ifluidstate.getFluid() == Fluids.WATER)
|
||||
.with(AXIS, stateBelow.get(SpeedControllerBlock.HORIZONTAL_AXIS) == Axis.X ? Axis.Z : Axis.X);
|
||||
}
|
||||
if (isLargeCog(blockState) || isLarge && smallCog)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!(block instanceof IRotate)
|
||||
|| !(((IRotate) block).hasIntegratedCogwheel(world, placedOnPos, placedAgainst))) {
|
||||
Axis preferredAxis = getPreferredAxis(context);
|
||||
if (preferredAxis != null)
|
||||
return this.getDefaultState()
|
||||
.with(AXIS, preferredAxis)
|
||||
.with(BlockStateProperties.WATERLOGGED, ifluidstate.getFluid() == Fluids.WATER);
|
||||
return this.getDefaultState()
|
||||
.with(AXIS, context.getFace().getAxis())
|
||||
.with(BlockStateProperties.WATERLOGGED, ifluidstate.getFluid() == Fluids.WATER);
|
||||
}
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockItemUseContext context) {
|
||||
BlockPos placedOnPos = context.getPos()
|
||||
.offset(context.getFace()
|
||||
.getOpposite());
|
||||
World world = context.getWorld();
|
||||
BlockState placedAgainst = world.getBlockState(placedOnPos);
|
||||
Block block = placedAgainst.getBlock();
|
||||
|
||||
return getDefaultState().with(AXIS, ((IRotate) block).getRotationAxis(placedAgainst));
|
||||
}
|
||||
if (context.getPlayer() != null && context.getPlayer()
|
||||
.isSneaking())
|
||||
return this.getDefaultState()
|
||||
.with(AXIS, context.getFace()
|
||||
.getAxis());
|
||||
|
||||
@Override
|
||||
public float getParticleTargetRadius() {
|
||||
return isLarge ? 1.125f : .65f;
|
||||
}
|
||||
BlockState stateBelow = world.getBlockState(context.getPos()
|
||||
.down());
|
||||
IFluidState ifluidstate = context.getWorld()
|
||||
.getFluidState(context.getPos());
|
||||
if (AllBlocks.ROTATION_SPEED_CONTROLLER.has(stateBelow) && isLarge) {
|
||||
return this.getDefaultState()
|
||||
.with(BlockStateProperties.WATERLOGGED, ifluidstate.getFluid() == Fluids.WATER)
|
||||
.with(AXIS, stateBelow.get(SpeedControllerBlock.HORIZONTAL_AXIS) == Axis.X ? Axis.Z : Axis.X);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getParticleInitialRadius() {
|
||||
return isLarge ? 1f : .75f;
|
||||
}
|
||||
if (!(block instanceof IRotate)
|
||||
|| !(((IRotate) block).hasIntegratedCogwheel(world, placedOnPos, placedAgainst))) {
|
||||
Axis preferredAxis = getPreferredAxis(context);
|
||||
if (preferredAxis != null)
|
||||
return this.getDefaultState()
|
||||
.with(AXIS, preferredAxis)
|
||||
.with(BlockStateProperties.WATERLOGGED, ifluidstate.getFluid() == Fluids.WATER);
|
||||
return this.getDefaultState()
|
||||
.with(AXIS, context.getFace()
|
||||
.getAxis())
|
||||
.with(BlockStateProperties.WATERLOGGED, ifluidstate.getFluid() == Fluids.WATER);
|
||||
}
|
||||
|
||||
public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) {
|
||||
items.add(new ItemStack(this));
|
||||
}
|
||||
return getDefaultState().with(AXIS, ((IRotate) block).getRotationAxis(placedAgainst));
|
||||
}
|
||||
|
||||
// IRotate
|
||||
@Override
|
||||
public float getParticleTargetRadius() {
|
||||
return isLarge ? 1.125f : .65f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasIntegratedCogwheel(IWorldReader world, BlockPos pos, BlockState state) {
|
||||
return !isLarge;
|
||||
}
|
||||
@Override
|
||||
public float getParticleInitialRadius() {
|
||||
return isLarge ? 1f : .75f;
|
||||
}
|
||||
|
||||
public void fillItemGroup(ItemGroup group, NonNullList<ItemStack> items) {
|
||||
items.add(new ItemStack(this));
|
||||
}
|
||||
|
||||
// IRotate
|
||||
|
||||
@Override
|
||||
public boolean hasIntegratedCogwheel(IWorldReader world, BlockPos pos, BlockState state) {
|
||||
return !isLarge;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ import com.mojang.blaze3d.matrix.MatrixStack;
|
|||
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.render.backend.Backend;
|
||||
import com.simibubi.create.foundation.render.backend.FastRenderDispatcher;
|
||||
import com.simibubi.create.foundation.tileEntity.renderer.SmartTileEntityRenderer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
|
|
@ -1,19 +1,22 @@
|
|||
package com.simibubi.create.content.logistics.block.belts.tunnel;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.simibubi.create.content.logistics.packet.TunnelFlapPacket;
|
||||
import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue;
|
||||
import com.simibubi.create.foundation.networking.AllPackets;
|
||||
import com.simibubi.create.foundation.render.backend.FastRenderDispatcher;
|
||||
import com.simibubi.create.foundation.render.backend.instancing.IInstanceRendered;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock.Shape;
|
||||
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
|
||||
import com.simibubi.create.content.logistics.packet.TunnelFlapPacket;
|
||||
import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue;
|
||||
import com.simibubi.create.foundation.networking.AllPackets;
|
||||
import com.simibubi.create.foundation.render.backend.FastRenderDispatcher;
|
||||
import com.simibubi.create.foundation.render.backend.instancing.IInstanceRendered;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
|
@ -29,9 +32,11 @@ import net.minecraft.tileentity.TileEntityType;
|
|||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.Direction.AxisDirection;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.Constants.NBT;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
|
@ -100,7 +105,7 @@ public class BeltTunnelTileEntity extends SmartTileEntity implements IInstanceRe
|
|||
super.read(compound, clientPacket);
|
||||
|
||||
if (clientPacket)
|
||||
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> FastRenderDispatcher.enqueueUpdate(this));
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> FastRenderDispatcher.enqueueUpdate(this));
|
||||
}
|
||||
|
||||
public void updateTunnelConnections() {
|
||||
|
@ -172,6 +177,11 @@ public class BeltTunnelTileEntity extends SmartTileEntity implements IInstanceRe
|
|||
flapsToSend.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderAsTE() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<TileEntityBehaviour> behaviours) {}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock;
|
|||
import com.simibubi.create.content.contraptions.components.fan.EncasedFanTileEntity;
|
||||
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.contraptions.particle.AirParticleData;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.gui.widgets.InterpolatedValue;
|
||||
|
@ -155,7 +156,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
|||
if (!handleDownwardOutput(true))
|
||||
nextOffset = .5f;
|
||||
else if (nextOffset < 0) {
|
||||
handleDownwardOutput(world.isRemote);
|
||||
handleDownwardOutput(world.isRemote && !isVirtual());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +167,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
|||
if (!handleUpwardOutput(true))
|
||||
nextOffset = .5f;
|
||||
else if (nextOffset > 1) {
|
||||
handleUpwardOutput(world.isRemote);
|
||||
handleUpwardOutput(world.isRemote && !isVirtual());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -380,6 +381,8 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
|||
.isHorizontal())
|
||||
return false;
|
||||
|
||||
if (FunnelBlock.getFunnelFacing(world.getBlockState(pos.down())) == Direction.DOWN)
|
||||
return false;
|
||||
if (Block.hasSolidSideOnTop(world, pos.down()))
|
||||
return false;
|
||||
|
||||
|
@ -434,6 +437,8 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
|||
return true;
|
||||
}
|
||||
|
||||
if (FunnelBlock.getFunnelFacing(world.getBlockState(pos.up())) == Direction.UP)
|
||||
return false;
|
||||
if (Block.hasSolidSide(stateAbove, world, pos.up(), Direction.DOWN))
|
||||
return false;
|
||||
if (!inputChutes.isEmpty())
|
||||
|
|
|
@ -98,6 +98,8 @@ public class DepotTileEntity extends SmartTileEntity {
|
|||
continue;
|
||||
ItemStack afterInsert =
|
||||
getBehaviour(DirectBeltInputBehaviour.TYPE).tryExportingToBeltFunnel(previousItem, null);
|
||||
if (afterInsert == null)
|
||||
return false;
|
||||
if (previousItem.getCount() != afterInsert.getCount()) {
|
||||
processingOutputBuffer.setStackInSlot(slot, afterInsert);
|
||||
notifyUpdate();
|
||||
|
@ -108,6 +110,8 @@ public class DepotTileEntity extends SmartTileEntity {
|
|||
ItemStack previousItem = heldItem.stack;
|
||||
ItemStack afterInsert =
|
||||
getBehaviour(DirectBeltInputBehaviour.TYPE).tryExportingToBeltFunnel(previousItem, null);
|
||||
if (afterInsert == null)
|
||||
return false;
|
||||
if (previousItem.getCount() != afterInsert.getCount()) {
|
||||
if (afterInsert.isEmpty())
|
||||
heldItem = null;
|
||||
|
|
|
@ -263,6 +263,8 @@ public class FunnelTileEntity extends SmartTileEntity implements IHaveHoveringIn
|
|||
return false;
|
||||
if (!(blockState.getBlock() instanceof FunnelBlock))
|
||||
return false;
|
||||
if (blockState.get(FunnelBlock.EXTRACTING))
|
||||
return false;
|
||||
return FunnelBlock.getFunnelFacing(blockState) == Direction.UP;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
package com.simibubi.create.content.logistics.block.mechanicalArm;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.commons.lang3.mutable.MutableBoolean;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
|
@ -10,17 +16,25 @@ import com.simibubi.create.content.contraptions.components.crafter.MechanicalCra
|
|||
import com.simibubi.create.content.contraptions.components.deployer.DeployerBlock;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.chute.AbstractChuteBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.AbstractFunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.foundation.item.SmartInventory;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.ComposterBlock;
|
||||
|
@ -39,6 +53,7 @@ import net.minecraft.util.Direction;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
@ -48,9 +63,6 @@ import net.minecraftforge.items.IItemHandler;
|
|||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import net.minecraftforge.items.wrapper.InvWrapper;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public abstract class ArmInteractionPoint {
|
||||
|
||||
enum Mode {
|
||||
|
@ -65,21 +77,21 @@ public abstract class ArmInteractionPoint {
|
|||
private ArmAngleTarget cachedAngles;
|
||||
|
||||
private static ImmutableMap<ArmInteractionPoint, Supplier<ArmInteractionPoint>> POINTS =
|
||||
ImmutableMap.<ArmInteractionPoint, Supplier<ArmInteractionPoint>>builder()
|
||||
.put(new Saw(), Saw::new)
|
||||
.put(new Belt(), Belt::new)
|
||||
.put(new Depot(), Depot::new)
|
||||
.put(new Chute(), Chute::new)
|
||||
.put(new Basin(), Basin::new)
|
||||
.put(new Funnel(), Funnel::new)
|
||||
.put(new Jukebox(), Jukebox::new)
|
||||
.put(new Crafter(), Crafter::new)
|
||||
.put(new Deployer(), Deployer::new)
|
||||
.put(new Composter(), Composter::new)
|
||||
.put(new Millstone(), Millstone::new)
|
||||
.put(new BlazeBurner(), BlazeBurner::new)
|
||||
.put(new CrushingWheels(), CrushingWheels::new)
|
||||
.build();
|
||||
ImmutableMap.<ArmInteractionPoint, Supplier<ArmInteractionPoint>>builder()
|
||||
.put(new Saw(), Saw::new)
|
||||
.put(new Belt(), Belt::new)
|
||||
.put(new Depot(), Depot::new)
|
||||
.put(new Chute(), Chute::new)
|
||||
.put(new Basin(), Basin::new)
|
||||
.put(new Funnel(), Funnel::new)
|
||||
.put(new Jukebox(), Jukebox::new)
|
||||
.put(new Crafter(), Crafter::new)
|
||||
.put(new Deployer(), Deployer::new)
|
||||
.put(new Composter(), Composter::new)
|
||||
.put(new Millstone(), Millstone::new)
|
||||
.put(new BlazeBurner(), BlazeBurner::new)
|
||||
.put(new CrushingWheels(), CrushingWheels::new)
|
||||
.build();
|
||||
|
||||
public ArmInteractionPoint() {
|
||||
cachedHandler = LazyOptional.empty();
|
||||
|
@ -108,6 +120,8 @@ public abstract class ArmInteractionPoint {
|
|||
return isValid(reader, pos, reader.getBlockState(pos));
|
||||
}
|
||||
|
||||
void keepAlive(IWorld world) {}
|
||||
|
||||
abstract boolean isValid(IBlockReader reader, BlockPos pos, BlockState state);
|
||||
|
||||
static boolean isInteractable(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
|
@ -119,7 +133,8 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
ArmAngleTarget getTargetAngles(BlockPos armPos, boolean ceiling) {
|
||||
if (cachedAngles == null)
|
||||
cachedAngles = new ArmAngleTarget(armPos, getInteractionPositionVector(), getInteractionDirection(), ceiling);
|
||||
cachedAngles =
|
||||
new ArmAngleTarget(armPos, getInteractionPositionVector(), getInteractionDirection(), ceiling);
|
||||
|
||||
return cachedAngles;
|
||||
}
|
||||
|
@ -167,7 +182,8 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
for (ArmInteractionPoint armInteractionPoint : POINTS.keySet())
|
||||
if (armInteractionPoint.isValid(world, pos, state))
|
||||
point = POINTS.get(armInteractionPoint).get();
|
||||
point = POINTS.get(armInteractionPoint)
|
||||
.get();
|
||||
|
||||
if (point != null) {
|
||||
point.state = state;
|
||||
|
@ -222,7 +238,7 @@ public abstract class ArmInteractionPoint {
|
|||
@Override
|
||||
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
return AllBlocks.MECHANICAL_SAW.has(state) && state.get(SawBlock.FACING) == Direction.UP
|
||||
&& ((KineticTileEntity) reader.getTileEntity(pos)).getSpeed() != 0;
|
||||
&& ((KineticTileEntity) reader.getTileEntity(pos)).getSpeed() != 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -260,7 +276,8 @@ public abstract class ArmInteractionPoint {
|
|||
@Nullable
|
||||
@Override
|
||||
IItemHandler getHandler(World world) {
|
||||
return new InvWrapper(((ComposterBlock) Blocks.COMPOSTER).createInventory(world.getBlockState(pos), world, pos));
|
||||
return new InvWrapper(
|
||||
((ComposterBlock) Blocks.COMPOSTER).createInventory(world.getBlockState(pos), world, pos));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -273,12 +290,14 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
Direction getInteractionDirection() {
|
||||
return state.get(DeployerBlock.FACING).getOpposite();
|
||||
return state.get(DeployerBlock.FACING)
|
||||
.getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
Vec3d getInteractionPositionVector() {
|
||||
return super.getInteractionPositionVector().add(new Vec3d(getInteractionDirection().getDirectionVec()).scale(.65f));
|
||||
return super.getInteractionPositionVector()
|
||||
.add(new Vec3d(getInteractionDirection().getDirectionVec()).scale(.65f));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -298,13 +317,15 @@ public abstract class ArmInteractionPoint {
|
|||
@Override
|
||||
ItemStack insert(World world, ItemStack stack, boolean simulate) {
|
||||
ItemStack input = stack.copy();
|
||||
if (!BlazeBurnerBlock.tryInsert(state, world, pos, input, false, true).getResult().isEmpty()) {
|
||||
if (!BlazeBurnerBlock.tryInsert(state, world, pos, input, false, true)
|
||||
.getResult()
|
||||
.isEmpty()) {
|
||||
return stack;
|
||||
}
|
||||
ActionResult<ItemStack> res = BlazeBurnerBlock.tryInsert(state, world, pos, input, false, simulate);
|
||||
return res.getType() == ActionResultType.SUCCESS
|
||||
? ItemHandlerHelper.copyStackWithSize(stack, stack.getCount() - 1)
|
||||
: stack;
|
||||
? ItemHandlerHelper.copyStackWithSize(stack, stack.getCount() - 1)
|
||||
: stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -321,7 +342,8 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
Direction getInteractionDirection() {
|
||||
return state.get(MechanicalCrafterBlock.HORIZONTAL_FACING).getOpposite();
|
||||
return state.get(MechanicalCrafterBlock.HORIZONTAL_FACING)
|
||||
.getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -339,7 +361,8 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
Vec3d getInteractionPositionVector() {
|
||||
return super.getInteractionPositionVector().add(new Vec3d(getInteractionDirection().getDirectionVec()).scale(.5f));
|
||||
return super.getInteractionPositionVector()
|
||||
.add(new Vec3d(getInteractionDirection().getDirectionVec()).scale(.5f));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -374,7 +397,8 @@ public abstract class ArmInteractionPoint {
|
|||
return stack;
|
||||
JukeboxBlock jukeboxBlock = (JukeboxBlock) state.getBlock();
|
||||
JukeboxTileEntity jukeboxTE = (JukeboxTileEntity) tileEntity;
|
||||
if (!jukeboxTE.getRecord().isEmpty())
|
||||
if (!jukeboxTE.getRecord()
|
||||
.isEmpty())
|
||||
return stack;
|
||||
if (!(stack.getItem() instanceof MusicDiscItem))
|
||||
return stack;
|
||||
|
@ -413,8 +437,30 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
return AllBlocks.BELT.has(state) && !(reader.getBlockState(pos.up()).getBlock() instanceof BeltTunnelBlock);
|
||||
return AllBlocks.BELT.has(state) && !(reader.getBlockState(pos.up())
|
||||
.getBlock() instanceof BeltTunnelBlock);
|
||||
}
|
||||
|
||||
@Override
|
||||
void keepAlive(IWorld world) {
|
||||
super.keepAlive(world);
|
||||
BeltTileEntity beltTE = BeltHelper.getSegmentTE(world, pos);
|
||||
if (beltTE == null)
|
||||
return;
|
||||
TransportedItemStackHandlerBehaviour transport =
|
||||
beltTE.getBehaviour(TransportedItemStackHandlerBehaviour.TYPE);
|
||||
if (transport == null)
|
||||
return;
|
||||
MutableBoolean found = new MutableBoolean(false);
|
||||
transport.handleProcessingOnAllItems(tis -> {
|
||||
if (found.isTrue())
|
||||
return TransportedResult.doNothing();
|
||||
tis.lockedExternally = true;
|
||||
found.setTrue();
|
||||
return TransportedResult.doNothing();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class Chute extends TopFaceArmInteractionPoint {
|
||||
|
@ -429,7 +475,9 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
Vec3d getInteractionPositionVector() {
|
||||
return VecHelper.getCenterOf(pos).add(new Vec3d(FunnelBlock.getFunnelFacing(state).getDirectionVec()).scale(-.15f));
|
||||
return VecHelper.getCenterOf(pos)
|
||||
.add(new Vec3d(FunnelBlock.getFunnelFacing(state)
|
||||
.getDirectionVec()).scale(-.15f));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -444,7 +492,8 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
Direction getInteractionDirection() {
|
||||
return FunnelBlock.getFunnelFacing(state).getOpposite();
|
||||
return FunnelBlock.getFunnelFacing(state)
|
||||
.getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -475,7 +524,9 @@ public abstract class ArmInteractionPoint {
|
|||
|
||||
@Override
|
||||
boolean isValid(IBlockReader reader, BlockPos pos, BlockState state) {
|
||||
return state.getBlock() instanceof FunnelBlock && !state.get(FunnelBlock.EXTRACTING);
|
||||
return state.getBlock() instanceof AbstractFunnelBlock
|
||||
&& !(state.has(FunnelBlock.EXTRACTING) && state.get(FunnelBlock.EXTRACTING))
|
||||
&& !(state.has(BeltFunnelBlock.SHAPE) && state.get(BeltFunnelBlock.SHAPE) == Shape.PUSHING);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -66,7 +66,7 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
protected int lastOutputIndex = -1;
|
||||
protected boolean redstoneLocked;
|
||||
|
||||
enum Phase {
|
||||
public enum Phase {
|
||||
SEARCH_INPUTS, MOVE_TO_INPUT, SEARCH_OUTPUTS, MOVE_TO_OUTPUT, DANCING
|
||||
}
|
||||
|
||||
|
@ -108,9 +108,15 @@ public class ArmTileEntity extends KineticTileEntity {
|
|||
initInteractionPoints();
|
||||
boolean targetReached = tickMovementProgress();
|
||||
|
||||
if (world.isRemote)
|
||||
if (chasedPointProgress < 1) {
|
||||
if (phase == Phase.MOVE_TO_INPUT) {
|
||||
ArmInteractionPoint point = getTargetedInteractionPoint();
|
||||
if (point != null)
|
||||
point.keepAlive(world);
|
||||
}
|
||||
return;
|
||||
if (chasedPointProgress < 1)
|
||||
}
|
||||
if (world.isRemote)
|
||||
return;
|
||||
|
||||
if (phase == Phase.MOVE_TO_INPUT)
|
||||
|
|
|
@ -94,7 +94,7 @@ public class SchematicWorld extends WrappedWorld {
|
|||
try {
|
||||
TileEntity tileEntity = blockState.createTileEntity(this);
|
||||
if (tileEntity != null) {
|
||||
tileEntity.setLocation(this, pos);
|
||||
onTEadded(tileEntity, pos);
|
||||
tileEntities.put(pos, tileEntity);
|
||||
renderedTileEntities.add(tileEntity);
|
||||
}
|
||||
|
@ -105,6 +105,10 @@ public class SchematicWorld extends WrappedWorld {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void onTEadded(TileEntity tileEntity, BlockPos pos) {
|
||||
tileEntity.setLocation(this, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getBlockState(BlockPos globalPos) {
|
||||
|
|
|
@ -92,14 +92,14 @@ public class PonderWorld extends SchematicWorld {
|
|||
originalBlocks.forEach((k, v) -> blocks.put(k, v));
|
||||
originalTileEntities.forEach((k, v) -> {
|
||||
TileEntity te = TileEntity.create(v.write(new CompoundNBT()));
|
||||
te.setLocation(this, te.getPos());
|
||||
onTEadded(te, te.getPos());
|
||||
tileEntities.put(k, te);
|
||||
renderedTileEntities.add(te);
|
||||
});
|
||||
originalEntities.forEach(e -> EntityType.loadEntityUnchecked(e.serializeNBT(), this)
|
||||
.ifPresent(entities::add));
|
||||
particles.clearEffects();
|
||||
fixVirtualTileEntities();
|
||||
fixBeltTileEntities();
|
||||
}
|
||||
|
||||
public void restoreBlocks(Selection selection) {
|
||||
|
@ -225,16 +225,20 @@ public class PonderWorld extends SchematicWorld {
|
|||
particles.addParticle(p);
|
||||
}
|
||||
|
||||
public void fixVirtualTileEntities() {
|
||||
for (TileEntity tileEntity : tileEntities.values()) {
|
||||
if (!(tileEntity instanceof SmartTileEntity))
|
||||
continue;
|
||||
SmartTileEntity smartTileEntity = (SmartTileEntity) tileEntity;
|
||||
smartTileEntity.markVirtual();
|
||||
@Override
|
||||
protected void onTEadded(TileEntity tileEntity, BlockPos pos) {
|
||||
super.onTEadded(tileEntity, pos);
|
||||
if (!(tileEntity instanceof SmartTileEntity))
|
||||
return;
|
||||
SmartTileEntity smartTileEntity = (SmartTileEntity) tileEntity;
|
||||
smartTileEntity.markVirtual();
|
||||
}
|
||||
|
||||
if (!(smartTileEntity instanceof BeltTileEntity))
|
||||
public void fixBeltTileEntities() {
|
||||
for (TileEntity tileEntity : tileEntities.values()) {
|
||||
if (!(tileEntity instanceof BeltTileEntity))
|
||||
continue;
|
||||
BeltTileEntity beltTileEntity = (BeltTileEntity) smartTileEntity;
|
||||
BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity;
|
||||
if (!beltTileEntity.isController())
|
||||
continue;
|
||||
BlockPos controllerPos = tileEntity.getPos();
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.simibubi.create.content.contraptions.particle.RotationIndicatorPartic
|
|||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity;
|
||||
import com.simibubi.create.foundation.ponder.content.PonderPalette;
|
||||
import com.simibubi.create.foundation.ponder.elements.AnimatedSceneElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.BeltItemElement;
|
||||
|
@ -56,6 +57,7 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputB
|
|||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult;
|
||||
import com.simibubi.create.foundation.utility.ColorHelper;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
|
@ -761,6 +763,16 @@ public class SceneBuilder {
|
|||
}, reDrawBlocks));
|
||||
}
|
||||
|
||||
public void instructArm(BlockPos armLocation, ArmTileEntity.Phase phase, ItemStack heldItem,
|
||||
int targetedPoint) {
|
||||
modifyTileNBT(scene.getSceneBuildingUtil().select.position(armLocation), ArmTileEntity.class, compound -> {
|
||||
NBTHelper.writeEnum(compound, "Phase", phase);
|
||||
compound.put("HeldItem", heldItem.serializeNBT());
|
||||
compound.putInt("TargetPointIndex", targetedPoint);
|
||||
compound.putFloat("MovementProgress", 0);
|
||||
});
|
||||
}
|
||||
|
||||
public void flapFunnel(BlockPos position, boolean outward) {
|
||||
modifyTileEntity(position, FunnelTileEntity.class, funnel -> funnel.flap(!outward));
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.simibubi.create.foundation.ponder.content;
|
|||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.actors.HarvesterTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.SailBlock;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuilder;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
||||
|
@ -12,6 +13,7 @@ import com.simibubi.create.foundation.ponder.elements.WorldSectionElement;
|
|||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
|
@ -149,6 +151,7 @@ public class BearingScenes {
|
|||
scene.title("windmill_structure", "Windmill Contraptions");
|
||||
scene.configureBasePlate(1, 1, 5);
|
||||
scene.setSceneOffsetY(-1);
|
||||
scene.world.modifyEntities(SuperGlueEntity.class, Entity::remove);
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
scene.idle(5);
|
||||
|
||||
|
|
|
@ -6,10 +6,14 @@ import java.util.List;
|
|||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity.Mode;
|
||||
import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltPart;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock;
|
||||
import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity.Phase;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuilder;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
||||
|
@ -23,6 +27,7 @@ import com.simibubi.create.foundation.ponder.elements.WorldSectionElement;
|
|||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.ItemEntity;
|
||||
import net.minecraft.item.DyeColor;
|
||||
|
@ -299,7 +304,7 @@ public class BeltScenes {
|
|||
scene.idle(10);
|
||||
|
||||
scene.overlay.showText(160)
|
||||
.text("These are all possible directions.\nBelts can span any Length between 2 and 20 blocks");
|
||||
.text("These are all possible directions. Belts can span any Length between 2 and 20 blocks");
|
||||
scene.markAsFinished();
|
||||
}
|
||||
|
||||
|
@ -461,4 +466,112 @@ public class BeltScenes {
|
|||
.pointAt(util.vector.blockSurface(beltPos.south(), Direction.WEST));
|
||||
}
|
||||
|
||||
public static void depot(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("depot", "Using Depots");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.showBasePlate();
|
||||
scene.idle(5);
|
||||
scene.world.setBlock(util.grid.at(3, 2, 2), Blocks.WATER.getDefaultState(), false);
|
||||
|
||||
BlockPos depotPos = util.grid.at(2, 1, 2);
|
||||
scene.world.showSection(util.select.position(2, 1, 2), Direction.DOWN);
|
||||
Vec3d topOf = util.vector.topOf(depotPos);
|
||||
scene.overlay.showText(60)
|
||||
.attachKeyFrame()
|
||||
.text("Depots can serve as 'stationary' belt elements")
|
||||
.placeNearTarget()
|
||||
.pointAt(topOf);
|
||||
scene.idle(70);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(topOf, Pointing.DOWN).rightClick()
|
||||
.withItem(AllBlocks.COPPER_BLOCK.asStack()), 20);
|
||||
scene.idle(7);
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.NORTH, AllBlocks.COPPER_BLOCK.asStack());
|
||||
scene.idle(10);
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.text("Right-Click to manually place or remove Items from it")
|
||||
.placeNearTarget()
|
||||
.pointAt(topOf);
|
||||
scene.idle(80);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(topOf, Pointing.DOWN).rightClick(), 20);
|
||||
scene.idle(7);
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
scene.effects.indicateSuccess(depotPos);
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.showSection(util.select.position(depotPos.up(2)), Direction.SOUTH);
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.text("Just like Mechanical Belts, it can provide items to processing")
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(depotPos.up(2), Direction.WEST));
|
||||
ItemStack bottle = new ItemStack(Items.BUCKET);
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.NORTH, bottle);
|
||||
scene.idle(20);
|
||||
scene.world.modifyTileNBT(util.select.position(depotPos.up(2)), SpoutTileEntity.class,
|
||||
nbt -> nbt.putInt("ProcessingTicks", 20));
|
||||
scene.idle(20);
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.UP, new ItemStack(Items.WATER_BUCKET));
|
||||
scene.world.modifyTileNBT(util.select.position(depotPos.up(2)), SpoutTileEntity.class,
|
||||
nbt -> nbt.putBoolean("Splash", true));
|
||||
scene.idle(30);
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
scene.world.hideSection(util.select.position(depotPos.up(2)), Direction.SOUTH);
|
||||
scene.idle(20);
|
||||
ElementLink<WorldSectionElement> spout = scene.world.showIndependentSection(util.select.position(depotPos.up(2)
|
||||
.west()), Direction.SOUTH);
|
||||
scene.world.moveSection(spout, util.vector.of(1, 0, 0), 0);
|
||||
|
||||
BlockPos pressPos = depotPos.up(2)
|
||||
.west();
|
||||
ItemStack copper = AllItems.COPPER_INGOT.asStack();
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.NORTH, copper);
|
||||
Vec3d depotCenter = util.vector.centerOf(depotPos);
|
||||
scene.idle(10);
|
||||
|
||||
Class<MechanicalPressTileEntity> type = MechanicalPressTileEntity.class;
|
||||
scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BELT));
|
||||
scene.idle(15);
|
||||
scene.world.modifyTileEntity(pressPos, type,
|
||||
pte -> pte.makePressingParticleEffect(depotCenter.add(0, 8 / 16f, 0), copper));
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
ItemStack sheet = AllItems.COPPER_SHEET.asStack();
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.UP, sheet);
|
||||
|
||||
scene.idle(20);
|
||||
scene.world.hideIndependentSection(spout, Direction.SOUTH);
|
||||
scene.idle(10);
|
||||
|
||||
Selection fanSelect = util.select.fromTo(4, 1, 3, 5, 2, 2)
|
||||
.add(util.select.position(3, 1, 2))
|
||||
.add(util.select.position(5, 0, 2));
|
||||
scene.world.showSection(fanSelect, Direction.SOUTH);
|
||||
ElementLink<WorldSectionElement> water =
|
||||
scene.world.showIndependentSection(util.select.position(3, 1, 0), Direction.SOUTH);
|
||||
scene.world.moveSection(water, util.vector.of(0, 1, 2), 0);
|
||||
scene.idle(30);
|
||||
|
||||
scene.world.hideSection(fanSelect, Direction.SOUTH);
|
||||
scene.world.hideIndependentSection(water, Direction.SOUTH);
|
||||
scene.idle(30);
|
||||
|
||||
scene.world.showSection(util.select.fromTo(2, 1, 4, 2, 1, 5)
|
||||
.add(util.select.position(2, 0, 5)), Direction.DOWN);
|
||||
BlockPos armPos = util.grid.at(2, 1, 4);
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.text("...as well as provide Items to Mechanical Arms")
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(armPos, Direction.WEST));
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.instructArm(armPos, Phase.MOVE_TO_INPUT, ItemStack.EMPTY, 0);
|
||||
scene.idle(37);
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
scene.world.instructArm(armPos, Phase.SEARCH_OUTPUTS, sheet, -1);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,265 @@
|
|||
package com.simibubi.create.foundation.ponder.content;
|
||||
|
||||
import static com.simibubi.create.content.logistics.block.chute.ChuteBlock.SHAPE;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.content.logistics.block.chute.ChuteBlock;
|
||||
import com.simibubi.create.content.logistics.block.chute.ChuteBlock.Shape;
|
||||
import com.simibubi.create.content.logistics.block.chute.SmartChuteTileEntity;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuilder;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
||||
import com.simibubi.create.foundation.ponder.Selection;
|
||||
import com.simibubi.create.foundation.ponder.elements.EntityElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.elements.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.item.ItemEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
|
||||
public class ChuteScenes {
|
||||
|
||||
public static void downward(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("chute", "Transporting Items downward via Chutes");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.scaleSceneView(.9f);
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
|
||||
ElementLink<WorldSectionElement> top =
|
||||
scene.world.showIndependentSection(util.select.fromTo(3, 3, 3, 3, 4, 3), Direction.DOWN);
|
||||
ElementLink<WorldSectionElement> bottom =
|
||||
scene.world.showIndependentSection(util.select.fromTo(3, 2, 3, 3, 1, 3), Direction.DOWN);
|
||||
scene.world.moveSection(bottom, util.vector.of(-2, 0, -1), 0);
|
||||
scene.world.moveSection(top, util.vector.of(0, 0, -1), 0);
|
||||
scene.idle(20);
|
||||
|
||||
ItemStack stack = AllBlocks.COPPER_BLOCK.asStack();
|
||||
scene.world.createItemEntity(util.vector.centerOf(util.grid.at(3, 3, 2)), util.vector.of(0, -0.1, 0), stack);
|
||||
scene.idle(20);
|
||||
ElementLink<EntityElement> remove =
|
||||
scene.world.createItemEntity(util.vector.centerOf(util.grid.at(1, 5, 2)), util.vector.of(0, 0.1, 0), stack);
|
||||
scene.idle(15);
|
||||
scene.world.modifyEntity(remove, Entity::remove);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.topOf(util.grid.at(1, 2, 2)))
|
||||
.placeNearTarget()
|
||||
.text("Chutes can transport items vertically from and to inventories");
|
||||
scene.idle(70);
|
||||
scene.world.modifyEntities(ItemEntity.class, Entity::remove);
|
||||
scene.world.moveSection(bottom, util.vector.of(1, 0, 0), 10);
|
||||
scene.world.moveSection(top, util.vector.of(-1, 0, 0), 10);
|
||||
scene.idle(20);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 3, 2), Direction.NORTH), Pointing.RIGHT)
|
||||
.rightClick()
|
||||
.withWrench(),
|
||||
40);
|
||||
scene.idle(7);
|
||||
scene.world.modifyBlock(util.grid.at(3, 3, 3), s -> s.with(ChuteBlock.SHAPE, ChuteBlock.Shape.WINDOW), false);
|
||||
scene.overlay.showText(50)
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(2, 3, 2), Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.text("Using the Wrench, a window can be created");
|
||||
|
||||
scene.idle(10);
|
||||
scene.world.modifyBlock(util.grid.at(3, 2, 3), s -> s.with(SHAPE, Shape.WINDOW), false);
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
scene.idle(10);
|
||||
scene.world.createItemOnBeltLike(util.grid.at(3, 3, 3), Direction.UP, stack);
|
||||
}
|
||||
scene.idle(20);
|
||||
scene.world.hideIndependentSection(bottom, Direction.EAST);
|
||||
scene.world.hideIndependentSection(top, Direction.EAST);
|
||||
scene.idle(15);
|
||||
|
||||
scene.rotateCameraY(-90);
|
||||
scene.world.modifyBlock(util.grid.at(2, 2, 1), s -> s.with(SHAPE, Shape.NORMAL), false);
|
||||
scene.world.showSection(util.select.fromTo(2, 1, 1, 2, 2, 1), Direction.DOWN);
|
||||
scene.idle(30);
|
||||
ItemStack chuteItem = AllBlocks.CHUTE.asStack();
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 2, 1), Direction.SOUTH), Pointing.LEFT)
|
||||
.rightClick()
|
||||
.withItem(chuteItem),
|
||||
30);
|
||||
scene.idle(7);
|
||||
scene.world.showSection(util.select.position(2, 3, 2), Direction.NORTH);
|
||||
scene.world.restoreBlocks(util.select.position(2, 2, 1));
|
||||
scene.idle(35);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 3, 2), Direction.SOUTH), Pointing.LEFT)
|
||||
.rightClick()
|
||||
.withItem(chuteItem),
|
||||
30);
|
||||
scene.idle(7);
|
||||
scene.world.showSection(util.select.position(2, 4, 3), Direction.NORTH);
|
||||
scene.idle(35);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(2, 4, 3), Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.text("Placing chutes targeting the side faces of another will make it diagonal");
|
||||
scene.idle(15);
|
||||
scene.rotateCameraY(90);
|
||||
|
||||
scene.idle(35);
|
||||
|
||||
Direction offset = Direction.NORTH;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
remove = scene.world.createItemEntity(util.vector.centerOf(util.grid.at(2, 6, 3)
|
||||
.offset(offset)), util.vector.of(0, 0.1, 0)
|
||||
.add(new Vec3d(offset.getDirectionVec()).scale(-.1)),
|
||||
stack);
|
||||
scene.idle(12);
|
||||
scene.world.createItemOnBeltLike(util.grid.at(2, 4, 3), Direction.UP, stack);
|
||||
scene.world.modifyEntity(remove, Entity::remove);
|
||||
scene.idle(3);
|
||||
offset = offset.rotateY();
|
||||
}
|
||||
|
||||
scene.idle(10);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 1, 1), Direction.NORTH), Pointing.RIGHT)
|
||||
.withItem(stack),
|
||||
50);
|
||||
}
|
||||
|
||||
public static void upward(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("chute_upward", "Transporting Items upward via Chutes");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.scaleSceneView(.9f);
|
||||
scene.showBasePlate();
|
||||
Selection chute = util.select.fromTo(1, 2, 2, 1, 4, 2);
|
||||
scene.world.setBlocks(chute, Blocks.AIR.getDefaultState(), false);
|
||||
scene.world.showSection(util.select.position(1, 1, 2), Direction.UP);
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.restoreBlocks(chute);
|
||||
scene.world.showSection(chute, Direction.DOWN);
|
||||
scene.idle(20);
|
||||
scene.world.setKineticSpeed(util.select.position(1, 1, 2), 0);
|
||||
Vec3d surface = util.vector.blockSurface(util.grid.at(1, 2, 2), Direction.WEST);
|
||||
scene.overlay.showText(70)
|
||||
.text("Using Encased Fans at the top or bottom, a Chute can move items upward")
|
||||
.attachKeyFrame()
|
||||
.pointAt(surface)
|
||||
.placeNearTarget();
|
||||
scene.idle(80);
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(util.grid.at(1, 2, 2), Direction.NORTH), Pointing.RIGHT)
|
||||
.withItem(AllItems.GOGGLES.asStack()),
|
||||
50);
|
||||
scene.overlay.showText(70)
|
||||
.text("Inspecting chutes with Engineers' Goggles reveals information about the movement direction")
|
||||
.attachKeyFrame()
|
||||
.pointAt(surface)
|
||||
.placeNearTarget();
|
||||
scene.idle(80);
|
||||
|
||||
scene.world.showSection(util.select.fromTo(2, 2, 2, 4, 1, 5)
|
||||
.add(util.select.position(3, 0, 5)), Direction.DOWN);
|
||||
ItemStack stack = AllBlocks.COPPER_BLOCK.asStack();
|
||||
scene.world.createItemOnBelt(util.grid.at(4, 1, 2), Direction.EAST, stack);
|
||||
scene.idle(10);
|
||||
scene.rotateCameraY(60);
|
||||
scene.overlay.showText(70)
|
||||
.text("On the 'blocked' end, items will have to be inserted/taken from the sides")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.centerOf(util.grid.at(3, 1, 2))
|
||||
.add(0, 3 / 16f, 0))
|
||||
.placeNearTarget();
|
||||
scene.idle(32);
|
||||
scene.world.flapFunnel(util.grid.at(2, 2, 2), false);
|
||||
scene.world.removeItemsFromBelt(util.grid.at(2, 1, 2));
|
||||
scene.world.createItemOnBeltLike(util.grid.at(1, 2, 2), Direction.EAST, stack);
|
||||
}
|
||||
|
||||
public static void smart(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("smart_chute", "Filtering Items using Smart Chutes");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.scaleSceneView(.9f);
|
||||
|
||||
Selection lever = util.select.fromTo(0, 1, 2, 1, 3, 2);
|
||||
BlockPos smarty = util.grid.at(2, 3, 2);
|
||||
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(util.select.fromTo(2, 1, 2, 2, 2, 2), Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.showSection(util.select.position(2, 3, 2), Direction.DOWN);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(util.select.position(2, 4, 2), Direction.DOWN);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.text("Smart Chutes are vertical chutes with additional control")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.blockSurface(smarty, Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
|
||||
Vec3d filter = util.vector.blockSurface(smarty, Direction.NORTH)
|
||||
.add(0, 0.25, 0);
|
||||
scene.overlay.showFilterSlotInput(filter, 60);
|
||||
ItemStack copper = new ItemStack(Items.IRON_INGOT);
|
||||
scene.overlay.showControls(new InputWindowElement(filter, Pointing.DOWN).rightClick()
|
||||
.withItem(copper), 40);
|
||||
scene.idle(7);
|
||||
scene.world.setFilterData(util.select.position(smarty), SmartChuteTileEntity.class, copper);
|
||||
scene.idle(10);
|
||||
scene.rotateCameraY(20);
|
||||
scene.overlay.showText(60)
|
||||
.text("Items in the filter slot specify what exactly they can extract and transfer")
|
||||
.attachKeyFrame()
|
||||
.pointAt(filter)
|
||||
.placeNearTarget();
|
||||
scene.idle(10);
|
||||
|
||||
for (int i = 0; i < 18; i++) {
|
||||
scene.idle(10);
|
||||
scene.world.createItemOnBeltLike(util.grid.at(2, 2, 2), Direction.UP, copper);
|
||||
if (i == 8) {
|
||||
scene.rotateCameraY(-20);
|
||||
scene.overlay.showControls(new InputWindowElement(filter, Pointing.DOWN).scroll(), 40);
|
||||
scene.overlay.showText(50)
|
||||
.text("Use the Mouse Wheel to specify the extracted stack size")
|
||||
.attachKeyFrame()
|
||||
.pointAt(filter)
|
||||
.placeNearTarget();
|
||||
}
|
||||
if (i == 13)
|
||||
scene.world.showSection(lever, Direction.NORTH);
|
||||
}
|
||||
|
||||
scene.world.toggleRedstonePower(lever.add(util.select.position(smarty)));
|
||||
scene.effects.indicateRedstone(util.grid.at(0, 3, 2));
|
||||
scene.overlay.showText(50)
|
||||
.text("Redstone power will prevent Smart Chutes from acting.")
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.RED)
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(0, 2, 2), Direction.UP))
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
|
||||
scene.world.toggleRedstonePower(lever.add(util.select.position(smarty)));
|
||||
scene.markAsFinished();
|
||||
for (int i = 0; i < 8; i++) {
|
||||
scene.idle(10);
|
||||
scene.world.createItemOnBeltLike(util.grid.at(2, 2, 2), Direction.UP, copper);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -332,7 +332,7 @@ public class FunnelScenes {
|
|||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, funnel, redstoneBB, 80);
|
||||
scene.overlay.showText(80)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Redstone power will prevent any funnel from acting.")
|
||||
.text("Redstone power will prevent any funnel from acting")
|
||||
.pointAt(util.vector.blockSurface(funnel, Direction.DOWN));
|
||||
} else {
|
||||
scene.idle(4);
|
||||
|
|
|
@ -95,6 +95,14 @@ public class PonderIndex {
|
|||
PonderRegistry.addStoryBoard(AllItems.EMPTY_BLAZE_BURNER, "empty_blaze_burner",
|
||||
ProcessingScenes::emptyBlazeBurner);
|
||||
PonderRegistry.addStoryBoard(AllBlocks.BLAZE_BURNER, "blaze_burner", ProcessingScenes::blazeBurner);
|
||||
PonderRegistry.addStoryBoard(AllBlocks.DEPOT, "depot", BeltScenes::depot);
|
||||
|
||||
// Chutes
|
||||
PonderRegistry.forComponents(AllBlocks.CHUTE)
|
||||
.addStoryBoard("chute/downward", ChuteScenes::downward, PonderTag.LOGISTICS)
|
||||
.addStoryBoard("chute/upward", ChuteScenes::upward);
|
||||
PonderRegistry.forComponents(AllBlocks.CHUTE, AllBlocks.SMART_CHUTE)
|
||||
.addStoryBoard("chute/smart", ChuteScenes::smart);
|
||||
|
||||
// Funnels
|
||||
PonderRegistry.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass);
|
||||
|
@ -287,10 +295,10 @@ public class PonderIndex {
|
|||
.add(AllBlocks.MILLSTONE)
|
||||
.add(AllBlocks.DEPLOYER)
|
||||
.add(AllBlocks.MECHANICAL_SAW)
|
||||
.add(Blocks.COMPOSTER)
|
||||
.add(AllBlocks.BLAZE_BURNER)
|
||||
.add(Blocks.JUKEBOX)
|
||||
.add(AllBlocks.CRUSHING_WHEEL);
|
||||
.add(AllBlocks.CRUSHING_WHEEL)
|
||||
.add(Blocks.COMPOSTER)
|
||||
.add(Blocks.JUKEBOX);
|
||||
|
||||
PonderRegistry.tags.forTag(PonderTag.LOGISTICS)
|
||||
.add(AllItems.BELT_CONNECTOR)
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.Objects;
|
|||
import org.apache.commons.lang3.mutable.MutableBoolean;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.gui.ScreenOpener;
|
||||
import com.simibubi.create.foundation.gui.UIRenderHelper;
|
||||
import com.simibubi.create.foundation.ponder.NavigatableSimiScreen;
|
||||
|
@ -25,6 +26,7 @@ import net.minecraft.client.gui.widget.Widget;
|
|||
import net.minecraft.client.renderer.Rectangle2d;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
|
@ -87,7 +89,12 @@ public class PonderTagScreen extends NavigatableSimiScreen {
|
|||
ScreenOpener.transitionTo(PonderUI.of(new ItemStack(i), tag));
|
||||
}).showing(new ItemStack(i));
|
||||
if (!canClick)
|
||||
button.noClickEvent();
|
||||
if (i.getRegistryName()
|
||||
.getNamespace()
|
||||
.equals(Create.ID))
|
||||
button.customColors(0x70984500, 0x70692400);
|
||||
else
|
||||
button.customColors(0x505000FF, 0x50300077);
|
||||
|
||||
button.fade(1);
|
||||
widgets.add(button);
|
||||
|
@ -96,9 +103,10 @@ public class PonderTagScreen extends NavigatableSimiScreen {
|
|||
|
||||
if (!tag.getMainItem()
|
||||
.isEmpty()) {
|
||||
final boolean canClick = PonderRegistry.all.containsKey(tag.getMainItem()
|
||||
ResourceLocation registryName = tag.getMainItem()
|
||||
.getItem()
|
||||
.getRegistryName());
|
||||
.getRegistryName();
|
||||
final boolean canClick = PonderRegistry.all.containsKey(registryName);
|
||||
PonderButton button =
|
||||
new PonderButton(itemCenterX - layout.getTotalWidth() / 2 - 42, itemCenterY - 10, (mouseX, mouseY) -> {
|
||||
if (!canClick)
|
||||
|
@ -107,7 +115,11 @@ public class PonderTagScreen extends NavigatableSimiScreen {
|
|||
ScreenOpener.transitionTo(PonderUI.of(tag.getMainItem(), tag));
|
||||
}).showing(tag.getMainItem());
|
||||
if (!canClick)
|
||||
button.noClickEvent();
|
||||
if (registryName.getNamespace()
|
||||
.equals(Create.ID))
|
||||
button.customColors(0x70984500, 0x70692400);
|
||||
else
|
||||
button.customColors(0x505000FF, 0x50300077);
|
||||
|
||||
button.fade(1);
|
||||
widgets.add(button);
|
||||
|
@ -202,7 +214,7 @@ public class PonderTagScreen extends NavigatableSimiScreen {
|
|||
RenderSystem.translated(0, 0, 100);
|
||||
FontHelper.drawSplitString(font, desc, x, y, w, 0xeeeeee);
|
||||
RenderSystem.popMatrix();
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void renderItems(int mouseX, int mouseY, float partialTicks) {
|
||||
|
@ -301,7 +313,7 @@ public class PonderTagScreen extends NavigatableSimiScreen {
|
|||
return tag == ((PonderTagScreen) other).tag;
|
||||
return super.isEquivalentTo(other);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isPauseScreen() {
|
||||
return true;
|
||||
|
|
|
@ -618,14 +618,14 @@ public class ProcessingScenes {
|
|||
scene.idle(7);
|
||||
scene.world.setBlock(util.grid.at(3, 1, 2), AllBlocks.LIT_BLAZE_BURNER.getDefaultState(), true);
|
||||
scene.idle(10);
|
||||
scene.overlay.showText(90)
|
||||
scene.overlay.showText(70)
|
||||
.text("For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel")
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.blockSurface(center.east()
|
||||
.up(), Direction.UP))
|
||||
.placeNearTarget();
|
||||
scene.idle(70);
|
||||
scene.overlay.showText(90)
|
||||
scene.idle(80);
|
||||
scene.overlay.showText(60)
|
||||
.colored(PonderPalette.RED)
|
||||
.text("However, these are not suitable for industrial heating")
|
||||
.pointAt(util.vector.blockSurface(center.east()
|
||||
|
|
|
@ -35,9 +35,9 @@ public class TileEntityDataInstruction extends WorldModifyInstruction {
|
|||
if (!type.isInstance(tileEntity))
|
||||
return;
|
||||
CompoundNBT apply = data.apply(tileEntity.write(new CompoundNBT()));
|
||||
tileEntity.read(apply);
|
||||
if (tileEntity instanceof SyncedTileEntity)
|
||||
((SyncedTileEntity) tileEntity).readClientUpdate(apply);
|
||||
tileEntity.read(apply);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.simibubi.create.foundation.gui.IScreenRenderable;
|
|||
import com.simibubi.create.foundation.gui.widgets.AbstractSimiWidget;
|
||||
import com.simibubi.create.foundation.ponder.PonderUI;
|
||||
import com.simibubi.create.foundation.utility.ColorHelper;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -25,7 +26,7 @@ public class PonderButton extends AbstractSimiWidget {
|
|||
private float fade;
|
||||
private KeyBinding shortcut;
|
||||
private LerpedFloat flash;
|
||||
private boolean noClickEvent;
|
||||
private Couple<Integer> customPassiveBorder;
|
||||
|
||||
public static final int SIZE = 20;
|
||||
|
||||
|
@ -54,8 +55,8 @@ public class PonderButton extends AbstractSimiWidget {
|
|||
return this;
|
||||
}
|
||||
|
||||
public PonderButton noClickEvent() {
|
||||
this.noClickEvent = true;
|
||||
public PonderButton customColors(int start, int end) {
|
||||
this.customPassiveBorder = Couple.create(start, end);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -103,10 +104,10 @@ public class PonderButton extends AbstractSimiWidget {
|
|||
fade *= 3 * flashValue + Math.sin((PonderUI.ponderTicks + partialTicks) / 6);
|
||||
|
||||
int backgroundColor = ColorHelper.applyAlpha(0xdd000000, fade);
|
||||
int borderColorStart =
|
||||
ColorHelper.applyAlpha(noClickEvent ? 0x70984500 : isHovered ? 0x70ffffff : 0x40aa9999, fade);
|
||||
int borderColorEnd =
|
||||
ColorHelper.applyAlpha(noClickEvent ? 0x70692400 : isHovered ? 0x30ffffff : 0x20aa9999, fade);
|
||||
int borderColorStart = customPassiveBorder != null ? customPassiveBorder.getFirst() : isHovered ? 0x70ffffff : 0x40aa9999;
|
||||
int borderColorEnd = customPassiveBorder != null ? customPassiveBorder.getSecond() : isHovered ? 0x30ffffff : 0x20aa9999;
|
||||
borderColorStart = ColorHelper.applyAlpha(borderColorStart, fade);
|
||||
borderColorEnd = ColorHelper.applyAlpha(borderColorEnd, fade);
|
||||
|
||||
PonderUI.renderBox(x, y, width, height, backgroundColor, borderColorStart, borderColorEnd);
|
||||
RenderSystem.translated(0, 0, 800);
|
||||
|
|
|
@ -47,7 +47,7 @@ public class DirectBeltInputBehaviour extends TileEntityBehaviour {
|
|||
supportsBeltFunnels = pred;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public DirectBeltInputBehaviour allowingBeltFunnels() {
|
||||
supportsBeltFunnels = () -> true;
|
||||
return this;
|
||||
|
@ -97,20 +97,21 @@ public class DirectBeltInputBehaviour extends TileEntityBehaviour {
|
|||
public boolean test(Direction side);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ItemStack tryExportingToBeltFunnel(ItemStack stack, @Nullable Direction side) {
|
||||
BlockPos funnelPos = tileEntity.getPos()
|
||||
.up();
|
||||
World world = getWorld();
|
||||
BlockState funnelState = world.getBlockState(funnelPos);
|
||||
if (!(funnelState.getBlock() instanceof BeltFunnelBlock))
|
||||
return stack;
|
||||
return null;
|
||||
if (funnelState.get(BeltFunnelBlock.SHAPE) != Shape.PULLING)
|
||||
return stack;
|
||||
return null;
|
||||
if (side != null && FunnelBlock.getFunnelFacing(funnelState) != side)
|
||||
return stack;
|
||||
return null;
|
||||
TileEntity te = world.getTileEntity(funnelPos);
|
||||
if (!(te instanceof FunnelTileEntity))
|
||||
return stack;
|
||||
return null;
|
||||
ItemStack insert = FunnelBlock.tryInsert(world, funnelPos, stack, false);
|
||||
if (insert.getCount() != stack.getCount())
|
||||
((FunnelTileEntity) te).flap(true);
|
||||
|
|
BIN
src/main/resources/ponder/chute/downward.nbt
Normal file
BIN
src/main/resources/ponder/chute/downward.nbt
Normal file
Binary file not shown.
BIN
src/main/resources/ponder/chute/smart.nbt
Normal file
BIN
src/main/resources/ponder/chute/smart.nbt
Normal file
Binary file not shown.
BIN
src/main/resources/ponder/chute/upward.nbt
Normal file
BIN
src/main/resources/ponder/chute/upward.nbt
Normal file
Binary file not shown.
BIN
src/main/resources/ponder/depot.nbt
Normal file
BIN
src/main/resources/ponder/depot.nbt
Normal file
Binary file not shown.
Loading…
Reference in a new issue