You saw nothing

- Tweaked item processing behaviour of mechanical saws
- Fixed placement assist not playing placement sounds
- Saws now yield more planks
- Saws can no longer process stacks of items, unless configured to
- Removed unused sounds
- Soul particles now disappear early if their location gets lit
- Stationary cursed bell range is doubled
- Mechanical Arms now require clockwork components to craft
- Extendo-grips now require clockwork components to craft
- Mechanical Arms now take significantly less stress units to power
- Added recipe for the potato cannon
- Bells no longer require ghast tears
This commit is contained in:
simibubi 2021-06-30 16:55:24 +02:00
parent 7df865b3cb
commit b5ff93cff0
54 changed files with 238 additions and 228 deletions

View file

@ -411,20 +411,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
391e1552053f8fbb148b0bdf2e61f74ae4782100 assets/create/lang/en_ud.json
0e4ba265ae6ab6a81da261f075eef3dc65f688d1 assets/create/lang/en_us.json
012e68268dc9b1a23d726430ca1708fea249cbd6 assets/create/lang/unfinished/de_de.json
c69e245a2549cb045768cd08e16b74a4d3694360 assets/create/lang/unfinished/es_es.json
df23300aa54b5da18f430f8bb15738c1b994b317 assets/create/lang/unfinished/es_mx.json
213cbf99412e5080cb1c48a7c83e03e9ab05d3e5 assets/create/lang/unfinished/fr_fr.json
a9bacc0a4febe3ae012ccf32d01a7a6a2467004d assets/create/lang/unfinished/it_it.json
7c9e02f792fb32785ba9c9afa24c58f2a0b8faa7 assets/create/lang/unfinished/ja_jp.json
050f377d87dcb72b1bd19b57f5c0c02d5c572201 assets/create/lang/unfinished/ko_kr.json
dc06754d80e667eb957b5ff81f628e912bc72d21 assets/create/lang/unfinished/nl_nl.json
147c23ff2d3dd778a88da7a1f1e79befc8b9b62f assets/create/lang/unfinished/pl_pl.json
1b40342e2f2782e4b7e5802a3a72c0df8977bbf1 assets/create/lang/unfinished/pt_br.json
ad720b0b156624c2481f54f23260fe992cf88c5b assets/create/lang/unfinished/ru_ru.json
5adb90c525b9541fc22f67eb79f2d946fb859082 assets/create/lang/unfinished/zh_cn.json
69bf228174d5d88ffbb10d45409c3edf9bd0c99b assets/create/lang/unfinished/zh_tw.json
faa365ddd3f8f57c055bf65666c996bc74225394 assets/create/lang/en_us.json
9199b4649bdc7c19c3b79670efe506ff5b3f540b assets/create/lang/unfinished/de_de.json
92b8fc47ecd84423c6b30fbf2df5bd015acd04e1 assets/create/lang/unfinished/es_es.json
36a0f93f1b75555f08543c717dd42f464ef618ff assets/create/lang/unfinished/es_mx.json
676994435f2b6295d7b5e6f25c7b8ef7c36a825a assets/create/lang/unfinished/fr_fr.json
7b2ff91343db8b0f2c06b4702ac704945552b9cc assets/create/lang/unfinished/it_it.json
e467d82809b0ae382139de870e5c82e0a6dd4da6 assets/create/lang/unfinished/ja_jp.json
b21506cd99caa124069146e1a3e7a675daf8cdc2 assets/create/lang/unfinished/ko_kr.json
61d141443e3945445863a8b96b5d9a667060028e assets/create/lang/unfinished/nl_nl.json
843533f614d5ef9167df6ac3c8fa390eaad658cf assets/create/lang/unfinished/pl_pl.json
64bcf724615d0265bcfd55c115dc32b6f45a19cb assets/create/lang/unfinished/pt_br.json
70de883f62946813ef00ef6806d1fdd55808b68f assets/create/lang/unfinished/ru_ru.json
db692d79ab25cc1534b0238effc51b4d9c9f3328 assets/create/lang/unfinished/zh_cn.json
e23bade49d0220f84a5b0c376ebce257bcde3cbb assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -1659,7 +1659,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
866fbb0ce2878a73e0440d1caf6534c8bd7c384f assets/create/models/item/zinc_ingot.json
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
b378f90ba8723a109fa960dfddf63149a34cb26f assets/create/sounds.json
f3231c27d43ff511b7d8532603111706ebcc155e assets/create/sounds.json
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
@ -2879,7 +2879,7 @@ c077375d16b4505e52548613fbc9356993556e6b data/create/recipes/crafting/appliances
7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json
b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json
660e92da2b1b6698b1c0df74bd74a56a25fb3eca data/create/recipes/crafting/curiosities/minecart_coupling.json
23ad6016273c0a1aefc8950187caf321f55ce738 data/create/recipes/crafting/curiosities/peculiar_bell.json
1f8f96ab57363166b7e132a1dd082001a5a0d5f0 data/create/recipes/crafting/curiosities/peculiar_bell.json
fcbc04d0a7eaf820a74bc7e4736a4a581e0a9dff data/create/recipes/crafting/curiosities/wand_of_symmetry.json
cc56d21a25286a9024e506dde9fa161230eaf46d data/create/recipes/crafting/kinetics/adjustable_chain_gearshift.json
88de51b451469698665b7319e5b9cfb9a87ae3e0 data/create/recipes/crafting/kinetics/analog_lever.json
@ -2949,7 +2949,7 @@ d214afbd44e580f5fd1ebb4f16f07ffe34d87cba data/create/recipes/crafting/kinetics/l
d7d96071874a87edf7bbdcf7a462f95a130d2991 data/create/recipes/crafting/kinetics/magenta_seat.json
5836881feef8fa8b18e4cceb9c3a9a2748b8cf3a data/create/recipes/crafting/kinetics/magenta_seat_from_other_seat.json
2ea43d6527dcb734578067ff442ec20395b0093b data/create/recipes/crafting/kinetics/magenta_valve_handle_from_other_valve_handle.json
f3f3d484de6411652472db0ca52c612c23f81278 data/create/recipes/crafting/kinetics/mechanical_arm.json
edf33830927a6b1583c77aa5faeed1e80ef3631f data/create/recipes/crafting/kinetics/mechanical_arm.json
946389078db31de69a7dc4fec5feebddf48dcfc3 data/create/recipes/crafting/kinetics/mechanical_bearing.json
a5c7aad0d86cbb66b8688d295e62547da4a2ce0f data/create/recipes/crafting/kinetics/mechanical_crafter.json
4372830100d39c4a89ff397a62b01940e1a28cb3 data/create/recipes/crafting/kinetics/mechanical_drill.json
@ -3110,22 +3110,22 @@ fd565e84aff897968be805c03623757c11ea57ed data/create/recipes/cutting/oak_log.jso
2bf4234c994073addb7341fa1ef8b721572dde37 data/create/recipes/cutting/oak_wood.json
2cd588872f6bbf63686a92a12735aa65d1960fe3 data/create/recipes/cutting/spruce_log.json
5ae29d81388c3d0d7966e703b6e9463ea58221ef data/create/recipes/cutting/spruce_wood.json
9f14b915695407155fdf806b1e5ecf91e0860c5b data/create/recipes/cutting/stripped_acacia_log.json
c7f0e3b7a46676ede1ed775ec8aa8b969e1fe598 data/create/recipes/cutting/stripped_acacia_wood.json
4c657d8ff753789853c8d705fb5ae01caeef5cc1 data/create/recipes/cutting/stripped_birch_log.json
53f47375955f65844c077c8bb06a9eeb67e0b53f data/create/recipes/cutting/stripped_birch_wood.json
c2d6c83bb3144c6013e169de8f54c5f380ad094f data/create/recipes/cutting/stripped_crimson_hyphae.json
affb6d0e171d77a6a27fc83b1a916eb95ed89516 data/create/recipes/cutting/stripped_crimson_stem.json
9cab5363d43559823d4679da0a64a0a603983cb6 data/create/recipes/cutting/stripped_dark_oak_log.json
c63bc7d8a81b3499390de84fc49d726c9018896d data/create/recipes/cutting/stripped_dark_oak_wood.json
e923bfbc5d9b02e020693378723b4d55fc60f79a data/create/recipes/cutting/stripped_jungle_log.json
2dba1962f0a267d72444ec448432b81143fc42da data/create/recipes/cutting/stripped_jungle_wood.json
ff68462a712267db1f1124d37a4877217edd5c85 data/create/recipes/cutting/stripped_oak_log.json
84ffcff96d79f88012bceae0e346da6be4da9802 data/create/recipes/cutting/stripped_oak_wood.json
2b5f34ba42521004f999140056c997b07acde4e9 data/create/recipes/cutting/stripped_spruce_log.json
6c3776c4d4190dba4f70d1f6995715002b37b3a8 data/create/recipes/cutting/stripped_spruce_wood.json
135e9d58965c5715eb6c34a637714f61b38714f7 data/create/recipes/cutting/stripped_warped_hyphae.json
f3c2cd996214e92e95e452d0f6e86ada59e65c78 data/create/recipes/cutting/stripped_warped_stem.json
7326bd8a2ec38c22dd7ce4bba5d732b1eaad2651 data/create/recipes/cutting/stripped_acacia_log.json
56a7b89a750ff320e9939ab811260e05056b7c60 data/create/recipes/cutting/stripped_acacia_wood.json
5bf1850bbb48e743b05f8d582f41a1736d5948f1 data/create/recipes/cutting/stripped_birch_log.json
0e487a41951e758cf523145dcbaaa2087d9ea718 data/create/recipes/cutting/stripped_birch_wood.json
9efc61317fbda72fc2924aa3f9113cced46aad77 data/create/recipes/cutting/stripped_crimson_hyphae.json
22b36652bef66fbcae960a5f6c0b4b0df3216eca data/create/recipes/cutting/stripped_crimson_stem.json
bb6fc75a5d21ad5cb17907a452b40f280b774349 data/create/recipes/cutting/stripped_dark_oak_log.json
0ead24be657900834f15dd19cafee385c9b3db44 data/create/recipes/cutting/stripped_dark_oak_wood.json
e3e08b3a69356be3e169ee3c6df9983c7c136b9c data/create/recipes/cutting/stripped_jungle_log.json
d59b1c12331db8a91e9284ed5b9b1e60f7357b94 data/create/recipes/cutting/stripped_jungle_wood.json
21b544e00ecad0a209e3dd7d1c65a698cdfdd889 data/create/recipes/cutting/stripped_oak_log.json
a9a78bafc9a90a5cd71cfa8ed8604584eea3ee17 data/create/recipes/cutting/stripped_oak_wood.json
42a519e2150a2578b9588068efa627626f8920f6 data/create/recipes/cutting/stripped_spruce_log.json
0bbac641024c34d7f38872ace1343e123f281a37 data/create/recipes/cutting/stripped_spruce_wood.json
fcf37b9ee3d691f1fd9c70fa297555eadceb039f data/create/recipes/cutting/stripped_warped_hyphae.json
f6462f1593d1275db331b0a8fc3f5d09bac60b23 data/create/recipes/cutting/stripped_warped_stem.json
a022f2d541f04a9e2bed6b72af4e74703076fcbe data/create/recipes/cutting/warped_hyphae.json
1bd01df5540df7db06afde28a3f9ebe4d25e4001 data/create/recipes/cutting/warped_stem.json
f2c317e03ac4d42fb631e1625607061e10c480fe data/create/recipes/dark_oak_window.json
@ -3325,9 +3325,10 @@ bbf64f7eb3868e354756e57348493e2b1ae6b0d9 data/create/recipes/limestone_cobblesto
327bb8a6535b60bb65d0dda9d5205e988bc82526 data/create/recipes/limestone_pillar.json
c2e15ac0c9109bad3face6d13efc32d7116b4c25 data/create/recipes/limestone_pillar_from_limestone_stonecutting.json
88173753ceaf121c5430bbf928a40e3c046dbfe0 data/create/recipes/mechanical_crafting/crushing_wheel.json
357cb3a50ebedcc347396c5cb26a04eb4bd96fea data/create/recipes/mechanical_crafting/extendo_grip.json
5ad44ffe3befafba6ae45096cf77b80d00d8eca2 data/create/recipes/mechanical_crafting/extendo_grip.json
de7fea84434753873dfa2b929d9b5f5f86ac6a5c data/create/recipes/mechanical_crafting/flywheel.json
e491fd8a8873308270f9dc2a57ac8f2c70431dcc data/create/recipes/mechanical_crafting/furnace_engine.json
06deb1679f4086e014e96fff40b6983365076a10 data/create/recipes/mechanical_crafting/potato_cannon.json
98f877bf8f3f8a686fc6cf7479a0fba5744248ce data/create/recipes/milling/allium.json
8c7e1cbc87c7ca7df2bf949957e89422fef8ad94 data/create/recipes/milling/aluminum_ore.json
bcff4d30ae09a0729bce8b2dbde4ddd6719a998b data/create/recipes/milling/andesite.json

