mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-28 01:38:34 +01:00
Compare commits
17 commits
50b5209e84
...
b69847d159
Author | SHA1 | Date | |
---|---|---|---|
|
b69847d159 | ||
|
55c345a78d | ||
|
e7e2de68f3 | ||
|
1bcf01101e | ||
|
7bcebe64f9 | ||
|
ef6e52f8a6 | ||
|
2a4e966659 | ||
|
be1bb6632a | ||
|
acc80f61d1 | ||
|
fff34a3afd | ||
|
adc276e8b5 | ||
|
a4cc12d993 | ||
|
18ac77022e | ||
|
6886aca623 | ||
|
5db3506179 | ||
|
5c13128acf | ||
|
f524eccc01 |
90 changed files with 1664 additions and 373 deletions
|
@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx3G
|
||||||
org.gradle.daemon=false
|
org.gradle.daemon=false
|
||||||
# Actually Additions
|
# Actually Additions
|
||||||
|
|
||||||
mod_version=1.2.2
|
mod_version=1.2.4
|
||||||
|
|
||||||
# Forge
|
# Forge
|
||||||
game_version=1.20.4
|
game_version=1.20.4
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.4 2024-03-08T17:07:43.7158398 Item Recipes
|
// 1.20.4 2024-03-10T13:16:06.5711018 Item Recipes
|
||||||
d374edde9294d1a224b4b5610b50117a11328c00 data/actuallyadditions/recipes/advanced_coil.json
|
d374edde9294d1a224b4b5610b50117a11328c00 data/actuallyadditions/recipes/advanced_coil.json
|
||||||
f67629e45d152c96f3467a90a67520f78ecf9f07 data/actuallyadditions/recipes/advanced_leaf_blower.json
|
f67629e45d152c96f3467a90a67520f78ecf9f07 data/actuallyadditions/recipes/advanced_leaf_blower.json
|
||||||
d65e5a70232fa2f0e74d2a67c1cd4b0e87124242 data/actuallyadditions/recipes/basic_coil.json
|
d65e5a70232fa2f0e74d2a67c1cd4b0e87124242 data/actuallyadditions/recipes/basic_coil.json
|
||||||
|
@ -87,6 +87,8 @@ f6c73cb2e41a8a21e2fda888b28bf52672b33d2e data/actuallyadditions/recipes/rice_sli
|
||||||
764d4f63e1d978d02419d30d2ad845b914e594c0 data/actuallyadditions/recipes/ring_of_magnetizing.json
|
764d4f63e1d978d02419d30d2ad845b914e594c0 data/actuallyadditions/recipes/ring_of_magnetizing.json
|
||||||
fc0a5281fc77edde16f22165e164f73dd28d7fcd data/actuallyadditions/recipes/single_battery.json
|
fc0a5281fc77edde16f22165e164f73dd28d7fcd data/actuallyadditions/recipes/single_battery.json
|
||||||
cb0454ccb8e918d506a1dd488187453678f82751 data/actuallyadditions/recipes/stone_aiot.json
|
cb0454ccb8e918d506a1dd488187453678f82751 data/actuallyadditions/recipes/stone_aiot.json
|
||||||
|
c57c0ac561f1919f6085f052060ca285a67ac579 data/actuallyadditions/recipes/tagged_slime_block.json
|
||||||
|
be5e09790d225ca17dfef8089caece4095f3b6cf data/actuallyadditions/recipes/tagged_sticky_piston.json
|
||||||
b4aa29ef0d47b557f354a23cb6ee8ef60d273de3 data/actuallyadditions/recipes/teleport_staff.json
|
b4aa29ef0d47b557f354a23cb6ee8ef60d273de3 data/actuallyadditions/recipes/teleport_staff.json
|
||||||
0ec48b429486a03aba107cb8b6dc9e03694ca68f data/actuallyadditions/recipes/tiny_to_charcoal.json
|
0ec48b429486a03aba107cb8b6dc9e03694ca68f data/actuallyadditions/recipes/tiny_to_charcoal.json
|
||||||
5745a05f877fce254a1990f1e89f80e91846e270 data/actuallyadditions/recipes/tiny_to_coal.json
|
5745a05f877fce254a1990f1e89f80e91846e270 data/actuallyadditions/recipes/tiny_to_coal.json
|
||||||
|
@ -94,5 +96,3 @@ b4aa29ef0d47b557f354a23cb6ee8ef60d273de3 data/actuallyadditions/recipes/teleport
|
||||||
89c9512eeb746befb1bdc31037baa9bd86220f74 data/actuallyadditions/recipes/triple_battery.json
|
89c9512eeb746befb1bdc31037baa9bd86220f74 data/actuallyadditions/recipes/triple_battery.json
|
||||||
0737014abee48f688982412297e04e994aa6f9a6 data/actuallyadditions/recipes/wings_of_the_bats.json
|
0737014abee48f688982412297e04e994aa6f9a6 data/actuallyadditions/recipes/wings_of_the_bats.json
|
||||||
c80073fcade3cdcb15f28c4a1cb12df4ae6cf4ec data/actuallyadditions/recipes/wooden_aiot.json
|
c80073fcade3cdcb15f28c4a1cb12df4ae6cf4ec data/actuallyadditions/recipes/wooden_aiot.json
|
||||||
2bd8e4e4ed83a0d870e4509c0e722a9bbfd54a73 data/minecraft/recipes/slime_block.json
|
|
||||||
77fa026351592845c5fd6bbe430e6362e755eaaf data/minecraft/recipes/sticky_piston.json
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.4 2024-03-09T22:59:24.7798372 Recipes
|
// 1.20.4 2024-03-11T02:13:51.6169998 Recipes
|
||||||
4d3128b37a7153882a9324cda49b5069207561c5 data/actuallyadditions/recipes/atomic_reconstructor.json
|
4d3128b37a7153882a9324cda49b5069207561c5 data/actuallyadditions/recipes/atomic_reconstructor.json
|
||||||
b0367f5012651764931e8b8fd0c5bcca4e8614c0 data/actuallyadditions/recipes/battery_box.json
|
b0367f5012651764931e8b8fd0c5bcca4e8614c0 data/actuallyadditions/recipes/battery_box.json
|
||||||
7e05cd54092b998dfdbd2221235dd52576ec79eb data/actuallyadditions/recipes/black_quartz_block.json
|
7e05cd54092b998dfdbd2221235dd52576ec79eb data/actuallyadditions/recipes/black_quartz_block.json
|
||||||
|
@ -20,10 +20,14 @@ db1978ab59369dd3c10e719073b7035acf33885c data/actuallyadditions/recipes/black_qu
|
||||||
2e9233449531a074984b443ceef0ad782f82eaed data/actuallyadditions/recipes/chiseled_black_quartz_wall.json
|
2e9233449531a074984b443ceef0ad782f82eaed data/actuallyadditions/recipes/chiseled_black_quartz_wall.json
|
||||||
e41876ca63cd64d5a906c87682433179e9fe4de2 data/actuallyadditions/recipes/coal_generator.json
|
e41876ca63cd64d5a906c87682433179e9fe4de2 data/actuallyadditions/recipes/coal_generator.json
|
||||||
f1bbeaed1616b92ee345860fedb789e0aaa74a0f data/actuallyadditions/recipes/coffee_machine.json
|
f1bbeaed1616b92ee345860fedb789e0aaa74a0f data/actuallyadditions/recipes/coffee_machine.json
|
||||||
|
596632db9ab03e62c5866faab49e703c1a8d9bf4 data/actuallyadditions/recipes/crusher.json
|
||||||
|
e091d7dcfe6a654a122b5f072a133ec656d4b8f7 data/actuallyadditions/recipes/crusher_double.json
|
||||||
49e378923a797d89b3c3c46bef00f2a347ded250 data/actuallyadditions/recipes/display_stand.json
|
49e378923a797d89b3c3c46bef00f2a347ded250 data/actuallyadditions/recipes/display_stand.json
|
||||||
f6a581219fbfde8c67edc59318f92cc719597c4f data/actuallyadditions/recipes/dropper.json
|
f6a581219fbfde8c67edc59318f92cc719597c4f data/actuallyadditions/recipes/dropper.json
|
||||||
7c9a004460b6eb6c6e07cedfa086294d59e5eec5 data/actuallyadditions/recipes/empowerer.json
|
7c9a004460b6eb6c6e07cedfa086294d59e5eec5 data/actuallyadditions/recipes/empowerer.json
|
||||||
5801963cf623f873cdb254513c1b4b5ec319dd74 data/actuallyadditions/recipes/ender_casing.json
|
5801963cf623f873cdb254513c1b4b5ec319dd74 data/actuallyadditions/recipes/ender_casing.json
|
||||||
|
87c24522b48b28bcf1996e7df01313fead1c1890 data/actuallyadditions/recipes/energizer.json
|
||||||
|
f44feb3591a63e24a37bc6bc0463dcd425b29e2b data/actuallyadditions/recipes/enervator.json
|
||||||
b2eefc77a753cbb650a879a9d30d833fc154dc58 data/actuallyadditions/recipes/ethetic_green_slab.json
|
b2eefc77a753cbb650a879a9d30d833fc154dc58 data/actuallyadditions/recipes/ethetic_green_slab.json
|
||||||
1171daf9cf5402c9c47a9f2f370d5924ebddef5e data/actuallyadditions/recipes/ethetic_green_stairs.json
|
1171daf9cf5402c9c47a9f2f370d5924ebddef5e data/actuallyadditions/recipes/ethetic_green_stairs.json
|
||||||
0e57ac576603b7c6aeef7709d2e669e3dacbe5f2 data/actuallyadditions/recipes/ethetic_green_wall.json
|
0e57ac576603b7c6aeef7709d2e669e3dacbe5f2 data/actuallyadditions/recipes/ethetic_green_wall.json
|
||||||
|
@ -43,9 +47,12 @@ ff81da8a0f6632779414c0512100696a11771814 data/actuallyadditions/recipes/hopping_
|
||||||
92323ba7b5459abe64c06fff502d44384f64f361 data/actuallyadditions/recipes/laser_relay_advanced.json
|
92323ba7b5459abe64c06fff502d44384f64f361 data/actuallyadditions/recipes/laser_relay_advanced.json
|
||||||
31a2978ae8260ead579c6c920be0e40c6036498d data/actuallyadditions/recipes/laser_relay_extreme.json
|
31a2978ae8260ead579c6c920be0e40c6036498d data/actuallyadditions/recipes/laser_relay_extreme.json
|
||||||
4acb117a6727554073a78ed81bcd2b0b1af53bec data/actuallyadditions/recipes/laser_relay_item_advanced.json
|
4acb117a6727554073a78ed81bcd2b0b1af53bec data/actuallyadditions/recipes/laser_relay_item_advanced.json
|
||||||
|
2c37821d291542d4821842501e07bfad38181553 data/actuallyadditions/recipes/lava_factory_casing.json
|
||||||
|
76f9eb2b859198eec4c50d992c3715633d5109a8 data/actuallyadditions/recipes/lava_factory_controller.json
|
||||||
73696fd4e851f440a9850485fc9ad03fc63442a9 data/actuallyadditions/recipes/oil_generator.json
|
73696fd4e851f440a9850485fc9ad03fc63442a9 data/actuallyadditions/recipes/oil_generator.json
|
||||||
8c78ebb9351b98ffe368391a391b90385c0b8b7f data/actuallyadditions/recipes/placer.json
|
8c78ebb9351b98ffe368391a391b90385c0b8b7f data/actuallyadditions/recipes/placer.json
|
||||||
184acfb5fd3799b3fbe35150c67b6530581f8bf1 data/actuallyadditions/recipes/powered_furnace.json
|
184acfb5fd3799b3fbe35150c67b6530581f8bf1 data/actuallyadditions/recipes/powered_furnace.json
|
||||||
|
b81a706a5f635d8a63ffd3034c80838dc10699c9 data/actuallyadditions/recipes/ranged_collector.json
|
||||||
532a454741e8068941f1f3c44f3be257530db8c3 data/actuallyadditions/recipes/shock_suppressor.json
|
532a454741e8068941f1f3c44f3be257530db8c3 data/actuallyadditions/recipes/shock_suppressor.json
|
||||||
7fa363b3afe88f3ffac1b9f85f59c6a291d59544 data/actuallyadditions/recipes/smooth_black_quartz_slab.json
|
7fa363b3afe88f3ffac1b9f85f59c6a291d59544 data/actuallyadditions/recipes/smooth_black_quartz_slab.json
|
||||||
892f9867958c77a0577adcfd8ce3f8da108ecd3e data/actuallyadditions/recipes/smooth_black_quartz_stair.json
|
892f9867958c77a0577adcfd8ce3f8da108ecd3e data/actuallyadditions/recipes/smooth_black_quartz_stair.json
|
||||||
|
|
|
@ -1,2 +1,46 @@
|
||||||
// 1.20.4 2024-03-04T22:51:31.5959296 Crushing Recipes
|
// 1.20.4 2024-03-11T00:45:42.8987725 Crushing Recipes
|
||||||
5fa543c707eeb18accd41ca93e1a7a33a4eb44ff data/actuallyadditions/recipes/crushing/iron_crusher.json
|
07795b4aba877586e7aa11e6029caad068454978 data/actuallyadditions/recipes/crushing/allium.json
|
||||||
|
30d7431e146baa3e25afd3db941d8b6352be2b14 data/actuallyadditions/recipes/crushing/azure_bluet.json
|
||||||
|
928786acb608867ea89632b52104fd051ee004ba data/actuallyadditions/recipes/crushing/black_quartz_ore.json
|
||||||
|
97f1c1e40394e612ab81d9b682953274e37db309 data/actuallyadditions/recipes/crushing/blaze_rod.json
|
||||||
|
843270afee002ee27acf7663fa07bee6afc015f6 data/actuallyadditions/recipes/crushing/blue_orchid.json
|
||||||
|
5fa543c707eeb18accd41ca93e1a7a33a4eb44ff data/actuallyadditions/recipes/crushing/bone.json
|
||||||
|
fb79df8b27902475a107c891f6dfcfcd83e5addb data/actuallyadditions/recipes/crushing/coal_block.json
|
||||||
|
8955e3aba3eca7c4de62b08e1b2aa1339360e19a data/actuallyadditions/recipes/crushing/coal_ore.json
|
||||||
|
6ac7b08799b8996fbefedee184d34b6cfa8d8e6a data/actuallyadditions/recipes/crushing/cobblestone.json
|
||||||
|
e4214825ce0531be1e63fe9951a341130d05dd85 data/actuallyadditions/recipes/crushing/cornflower.json
|
||||||
|
0f3b98f6f2ec3521acf9f6fbb281f24302e5552a data/actuallyadditions/recipes/crushing/danedlion.json
|
||||||
|
a916d475df783d565d879fb3ae08195a2c561474 data/actuallyadditions/recipes/crushing/deepslate_coal_ore.json
|
||||||
|
6ff5d96d4e0a8214bf7e270bce9d77b427aa3a6e data/actuallyadditions/recipes/crushing/deepslate_diamond_ore.json
|
||||||
|
14dc3d945a793a11d08834f8814ecf7882f08bd9 data/actuallyadditions/recipes/crushing/deepslate_emerald_ore.json
|
||||||
|
b90588af31abd2bfff1179144823ee7e24fe98ff data/actuallyadditions/recipes/crushing/deepslate_lapis_ore.json
|
||||||
|
53d8c4bfbcd7f8347d25c567030c35de015b6ede data/actuallyadditions/recipes/crushing/deepslate_redstone_ore.json
|
||||||
|
b93fc1e7009a67eae296792186d210d3f82d11b9 data/actuallyadditions/recipes/crushing/diamond_horse_armor.json
|
||||||
|
268b250ae01bb702128709cdd017a890ca622984 data/actuallyadditions/recipes/crushing/diamond_ore.json
|
||||||
|
b1a764c5c764a3020957eb06ccf2f6b6150451ea data/actuallyadditions/recipes/crushing/emerald_ore.json
|
||||||
|
6a018de5653b7c0e30d27c3769126250e21685e5 data/actuallyadditions/recipes/crushing/glowstone.json
|
||||||
|
60d30a52aa2fac98480d903e344b9bdf8f4bcd4c data/actuallyadditions/recipes/crushing/golden_horse_armor.json
|
||||||
|
7cee0bad5b769e48b100d877acbcdd6582dc6207 data/actuallyadditions/recipes/crushing/gold_ore.json
|
||||||
|
b3c9e497ad7fd62ffbc3809e1c195608c00f59dc data/actuallyadditions/recipes/crushing/gravel.json
|
||||||
|
78a4a0959c8869d6c1e9cedff14c0be142234a07 data/actuallyadditions/recipes/crushing/iron_horse_armor.json
|
||||||
|
0873773cf161ecbb4d956110240b59e05a558999 data/actuallyadditions/recipes/crushing/iron_ore.json
|
||||||
|
28999e5d04c2292b6f76eaa51b2c43ec2cd9f9ca data/actuallyadditions/recipes/crushing/lapis_ore.json
|
||||||
|
f125a9bb8aaae2f727fde1871aa469d43062164e data/actuallyadditions/recipes/crushing/lilac.json
|
||||||
|
3baa56bb164fe8a412076abce9dcb4cc29028945 data/actuallyadditions/recipes/crushing/lily_of_the_valley.json
|
||||||
|
17794ebc8c44cf1afb51849c7aed694159ad760e data/actuallyadditions/recipes/crushing/nether_quartz_ore.json
|
||||||
|
544e9ecdf187c75816c8663470f6fda5eaf23b0b data/actuallyadditions/recipes/crushing/orange_tulip.json
|
||||||
|
f6c3d3ea4e000061711c3a89127d7ac2296f30b4 data/actuallyadditions/recipes/crushing/oxeye_daisy.json
|
||||||
|
62f5bdeac7cfe3f168519be8a0c530479762ea80 data/actuallyadditions/recipes/crushing/peony.json
|
||||||
|
428b3d9751c3a10b46c4e5b5065eccf0f221be1a data/actuallyadditions/recipes/crushing/pink_petals.json
|
||||||
|
00f49d07951883e76805fba0eb36390f02bcb13d data/actuallyadditions/recipes/crushing/pink_tulip.json
|
||||||
|
cd0ed556beec27185a114a52e82e50403c307a1a data/actuallyadditions/recipes/crushing/pitcher_plant.json
|
||||||
|
580ec3402c59182c6854fd5127230b48c377fc79 data/actuallyadditions/recipes/crushing/poppy.json
|
||||||
|
82f05b8878e72c4eb092007a21c204ec999f3a04 data/actuallyadditions/recipes/crushing/prismarine_shard.json
|
||||||
|
4772e5059251875c8a5860a6fdfe7f3bca7f7506 data/actuallyadditions/recipes/crushing/redstone_ore.json
|
||||||
|
61e68bf20aae6e5dbdf2662bd30153e4ad78f6b2 data/actuallyadditions/recipes/crushing/red_tulip.json
|
||||||
|
06ed082578441481bda5d937f0e1a5f5c6d26c83 data/actuallyadditions/recipes/crushing/rice.json
|
||||||
|
fea5ac56ae534a4368835e0e2da242f6e468f3e8 data/actuallyadditions/recipes/crushing/rose_bush.json
|
||||||
|
ea4b8e2f5e0a9312cb64be036c58a339e03d377b data/actuallyadditions/recipes/crushing/sugar_cane.json
|
||||||
|
5d55a7d91ca5a80b6fa5ba311861b6dd2b18d43f data/actuallyadditions/recipes/crushing/sunflower.json
|
||||||
|
4204dc494b762b58743bdd5f5d3e8ce04c90eaa4 data/actuallyadditions/recipes/crushing/white_tulip.json
|
||||||
|
d1abca5b7301750279ff23764c248dae58b40ed0 data/actuallyadditions/recipes/crushing/wither_rose.json
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"B": {
|
||||||
|
"item": "actuallyadditions:basic_coil"
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"tag": "forge:cobblestone"
|
||||||
|
},
|
||||||
|
"F": {
|
||||||
|
"item": "minecraft:flint"
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "actuallyadditions:restonia_crystal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
"RFC",
|
||||||
|
"BIB",
|
||||||
|
"CFR"
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"item": "actuallyadditions:crusher"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"A": {
|
||||||
|
"item": "actuallyadditions:advanced_coil"
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"item": "actuallyadditions:crusher"
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"tag": "forge:cobblestone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
"SAS",
|
||||||
|
"CIC",
|
||||||
|
"SAS"
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"item": "actuallyadditions:crusher_double"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:allium"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:magenta_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:azure_bluet"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:light_gray_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "actuallyadditions:black_quartz_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "actuallyadditions:black_quartz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:blaze_rod"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:blaze_powder"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:blue_orchid"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:light_blue_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:coal_block"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 9,
|
||||||
|
"id": "minecraft:coal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:coal_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:coal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:cobblestone"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 1,
|
||||||
|
"id": "minecraft:sand"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:cornflower"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:blue_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:dandelion"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:yellow_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:deepslate_coal_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:coal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:deepslate_diamond_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:diamond"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:deepslate_emerald_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:emerald"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:deepslate_lapis_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 12,
|
||||||
|
"id": "minecraft:lapis_lazuli"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:deepslate_redstone_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 10,
|
||||||
|
"id": "minecraft:redstone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:diamond_horse_armor"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 6,
|
||||||
|
"id": "minecraft:diamond"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:diamond_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:diamond"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:emerald_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:emerald"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:glowstone"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 4,
|
||||||
|
"id": "minecraft:glowstone_dust"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:gold_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:raw_gold"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:golden_horse_armor"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 6,
|
||||||
|
"id": "minecraft:raw_gold"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:gravel"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 1,
|
||||||
|
"id": "minecraft:flint"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.5,
|
||||||
|
"result": {
|
||||||
|
"Count": 1,
|
||||||
|
"id": "minecraft:flint"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:iron_horse_armor"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 6,
|
||||||
|
"id": "minecraft:raw_iron"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:iron_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:raw_iron"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.2,
|
||||||
|
"result": {
|
||||||
|
"Count": 1,
|
||||||
|
"id": "minecraft:raw_gold"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:lapis_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 12,
|
||||||
|
"id": "minecraft:lapis_lazuli"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:lilac"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 4,
|
||||||
|
"id": "minecraft:magenta_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:lily_of_the_valley"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:white_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:nether_quartz_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:quartz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:orange_tulip"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:orange_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:oxeye_daisy"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:light_gray_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:peony"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 4,
|
||||||
|
"id": "minecraft:pink_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:pink_petals"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:pink_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:pink_tulip"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:pink_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:pitcher_plant"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 4,
|
||||||
|
"id": "minecraft:cyan_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:poppy"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:red_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:prismarine_shard"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 1,
|
||||||
|
"id": "minecraft:prismarine_crystals"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:red_tulip"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:red_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:redstone_ore"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 10,
|
||||||
|
"id": "minecraft:redstone"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "actuallyadditions:rice"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 2,
|
||||||
|
"id": "minecraft:sugar"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:rose_bush"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 4,
|
||||||
|
"id": "minecraft:red_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:sugar_cane"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:sugar"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:sunflower"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 4,
|
||||||
|
"id": "minecraft:yellow_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:white_tulip"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:light_gray_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"type": "actuallyadditions:crushing",
|
||||||
|
"ingredient": {
|
||||||
|
"item": "minecraft:wither_rose"
|
||||||
|
},
|
||||||
|
"result": [
|
||||||
|
{
|
||||||
|
"result": {
|
||||||
|
"Count": 3,
|
||||||
|
"id": "minecraft:black_dye"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"chance": 0.0,
|
||||||
|
"result": {
|
||||||
|
"Count": 0,
|
||||||
|
"id": "minecraft:air"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"A": {
|
||||||
|
"item": "actuallyadditions:advanced_coil"
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "actuallyadditions:restonia_crystal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
"R R",
|
||||||
|
"AIA",
|
||||||
|
"R R"
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"item": "actuallyadditions:energizer"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"A": {
|
||||||
|
"item": "actuallyadditions:advanced_coil"
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"item": "actuallyadditions:restonia_crystal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
" R ",
|
||||||
|
"AIA",
|
||||||
|
" R "
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"item": "actuallyadditions:enervator"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"C": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"E": {
|
||||||
|
"item": "actuallyadditions:enori_crystal_block"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
"ECE"
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"count": 32,
|
||||||
|
"item": "actuallyadditions:lava_factory_casing"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"A": {
|
||||||
|
"item": "actuallyadditions:advanced_coil"
|
||||||
|
},
|
||||||
|
"B": {
|
||||||
|
"item": "minecraft:lava_bucket"
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"E": {
|
||||||
|
"item": "actuallyadditions:empowered_enori_crystal_block"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
"ACA",
|
||||||
|
"EAE",
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"item": "actuallyadditions:lava_factory_controller"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
|
"key": {
|
||||||
|
"C": {
|
||||||
|
"item": "actuallyadditions:iron_casing"
|
||||||
|
},
|
||||||
|
"E": {
|
||||||
|
"tag": "forge:ender_pearls"
|
||||||
|
},
|
||||||
|
"H": {
|
||||||
|
"item": "minecraft:hopper"
|
||||||
|
},
|
||||||
|
"V": {
|
||||||
|
"item": "actuallyadditions:void_crystal"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pattern": [
|
||||||
|
" V ",
|
||||||
|
"EHE",
|
||||||
|
" C "
|
||||||
|
],
|
||||||
|
"result": {
|
||||||
|
"item": "actuallyadditions:ranged_collector"
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
"category": "misc",
|
"category": "misc",
|
||||||
"key": {
|
"key": {
|
||||||
"R": {
|
"R": {
|
||||||
"item": "actuallyadditions:rice_slimeball"
|
"tag": "forge:slimeballs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pattern": [
|
"pattern": [
|
|
@ -6,7 +6,7 @@
|
||||||
"item": "minecraft:piston"
|
"item": "minecraft:piston"
|
||||||
},
|
},
|
||||||
"R": {
|
"R": {
|
||||||
"item": "actuallyadditions:rice_slimeball"
|
"tag": "forge:slimeballs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pattern": [
|
"pattern": [
|
|
@ -339,6 +339,66 @@ public class BlockRecipeGenerator extends RecipeProvider {
|
||||||
.pattern("B", "B")
|
.pattern("B", "B")
|
||||||
.define('B', ActuallyBlocks.BLACK_QUARTZ.getItem())
|
.define('B', ActuallyBlocks.BLACK_QUARTZ.getItem())
|
||||||
.save(recipeOutput);
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Lava Factory Controller
|
||||||
|
Recipe.shaped(ActuallyBlocks.LAVA_FACTORY_CONTROLLER.getItem())
|
||||||
|
.pattern("ACA", "EAE", "BBB")
|
||||||
|
.define('B', Items.LAVA_BUCKET)
|
||||||
|
.define('A', ActuallyItems.ADVANCED_COIL.get())
|
||||||
|
.define('E', ActuallyBlocks.EMPOWERED_ENORI_CRYSTAL.get())
|
||||||
|
.define('C', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Lava Casing
|
||||||
|
Recipe.shaped(ActuallyBlocks.LAVA_FACTORY_CASING.getItem(), 32)
|
||||||
|
.pattern("ECE")
|
||||||
|
.define('E', ActuallyBlocks.ENORI_CRYSTAL.get())
|
||||||
|
.define('C', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Ranged Collector
|
||||||
|
Recipe.shaped(ActuallyBlocks.RANGED_COLLECTOR.getItem())
|
||||||
|
.pattern(" V ", "EHE", " C ")
|
||||||
|
.define('V', ActuallyItems.VOID_CRYSTAL.get())
|
||||||
|
.define('E', Tags.Items.ENDER_PEARLS)
|
||||||
|
.define('H', Items.HOPPER)
|
||||||
|
.define('C', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Crusher
|
||||||
|
Recipe.shaped(ActuallyBlocks.CRUSHER.getItem())
|
||||||
|
.pattern("RFC", "BIB", "CFR")
|
||||||
|
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
|
||||||
|
.define('F', Items.FLINT)
|
||||||
|
.define('C', Tags.Items.COBBLESTONE)
|
||||||
|
.define('I', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.define('B', ActuallyItems.BASIC_COIL.get())
|
||||||
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Double Crusher
|
||||||
|
Recipe.shaped(ActuallyBlocks.CRUSHER_DOUBLE.getItem())
|
||||||
|
.pattern("SAS", "CIC", "SAS")
|
||||||
|
.define('S', Tags.Items.COBBLESTONE)
|
||||||
|
.define('A', ActuallyItems.ADVANCED_COIL.get())
|
||||||
|
.define('C', ActuallyBlocks.CRUSHER.get())
|
||||||
|
.define('I', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Energizer
|
||||||
|
Recipe.shaped(ActuallyBlocks.ENERGIZER.getItem())
|
||||||
|
.pattern("R R", "AIA", "R R")
|
||||||
|
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
|
||||||
|
.define('A', ActuallyItems.ADVANCED_COIL.get())
|
||||||
|
.define('I', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.save(recipeOutput);
|
||||||
|
|
||||||
|
// Enervator
|
||||||
|
Recipe.shaped(ActuallyBlocks.ENERVATOR.getItem())
|
||||||
|
.pattern(" R ", "AIA", " R ")
|
||||||
|
.define('R', ActuallyItems.RESTONIA_CRYSTAL.get())
|
||||||
|
.define('A', ActuallyItems.ADVANCED_COIL.get())
|
||||||
|
.define('I', ActuallyBlocks.IRON_CASING.get())
|
||||||
|
.save(recipeOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Recipe {
|
public static class Recipe {
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
package de.ellpeck.actuallyadditions.data;
|
package de.ellpeck.actuallyadditions.data;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import de.ellpeck.actuallyadditions.mod.crafting.CrushingRecipe;
|
import de.ellpeck.actuallyadditions.mod.crafting.CrushingRecipe;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.NoAdvRecipeOutput;
|
import de.ellpeck.actuallyadditions.mod.util.NoAdvRecipeOutput;
|
||||||
|
import net.minecraft.core.NonNullList;
|
||||||
import net.minecraft.data.PackOutput;
|
import net.minecraft.data.PackOutput;
|
||||||
import net.minecraft.data.recipes.RecipeOutput;
|
import net.minecraft.data.recipes.RecipeOutput;
|
||||||
import net.minecraft.data.recipes.RecipeProvider;
|
import net.minecraft.data.recipes.RecipeProvider;
|
||||||
|
@ -27,8 +30,134 @@ public class CrushingRecipeGenerator extends RecipeProvider {
|
||||||
protected void buildRecipes(@Nonnull RecipeOutput output) {
|
protected void buildRecipes(@Nonnull RecipeOutput output) {
|
||||||
var recipeOutput = new NoAdvRecipeOutput(output);
|
var recipeOutput = new NoAdvRecipeOutput(output);
|
||||||
|
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.BONE), new CrushingRecipe.CrushingResult(new ItemStack(Items.BONE_MEAL, 6), 1.0f))
|
||||||
|
.save(recipeOutput, "bone");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.SUGAR_CANE), new CrushingRecipe.CrushingResult(new ItemStack(Items.SUGAR, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "sugar_cane");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.BLAZE_ROD), new CrushingRecipe.CrushingResult(new ItemStack(Items.BLAZE_POWDER, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "blaze_rod");
|
||||||
|
|
||||||
CrushingRecipe recipe = new CrushingRecipe(Ingredient.of(Items.BONE), new ItemStack(Items.BONE_MEAL, 6), 1.0f, ItemStack.EMPTY, 0.0f);
|
new CrushingBuilder(Ingredient.of(Items.DANDELION), new CrushingRecipe.CrushingResult(new ItemStack(Items.YELLOW_DYE, 3), 1.0f))
|
||||||
recipeOutput.accept(new ResourceLocation(ActuallyAdditions.MODID, "crushing/iron_crusher"), recipe, null);
|
.save(recipeOutput, "danedlion");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.POPPY), new CrushingRecipe.CrushingResult(new ItemStack(Items.RED_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "poppy");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.BLUE_ORCHID), new CrushingRecipe.CrushingResult(new ItemStack(Items.LIGHT_BLUE_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "blue_orchid");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.ALLIUM), new CrushingRecipe.CrushingResult(new ItemStack(Items.MAGENTA_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "allium");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.AZURE_BLUET), new CrushingRecipe.CrushingResult(new ItemStack(Items.LIGHT_GRAY_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "azure_bluet");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.RED_TULIP), new CrushingRecipe.CrushingResult(new ItemStack(Items.RED_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "red_tulip");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.ORANGE_TULIP), new CrushingRecipe.CrushingResult(new ItemStack(Items.ORANGE_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "orange_tulip");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.WHITE_TULIP), new CrushingRecipe.CrushingResult(new ItemStack(Items.LIGHT_GRAY_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "white_tulip");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.PINK_TULIP), new CrushingRecipe.CrushingResult(new ItemStack(Items.PINK_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "pink_tulip");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.PINK_PETALS), new CrushingRecipe.CrushingResult(new ItemStack(Items.PINK_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "pink_petals");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.OXEYE_DAISY), new CrushingRecipe.CrushingResult(new ItemStack(Items.LIGHT_GRAY_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "oxeye_daisy");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.CORNFLOWER), new CrushingRecipe.CrushingResult(new ItemStack(Items.BLUE_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "cornflower");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.LILY_OF_THE_VALLEY), new CrushingRecipe.CrushingResult(new ItemStack(Items.WHITE_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "lily_of_the_valley");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.WITHER_ROSE), new CrushingRecipe.CrushingResult(new ItemStack(Items.BLACK_DYE, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "wither_rose");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.SUNFLOWER), new CrushingRecipe.CrushingResult(new ItemStack(Items.YELLOW_DYE, 4), 1.0f))
|
||||||
|
.save(recipeOutput, "sunflower");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.LILAC), new CrushingRecipe.CrushingResult(new ItemStack(Items.MAGENTA_DYE, 4), 1.0f))
|
||||||
|
.save(recipeOutput, "lilac");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.ROSE_BUSH), new CrushingRecipe.CrushingResult(new ItemStack(Items.RED_DYE, 4), 1.0f))
|
||||||
|
.save(recipeOutput, "rose_bush");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.PEONY), new CrushingRecipe.CrushingResult(new ItemStack(Items.PINK_DYE, 4), 1.0f))
|
||||||
|
.save(recipeOutput, "peony");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.PITCHER_PLANT), new CrushingRecipe.CrushingResult(new ItemStack(Items.CYAN_DYE, 4), 1.0f))
|
||||||
|
.save(recipeOutput, "pitcher_plant");
|
||||||
|
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.REDSTONE_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.REDSTONE, 10), 1.0f))
|
||||||
|
.save(recipeOutput, "redstone_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DEEPSLATE_REDSTONE_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.REDSTONE, 10), 1.0f))
|
||||||
|
.save(recipeOutput, "deepslate_redstone_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.LAPIS_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.LAPIS_LAZULI, 12), 1.0f))
|
||||||
|
.save(recipeOutput, "lapis_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DEEPSLATE_LAPIS_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.LAPIS_LAZULI, 12), 1.0f))
|
||||||
|
.save(recipeOutput, "deepslate_lapis_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.COAL_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.COAL, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "coal_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DEEPSLATE_COAL_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.COAL, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "deepslate_coal_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.COAL_BLOCK), new CrushingRecipe.CrushingResult(new ItemStack(Items.COAL, 9), 1.0f))
|
||||||
|
.save(recipeOutput, "coal_block");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.NETHER_QUARTZ_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.QUARTZ, 3), 1.0f))
|
||||||
|
.save(recipeOutput, "nether_quartz_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.COBBLESTONE), new CrushingRecipe.CrushingResult(new ItemStack(Items.SAND, 1), 1.0f))
|
||||||
|
.save(recipeOutput, "cobblestone");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.GRAVEL), new CrushingRecipe.CrushingResult(new ItemStack(Items.FLINT, 1), 1.0f))
|
||||||
|
.addResult2(new CrushingRecipe.CrushingResult(new ItemStack(Items.FLINT, 1), 0.5f))
|
||||||
|
.save(recipeOutput, "gravel");
|
||||||
|
new CrushingBuilder(Ingredient.of(ActuallyItems.RICE), new CrushingRecipe.CrushingResult(new ItemStack(Items.SUGAR, 2), 1.0f))
|
||||||
|
.save(recipeOutput, "rice");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.GLOWSTONE), new CrushingRecipe.CrushingResult(new ItemStack(Items.GLOWSTONE_DUST, 4), 1.0f))
|
||||||
|
.save(recipeOutput, "glowstone");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DIAMOND_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.DIAMOND, 2), 1.0f))
|
||||||
|
.save(recipeOutput, "diamond_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DEEPSLATE_DIAMOND_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.DIAMOND, 2), 1.0f))
|
||||||
|
.save(recipeOutput, "deepslate_diamond_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.EMERALD_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.EMERALD, 2), 1.0f))
|
||||||
|
.save(recipeOutput, "emerald_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DEEPSLATE_EMERALD_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.EMERALD, 2), 1.0f))
|
||||||
|
.save(recipeOutput, "deepslate_emerald_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.PRISMARINE_SHARD), new CrushingRecipe.CrushingResult(new ItemStack(Items.PRISMARINE_CRYSTALS, 1), 1.0f))
|
||||||
|
.save(recipeOutput, "prismarine_shard");
|
||||||
|
new CrushingBuilder(Ingredient.of(ActuallyBlocks.BLACK_QUARTZ_ORE.get()), new CrushingRecipe.CrushingResult(new ItemStack(ActuallyItems.BLACK_QUARTZ.get(), 2), 1.0f))
|
||||||
|
.save(recipeOutput, "black_quartz_ore");
|
||||||
|
|
||||||
|
//TODO: Think about the recipes that returned crushed ores before and what to replace them with
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.IRON_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.RAW_IRON, 2), 1.0f))
|
||||||
|
.addResult2(new CrushingRecipe.CrushingResult(new ItemStack(Items.RAW_GOLD, 1), 0.2f))
|
||||||
|
.save(recipeOutput, "iron_ore");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.IRON_HORSE_ARMOR), new CrushingRecipe.CrushingResult(new ItemStack(Items.RAW_IRON, 6), 1.0f))
|
||||||
|
.save(recipeOutput, "iron_horse_armor");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.GOLDEN_HORSE_ARMOR), new CrushingRecipe.CrushingResult(new ItemStack(Items.RAW_GOLD, 6), 1.0f))
|
||||||
|
.save(recipeOutput, "golden_horse_armor");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.DIAMOND_HORSE_ARMOR), new CrushingRecipe.CrushingResult(new ItemStack(Items.DIAMOND, 6), 1.0f))
|
||||||
|
.save(recipeOutput, "diamond_horse_armor");
|
||||||
|
new CrushingBuilder(Ingredient.of(Items.GOLD_ORE), new CrushingRecipe.CrushingResult(new ItemStack(Items.RAW_GOLD, 2), 1.0f))
|
||||||
|
.save(recipeOutput, "gold_ore");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class CrushingBuilder {
|
||||||
|
private final Ingredient ingredient;
|
||||||
|
private final NonNullList<CrushingRecipe.CrushingResult> results = NonNullList.withSize(2, CrushingRecipe.CrushingResult.EMPTY);
|
||||||
|
|
||||||
|
public CrushingBuilder(Ingredient ingredient, CrushingRecipe.CrushingResult result) {
|
||||||
|
this.ingredient = ingredient;
|
||||||
|
this.results.set(0, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CrushingBuilder addResult2(CrushingRecipe.CrushingResult result) {
|
||||||
|
this.results.set(1, result);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void save(RecipeOutput consumer, ResourceLocation name) {
|
||||||
|
if (results.size() != 2)
|
||||||
|
throw new IllegalStateException("invalid result count: " + results.size() + ", recipe: " + name.toString());
|
||||||
|
|
||||||
|
CrushingRecipe recipe = new CrushingRecipe(ingredient, results);
|
||||||
|
consumer.accept(name, recipe, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void save(RecipeOutput consumer, String name) {
|
||||||
|
ResourceLocation res = new ResourceLocation(ActuallyAdditions.MODID, "crushing/" + name);
|
||||||
|
if (results.size() != 2)
|
||||||
|
throw new IllegalStateException("invalid result count: " + results.size() + ", recipe: " + name.toString());
|
||||||
|
|
||||||
|
CrushingRecipe recipe = new CrushingRecipe(ingredient, results);
|
||||||
|
consumer.accept(res, recipe, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -489,18 +489,18 @@ public class ItemRecipeGenerator extends RecipeProvider {
|
||||||
.define('I', Items.IRON_HELMET)
|
.define('I', Items.IRON_HELMET)
|
||||||
.save(recipeOutput);
|
.save(recipeOutput);
|
||||||
|
|
||||||
// Sticky Piston from rice slime
|
// Sticky Piston from tagged slime balls
|
||||||
Recipe.shaped(Items.STICKY_PISTON)
|
Recipe.shaped(Items.STICKY_PISTON)
|
||||||
.pattern("R", "P")
|
.pattern("R", "P")
|
||||||
.define('R', ActuallyItems.RICE_SLIMEBALL.get())
|
.define('R', Tags.Items.SLIMEBALLS)
|
||||||
.define('P', Items.PISTON)
|
.define('P', Items.PISTON)
|
||||||
.save(recipeOutput);
|
.save(recipeOutput, new ResourceLocation(ActuallyAdditions.MODID, "tagged_sticky_piston"));
|
||||||
|
|
||||||
// Slime block from rice slime balls
|
// Slime block from tagged balls
|
||||||
Recipe.shaped(Items.SLIME_BLOCK)
|
Recipe.shaped(Items.SLIME_BLOCK)
|
||||||
.pattern("RRR", "RRR", "RRR")
|
.pattern("RRR", "RRR", "RRR")
|
||||||
.define('R', ActuallyItems.RICE_SLIMEBALL.get())
|
.define('R', Tags.Items.SLIMEBALLS)
|
||||||
.save(recipeOutput);
|
.save(recipeOutput, new ResourceLocation(ActuallyAdditions.MODID, "tagged_slime_block"));
|
||||||
|
|
||||||
//Shards
|
//Shards
|
||||||
addShard(recipeOutput, ActuallyItems.VOID_CRYSTAL_SHARD, ActuallyItems.VOID_CRYSTAL);
|
addShard(recipeOutput, ActuallyItems.VOID_CRYSTAL_SHARD, ActuallyItems.VOID_CRYSTAL);
|
||||||
|
|
|
@ -100,7 +100,7 @@ public final class ActuallyBlocks {
|
||||||
public static final AABlockReg<BlockFeeder, AABlockItem, TileEntityFeeder> FEEDER = new AABlockReg<>("feeder", BlockFeeder::new, (b) -> new AABlockItem(b, defaultBlockItemProperties), TileEntityFeeder::new);
|
public static final AABlockReg<BlockFeeder, AABlockItem, TileEntityFeeder> FEEDER = new AABlockReg<>("feeder", BlockFeeder::new, (b) -> new AABlockItem(b, defaultBlockItemProperties), TileEntityFeeder::new);
|
||||||
public static final AABlockReg<BlockCrusher, AABlockItem, TileEntityCrusher> CRUSHER = new AABlockReg<>("crusher", () -> new BlockCrusher(false),
|
public static final AABlockReg<BlockCrusher, AABlockItem, TileEntityCrusher> CRUSHER = new AABlockReg<>("crusher", () -> new BlockCrusher(false),
|
||||||
(b) -> new AABlockItem.BlockEntityEnergyItem(b, defaultBlockItemProperties), TileEntityCrusher::new);
|
(b) -> new AABlockItem.BlockEntityEnergyItem(b, defaultBlockItemProperties), TileEntityCrusher::new);
|
||||||
public static final AABlockReg<BlockCrusher, AABlockItem, TileEntityCrusher> CRUSHER_DOUBLE = new AABlockReg<>("crusher_double", () -> new BlockCrusher(false),
|
public static final AABlockReg<BlockCrusher, AABlockItem, TileEntityCrusher> CRUSHER_DOUBLE = new AABlockReg<>("crusher_double", () -> new BlockCrusher(true),
|
||||||
(b) -> new AABlockItem.BlockEntityEnergyItem(b, defaultBlockItemProperties), TileEntityCrusherDouble::new);
|
(b) -> new AABlockItem.BlockEntityEnergyItem(b, defaultBlockItemProperties), TileEntityCrusherDouble::new);
|
||||||
|
|
||||||
public static final AABlockReg<BlockEnergizer, AABlockItem, TileEntityEnergizer> ENERGIZER = new AABlockReg<>("energizer", () -> new BlockEnergizer(true),
|
public static final AABlockReg<BlockEnergizer, AABlockItem, TileEntityEnergizer> ENERGIZER = new AABlockReg<>("energizer", () -> new BlockEnergizer(true),
|
||||||
|
|
|
@ -14,11 +14,10 @@ import com.mojang.blaze3d.platform.Window;
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
import de.ellpeck.actuallyadditions.mod.blocks.base.DirectionalBlock;
|
import de.ellpeck.actuallyadditions.mod.blocks.base.DirectionalBlock;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLavaFactoryController;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLavaFactoryController;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.resources.language.I18n;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
@ -66,9 +65,9 @@ public class BlockLavaFactoryController extends DirectionalBlock.Container imple
|
||||||
if (factory != null) {
|
if (factory != null) {
|
||||||
int state = factory.isMultiblock();
|
int state = factory.isMultiblock();
|
||||||
if (state == TileEntityLavaFactoryController.NOT_MULTI) {
|
if (state == TileEntityLavaFactoryController.NOT_MULTI) {
|
||||||
StringUtil.drawSplitString(minecraft.font, I18n.get("tooltip." + ActuallyAdditions.MODID + ".factory.notPart.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 5, 200, 0xFFFFFF, true);
|
guiGraphics.drawWordWrap(minecraft.font, Component.translatable("tooltip." + ActuallyAdditions.MODID + ".factory.notPart.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 5, 200, 0xFFFFFF);
|
||||||
} else if (state == TileEntityLavaFactoryController.HAS_AIR || state == TileEntityLavaFactoryController.HAS_LAVA) {
|
} else if (state == TileEntityLavaFactoryController.HAS_AIR || state == TileEntityLavaFactoryController.HAS_LAVA) {
|
||||||
StringUtil.drawSplitString(minecraft.font, I18n.get("tooltip." + ActuallyAdditions.MODID + ".factory.works.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 5, 200, 0xFFFFFF, true);
|
guiGraphics.drawWordWrap(minecraft.font, Component.translatable("tooltip." + ActuallyAdditions.MODID + ".factory.working.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 5, 200, 0xFFFFFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,9 +23,15 @@ import java.util.UUID;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public final class PlayerData {
|
public final class PlayerData {
|
||||||
|
private static PlayerSave clientData = null;
|
||||||
public static PlayerSave getDataFromPlayer(Player player) {
|
public static PlayerSave getDataFromPlayer(Player player) {
|
||||||
WorldData worldData = WorldData.get((ServerLevel) player.getCommandSenderWorld());
|
if (!(player.getCommandSenderWorld() instanceof ServerLevel)) {
|
||||||
|
if (clientData == null) {
|
||||||
|
clientData = new PlayerSave(player.getUUID());
|
||||||
|
}
|
||||||
|
return clientData;
|
||||||
|
}
|
||||||
|
WorldData worldData = WorldData.get(player.getCommandSenderWorld());
|
||||||
ConcurrentHashMap<UUID, PlayerSave> data = worldData.playerSaveData;
|
ConcurrentHashMap<UUID, PlayerSave> data = worldData.playerSaveData;
|
||||||
UUID id = player.getUUID();
|
UUID id = player.getUUID();
|
||||||
|
|
||||||
|
|
|
@ -10,20 +10,24 @@
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.inventory;
|
package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
|
import com.mojang.datafixers.util.Pair;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnergizer;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnergizer;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
|
import net.minecraft.world.inventory.InventoryMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ArmorItem;
|
import net.minecraft.world.item.ArmorItem;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||||
import net.neoforged.neoforge.capabilities.Capabilities;
|
import net.neoforged.neoforge.capabilities.Capabilities;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@ -76,13 +80,11 @@ public class ContainerEnergizer extends AbstractContainerMenu {
|
||||||
return (itemstack.isEmpty() || player.isCreative() || !EnchantmentHelper.hasBindingCurse(itemstack)) && super.mayPickup(player);
|
return (itemstack.isEmpty() || player.isCreative() || !EnchantmentHelper.hasBindingCurse(itemstack)) && super.mayPickup(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: [port] add back
|
@Nullable
|
||||||
|
@Override
|
||||||
// @Override
|
public Pair<ResourceLocation, ResourceLocation> getNoItemIcon() {
|
||||||
// @OnlyIn(Dist.CLIENT)
|
return Pair.of(InventoryMenu.BLOCK_ATLAS, InventoryMenu.TEXTURE_EMPTY_SLOTS[slot.getIndex()]);
|
||||||
// public String getSlotTexture() {
|
}
|
||||||
// return Armor.EMPTY_SLOT_NAMES[slot.getIndex()];
|
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,19 +10,23 @@
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.inventory;
|
package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
|
import com.mojang.datafixers.util.Pair;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnervator;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnervator;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
|
import net.minecraft.world.inventory.InventoryMenu;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ArmorItem;
|
import net.minecraft.world.item.ArmorItem;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.neoforged.neoforge.capabilities.Capabilities;
|
import net.neoforged.neoforge.capabilities.Capabilities;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@ -64,13 +68,11 @@ public class ContainerEnervator extends AbstractContainerMenu {
|
||||||
return StackUtil.isValid(stack) && stack.getItem() instanceof ArmorItem;
|
return StackUtil.isValid(stack) && stack.getItem() instanceof ArmorItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: [port] add this back
|
@Nullable
|
||||||
|
@Override
|
||||||
// @Override
|
public Pair<ResourceLocation, ResourceLocation> getNoItemIcon() {
|
||||||
// @OnlyIn(Dist.CLIENT)
|
return Pair.of(InventoryMenu.BLOCK_ATLAS, InventoryMenu.TEXTURE_EMPTY_SLOTS[slot.getIndex()]);
|
||||||
// public String getSlotTexture() {
|
}
|
||||||
// return ItemArmor.EMPTY_SLOT_NAMES[slot.getIndex()];
|
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotFilter;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotFilter;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityRangedCollector;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityRangedCollector;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -22,6 +21,7 @@ import net.minecraft.world.inventory.ClickType;
|
||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public class ContainerRangedCollector extends AbstractContainerMenu {
|
public class ContainerRangedCollector extends AbstractContainerMenu {
|
||||||
|
@ -57,8 +57,9 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||||
int inventoryStart = 18;
|
int inventoryStart = 18;
|
||||||
int inventoryEnd = inventoryStart + 26;
|
int inventoryEnd = inventoryStart + 26;
|
||||||
int hotbarStart = inventoryEnd + 1;
|
int hotbarStart = inventoryEnd + 1;
|
||||||
|
@ -87,7 +88,7 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (newStack.isEmpty()) {
|
||||||
theSlot.set(ItemStack.EMPTY);
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
|
@ -104,7 +105,7 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clicked(int slotId, int dragType, ClickType clickTypeIn, Player player) {
|
public void clicked(int slotId, int dragType, @Nonnull ClickType clickTypeIn, @Nonnull Player player) {
|
||||||
if (SlotFilter.checkFilter(this, slotId, player)) {
|
if (SlotFilter.checkFilter(this, slotId, player)) {
|
||||||
return; //TODO: Check if this is correct, used to return ItemStack.EMPTY
|
return; //TODO: Check if this is correct, used to return ItemStack.EMPTY
|
||||||
} else {
|
} else {
|
||||||
|
@ -113,7 +114,7 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean stillValid(Player player) {
|
public boolean stillValid(@Nonnull Player player) {
|
||||||
return this.collector.canPlayerUse(player);
|
return this.collector.canPlayerUse(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,9 @@ package de.ellpeck.actuallyadditions.mod.inventory;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotOutput;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.recipe.CrusherRecipeRegistry;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCrusher;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCrusher;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
@ -62,7 +64,6 @@ public class CrusherContainer extends AbstractContainerMenu {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack quickMoveStack(Player player, int slot) {
|
public ItemStack quickMoveStack(Player player, int slot) {
|
||||||
/*
|
|
||||||
int inventoryStart = this.isDouble
|
int inventoryStart = this.isDouble
|
||||||
? 6
|
? 6
|
||||||
: 3;
|
: 3;
|
||||||
|
@ -79,7 +80,7 @@ public class CrusherContainer extends AbstractContainerMenu {
|
||||||
//Slots in Inventory to shift from
|
//Slots in Inventory to shift from
|
||||||
if (slot == TileEntityCrusher.SLOT_OUTPUT_1_1 || slot == TileEntityCrusher.SLOT_OUTPUT_1_2 || this.isDouble && (slot == TileEntityCrusher.SLOT_OUTPUT_2_1 || slot == TileEntityCrusher.SLOT_OUTPUT_2_2)) {
|
if (slot == TileEntityCrusher.SLOT_OUTPUT_1_1 || slot == TileEntityCrusher.SLOT_OUTPUT_1_2 || this.isDouble && (slot == TileEntityCrusher.SLOT_OUTPUT_2_1 || slot == TileEntityCrusher.SLOT_OUTPUT_2_2)) {
|
||||||
if (!this.moveItemStackTo(newStack, inventoryStart, hotbarEnd + 1, true)) {
|
if (!this.moveItemStackTo(newStack, inventoryStart, hotbarEnd + 1, true)) {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
theSlot.onQuickCraft(newStack, currentStack);
|
theSlot.onQuickCraft(newStack, currentStack);
|
||||||
}
|
}
|
||||||
|
@ -90,10 +91,10 @@ public class CrusherContainer extends AbstractContainerMenu {
|
||||||
if (!this.moveItemStackTo(newStack, TileEntityCrusher.SLOT_INPUT_1, TileEntityCrusher.SLOT_INPUT_1 + 1, false)) {
|
if (!this.moveItemStackTo(newStack, TileEntityCrusher.SLOT_INPUT_1, TileEntityCrusher.SLOT_INPUT_1 + 1, false)) {
|
||||||
if (this.isDouble) {
|
if (this.isDouble) {
|
||||||
if (!this.moveItemStackTo(newStack, TileEntityCrusher.SLOT_INPUT_2, TileEntityCrusher.SLOT_INPUT_2 + 1, false)) {
|
if (!this.moveItemStackTo(newStack, TileEntityCrusher.SLOT_INPUT_2, TileEntityCrusher.SLOT_INPUT_2 + 1, false)) {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,30 +102,29 @@ public class CrusherContainer extends AbstractContainerMenu {
|
||||||
|
|
||||||
else if (slot >= inventoryStart && slot <= inventoryEnd) {
|
else if (slot >= inventoryStart && slot <= inventoryEnd) {
|
||||||
if (!this.moveItemStackTo(newStack, hotbarStart, hotbarEnd + 1, false)) {
|
if (!this.moveItemStackTo(newStack, hotbarStart, hotbarEnd + 1, false)) {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
} else if (slot >= inventoryEnd + 1 && slot < hotbarEnd + 1 && !this.moveItemStackTo(newStack, inventoryStart, inventoryEnd + 1, false)) {
|
} else if (slot >= inventoryEnd + 1 && slot < hotbarEnd + 1 && !this.moveItemStackTo(newStack, inventoryStart, inventoryEnd + 1, false)) {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
} else if (!this.moveItemStackTo(newStack, inventoryStart, hotbarEnd + 1, false)) {
|
} else if (!this.moveItemStackTo(newStack, inventoryStart, hotbarEnd + 1, false)) {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StackUtil.isValid(newStack)) {
|
if (!StackUtil.isValid(newStack)) {
|
||||||
theSlot.set(StackUtil.getEmpty());
|
theSlot.set(ItemStack.EMPTY);
|
||||||
} else {
|
} else {
|
||||||
theSlot.setChanged();
|
theSlot.setChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newStack.getCount() == currentStack.getCount()) {
|
if (newStack.getCount() == currentStack.getCount()) {
|
||||||
return StackUtil.getEmpty();
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
theSlot.onTake(player, newStack);
|
theSlot.onTake(player, newStack);
|
||||||
|
|
||||||
return currentStack;
|
return currentStack;
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ public class CrusherScreen extends AAScreen<CrusherContainer> {
|
||||||
this.energy.render(guiGraphics, x, y);
|
this.energy.render(guiGraphics, x, y);
|
||||||
|
|
||||||
if (this.isDouble && this.buttonAutoSplit.isMouseOver(x,y)) {
|
if (this.isDouble && this.buttonAutoSplit.isMouseOver(x,y)) {
|
||||||
guiGraphics.drawString(font, Component.translatable("info.actuallyadditions.gui.autosplititems." + (tileGrinder.isAutoSplit?"on":"off")).withStyle(ChatFormatting.BOLD), x , y, 0xffffff, false);
|
guiGraphics.drawString(font, Component.translatable("info.actuallyadditions.gui.autosplititems." + (tileGrinder.isAutoSplit?"on":"off")).withStyle(ChatFormatting.BOLD), x , y, 0xffffff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ public class CrusherScreen extends AAScreen<CrusherContainer> {
|
||||||
guiGraphics.blit(AssetUtil.GUI_INVENTORY_LOCATION, this.leftPos, this.topPos + 93, 0, 0, 176, 86);
|
guiGraphics.blit(AssetUtil.GUI_INVENTORY_LOCATION, this.leftPos, this.topPos + 93, 0, 0, 176, 86);
|
||||||
|
|
||||||
ResourceLocation usedLoc = this.isDouble ? RES_LOC_DOUBLE : RES_LOC;
|
ResourceLocation usedLoc = this.isDouble ? RES_LOC_DOUBLE : RES_LOC;
|
||||||
guiGraphics.blit(AssetUtil.GUI_INVENTORY_LOCATION, this.leftPos, this.topPos, 0, 0, 176, 93);
|
guiGraphics.blit(usedLoc, this.leftPos, this.topPos, 0, 0, 176, 93);
|
||||||
|
|
||||||
if (this.tileGrinder.firstCrushTime > 0) {
|
if (this.tileGrinder.firstCrushTime > 0) {
|
||||||
int i = this.tileGrinder.getFirstTimeToScale(23);
|
int i = this.tileGrinder.getFirstTimeToScale(23);
|
||||||
|
|
|
@ -11,19 +11,15 @@
|
||||||
package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
import de.ellpeck.actuallyadditions.mod.network.PacketClientToServer;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.network.PacketHandler;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.FilterSettings;
|
import de.ellpeck.actuallyadditions.mod.tile.FilterSettings;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.AbstractButton;
|
import net.minecraft.client.gui.components.AbstractButton;
|
||||||
import net.minecraft.client.gui.components.Button;
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
import net.neoforged.neoforge.network.PacketDistributor;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -37,19 +33,19 @@ public class FilterSettingsGui {
|
||||||
public Button whitelistButton;
|
public Button whitelistButton;
|
||||||
public Button modButton;
|
public Button modButton;
|
||||||
|
|
||||||
public FilterSettingsGui(FilterSettings settings, int x, int y, Consumer<AbstractButton> buttonConsumer, int idOffset) {
|
public FilterSettingsGui(FilterSettings settings, int x, int y, Consumer<AbstractButton> buttonConsumer, Consumer<Integer> clickConsumer, int idOffset) {
|
||||||
this.theSettings = settings;
|
this.theSettings = settings;
|
||||||
|
|
||||||
this.whitelistButton = Button.builder(Component.literal("WH"), $ -> {
|
this.whitelistButton = Button.builder(Component.literal("WH"), $ -> {
|
||||||
theSettings.isWhitelist = !theSettings.isWhitelist;
|
theSettings.isWhitelist = !theSettings.isWhitelist;
|
||||||
buttonClicked(idOffset);
|
clickConsumer.accept(idOffset);
|
||||||
})
|
})
|
||||||
.bounds(x, y, 16, 12).build();
|
.bounds(x, y, 16, 12).build();
|
||||||
buttonConsumer.accept(this.whitelistButton);
|
buttonConsumer.accept(this.whitelistButton);
|
||||||
y += 14;
|
y += 14;
|
||||||
this.modButton = Button.builder(Component.literal("MO"), $ -> {
|
this.modButton = Button.builder(Component.literal("MO"), $ -> {
|
||||||
theSettings.respectMod = !theSettings.respectMod;
|
theSettings.respectMod = !theSettings.respectMod;
|
||||||
buttonClicked(idOffset + 1);
|
clickConsumer.accept(idOffset + 1);
|
||||||
})
|
})
|
||||||
.bounds(x, y, 16, 12).build();
|
.bounds(x, y, 16, 12).build();
|
||||||
buttonConsumer.accept(this.modButton);
|
buttonConsumer.accept(this.modButton);
|
||||||
|
@ -57,13 +53,13 @@ public class FilterSettingsGui {
|
||||||
this.tick();
|
this.tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void buttonClicked(int id) {
|
/* public void buttonClicked(int id) {
|
||||||
CompoundTag data = new CompoundTag();
|
CompoundTag data = new CompoundTag();
|
||||||
data.putInt("ButtonID", id);
|
data.putInt("ButtonID", id);
|
||||||
data.putInt("PlayerID", Minecraft.getInstance().player.getId());
|
data.putInt("PlayerID", Minecraft.getInstance().player.getId());
|
||||||
data.putString("WorldID", Minecraft.getInstance().level.dimension().location().toString());
|
data.putString("WorldID", Minecraft.getInstance().level.dimension().location().toString());
|
||||||
PacketDistributor.SERVER.noArg().send(new PacketClientToServer(data, PacketHandler.GUI_BUTTON_TO_CONTAINER_HANDLER));
|
PacketDistributor.SERVER.noArg().send(new PacketClientToServer(data, PacketHandler.GUI_BUTTON_TO_CONTAINER_HANDLER));
|
||||||
}
|
}*/
|
||||||
|
|
||||||
public void tick() {
|
public void tick() {
|
||||||
this.whitelistButton.setMessage(Component.literal("WH").withStyle(this.theSettings.isWhitelist
|
this.whitelistButton.setMessage(Component.literal("WH").withStyle(this.theSettings.isWhitelist
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFireworkBox;
|
import de.ellpeck.actuallyadditions.mod.inventory.ContainerFireworkBox;
|
||||||
import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper;
|
import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityFireworkBox;
|
||||||
|
@ -18,8 +17,8 @@ import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.AbstractSliderButton;
|
import net.minecraft.client.gui.components.AbstractSliderButton;
|
||||||
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
|
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
|
||||||
import net.minecraft.client.resources.language.I18n;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
|
@ -31,13 +30,15 @@ import java.text.NumberFormat;
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox> {
|
public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox> {
|
||||||
|
|
||||||
|
private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("gui_firework_box");
|
||||||
|
|
||||||
protected final TileEntityFireworkBox tile;
|
protected final TileEntityFireworkBox tile;
|
||||||
|
|
||||||
public GuiFireworkBox(ContainerFireworkBox screenContainer, Inventory inv, Component titleIn) {
|
public GuiFireworkBox(ContainerFireworkBox screenContainer, Inventory inv, Component titleIn) {
|
||||||
super(screenContainer, inv, titleIn);
|
super(screenContainer, inv, titleIn);
|
||||||
this.tile = screenContainer.fireworkbox;
|
this.tile = screenContainer.fireworkbox;
|
||||||
this.imageWidth = 300;
|
this.imageWidth = 302;
|
||||||
this.imageHeight = 120;
|
this.imageHeight = 130;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,30 +46,31 @@ public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
DecimalFormat intFormatter = new DecimalFormat("0");
|
DecimalFormat intFormatter = new DecimalFormat("0");
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop(), Component.literal("Value Play"), 0F, 5F, this.tile.intValuePlay, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 0)));
|
int left = this.getGuiLeft() + 2;
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 20, Component.literal("Average Charge Amount"), 1F, 4F, this.tile.chargeAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 1)));
|
this.addRenderableWidget(new CustomSlider(left, this.getGuiTop() + 2, Component.literal("Value Play"), 0F, 5F, this.tile.intValuePlay, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 0)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 40, Component.literal("Average Flight Time"), 1F, 3F, this.tile.flightTime, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 2)));
|
this.addRenderableWidget(new CustomSlider(left, this.getGuiTop() + 23, Component.literal("Average Charge Amount"), 1F, 4F, this.tile.chargeAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 1)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 60, Component.literal("Effect Chance"), 0F, 1F, this.tile.trailOrFlickerChance, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 3)));
|
this.addRenderableWidget(new CustomSlider(left, this.getGuiTop() + 44, Component.literal("Average Flight Time"), 1F, 3F, this.tile.flightTime, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 2)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 80, Component.literal("Flicker/Trail Ratio"), 0F, 1F, this.tile.flickerChance, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 4)));
|
this.addRenderableWidget(new CustomSlider(left, this.getGuiTop() + 65, Component.literal("Effect Chance"), 0F, 1F, this.tile.trailOrFlickerChance, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 3)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft(), this.getGuiTop() + 100, Component.literal("Color Amount"), 1, 6, this.tile.colorAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 5)));
|
this.addRenderableWidget(new CustomSlider(left, this.getGuiTop() + 86, Component.literal("Flicker/Trail Ratio"), 0F, 1F, this.tile.flickerChance, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 4)));
|
||||||
|
this.addRenderableWidget(new CustomSlider(left, this.getGuiTop() + 107, Component.literal("Color Amount"), 1, 6, this.tile.colorAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 5)));
|
||||||
|
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop(), Component.literal("Small Ball"), 0F, 1F, this.tile.typeChance0, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 6)));
|
this.addRenderableWidget(new CustomSlider(left + 150, this.getGuiTop() + 2, Component.literal("Small Ball"), 0F, 1F, this.tile.typeChance0, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 6)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 20, Component.literal("Large Ball"), 0F, 1F, this.tile.typeChance1, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 7)));
|
this.addRenderableWidget(new CustomSlider(left + 150, this.getGuiTop() + 23, Component.literal("Large Ball"), 0F, 1F, this.tile.typeChance1, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 7)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 40, Component.literal("Star Shape"), 0F, 1F, this.tile.typeChance2, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 8)));
|
this.addRenderableWidget(new CustomSlider(left + 150, this.getGuiTop() + 44, Component.literal("Star Shape"), 0F, 1F, this.tile.typeChance2, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 8)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 60, Component.literal("Creeper Shape"), 0F, 1F, this.tile.typeChance3, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 9)));
|
this.addRenderableWidget(new CustomSlider(left + 150, this.getGuiTop() + 65, Component.literal("Creeper Shape"), 0F, 1F, this.tile.typeChance3, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 9)));
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 80, Component.literal("Burst"), 0F, 1F, this.tile.typeChance4, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 10)));
|
this.addRenderableWidget(new CustomSlider(left + 150, this.getGuiTop() + 86, Component.literal("Burst"), 0F, 1F, this.tile.typeChance4, null, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 10)));
|
||||||
|
|
||||||
this.addRenderableWidget(new CustomSlider(this.getGuiLeft() + 150, this.getGuiTop() + 100, Component.literal("Area of Effect"), 0, 4, this.tile.areaOfEffect, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 11)));
|
this.addRenderableWidget(new CustomSlider(left + 150, this.getGuiTop() + 107, Component.literal("Area of Effect"), 0, 4, this.tile.areaOfEffect, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 11)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void renderLabels(GuiGraphics guiGraphics, int pMouseX, int pMouseY) {
|
protected void renderLabels(GuiGraphics guiGraphics, int pMouseX, int pMouseY) {
|
||||||
AssetUtil.displayNameString(guiGraphics, this.font, this.getXSize(), -10, I18n.get("container." + ActuallyAdditions.MODID + ".fireworkBox"));
|
guiGraphics.drawString(font, this.title, (int)(this.getXSize() / 2f - font.width(this.title) / 2f), -10, 0xFFFFFF, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int x, int y) {
|
protected void renderBg(GuiGraphics guiGraphics, float partialTicks, int x, int y) {
|
||||||
|
guiGraphics.blit(RES_LOC, this.leftPos, this.topPos, 0, 0, this.getXSize(), this.getYSize(), 512, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -88,7 +90,7 @@ public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox
|
||||||
protected final CustomSlider.OnApply onApply;
|
protected final CustomSlider.OnApply onApply;
|
||||||
private final double stepSize = 0;
|
private final double stepSize = 0;
|
||||||
public CustomSlider(int x, int y, Component message, double min, double max, double defaultValue, DecimalFormat format, CustomSlider.OnApply onApply) {
|
public CustomSlider(int x, int y, Component message, double min, double max, double defaultValue, DecimalFormat format, CustomSlider.OnApply onApply) {
|
||||||
super(x, y, 150, 20, message, defaultValue);
|
super(x, y, 148, 20, message, defaultValue);
|
||||||
this.sliderName = message;
|
this.sliderName = message;
|
||||||
this.min = min;
|
this.min = min;
|
||||||
this.max = max;
|
this.max = max;
|
||||||
|
|
|
@ -12,14 +12,19 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerRangedCollector;
|
import de.ellpeck.actuallyadditions.mod.inventory.ContainerRangedCollector;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.network.PacketClientToServer;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.network.PacketHandler;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityRangedCollector;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityRangedCollector;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
import net.neoforged.neoforge.network.PacketDistributor;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
@ -43,14 +48,14 @@ public class GuiRangedCollector extends AAScreen<ContainerRangedCollector> {
|
||||||
public void init() {
|
public void init() {
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
//this.filter = new FilterSettingsGui(this.collector.filter, this.leftPos + 3, this.topPos + 6, this.buttonList);
|
this.filter = new FilterSettingsGui(this.collector.filter, this.leftPos + 3, this.topPos + 6, this::addRenderableWidget, this::buttonClicked, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(@Nonnull GuiGraphics guiGraphics, int x, int y, float f) {
|
public void render(@Nonnull GuiGraphics guiGraphics, int x, int y, float f) {
|
||||||
super.render(guiGraphics, x, y, f);
|
super.render(guiGraphics, x, y, f);
|
||||||
|
|
||||||
//this.filter.drawHover(matrices, x, y);
|
this.filter.drawHover(guiGraphics, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -69,8 +74,15 @@ public class GuiRangedCollector extends AAScreen<ContainerRangedCollector> {
|
||||||
guiGraphics.blit(RES_LOC, this.leftPos, this.topPos, 0, 0, 176, 86);
|
guiGraphics.blit(RES_LOC, this.leftPos, this.topPos, 0, 0, 176, 86);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
public void buttonClicked(int id) {
|
||||||
// public void actionPerformed(Button button) {
|
CompoundTag data = new CompoundTag();
|
||||||
// PacketHandlerHelper.sendButtonPacket(this.collector, button.id);
|
data.putInt("ButtonID", id);
|
||||||
// }
|
data.putInt("PlayerID", Minecraft.getInstance().player.getId());
|
||||||
|
data.putString("WorldID", Minecraft.getInstance().level.dimension().location().toString());
|
||||||
|
data.putInt("X", this.collector.getBlockPos().getX());
|
||||||
|
data.putInt("Y", this.collector.getBlockPos().getY());
|
||||||
|
data.putInt("Z", this.collector.getBlockPos().getZ());
|
||||||
|
PacketDistributor.SERVER.noArg().send(new PacketClientToServer(data, PacketHandler.GUI_BUTTON_TO_TILE_HANDLER));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,11 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerXPSolidifier;
|
import de.ellpeck.actuallyadditions.mod.inventory.ContainerXPSolidifier;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper;
|
||||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier;
|
import de.ellpeck.actuallyadditions.mod.tile.TileEntityXPSolidifier;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
|
@ -38,35 +40,43 @@ public class GuiXPSolidifier extends AAScreen<ContainerXPSolidifier> {
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
super.init();
|
super.init();
|
||||||
//
|
|
||||||
// Button buttonOne = new GuiInputter.SmallerButton(this.leftPos + 62, this.topPos + 44, new StringTextComponent("1"), btn -> {
|
Button buttonOne = this.addRenderableWidget(Button.builder(Component.literal("1"), btn -> {
|
||||||
// });
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 0);
|
||||||
// Button buttonFive = new GuiInputter.SmallerButton(this.leftPos + 80, this.topPos + 44, new StringTextComponent("5"), btn -> {
|
this.solidifier.onButtonPressed(0, minecraft.player);
|
||||||
// });
|
}).bounds(this.leftPos + 62, this.topPos + 44, 16, 16).build());
|
||||||
// Button buttonTen = new GuiInputter.SmallerButton(this.leftPos + 99, this.topPos + 44, new StringTextComponent("10"), btn -> {
|
Button buttonFive = this.addRenderableWidget(Button.builder(Component.literal("5"), btn -> {
|
||||||
// });
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 1);
|
||||||
// Button buttonTwenty = new GuiInputter.SmallerButton(this.leftPos + 62, this.topPos + 61, new StringTextComponent("20"), btn -> {
|
this.solidifier.onButtonPressed(1, minecraft.player);
|
||||||
// });
|
}).bounds(this.leftPos + 80, this.topPos + 44, 16, 16).build());
|
||||||
// Button buttonThirty = new GuiInputter.SmallerButton(this.leftPos + 80, this.topPos + 61, new StringTextComponent("30"), btn -> {
|
Button buttonTen = this.addRenderableWidget(Button.builder(Component.literal("10"), btn -> {
|
||||||
// });
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 2);
|
||||||
// Button buttonForty = new GuiInputter.SmallerButton(this.leftPos + 99, this.topPos + 61, new StringTextComponent("40"), btn -> {
|
this.solidifier.onButtonPressed(2, minecraft.player);
|
||||||
// });
|
}).bounds(this.leftPos + 99, this.topPos + 44, 16, 16).build());
|
||||||
// Button buttonFifty = new GuiInputter.SmallerButton(this.leftPos + 62, this.topPos + 78, new StringTextComponent("50"), btn -> {
|
Button buttonTwenty = this.addRenderableWidget(Button.builder(Component.literal("20"), btn -> {
|
||||||
// });
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 3);
|
||||||
// Button buttonSixtyFour = new GuiInputter.SmallerButton(this.leftPos + 80, this.topPos + 78, new StringTextComponent("64"), btn -> {
|
this.solidifier.onButtonPressed(3, minecraft.player);
|
||||||
// });
|
}).bounds(this.leftPos + 62, this.topPos + 61, 16, 16).build());
|
||||||
// Button buttonAll = new GuiInputter.SmallerButton(this.leftPos + 99, this.topPos + 78, new StringTextComponent("All"), btn -> {
|
Button buttonThirty = this.addRenderableWidget(Button.builder(Component.literal("30"), btn -> {
|
||||||
// });
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 4);
|
||||||
//
|
this.solidifier.onButtonPressed(4, minecraft.player);
|
||||||
// this.addButton(buttonOne);
|
}).bounds(this.leftPos + 80, this.topPos + 61, 16, 16).build());
|
||||||
// this.addButton(buttonFive);
|
Button buttonForty = this.addRenderableWidget(Button.builder(Component.literal("40"), btn -> {
|
||||||
// this.addButton(buttonTen);
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 5);
|
||||||
// this.addButton(buttonTwenty);
|
this.solidifier.onButtonPressed(5, minecraft.player);
|
||||||
// this.addButton(buttonThirty);
|
}).bounds(this.leftPos + 99, this.topPos + 61, 16, 16).build());
|
||||||
// this.addButton(buttonForty);
|
Button buttonFifty = this.addRenderableWidget(Button.builder(Component.literal("50"), btn -> {
|
||||||
// this.addButton(buttonFifty);
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 6);
|
||||||
// this.addButton(buttonSixtyFour);
|
this.solidifier.onButtonPressed(6, minecraft.player);
|
||||||
// this.addButton(buttonAll);
|
}).bounds(this.leftPos + 62, this.topPos + 78, 16, 16).build());
|
||||||
|
Button buttonSixtyFour = this.addRenderableWidget(Button.builder(Component.literal("64"), btn -> {
|
||||||
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 7);
|
||||||
|
this.solidifier.onButtonPressed(7, minecraft.player);
|
||||||
|
}).bounds(this.leftPos + 80, this.topPos + 78, 16, 16).build());
|
||||||
|
Button buttonAll = this.addRenderableWidget(Button.builder(Component.literal("All"), btn -> {
|
||||||
|
PacketHandlerHelper.sendButtonPacket(this.solidifier, 8);
|
||||||
|
this.solidifier.onButtonPressed(8, minecraft.player);
|
||||||
|
}).bounds(this.leftPos + 99, this.topPos + 78, 16, 16).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -77,13 +87,6 @@ public class GuiXPSolidifier extends AAScreen<ContainerXPSolidifier> {
|
||||||
|
|
||||||
guiGraphics.blit(RES_LOC, this.leftPos, this.topPos, 0, 0, 176, 93);
|
guiGraphics.blit(RES_LOC, this.leftPos, this.topPos, 0, 0, 176, 93);
|
||||||
|
|
||||||
guiGraphics.drawCenteredString(this.font, Integer.toString(this.solidifier.amount), this.leftPos + 88, this.topPos + 30, 0xFFFFFF);
|
guiGraphics.drawCenteredString(this.font, Integer.toString(this.solidifier.amount), this.leftPos + 88, this.topPos + 34, 0xFFFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public void actionPerformed(Button button) {
|
|
||||||
// PacketHandlerHelper.sendButtonPacket(this.solidifier, button.id);
|
|
||||||
//
|
|
||||||
// this.solidifier.onButtonPressed(button.id, Minecraft.getInstance().player);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class SackGui extends AAScreen<SackContainer> {
|
||||||
public void init() {
|
public void init() {
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
this.filter = new FilterSettingsGui(this.container.filter, this.leftPos + 137, this.topPos + 10, this::addRenderableWidget, 1);
|
this.filter = new FilterSettingsGui(this.container.filter, this.leftPos + 137, this.topPos + 10, this::addRenderableWidget, this::buttonClicked, 1);
|
||||||
|
|
||||||
this.buttonAutoInsert = Button.builder(
|
this.buttonAutoInsert = Button.builder(
|
||||||
Component.literal("I")
|
Component.literal("I")
|
||||||
|
|
|
@ -13,10 +13,12 @@ package de.ellpeck.actuallyadditions.mod.jei;
|
||||||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import de.ellpeck.actuallyadditions.mod.crafting.*;
|
import de.ellpeck.actuallyadditions.mod.crafting.*;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.inventory.gui.CrusherScreen;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.gui.GuiCoffeeMachine;
|
import de.ellpeck.actuallyadditions.mod.inventory.gui.GuiCoffeeMachine;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.gui.GuiFurnaceDouble;
|
import de.ellpeck.actuallyadditions.mod.inventory.gui.GuiFurnaceDouble;
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
||||||
import de.ellpeck.actuallyadditions.mod.jei.coffee.CoffeeMachineCategory;
|
import de.ellpeck.actuallyadditions.mod.jei.coffee.CoffeeMachineCategory;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.jei.crusher.CrusherCategory;
|
||||||
import de.ellpeck.actuallyadditions.mod.jei.empowerer.EmpowererRecipeCategory;
|
import de.ellpeck.actuallyadditions.mod.jei.empowerer.EmpowererRecipeCategory;
|
||||||
import de.ellpeck.actuallyadditions.mod.jei.fermenting.FermentingCategory;
|
import de.ellpeck.actuallyadditions.mod.jei.fermenting.FermentingCategory;
|
||||||
import de.ellpeck.actuallyadditions.mod.jei.laser.LaserRecipeCategory;
|
import de.ellpeck.actuallyadditions.mod.jei.laser.LaserRecipeCategory;
|
||||||
|
@ -49,6 +51,7 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
||||||
public static final RecipeType<LaserRecipe> LASER = RecipeType.create(ActuallyAdditions.MODID, "laser", LaserRecipe.class);
|
public static final RecipeType<LaserRecipe> LASER = RecipeType.create(ActuallyAdditions.MODID, "laser", LaserRecipe.class);
|
||||||
public static final RecipeType<EmpowererRecipe> EMPOWERER = RecipeType.create(ActuallyAdditions.MODID, "empowerer", EmpowererRecipe.class);
|
public static final RecipeType<EmpowererRecipe> EMPOWERER = RecipeType.create(ActuallyAdditions.MODID, "empowerer", EmpowererRecipe.class);
|
||||||
public static final RecipeType<CoffeeIngredientRecipe> COFFEE_MACHINE = RecipeType.create(ActuallyAdditions.MODID, "coffee_machine", CoffeeIngredientRecipe.class);
|
public static final RecipeType<CoffeeIngredientRecipe> COFFEE_MACHINE = RecipeType.create(ActuallyAdditions.MODID, "coffee_machine", CoffeeIngredientRecipe.class);
|
||||||
|
public static final RecipeType<CrushingRecipe> CRUSHING = RecipeType.create(ActuallyAdditions.MODID, "crushing", CrushingRecipe.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerCategories(IRecipeCategoryRegistration registry) {
|
public void registerCategories(IRecipeCategoryRegistration registry) {
|
||||||
|
@ -59,6 +62,7 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
||||||
registry.addRecipeCategories(new EmpowererRecipeCategory(helpers.getGuiHelper()));
|
registry.addRecipeCategories(new EmpowererRecipeCategory(helpers.getGuiHelper()));
|
||||||
registry.addRecipeCategories(new CoffeeMachineCategory(helpers.getGuiHelper()));
|
registry.addRecipeCategories(new CoffeeMachineCategory(helpers.getGuiHelper()));
|
||||||
registry.addRecipeCategories(new PressingCategory(helpers.getGuiHelper()));
|
registry.addRecipeCategories(new PressingCategory(helpers.getGuiHelper()));
|
||||||
|
registry.addRecipeCategories(new CrusherCategory(helpers.getGuiHelper()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -70,11 +74,9 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
||||||
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.EMPOWERER.getItem()), EMPOWERER);
|
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.EMPOWERER.getItem()), EMPOWERER);
|
||||||
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.COFFEE_MACHINE.getItem()), COFFEE_MACHINE);
|
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.COFFEE_MACHINE.getItem()), COFFEE_MACHINE);
|
||||||
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.CANOLA_PRESS.getItem()), PRESSING);
|
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.CANOLA_PRESS.getItem()), PRESSING);
|
||||||
|
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.CRUSHER.getItem()), CRUSHING);
|
||||||
|
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.CRUSHER_DOUBLE.getItem()), CRUSHING);
|
||||||
|
|
||||||
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockGrinder.get()), CrusherRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockGrinderDouble.get()), CrusherRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockAtomicReconstructor.get()), ReconstructorRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.blockEmpowerer.get()), EmpowererRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeCatalyst(new ItemStack(ActuallyItems.itemBooklet.get()), BookletRecipeCategory.NAME);
|
// registry.addRecipeCatalyst(new ItemStack(ActuallyItems.itemBooklet.get()), BookletRecipeCategory.NAME);
|
||||||
// registry.addRecipeCatalyst(new ItemStack(InitBlocks.blockCompost.get()), CompostRecipeCategory.NAME);
|
// registry.addRecipeCatalyst(new ItemStack(InitBlocks.blockCompost.get()), CompostRecipeCategory.NAME);
|
||||||
}
|
}
|
||||||
|
@ -88,13 +90,15 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
||||||
registry.addRecipes(EMPOWERER, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.EMPOWERING.get()).stream().map(RecipeHolder::value).toList());
|
registry.addRecipes(EMPOWERER, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.EMPOWERING.get()).stream().map(RecipeHolder::value).toList());
|
||||||
registry.addRecipes(COFFEE_MACHINE, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.COFFEE_INGREDIENT.get()).stream().map(RecipeHolder::value).toList());
|
registry.addRecipes(COFFEE_MACHINE, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.COFFEE_INGREDIENT.get()).stream().map(RecipeHolder::value).toList());
|
||||||
registry.addRecipes(PRESSING, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.PRESSING.get()).stream().map(RecipeHolder::value).toList());
|
registry.addRecipes(PRESSING, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.PRESSING.get()).stream().map(RecipeHolder::value).toList());
|
||||||
|
registry.addRecipes(CRUSHING, level.getRecipeManager().getAllRecipesFor(ActuallyRecipes.Types.CRUSHING.get()).stream().map(RecipeHolder::value).toList());
|
||||||
//registry.addRecipes(ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA, BookletRecipeCategory.NAME);
|
//registry.addRecipes(ActuallyAdditionsAPI.BOOKLET_PAGES_WITH_ITEM_OR_FLUID_DATA, BookletRecipeCategory.NAME);
|
||||||
//registry.addRecipes(ActuallyAdditionsAPI.CRUSHER_RECIPES, CrusherRecipeCategory.NAME);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
|
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
|
||||||
registration.addRecipeClickArea(GuiCoffeeMachine.class, 53, 42, 22, 16, COFFEE_MACHINE);
|
registration.addRecipeClickArea(GuiCoffeeMachine.class, 53, 42, 22, 16, COFFEE_MACHINE);
|
||||||
|
registration.addRecipeClickArea(CrusherScreen.class, 80, 40, 24, 22, CRUSHING);
|
||||||
|
registration.addRecipeClickArea(CrusherScreen.CrusherDoubleScreen.class, 51, 40, 74, 22, CRUSHING);
|
||||||
registration.addRecipeClickArea(GuiFurnaceDouble.class, 51, 40, 74, 22, RecipeTypes.SMELTING);
|
registration.addRecipeClickArea(GuiFurnaceDouble.class, 51, 40, 74, 22, RecipeTypes.SMELTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,12 +114,6 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
||||||
// registry.handleRecipes(CompostRecipe.class, CompostRecipeWrapper::new, CompostRecipeCategory.NAME);
|
// registry.handleRecipes(CompostRecipe.class, CompostRecipeWrapper::new, CompostRecipeCategory.NAME);
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
|
||||||
// registry.addRecipeClickArea(GuiCoffeeMachine.class, 53, 42, 22, 16, CoffeeMachineRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeClickArea(GuiGrinder.class, 80, 40, 24, 22, CrusherRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeClickArea(GuiGrinder.GuiGrinderDouble.class, 51, 40, 74, 22, CrusherRecipeCategory.NAME);
|
|
||||||
// registry.addRecipeClickArea(GuiFurnaceDouble.class, 51, 40, 74, 22, VanillaRecipeCategoryUid.SMELTING);
|
|
||||||
//
|
|
||||||
// IIngredientBlacklist blacklist = helpers.getIngredientBlacklist();
|
// IIngredientBlacklist blacklist = helpers.getIngredientBlacklist();
|
||||||
// blacklist.addIngredientToBlacklist(new ItemStack(ActuallyBlocks.blockRice.get()));
|
// blacklist.addIngredientToBlacklist(new ItemStack(ActuallyBlocks.blockRice.get()));
|
||||||
// blacklist.addIngredientToBlacklist(new ItemStack(ActuallyBlocks.blockCanola.get()));
|
// blacklist.addIngredientToBlacklist(new ItemStack(ActuallyBlocks.blockCanola.get()));
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
package de.ellpeck.actuallyadditions.mod.jei.crusher;
|
||||||
|
|
||||||
|
import de.ellpeck.actuallyadditions.mod.crafting.CrushingRecipe;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.jei.JEIActuallyAdditionsPlugin;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
||||||
|
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
|
||||||
|
import mezz.jei.api.gui.drawable.IDrawable;
|
||||||
|
import mezz.jei.api.gui.drawable.IDrawableStatic;
|
||||||
|
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
|
||||||
|
import mezz.jei.api.helpers.IGuiHelper;
|
||||||
|
import mezz.jei.api.recipe.IFocusGroup;
|
||||||
|
import mezz.jei.api.recipe.RecipeIngredientRole;
|
||||||
|
import mezz.jei.api.recipe.RecipeType;
|
||||||
|
import mezz.jei.api.recipe.category.IRecipeCategory;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
|
||||||
|
public class CrusherCategory implements IRecipeCategory<CrushingRecipe> {
|
||||||
|
private final IDrawableStatic background;
|
||||||
|
|
||||||
|
public CrusherCategory(IGuiHelper helper) {
|
||||||
|
this.background = helper.drawableBuilder(AssetUtil.getGuiLocation("gui_grinder"), 60, 13, 56, 79).setTextureSize(256,256).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecipeType<CrushingRecipe> getRecipeType() {
|
||||||
|
return JEIActuallyAdditionsPlugin.CRUSHING;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Component getTitle() {
|
||||||
|
return Component.translatable("container.actuallyadditions.crusher");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IDrawable getBackground() {
|
||||||
|
return background;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IDrawable getIcon() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setRecipe(IRecipeLayoutBuilder builder, CrushingRecipe recipe, IFocusGroup focuses) {
|
||||||
|
builder.addSlot(RecipeIngredientRole.INPUT, 20, 8).addIngredients(recipe.getInput());
|
||||||
|
builder.addSlot(RecipeIngredientRole.OUTPUT, 8, 56).addItemStack(recipe.getOutputOne());
|
||||||
|
if (!recipe.getOutputTwo().isEmpty()) {
|
||||||
|
builder.addSlot(RecipeIngredientRole.OUTPUT, 32, 56).addItemStack(recipe.getOutputTwo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void draw(CrushingRecipe recipe, IRecipeSlotsView recipeSlotsView, GuiGraphics guiGraphics, double mouseX, double mouseY) {
|
||||||
|
IRecipeCategory.super.draw(recipe, recipeSlotsView, guiGraphics, mouseX, mouseY);
|
||||||
|
|
||||||
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
if (!recipe.getOutputTwo().isEmpty()) {
|
||||||
|
guiGraphics.drawString(mc.font, (int)(recipe.getSecondChance() * 100) + "%", 60, 60, 4210752, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,68 +0,0 @@
|
||||||
///*
|
|
||||||
// * This file ("CrusherRecipeCategory.java") is part of the Actually Additions mod for Minecraft.
|
|
||||||
// * It is created and owned by Ellpeck and distributed
|
|
||||||
// * under the Actually Additions License to be found at
|
|
||||||
// * http://ellpeck.de/actaddlicense
|
|
||||||
// * View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
||||||
// *
|
|
||||||
// * © 2015-2017 Ellpeck
|
|
||||||
// */
|
|
||||||
//
|
|
||||||
//package de.ellpeck.actuallyadditions.mod.jei.crusher;
|
|
||||||
//
|
|
||||||
//import java.util.Arrays;
|
|
||||||
//
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.util.AssetUtil;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.util.StringUtil;
|
|
||||||
//import mezz.jei.api.IGuiHelper;
|
|
||||||
//import mezz.jei.api.gui.IDrawable;
|
|
||||||
//import mezz.jei.api.gui.IRecipeLayout;
|
|
||||||
//import mezz.jei.api.ingredients.IIngredients;
|
|
||||||
//import mezz.jei.api.recipe.IRecipeCategory;
|
|
||||||
//
|
|
||||||
//public class CrusherRecipeCategory implements IRecipeCategory<CrusherRecipeWrapper> {
|
|
||||||
//
|
|
||||||
// public static final String NAME = "actuallyadditions.crushing";
|
|
||||||
//
|
|
||||||
// private final IDrawable background;
|
|
||||||
//
|
|
||||||
// public CrusherRecipeCategory(IGuiHelper helper) {
|
|
||||||
// this.background = helper.createDrawable(AssetUtil.getGuiLocation("gui_grinder"), 60, 13, 56, 79);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String getUid() {
|
|
||||||
// return NAME;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String getTitle() {
|
|
||||||
// return StringUtil.localize("container.nei." + NAME + ".name");
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String getModName() {
|
|
||||||
// return ActuallyAdditions.NAME;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public IDrawable getBackground() {
|
|
||||||
// return this.background;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void setRecipe(IRecipeLayout recipeLayout, CrusherRecipeWrapper wrapper, IIngredients ingredients) {
|
|
||||||
// recipeLayout.getItemStacks().init(0, true, 19, 7);
|
|
||||||
// recipeLayout.getItemStacks().set(0, Arrays.asList(wrapper.theRecipe.getInput().getMatchingStacks()));
|
|
||||||
//
|
|
||||||
// recipeLayout.getItemStacks().init(1, false, 7, 55);
|
|
||||||
// recipeLayout.getItemStacks().set(1, wrapper.theRecipe.getOutputOne());
|
|
||||||
//
|
|
||||||
// if (StackUtil.isValid(wrapper.theRecipe.getOutputTwo())) {
|
|
||||||
// recipeLayout.getItemStacks().init(2, false, 31, 55);
|
|
||||||
// recipeLayout.getItemStacks().set(2, wrapper.theRecipe.getOutputTwo());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
|
@ -1,72 +0,0 @@
|
||||||
///*
|
|
||||||
// * This file ("CrusherRecipeWrapper.java") is part of the Actually Additions mod for Minecraft.
|
|
||||||
// * It is created and owned by Ellpeck and distributed
|
|
||||||
// * under the Actually Additions License to be found at
|
|
||||||
// * http://ellpeck.de/actaddlicense
|
|
||||||
// * View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
||||||
// *
|
|
||||||
// * © 2015-2017 Ellpeck
|
|
||||||
// */
|
|
||||||
//
|
|
||||||
//package de.ellpeck.actuallyadditions.mod.jei.crusher;
|
|
||||||
//
|
|
||||||
//import de.ellpeck.actuallyadditions.api.booklet.IBookletPage;
|
|
||||||
//import de.ellpeck.actuallyadditions.api.recipe.CrusherRecipe;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.booklet.misc.BookletUtils;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.jei.RecipeWrapperWithButton;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
//import de.ellpeck.actuallyadditions.mod.util.StringUtil;
|
|
||||||
//import mezz.jei.api.ingredients.IIngredients;
|
|
||||||
//import mezz.jei.api.ingredients.VanillaTypes;
|
|
||||||
//import net.minecraft.client.Minecraft;
|
|
||||||
//import net.minecraft.item.ItemStack;
|
|
||||||
//
|
|
||||||
//import java.util.ArrayList;
|
|
||||||
//import java.util.Arrays;
|
|
||||||
//import java.util.List;
|
|
||||||
//
|
|
||||||
//public class CrusherRecipeWrapper extends RecipeWrapperWithButton {
|
|
||||||
//
|
|
||||||
// public final CrusherRecipe theRecipe;
|
|
||||||
//
|
|
||||||
// public CrusherRecipeWrapper(CrusherRecipe recipe) {
|
|
||||||
// this.theRecipe = recipe;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void getIngredients(IIngredients ingredients) {
|
|
||||||
// ingredients.setInputs(VanillaTypes.ITEM, Arrays.asList(this.theRecipe.getInput().getMatchingStacks()));
|
|
||||||
//
|
|
||||||
// List<ItemStack> list = new ArrayList<>();
|
|
||||||
// list.add(this.theRecipe.getOutputOne());
|
|
||||||
// if (StackUtil.isValid(this.theRecipe.getOutputTwo())) {
|
|
||||||
// list.add(this.theRecipe.getOutputTwo());
|
|
||||||
// }
|
|
||||||
// ingredients.setOutputs(VanillaTypes.ITEM, list);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void drawInfo(Minecraft minecraft, int recipeWidth, int recipeHeight, int mouseX, int mouseY) {
|
|
||||||
// if (StackUtil.isValid(this.theRecipe.getOutputTwo())) {
|
|
||||||
// minecraft.fontRenderer.drawString(this.theRecipe.getSecondChance() + "%", 60, 60, StringUtil.DECIMAL_COLOR_GRAY_TEXT, false);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// super.drawInfo(minecraft, recipeWidth, recipeHeight, mouseX, mouseY);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public int getButtonX() {
|
|
||||||
// return -5;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public int getButtonY() {
|
|
||||||
// return 26;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public IBookletPage getPage() {
|
|
||||||
// return BookletUtils.findFirstPageForStack(new ItemStack(ActuallyBlocks.blockGrinder));
|
|
||||||
// }
|
|
||||||
//}
|
|
|
@ -100,85 +100,89 @@ public class TileEntityCrusher extends TileEntityInventoryBase implements IButto
|
||||||
public static <T extends BlockEntity> void serverTick(Level level, BlockPos pos, BlockState state, T t) {
|
public static <T extends BlockEntity> void serverTick(Level level, BlockPos pos, BlockState state, T t) {
|
||||||
if (t instanceof TileEntityCrusher tile) {
|
if (t instanceof TileEntityCrusher tile) {
|
||||||
tile.serverTick();
|
tile.serverTick();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (tile.isDouble && tile.isAutoSplit) {
|
@Override
|
||||||
TileEntityPoweredFurnace.autoSplit(tile.inv, SLOT_INPUT_1, SLOT_INPUT_2);
|
protected void serverTick() {
|
||||||
|
super.serverTick();
|
||||||
|
if (isDouble && isAutoSplit) {
|
||||||
|
TileEntityPoweredFurnace.autoSplit(inv, SLOT_INPUT_1, SLOT_INPUT_2);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean crushed = false;
|
boolean crushed = false;
|
||||||
|
|
||||||
boolean canCrushOnFirst = tile.canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
boolean canCrushOnFirst = canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
||||||
boolean canCrushOnSecond = false;
|
boolean canCrushOnSecond = false;
|
||||||
if (tile.isDouble) {
|
if (isDouble) {
|
||||||
canCrushOnSecond = tile.canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
canCrushOnSecond = canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean shouldPlaySound = false;
|
boolean shouldPlaySound = false;
|
||||||
|
|
||||||
if (canCrushOnFirst) {
|
if (canCrushOnFirst) {
|
||||||
if (tile.storage.getEnergyStored() >= ENERGY_USE) {
|
if (storage.getEnergyStored() >= ENERGY_USE) {
|
||||||
if (tile.firstCrushTime % 20 == 0) {
|
if (firstCrushTime % 20 == 0) {
|
||||||
shouldPlaySound = true;
|
shouldPlaySound = true;
|
||||||
}
|
}
|
||||||
tile.firstCrushTime++;
|
firstCrushTime++;
|
||||||
if (tile.firstCrushTime >= tile.getMaxCrushTime()) {
|
if (firstCrushTime >= getMaxCrushTime()) {
|
||||||
tile.finishCrushing(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
finishCrushing(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
||||||
tile.firstCrushTime = 0;
|
firstCrushTime = 0;
|
||||||
}
|
}
|
||||||
tile.storage.extractEnergyInternal(ENERGY_USE, false);
|
storage.extractEnergyInternal(ENERGY_USE, false);
|
||||||
}
|
}
|
||||||
crushed = tile.storage.getEnergyStored() >= ENERGY_USE;
|
crushed = storage.getEnergyStored() >= ENERGY_USE;
|
||||||
} else {
|
} else {
|
||||||
tile.firstCrushTime = 0;
|
firstCrushTime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tile.isDouble) {
|
if (isDouble) {
|
||||||
if (canCrushOnSecond) {
|
if (canCrushOnSecond) {
|
||||||
if (tile.storage.getEnergyStored() >= ENERGY_USE) {
|
if (storage.getEnergyStored() >= ENERGY_USE) {
|
||||||
if (tile.secondCrushTime % 20 == 0) {
|
if (secondCrushTime % 20 == 0) {
|
||||||
shouldPlaySound = true;
|
shouldPlaySound = true;
|
||||||
}
|
}
|
||||||
tile.secondCrushTime++;
|
secondCrushTime++;
|
||||||
if (tile.secondCrushTime >= tile.getMaxCrushTime()) {
|
if (secondCrushTime >= getMaxCrushTime()) {
|
||||||
tile.finishCrushing(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
finishCrushing(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
||||||
tile.secondCrushTime = 0;
|
secondCrushTime = 0;
|
||||||
}
|
}
|
||||||
tile.storage.extractEnergyInternal(ENERGY_USE, false);
|
storage.extractEnergyInternal(ENERGY_USE, false);
|
||||||
}
|
}
|
||||||
crushed = tile.storage.getEnergyStored() >= ENERGY_USE;
|
crushed = storage.getEnergyStored() >= ENERGY_USE;
|
||||||
} else {
|
} else {
|
||||||
tile.secondCrushTime = 0;
|
secondCrushTime = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean current = state.getValue(BlockStateProperties.LIT);
|
boolean current = getBlockState().getValue(BlockStateProperties.LIT);
|
||||||
boolean changeTo = current;
|
boolean changeTo = current;
|
||||||
if (tile.lastCrushed != crushed) {
|
if (lastCrushed != crushed) {
|
||||||
changeTo = crushed;
|
changeTo = crushed;
|
||||||
}
|
}
|
||||||
if (tile.isRedstonePowered) {
|
if (isRedstonePowered) {
|
||||||
changeTo = true;
|
changeTo = true;
|
||||||
}
|
}
|
||||||
if (!crushed && !tile.isRedstonePowered) {
|
if (!crushed && !isRedstonePowered) {
|
||||||
changeTo = false;
|
changeTo = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changeTo != current) {
|
if (changeTo != current) {
|
||||||
level.setBlockAndUpdate(pos, state.setValue(BlockStateProperties.LIT, changeTo));
|
level.setBlockAndUpdate(getBlockPos(), getBlockState().setValue(BlockStateProperties.LIT, changeTo));
|
||||||
}
|
}
|
||||||
|
|
||||||
tile.lastCrushed = crushed;
|
lastCrushed = crushed;
|
||||||
|
|
||||||
if ((tile.lastEnergy != tile.storage.getEnergyStored() || tile.lastFirstCrush != tile.firstCrushTime || tile.lastSecondCrush != tile.secondCrushTime || tile.isAutoSplit != tile.lastAutoSplit) && tile.sendUpdateWithInterval()) {
|
if ((lastEnergy != storage.getEnergyStored() || lastFirstCrush != firstCrushTime || lastSecondCrush != secondCrushTime || isAutoSplit != lastAutoSplit) && sendUpdateWithInterval()) {
|
||||||
tile.lastEnergy = tile.storage.getEnergyStored();
|
lastEnergy = storage.getEnergyStored();
|
||||||
tile.lastFirstCrush = tile.firstCrushTime;
|
lastFirstCrush = firstCrushTime;
|
||||||
tile.lastSecondCrush = tile.secondCrushTime;
|
lastSecondCrush = secondCrushTime;
|
||||||
tile.lastAutoSplit = tile.isAutoSplit;
|
lastAutoSplit = isAutoSplit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldPlaySound) {
|
if (shouldPlaySound) {
|
||||||
level.playSound(null, pos.getX(), pos.getY(), pos.getZ(), AASounds.CRUSHER.get(), SoundSource.BLOCKS, 0.025F, 1.0F);
|
level.playSound(null, getBlockPos().getX(), getBlockPos().getY(), getBlockPos().getZ(), AASounds.CRUSHER.get(), SoundSource.BLOCKS, 0.025F, 1.0F);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,7 +203,7 @@ public class TileEntityCrusher extends TileEntityInventoryBase implements IButto
|
||||||
ItemStack inputStack = this.inv.getStackInSlot(theInput);
|
ItemStack inputStack = this.inv.getStackInSlot(theInput);
|
||||||
if (!inputStack.isEmpty()) {
|
if (!inputStack.isEmpty()) {
|
||||||
Optional<RecipeHolder<CrushingRecipe>> recipeOpt = getRecipeForInput(inputStack);
|
Optional<RecipeHolder<CrushingRecipe>> recipeOpt = getRecipeForInput(inputStack);
|
||||||
if (!recipeOpt.isPresent()) {
|
if (recipeOpt.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
CrushingRecipe recipe = recipeOpt.get().value();
|
CrushingRecipe recipe = recipeOpt.get().value();
|
||||||
|
@ -220,7 +224,7 @@ public class TileEntityCrusher extends TileEntityInventoryBase implements IButto
|
||||||
|
|
||||||
public void finishCrushing(int theInput, int theFirstOutput, int theSecondOutput) {
|
public void finishCrushing(int theInput, int theFirstOutput, int theSecondOutput) {
|
||||||
Optional<RecipeHolder<CrushingRecipe>> recipeOpt = getRecipeForInput(this.inv.getStackInSlot(theInput));
|
Optional<RecipeHolder<CrushingRecipe>> recipeOpt = getRecipeForInput(this.inv.getStackInSlot(theInput));
|
||||||
if (!recipeOpt.isPresent()) {
|
if (recipeOpt.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CrushingRecipe recipe = recipeOpt.get().value();
|
CrushingRecipe recipe = recipeOpt.get().value();
|
||||||
|
|
|
@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile;
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
@ -34,4 +35,9 @@ public class TileEntityCrusherDouble extends TileEntityCrusher {
|
||||||
tile.serverTick();
|
tile.serverTick();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Component getDisplayName() {
|
||||||
|
return Component.translatable("container.actuallyadditions.crusher_double");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class TileEntityEnergizer extends TileEntityInventoryBase implements Menu
|
||||||
if (t instanceof TileEntityEnergizer tile) {
|
if (t instanceof TileEntityEnergizer tile) {
|
||||||
tile.serverTick();
|
tile.serverTick();
|
||||||
|
|
||||||
if (StackUtil.isValid(tile.inv.getStackInSlot(0)) && !StackUtil.isValid(tile.inv.getStackInSlot(1))) {
|
if (!tile.inv.getStackInSlot(0).isEmpty() && tile.inv.getStackInSlot(1).isEmpty()) {
|
||||||
if (tile.storage.getEnergyStored() > 0) {
|
if (tile.storage.getEnergyStored() > 0) {
|
||||||
Optional<IEnergyStorage> capability = Optional.ofNullable(tile.inv.getStackInSlot(0).getCapability(Capabilities.EnergyStorage.ITEM, null));
|
Optional<IEnergyStorage> capability = Optional.ofNullable(tile.inv.getStackInSlot(0).getCapability(Capabilities.EnergyStorage.ITEM, null));
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ public class TileEntityEnergizer extends TileEntityInventoryBase implements Menu
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getDisplayName() {
|
public Component getDisplayName() {
|
||||||
return Component.empty();
|
return Component.translatable("container.actuallyadditions.energizer");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerEnervator;
|
import de.ellpeck.actuallyadditions.mod.inventory.ContainerEnervator;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor;
|
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IRemover;
|
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IRemover;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
@ -63,7 +62,7 @@ public class TileEntityEnervator extends TileEntityInventoryBase implements ISha
|
||||||
if (t instanceof TileEntityEnervator tile) {
|
if (t instanceof TileEntityEnervator tile) {
|
||||||
tile.serverTick();
|
tile.serverTick();
|
||||||
|
|
||||||
if (StackUtil.isValid(tile.inv.getStackInSlot(0)) && !StackUtil.isValid(tile.inv.getStackInSlot(1))) {
|
if (!tile.inv.getStackInSlot(0).isEmpty() && tile.inv.getStackInSlot(1).isEmpty()) {
|
||||||
if (tile.storage.getEnergyStored() < tile.storage.getMaxEnergyStored()) {
|
if (tile.storage.getEnergyStored() < tile.storage.getMaxEnergyStored()) {
|
||||||
Optional<IEnergyStorage> capability = Optional.ofNullable(tile.inv.getStackInSlot(0).getCapability(Capabilities.EnergyStorage.ITEM, null));
|
Optional<IEnergyStorage> capability = Optional.ofNullable(tile.inv.getStackInSlot(0).getCapability(Capabilities.EnergyStorage.ITEM, null));
|
||||||
|
|
||||||
|
@ -129,7 +128,7 @@ public class TileEntityEnervator extends TileEntityInventoryBase implements ISha
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getDisplayName() {
|
public Component getDisplayName() {
|
||||||
return Component.empty();
|
return Component.translatable("container.actuallyadditions.enervator");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -294,7 +294,7 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyDisp
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getDisplayName() {
|
public Component getDisplayName() {
|
||||||
return Component.empty();
|
return Component.translatable("container.actuallyadditions.fireworkBox");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -36,7 +36,6 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.neoforged.neoforge.fluids.FluidStack;
|
import net.neoforged.neoforge.fluids.FluidStack;
|
||||||
import net.neoforged.neoforge.fluids.FluidType;
|
import net.neoforged.neoforge.fluids.FluidType;
|
||||||
import net.neoforged.neoforge.fluids.IFluidBlock;
|
|
||||||
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
|
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
@ -116,7 +115,7 @@ public class TileEntityFluidCollector extends TileEntityBase implements ISharing
|
||||||
Block fluid = stack.getFluid().defaultFluidState().createLegacyBlock().getBlock();
|
Block fluid = stack.getFluid().defaultFluidState().createLegacyBlock().getBlock();
|
||||||
if (fluid != null) {
|
if (fluid != null) {
|
||||||
BlockPos offsetPos = this.worldPosition.relative(sideToManipulate);
|
BlockPos offsetPos = this.worldPosition.relative(sideToManipulate);
|
||||||
boolean placeable = !(blockToBreak instanceof IFluidBlock) && blockToBreak.defaultBlockState().canBeReplaced();
|
boolean placeable = !stateToBreak.getFluidState().isSource() && blockToBreak.defaultBlockState().canBeReplaced();
|
||||||
if (placeable) {
|
if (placeable) {
|
||||||
this.tank.drainInternal(FluidType.BUCKET_VOLUME, IFluidHandler.FluidAction.EXECUTE);
|
this.tank.drainInternal(FluidType.BUCKET_VOLUME, IFluidHandler.FluidAction.EXECUTE);
|
||||||
// TODO: [port] validate this check is still valid.
|
// TODO: [port] validate this check is still valid.
|
||||||
|
|
|
@ -31,6 +31,7 @@ import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -111,17 +112,17 @@ public class TileEntityRangedCollector extends TileEntityInventoryBase implement
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onButtonPressed(int buttonID, Player player) {
|
public void onButtonPressed(int buttonID, Player player) {
|
||||||
//this.filter.onButtonPressed(buttonID);
|
this.filter.onButtonPressed(buttonID);
|
||||||
} //TODO
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getDisplayName() {
|
public Component getDisplayName() {
|
||||||
return Component.empty();
|
return Component.translatable("container.actuallyadditions.rangedCollector");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public AbstractContainerMenu createMenu(int windowId, Inventory playerInventory, Player player) {
|
public AbstractContainerMenu createMenu(int windowId, @Nonnull Inventory playerInventory, @Nonnull Player player) {
|
||||||
return new ContainerRangedCollector(windowId, playerInventory, this);
|
return new ContainerRangedCollector(windowId, playerInventory, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,7 +159,6 @@ public class TileEntityXPSolidifier extends TileEntityInventoryBase implements I
|
||||||
List<ExperienceOrb> orbs = level.getEntitiesOfClass(ExperienceOrb.class, new AABB(pos.getX() - range, pos.getY() - range, pos.getZ() - range, pos.getX() + 1 + range, pos.getY() + 1 + range, pos.getZ() + 1 + range));
|
List<ExperienceOrb> orbs = level.getEntitiesOfClass(ExperienceOrb.class, new AABB(pos.getX() - range, pos.getY() - range, pos.getZ() - range, pos.getX() + 1 + range, pos.getY() + 1 + range, pos.getZ() + 1 + range));
|
||||||
if (orbs != null && !orbs.isEmpty()) {
|
if (orbs != null && !orbs.isEmpty()) {
|
||||||
for (ExperienceOrb orb : orbs) {
|
for (ExperienceOrb orb : orbs) {
|
||||||
// TODO: [port] validate the getPersistentData is correct
|
|
||||||
if (orb != null && orb.isAlive() && !orb.getPersistentData().getBoolean(ActuallyAdditions.MODID + "FromSolidified")) {
|
if (orb != null && orb.isAlive() && !orb.getPersistentData().getBoolean(ActuallyAdditions.MODID + "FromSolidified")) {
|
||||||
tile.singlePointAmount += orb.getValue();
|
tile.singlePointAmount += orb.getValue();
|
||||||
orb.discard();
|
orb.discard();
|
||||||
|
@ -223,7 +222,7 @@ public class TileEntityXPSolidifier extends TileEntityInventoryBase implements I
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getDisplayName() {
|
public Component getDisplayName() {
|
||||||
return Component.empty();
|
return Component.translatable("container.actuallyadditions.experienceSolidifier");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -2,4 +2,5 @@ public net.minecraft.world.damagesource.DamageSources *() # DamageSources
|
||||||
public net.minecraft.world.damagesource.DamageSources damageTypes
|
public net.minecraft.world.damagesource.DamageSources damageTypes
|
||||||
public-f net.minecraft.data.recipes.RecipeProvider getName()Ljava/lang/String;
|
public-f net.minecraft.data.recipes.RecipeProvider getName()Ljava/lang/String;
|
||||||
public-f net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList list
|
public-f net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorList list
|
||||||
public net.minecraft.world.item.crafting.ShapedRecipe pattern # pattern
|
public net.minecraft.world.item.crafting.ShapedRecipe pattern
|
||||||
|
public net.minecraft.world.inventory.InventoryMenu TEXTURE_EMPTY_SLOTS
|
|
@ -106,16 +106,16 @@
|
||||||
"block.actuallyadditions.smooth_black_quartz_block": "Smooth Black Quartz",
|
"block.actuallyadditions.smooth_black_quartz_block": "Smooth Black Quartz",
|
||||||
"block.actuallyadditions.black_quartz_brick_block": "Black Quartz Bricks",
|
"block.actuallyadditions.black_quartz_brick_block": "Black Quartz Bricks",
|
||||||
"block.actuallyadditions.feeder": "Automatic Feeder (wip)",
|
"block.actuallyadditions.feeder": "Automatic Feeder (wip)",
|
||||||
"block.actuallyadditions.crusher": "Crusher (wip)",
|
"block.actuallyadditions.crusher": "Crusher",
|
||||||
"block.actuallyadditions.crusher_double": "Double Crusher (wip)",
|
"block.actuallyadditions.crusher_double": "Double Crusher",
|
||||||
"block.actuallyadditions.powered_furnace": "Powered Furnace",
|
"block.actuallyadditions.powered_furnace": "Powered Furnace",
|
||||||
"block.actuallyadditions.fishing_net": "Fishing Net (wip)",
|
"block.actuallyadditions.fishing_net": "Fishing Net (wip)",
|
||||||
"block.actuallyadditions.heat_collector": "Heat Collector (wip)",
|
"block.actuallyadditions.heat_collector": "Heat Collector (wip)",
|
||||||
"block.actuallyadditions.item_repairer": "Item Repairer (wip)",
|
"block.actuallyadditions.item_repairer": "Item Repairer (wip)",
|
||||||
"block.actuallyadditions.wood_casing": "Wood Casing (wip)",
|
"block.actuallyadditions.wood_casing": "Wood Casing (wip)",
|
||||||
"block.actuallyadditions.greenhouse_glass": "Greenhouse Glass (wip)",
|
"block.actuallyadditions.greenhouse_glass": "Greenhouse Glass (wip)",
|
||||||
"block.actuallyadditions.energizer": "Energizer (wip)",
|
"block.actuallyadditions.energizer": "Energizer",
|
||||||
"block.actuallyadditions.enervator": "Enervator (wip)",
|
"block.actuallyadditions.enervator": "Enervator",
|
||||||
"block.actuallyadditions.rice": "Rice Plant",
|
"block.actuallyadditions.rice": "Rice Plant",
|
||||||
"block.actuallyadditions.coal_generator": "Coal Generator",
|
"block.actuallyadditions.coal_generator": "Coal Generator",
|
||||||
"block.actuallyadditions.lamp_controller": "Lamp Controller (wip)",
|
"block.actuallyadditions.lamp_controller": "Lamp Controller (wip)",
|
||||||
|
@ -142,8 +142,8 @@
|
||||||
"block.actuallyadditions.phantom_liquiface": "Phantom Liquiface (wip)",
|
"block.actuallyadditions.phantom_liquiface": "Phantom Liquiface (wip)",
|
||||||
"block.actuallyadditions.phantom_placer": "Phantom Placer (wip)",
|
"block.actuallyadditions.phantom_placer": "Phantom Placer (wip)",
|
||||||
"block.actuallyadditions.phantom_breaker": "Phantom Breaker (wip)",
|
"block.actuallyadditions.phantom_breaker": "Phantom Breaker (wip)",
|
||||||
"block.actuallyadditions.lava_factory_controller": "Lava Factory Controller (wip)",
|
"block.actuallyadditions.lava_factory_controller": "Lava Factory Controller",
|
||||||
"block.actuallyadditions.lava_factory_casing": "Lava Casing (wip)",
|
"block.actuallyadditions.lava_factory_casing": "Lava Casing",
|
||||||
"block.actuallyadditions.fluid_placer": "Fluid Placer",
|
"block.actuallyadditions.fluid_placer": "Fluid Placer",
|
||||||
"block.actuallyadditions.fluid_collector": "Fluid Collector",
|
"block.actuallyadditions.fluid_collector": "Fluid Collector",
|
||||||
"block.actuallyadditions.phantom_booster": "Phantom Booster (wip)",
|
"block.actuallyadditions.phantom_booster": "Phantom Booster (wip)",
|
||||||
|
@ -169,10 +169,10 @@
|
||||||
"block.actuallyadditions.ender_casing": "Ender Casing",
|
"block.actuallyadditions.ender_casing": "Ender Casing",
|
||||||
"block.actuallyadditions.flax": "Flax Plant",
|
"block.actuallyadditions.flax": "Flax Plant",
|
||||||
"block.actuallyadditions.coffee_machine": "Coffee Maker",
|
"block.actuallyadditions.coffee_machine": "Coffee Maker",
|
||||||
"block.actuallyadditions.xp_solidifier": "Experience Solidifier (wip)",
|
"block.actuallyadditions.xp_solidifier": "Experience Solidifier",
|
||||||
"block.actuallyadditions.leaf_generator": "Leaf-Eating Generator (wip)",
|
"block.actuallyadditions.leaf_generator": "Leaf-Eating Generator (wip)",
|
||||||
"block.actuallyadditions.long_range_breaker": "Long-Range Breaker (wip)",
|
"block.actuallyadditions.long_range_breaker": "Long-Range Breaker (wip)",
|
||||||
"block.actuallyadditions.ranged_collector": "Ranged Collector (wip)",
|
"block.actuallyadditions.ranged_collector": "Ranged Collector",
|
||||||
"block.actuallyadditions.laser_relay": "Energy Laser Relay (wip)",
|
"block.actuallyadditions.laser_relay": "Energy Laser Relay (wip)",
|
||||||
"block.actuallyadditions.laser_relay_advanced": "Advanced Energy Laser Relay (wip)",
|
"block.actuallyadditions.laser_relay_advanced": "Advanced Energy Laser Relay (wip)",
|
||||||
"block.actuallyadditions.laser_relay_extreme": "Extreme Energy Laser Relay (wip)",
|
"block.actuallyadditions.laser_relay_extreme": "Extreme Energy Laser Relay (wip)",
|
||||||
|
@ -407,7 +407,7 @@
|
||||||
"tooltip.actuallyadditions.phantom.notConnected.desc": "This isn't connected to anything!",
|
"tooltip.actuallyadditions.phantom.notConnected.desc": "This isn't connected to anything!",
|
||||||
"tooltip.actuallyadditions.phantom.blockInfo.desc": "The connected Block is %s at %s, %s, %s that is %s Blocks away.",
|
"tooltip.actuallyadditions.phantom.blockInfo.desc": "The connected Block is %s at %s, %s, %s that is %s Blocks away.",
|
||||||
"tooltip.actuallyadditions.factory.notPart.desc": "The Controller isn't part of the right Multi-Block! Look at the Controller's Description!",
|
"tooltip.actuallyadditions.factory.notPart.desc": "The Controller isn't part of the right Multi-Block! Look at the Controller's Description!",
|
||||||
"tooltip.actuallyadditions.factory.works.desc": "This Lava Factory is complete and can produce Lava!",
|
"tooltip.actuallyadditions.factory.working": "This Lava Factory is complete and can produce Lava!",
|
||||||
"tooltip.actuallyadditions.oredictName.desc": "OreDictionary Entries",
|
"tooltip.actuallyadditions.oredictName.desc": "OreDictionary Entries",
|
||||||
"tooltip.actuallyadditions.noOredictNameAvail.desc": "None",
|
"tooltip.actuallyadditions.noOredictNameAvail.desc": "None",
|
||||||
"tooltip.actuallyadditions.codeName.desc": "Code Name",
|
"tooltip.actuallyadditions.codeName.desc": "Code Name",
|
||||||
|
@ -471,8 +471,8 @@
|
||||||
"info.actuallyadditions.gui.respectOredictHard": "Hard Respecting OreDictionary",
|
"info.actuallyadditions.gui.respectOredictHard": "Hard Respecting OreDictionary",
|
||||||
"info.actuallyadditions.gui.respectOredictInfo.one": "The item being passed only has to contain §2only one§r of the OreDictionary tags of the item in the filter.",
|
"info.actuallyadditions.gui.respectOredictInfo.one": "The item being passed only has to contain §2only one§r of the OreDictionary tags of the item in the filter.",
|
||||||
"info.actuallyadditions.gui.respectOredictInfo.all": "The item being passed has to contain §2all§r of the OreDictionary tags of the item in the filter.",
|
"info.actuallyadditions.gui.respectOredictInfo.all": "The item being passed has to contain §2all§r of the OreDictionary tags of the item in the filter.",
|
||||||
"info.actuallyadditions.gui.autoSplitItems.on": "Auto-Split Items On",
|
"info.actuallyadditions.gui.autosplititems.on": "Auto-Split Items On",
|
||||||
"info.actuallyadditions.gui.autoSplitItems.off": "Auto-Split Items Off",
|
"info.actuallyadditions.gui.autosplititems.off": "Auto-Split Items Off",
|
||||||
"info.actuallyadditions.gui.inbound": "INBOUND",
|
"info.actuallyadditions.gui.inbound": "INBOUND",
|
||||||
"info.actuallyadditions.gui.outbound": "OUTBOUND",
|
"info.actuallyadditions.gui.outbound": "OUTBOUND",
|
||||||
"info.actuallyadditions.gui.coffee": "Coffee",
|
"info.actuallyadditions.gui.coffee": "Coffee",
|
||||||
|
@ -585,6 +585,7 @@
|
||||||
"container.actuallyadditions.laserRelayFluids": "Fluid Laser Relay",
|
"container.actuallyadditions.laserRelayFluids": "Fluid Laser Relay",
|
||||||
"container.actuallyadditions.distributorItem": "Item Distributor",
|
"container.actuallyadditions.distributorItem": "Item Distributor",
|
||||||
"container.actuallyadditions.fireworkBox": "Firework Box",
|
"container.actuallyadditions.fireworkBox": "Firework Box",
|
||||||
|
"container.actuallyadditions.experienceSolidifier": "Experience Solidifier",
|
||||||
"_comment": "Update Information",
|
"_comment": "Update Information",
|
||||||
"info.actuallyadditions.update.generic": "[{\"text\":\"There is an Update for \"},{\"text\":\"Actually Additions \",\"color\":\"dark_green\"},{\"text\":\"available!\",\"color\":\"none\"}]",
|
"info.actuallyadditions.update.generic": "[{\"text\":\"There is an Update for \"},{\"text\":\"Actually Additions \",\"color\":\"dark_green\"},{\"text\":\"available!\",\"color\":\"none\"}]",
|
||||||
"info.actuallyadditions.update.versionCompare": "[{\"text\":\"Current Version: \"},{\"text\":\"%s\",\"color\":\"dark_red\"},{\"text\":\", newest Version: \",\"color\":\"none\"},{\"text\":\"%s\",\"color\":\"dark_green\"}]",
|
"info.actuallyadditions.update.versionCompare": "[{\"text\":\"Current Version: \"},{\"text\":\"%s\",\"color\":\"dark_red\"},{\"text\":\", newest Version: \",\"color\":\"none\"},{\"text\":\"%s\",\"color\":\"dark_green\"}]",
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
Loading…
Reference in a new issue