View file

@ -1178,7 +1178,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "Contraption stops",
"create.subtitle.peculiar_bell_use": "Peculiar Bell tolls",
"create.subtitle.mixing": "Mixing Noises",
@ -1193,7 +1192,6 @@
"create.subtitle.scroll_value": "Scroll-input clicks",
"create.subtitle.crafter_craft": "Crafter crafts",
"create.subtitle.controller_put": "Controller thumps",
"create.subtitle.saw_process": "Mechanical Saw processes",
"create.subtitle.cranking": "Hand Crank turns",
"create.subtitle.wrench_remove": "Component breaks",
"create.subtitle.cogs": "Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1090",
"_": "Missing Localizations: 1088",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 851",
"_": "Missing Localizations: 849",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1457",
"_": "Missing Localizations: 1455",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1342",
"_": "Missing Localizations: 1340",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 868",
"_": "Missing Localizations: 866",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 234",
"_": "Missing Localizations: 232",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "からくりが止まる",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "混ぜる音",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "スクロールのカチカチ音",
"create.subtitle.crafter_craft": "メカニカルクラフターがクラフトする",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "ハンドクランクが回る",
"create.subtitle.wrench_remove": "機械を壊す",
"create.subtitle.cogs": "歯車がゴロゴロと鳴る",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 921",
"_": "Missing Localizations: 919",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1723",
"_": "Missing Localizations: 1721",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 210",
"_": "Missing Localizations: 208",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "Maszyna staje",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "Dźwięki mieszania",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "Kliknięcie",
"create.subtitle.crafter_craft": "Mechaniczny stół rzemieślniczy konstruuje",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "Ręczna korba obraca się",
"create.subtitle.wrench_remove": "Komponent niszczy się",
"create.subtitle.cogs": "Koła zębate terkoczą",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1764",
"_": "Missing Localizations: 1762",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 767",
"_": "Missing Localizations: 765",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 251",
"_": "Missing Localizations: 249",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 246",
"_": "Missing Localizations: 244",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1179,7 +1179,6 @@
"_": "->------------------------] Subtitles [------------------------<-",
"create.subtitle.saw_idle": "UNLOCALIZED: Mechanical Saw turns",
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
@ -1194,7 +1193,6 @@
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
"create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts",
"create.subtitle.controller_put": "UNLOCALIZED: Controller thumps",
"create.subtitle.saw_process": "UNLOCALIZED: Mechanical Saw processes",
"create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns",
"create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks",
"create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble",

View file

@ -294,24 +294,6 @@
],
"subtitle": "create.subtitle.saw_activate_wood"
},
"saw_idle": {
"sounds": [
{
"name": "minecraft:entity.boat.paddle_land",
"type": "event"
}
],
"subtitle": "create.subtitle.saw_idle"
},
"saw_process": {
"sounds": [
{
"name": "minecraft:block.sand.place",
"type": "event"
}
],
"subtitle": "create.subtitle.saw_process"
},
"schematicannon_finish": {
"sounds": [
{

View file

@ -1,19 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
" I ",
"IGI",
"S S"
"I",
"P"
],
"key": {
"I": {
"tag": "forge:ingots/brass"
"tag": "forge:storage_blocks/brass"
},
"S": {
"P": {
"tag": "forge:plates/brass"
},
"G": {
"item": "minecraft:ghast_tear"
}
},
"result": {

View file

@ -2,18 +2,15 @@
"type": "minecraft:crafting_shaped",
"pattern": [
"LLA",
"LR ",
"ICI"
"L ",
"IC "
],
"key": {
"L": {
"tag": "forge:plates/brass"
},
"R": {
"item": "create:cogwheel"
},
"I": {
"item": "create:electron_tube"
"item": "create:clockwork_component"
},
"A": {
"item": "create:andesite_alloy"

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:acacia_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:acacia_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:birch_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:birch_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:crimson_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:crimson_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:dark_oak_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:dark_oak_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:jungle_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:jungle_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:oak_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:oak_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:spruce_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:spruce_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:warped_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -8,8 +8,8 @@
"results": [
{
"item": "minecraft:warped_planks",
"count": 5
"count": 6
}
],
"processingTime": 100
"processingTime": 50
}

View file

@ -12,7 +12,7 @@
"tag": "forge:ingots/brass"
},
"R": {
"item": "create:cogwheel"
"item": "create:clockwork_component"
},
"H": {
"item": "create:brass_hand"

View file

@ -0,0 +1,24 @@
{
"type": "create:mechanical_crafting",
"pattern": [
"L",
"R",
"S",
"S",
"S"
],
"key": {
"L": {
"item": "create:andesite_alloy"
},
"R": {
"item": "create:clockwork_component"
},
"S": {
"tag": "forge:ingots/copper"
}
},
"result": {
"item": "create:potato_cannon"
}
}

View file

@ -1123,7 +1123,7 @@ public class AllBlocks {
.modelFile(AssetLookup.partialBaseModel(c, p))
.rotationX(s.get(ArmBlock.CEILING) ? 180 : 0)
.build()))
.transform(StressConfigDefaults.setImpact(8.0))
.transform(StressConfigDefaults.setImpact(2.0))
.item(ArmItem::new)
.transform(customItemModel())
.register();

View file

@ -194,16 +194,6 @@ public class AllSoundEvents {
.category(SoundCategory.BLOCKS)
.build(),
SAW_PROCESS = create("saw_process").subtitle("Mechanical Saw processes")
.playExisting(SoundEvents.BLOCK_SAND_PLACE, .075f, .75f)
.category(SoundCategory.BLOCKS)
.build(),
SAW_IDLE = create("saw_idle").subtitle("Mechanical Saw turns")
.playExisting(SoundEvents.ENTITY_BOAT_PADDLE_LAND)
.category(SoundCategory.BLOCKS)
.build(),
BLAZE_MUNCH = create("blaze_munch").subtitle("Blaze Burner munches")
.playExisting(SoundEvents.ENTITY_GENERIC_EAT, .5f, 1f)
.category(SoundCategory.BLOCKS)

View file

@ -49,7 +49,9 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
renderItems(te, partialTicks, ms, buffer, light, overlay);
FilteringRenderer.renderOnTileEntity(te, partialTicks, ms, buffer, light, overlay);
if (Backend.getInstance().canUseInstancing(te.getWorld())) return;
if (Backend.getInstance()
.canUseInstancing(te.getWorld()))
return;
renderShaft(te, ms, buffer, light, overlay);
}
@ -85,10 +87,9 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
if (rotate) {
superBuffer.rotateCentered(Direction.UP, AngleHelper.rad(90));
}
superBuffer
.color(0xFFFFFF)
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.getCutoutMipped()));
superBuffer.color(0xFFFFFF)
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.getCutoutMipped()));
}
protected void renderShaft(SawTileEntity te, MatrixStack ms, IRenderTypeBuffer buffer, int light, int overlay) {
@ -108,8 +109,13 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
boolean moving = te.inventory.recipeDuration != 0;
float offset = moving ? (float) (te.inventory.remainingTime) / te.inventory.recipeDuration : 0;
float processingSpeed = MathHelper.clamp(Math.abs(te.getSpeed()) / 32, 1, 128);
if (moving)
offset = MathHelper.clamp(offset + ((-partialTicks + .5f) * processingSpeed) / te.inventory.recipeDuration, 0, 1);
if (moving) {
offset = MathHelper
.clamp(offset + ((-partialTicks + .5f) * processingSpeed) / te.inventory.recipeDuration, 0.125f, 1f);
if (!te.inventory.appliedRecipe)
offset += 1;
offset /= 2;
}
if (te.getSpeed() == 0)
offset = .5f;
@ -142,10 +148,13 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
protected SuperByteBuffer getRotatedModel(KineticTileEntity te) {
BlockState state = te.getBlockState();
if (state.get(FACING).getAxis().isHorizontal())
return PartialBufferer.getFacing(AllBlockPartials.SHAFT_HALF, state.rotate(te.getWorld(), te.getPos(), Rotation.CLOCKWISE_180));
if (state.get(FACING)
.getAxis()
.isHorizontal())
return PartialBufferer.getFacing(AllBlockPartials.SHAFT_HALF,
state.rotate(te.getWorld(), te.getPos(), Rotation.CLOCKWISE_180));
return CreateClient.BUFFER_CACHE.renderBlockIn(KineticTileEntityRenderer.KINETIC_TILE,
getRenderedBlockState(te));
getRenderedBlockState(te));
}
protected BlockState getRenderedBlockState(KineticTileEntity te) {
@ -195,10 +204,8 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
MatrixStacker.of(m)
.unCentre();
superBuffer
.transform(m)
.light(matrices.entityMatrix,
ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld))
superBuffer.transform(m)
.light(matrices.entityMatrix, ContraptionRenderDispatcher.getContraptionWorldLight(context, renderWorld))
.renderInto(matrices.entityStack, buffer.getBuffer(RenderType.getCutoutMipped()));
m.pop();

View file

@ -19,12 +19,9 @@ import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRe
import com.simibubi.create.content.contraptions.processing.ProcessingInventory;
import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.item.ItemHelper;
import com.simibubi.create.foundation.sound.SoundScapes;
import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup;
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour;
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
import com.simibubi.create.foundation.utility.NBTHelper;
import com.simibubi.create.foundation.utility.TreeCutter;
import com.simibubi.create.foundation.utility.VecHelper;
import com.simibubi.create.foundation.utility.recipe.RecipeConditions;
@ -81,15 +78,16 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
private int recipeIndex;
private final LazyOptional<IItemHandler> invProvider;
private FilteringBehaviour filtering;
private boolean processingStarted;
private ItemStack playEvent;
public SawTileEntity(TileEntityType<? extends SawTileEntity> type) {
super(type);
inventory = new ProcessingInventory(this::start);
inventory = new ProcessingInventory(this::start).withSlotLimit(!AllConfigs.SERVER.recipes.bulkCutting.get());
inventory.remainingTime = -1;
recipeIndex = 0;
invProvider = LazyOptional.of(() -> inventory);
processingStarted = false;
playEvent = ItemStack.EMPTY;
}
@Override
@ -106,10 +104,10 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
compound.putInt("RecipeIndex", recipeIndex);
super.write(compound, clientPacket);
if (!clientPacket || !processingStarted)
if (!clientPacket || playEvent.isEmpty())
return;
processingStarted = false;
NBTHelper.putMarker(compound, "ProcessingStarted");
compound.put("PlayEvent", playEvent.serializeNBT());
playEvent = ItemStack.EMPTY;
}
@Override
@ -117,8 +115,8 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
super.fromTag(state, compound, clientPacket);
inventory.deserializeNBT(compound.getCompound("Inventory"));
recipeIndex = compound.getInt("RecipeIndex");
if (compound.contains("ProcessingStarted"))
processingStarted = true;
if (compound.contains("PlayEvent"))
playEvent = ItemStack.read(compound.getCompound("PlayEvent"));
}
@Override
@ -128,29 +126,21 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
if (getSpeed() == 0)
return;
SoundScapes.play(AmbienceGroup.SAW, pos, 1);
ItemStack stackInSlot = inventory.getStackInSlot(0);
if (stackInSlot.isEmpty())
return;
boolean isWood = false;
Item item = stackInSlot.getItem();
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
isWood = block.getSoundType(block.getDefaultState(), world, pos, null) == SoundType.WOOD;
}
if (processingStarted) {
processingStarted = false;
if (!playEvent.isEmpty()) {
boolean isWood = false;
Item item = playEvent.getItem();
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
isWood = block.getSoundType(block.getDefaultState(), world, pos, null) == SoundType.WOOD;
}
spawnEventParticles(playEvent);
playEvent = ItemStack.EMPTY;
if (!isWood)
AllSoundEvents.SAW_ACTIVATE_STONE.playAt(world, pos, 1, 1, true);
AllSoundEvents.SAW_ACTIVATE_STONE.playAt(world, pos, 3, 1, true);
else
AllSoundEvents.SAW_ACTIVATE_WOOD.playAt(world, pos, 1, 1, true);
AllSoundEvents.SAW_ACTIVATE_WOOD.playAt(world, pos, 3, 1, true);
return;
}
// AllSoundEvents.SAW_PROCESS.playAt(world, pos, 1, 1, true); TODO
}
@Override
@ -169,15 +159,20 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
return;
}
float processingSpeed = MathHelper.clamp(Math.abs(getSpeed()) / 32, 1, 128);
float processingSpeed = MathHelper.clamp(Math.abs(getSpeed()) / 24, 1, 128);
inventory.remainingTime -= processingSpeed;
if (inventory.remainingTime > 0)
spawnParticles(inventory.getStackInSlot(0));
if (inventory.remainingTime < 20 && !inventory.appliedRecipe) {
if (inventory.remainingTime < 5 && !inventory.appliedRecipe) {
if (world.isRemote && !isVirtual())
return;
playEvent = inventory.getStackInSlot(0);
applyRecipe();
inventory.appliedRecipe = true;
inventory.recipeDuration = 20;
inventory.remainingTime = 20;
sendData();
return;
}
@ -263,6 +258,26 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
return super.getCapability(cap, side);
}
protected void spawnEventParticles(ItemStack stack) {
if (stack == null || stack.isEmpty())
return;
IParticleData particleData = null;
if (stack.getItem() instanceof BlockItem)
particleData = new BlockParticleData(ParticleTypes.BLOCK, ((BlockItem) stack.getItem()).getBlock()
.getDefaultState());
else
particleData = new ItemParticleData(ParticleTypes.ITEM, stack);
Random r = world.rand;
Vector3d v = VecHelper.getCenterOf(this.pos)
.add(0, 5 / 16f, 0);
for (int i = 0; i < 10; i++) {
Vector3d m = VecHelper.offsetRandomly(new Vector3d(0, 0.25f, 0), r, .125f);
world.addParticle(particleData, v.x, v.y, v.z, m.x, m.y, m.y);
}
}
protected void spawnParticles(ItemStack stack) {
if (stack == null || stack.isEmpty())
return;
@ -281,7 +296,9 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
Vector3d vec = getItemMovementVec();
Vector3d pos = VecHelper.getCenterOf(this.pos);
float offset = inventory.recipeDuration != 0 ? (float) (inventory.remainingTime) / inventory.recipeDuration : 0;
offset -= .5f;
offset /= 2;
if (inventory.appliedRecipe)
offset -= .5f;
world.addParticle(particleData, pos.getX() + -vec.x * offset, pos.getY() + .45f, pos.getZ() + -vec.z * offset,
-vec.x * speed, r.nextFloat() * speed, -vec.z * speed);
}
@ -319,8 +336,9 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
ItemHelper.addToList(stack, list);
}
}
for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlots(); slot++)
for (int slot = 0; slot < list.size() && slot + 1 < inventory.getSlots(); slot++) {
inventory.setStackInSlot(slot + 1, list.get(slot));
}
}
@ -353,9 +371,12 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
return;
inventory.clear();
inventory.insertItem(0, entity.getItem()
ItemStack remainder = inventory.insertItem(0, entity.getItem()
.copy(), false);
entity.remove();
if (remainder.isEmpty())
entity.remove();
else
entity.setItem(remainder);
}
public void start(ItemStack inserted) {
@ -368,7 +389,6 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
List<? extends IRecipe<?>> recipes = getRecipes();
boolean valid = !recipes.isEmpty();
processingStarted = true;
int time = 50;
if (recipes.isEmpty()) {

View file

@ -11,11 +11,22 @@ public class ProcessingInventory extends ItemStackHandler {
public float recipeDuration;
public boolean appliedRecipe;
public Consumer<ItemStack> callback;
private boolean limit;
public ProcessingInventory(Consumer<ItemStack> callback) {
super(10);
this.callback = callback;
}
public ProcessingInventory withSlotLimit(boolean limit) {
this.limit = limit;
return this;
}
@Override
public int getSlotLimit(int slot) {
return !limit ? super.getSlotLimit(slot) : 1;
}
public void clear() {
for (int i = 0; i < getSlots(); i++)
@ -36,7 +47,7 @@ public class ProcessingInventory extends ItemStackHandler {
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
ItemStack insertItem = super.insertItem(slot, stack, simulate);
if (slot == 0 && !insertItem.equals(stack, true))
callback.accept(insertItem.copy());
callback.accept(getStackInSlot(slot));
return insertItem;
}

View file

@ -15,7 +15,7 @@ import net.minecraftforge.fml.network.PacketDistributor;
@EventBusSubscriber
public class CursedBellPulser {
public static final int DISTANCE = 2;
public static final int DISTANCE = 3;
public static final int RECHARGE_TICKS = 8;
@SubscribeEvent

View file

@ -19,7 +19,7 @@ import net.minecraft.world.World;
public class CursedBellTileEntity extends AbstractBellTileEntity {
public static final int DISTANCE = 5;
public static final int DISTANCE = 10;
public static final int RECHARGE_TICKS = 65;
public static final int EFFECT_TICKS = 20;

View file

@ -6,7 +6,9 @@ import net.minecraft.client.particle.IAnimatedSprite;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.particles.ParticleType;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Quaternion;
import net.minecraft.world.LightType;
public class SoulParticle extends CustomRotationParticle {
@ -59,7 +61,8 @@ public class SoulParticle extends CustomRotationParticle {
if (animationStage == null)
this.setExpired();
if (world.getLightLevel(LightType.BLOCK, new BlockPos(posX, posY, posZ)) > 7)
this.setExpired();
}
public void setFrame(int frame) {

View file

@ -17,7 +17,7 @@ import net.minecraft.world.spawner.WorldEntitySpawner;
public class SoulPulseEffect {
public static final int MAX_DISTANCE = 5;
public static final int MAX_DISTANCE = 10;
private static final List<List<BlockPos>> LAYERS = genLayers();
private static final int WAITING_TICKS = 100;

View file

@ -359,7 +359,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor
ItemStack remainder = ItemHandlerHelper.insertItemStacked(capBelow.orElse(null), item, simulate);
ItemStack held = getItem();
if (!simulate)
setItem(remainder);
setItem(remainder, itemPosition.get(0));
if (remainder.getCount() != held.getCount())
return true;
if (direction == Direction.DOWN)

View file

@ -3,6 +3,7 @@ package com.simibubi.create.foundation.config;
public class CRecipes extends ConfigBase {
public ConfigBool bulkPressing = b(false, "bulkPressing", Comments.bulkPressing);
public ConfigBool bulkCutting = b(false, "bulkCutting", Comments.bulkCutting);
public ConfigBool allowShapelessInMixer = b(true, "allowShapelessInMixer", Comments.allowShapelessInMixer);
public ConfigBool allowShapedSquareInPress = b(true, "allowShapedSquareInPress", Comments.allowShapedSquareInPress);
public ConfigBool allowRegularCraftingInCrafter =
@ -24,6 +25,7 @@ public class CRecipes extends ConfigBase {
private static class Comments {
static String bulkPressing = "When true, allows the Mechanical Press to process entire stacks at a time.";
static String bulkCutting = "When true, allows the Mechanical Saw to process entire stacks at a time.";
static String allowShapelessInMixer =
"When true, allows any shapeless crafting recipes to be processed by a Mechanical Mixer + Basin.";
static String allowShapedSquareInPress =

View file

@ -119,7 +119,7 @@ public abstract class CreateRecipeProvider extends RecipeProvider {
return AllItems.ELECTRON_TUBE.get();
}
static IItemProvider circuit() {
static IItemProvider clockwork() {
return AllItems.CLOCKWORK_COMPONENT.get();
}

View file

@ -37,8 +37,8 @@ public class CuttingRecipeGen extends ProcessingRecipeGen {
GeneratedRecipe stripAndMakePlanks(Block wood, Block stripped, Block planks) {
create(() -> wood, b -> b.duration(50)
.output(stripped));
return create(() -> stripped, b -> b.duration(100)
.output(planks, 5));
return create(() -> stripped, b -> b.duration(50)
.output(planks, 6));
}
public CuttingRecipeGen(DataGenerator p_i48262_1_) {

View file

@ -31,7 +31,7 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider {
EXTENDO_GRIP = create(AllItems.EXTENDO_GRIP::get).returns(1)
.recipe(b -> b.key('L', Ingredient.fromTag(I.brass()))
.key('R', I.cog())
.key('R', I.clockwork())
.key('H', AllItems.BRASS_HAND.get())
.key('S', Ingredient.fromTag(Tags.Items.RODS_WOODEN))
.patternLine(" L ")
@ -39,6 +39,16 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider {
.patternLine("SSS")
.patternLine("SSS")
.patternLine(" H ")),
POTATO_CANNON = create(AllItems.POTATO_CANNON::get).returns(1)
.recipe(b -> b.key('L', I.andesite())
.key('R', I.clockwork())
.key('S', Ingredient.fromTag(I.copper()))
.patternLine("L")
.patternLine("R")
.patternLine("S")
.patternLine("S")
.patternLine("S")),
FURNACE_ENGINE = create(AllBlocks.FURNACE_ENGINE::get).returns(1)
.recipe(b -> b.key('P', Ingredient.fromTag(I.brassSheet()))

View file

@ -175,12 +175,10 @@ public class StandardRecipeGen extends CreateRecipeProvider {
.patternLine("E ")),
PECULIAR_BELL = create(AllBlocks.PECULIAR_BELL).unlockedByTag(I::brass)
.viaShaped(b -> b.key('I', I.brass())
.key('S', I.brassSheet())
.key('G', Items.GHAST_TEAR)
.patternLine(" I ")
.patternLine("IGI")
.patternLine("S S"))
.viaShaped(b -> b.key('I', I.brassBlock())
.key('P', I.brassSheet())
.patternLine("I")
.patternLine("P"))
;
@ -602,13 +600,12 @@ public class StandardRecipeGen extends CreateRecipeProvider {
MECHANICAL_ARM = create(AllBlocks.MECHANICAL_ARM::get).unlockedBy(I::brassCasing)
.returns(1)
.viaShaped(b -> b.key('L', I.brassSheet())
.key('R', I.cog())
.key('I', I.electronTube())
.key('I', I.clockwork())
.key('A', I.andesite())
.key('C', I.brassCasing())
.patternLine("LLA")
.patternLine("LR ")
.patternLine("ICI")),
.patternLine("L ")
.patternLine("IC ")),
MECHANICAL_MIXER = create(AllBlocks.MECHANICAL_MIXER).unlockedBy(I::andesite)
.viaShaped(b -> b.key('S', I.cog())
@ -722,7 +719,7 @@ public class StandardRecipeGen extends CreateRecipeProvider {
GAUGE_CYCLE = conversionCycle(ImmutableList.of(AllBlocks.SPEEDOMETER, AllBlocks.STRESSOMETER)),
ROTATION_SPEED_CONTROLLER = create(AllBlocks.ROTATION_SPEED_CONTROLLER).unlockedBy(I::brassCasing)
.viaShaped(b -> b.key('B', I.circuit())
.viaShaped(b -> b.key('B', I.clockwork())
.key('C', I.brassCasing())
.key('S', I.shaft())
.patternLine(" B ")

View file

@ -67,7 +67,7 @@ public class MechanicalSawScenes {
scene.world.modifyEntity(logItem, Entity::remove);
scene.world.createItemOnBeltLike(sawPos, Direction.WEST, log);
scene.idle(30);
scene.idle(50);
logItem = scene.world.createItemEntity(util.vector.topOf(sawPos)
.add(0.5, -.1, 0), util.vector.of(0.05, 0.18, 0), strippedLog);
@ -90,7 +90,7 @@ public class MechanicalSawScenes {
scene.world.modifyEntity(logItem, Entity::remove);
scene.world.createItemOnBeltLike(sawPos, Direction.EAST, strippedLog);
scene.idle(40);
scene.idle(25);
logItem = scene.world.createItemEntity(util.vector.topOf(sawPos)
.add(-0.5, -.1, 0), util.vector.of(-0.05, 0.18, 0), planks);

View file

@ -30,8 +30,6 @@ public class SoundScapes {
KINETIC(SoundScapes::kinetic),
COG(SoundScapes::cogwheel),
SAW((p, g) -> new SoundScape(p, g).repeating(AllSoundEvents.SAW_IDLE.getMainEvent(), 1f, .95f, 1))
;
private BiFunction<Float, AmbienceGroup, SoundScape> factory;

View file

@ -134,7 +134,7 @@ public class PlacementOffset {
BlockState newState = world.getBlockState(newPos);
SoundType soundtype = newState.getSoundType(world, newPos, player);
world.playSound(player, newPos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F);
world.playSound(null, newPos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F);
player.addStat(Stats.ITEM_USED.get(blockItem));