mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-27 17:28: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
|
||||
# Actually Additions
|
||||
|
||||
mod_version=1.2.2
|
||||
mod_version=1.2.4
|
||||
|
||||
# Forge
|
||||
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
|
||||
f67629e45d152c96f3467a90a67520f78ecf9f07 data/actuallyadditions/recipes/advanced_leaf_blower.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
|
||||
fc0a5281fc77edde16f22165e164f73dd28d7fcd data/actuallyadditions/recipes/single_battery.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
|
||||
0ec48b429486a03aba107cb8b6dc9e03694ca68f data/actuallyadditions/recipes/tiny_to_charcoal.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
|
||||
0737014abee48f688982412297e04e994aa6f9a6 data/actuallyadditions/recipes/wings_of_the_bats.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
|
||||
b0367f5012651764931e8b8fd0c5bcca4e8614c0 data/actuallyadditions/recipes/battery_box.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
|
||||
e41876ca63cd64d5a906c87682433179e9fe4de2 data/actuallyadditions/recipes/coal_generator.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
|
||||
f6a581219fbfde8c67edc59318f92cc719597c4f data/actuallyadditions/recipes/dropper.json
|
||||
7c9a004460b6eb6c6e07cedfa086294d59e5eec5 data/actuallyadditions/recipes/empowerer.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
|
||||
1171daf9cf5402c9c47a9f2f370d5924ebddef5e data/actuallyadditions/recipes/ethetic_green_stairs.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
|
||||
31a2978ae8260ead579c6c920be0e40c6036498d data/actuallyadditions/recipes/laser_relay_extreme.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
|
||||
8c78ebb9351b98ffe368391a391b90385c0b8b7f data/actuallyadditions/recipes/placer.json
|
||||
184acfb5fd3799b3fbe35150c67b6530581f8bf1 data/actuallyadditions/recipes/powered_furnace.json
|
||||
b81a706a5f635d8a63ffd3034c80838dc10699c9 data/actuallyadditions/recipes/ranged_collector.json
|
||||
532a454741e8068941f1f3c44f3be257530db8c3 data/actuallyadditions/recipes/shock_suppressor.json
|
||||
7fa363b3afe88f3ffac1b9f85f59c6a291d59544 data/actuallyadditions/recipes/smooth_black_quartz_slab.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
|
||||
5fa543c707eeb18accd41ca93e1a7a33a4eb44ff data/actuallyadditions/recipes/crushing/iron_crusher.json
|
||||
// 1.20.4 2024-03-11T00:45:42.8987725 Crushing Recipes
|
||||
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",
|
||||
"key": {
|
||||
"R": {
|
||||
"item": "actuallyadditions:rice_slimeball"
|
||||
"tag": "forge:slimeballs"
|
||||
}
|
||||
},
|
||||
"pattern": [
|
|
@ -6,7 +6,7 @@
|
|||
"item": "minecraft:piston"
|
||||
},
|
||||
"R": {
|
||||
"item": "actuallyadditions:rice_slimeball"
|
||||
"tag": "forge:slimeballs"
|
||||
}
|
||||
},
|
||||
"pattern": [
|
|
@ -339,6 +339,66 @@ public class BlockRecipeGenerator extends RecipeProvider {
|
|||
.pattern("B", "B")
|
||||
.define('B', ActuallyBlocks.BLACK_QUARTZ.getItem())
|
||||
.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 {
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package de.ellpeck.actuallyadditions.data;
|
||||
|
||||
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.items.ActuallyItems;
|
||||
import de.ellpeck.actuallyadditions.mod.util.NoAdvRecipeOutput;
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.recipes.RecipeOutput;
|
||||
import net.minecraft.data.recipes.RecipeProvider;
|
||||
|
@ -27,8 +30,134 @@ public class CrushingRecipeGenerator extends RecipeProvider {
|
|||
protected void buildRecipes(@Nonnull RecipeOutput 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);
|
||||
recipeOutput.accept(new ResourceLocation(ActuallyAdditions.MODID, "crushing/iron_crusher"), recipe, null);
|
||||
new CrushingBuilder(Ingredient.of(Items.DANDELION), new CrushingRecipe.CrushingResult(new ItemStack(Items.YELLOW_DYE, 3), 1.0f))
|
||||
.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)
|
||||
.save(recipeOutput);
|
||||
|
||||
// Sticky Piston from rice slime
|
||||
// Sticky Piston from tagged slime balls
|
||||
Recipe.shaped(Items.STICKY_PISTON)
|
||||
.pattern("R", "P")
|
||||
.define('R', ActuallyItems.RICE_SLIMEBALL.get())
|
||||
.define('R', Tags.Items.SLIMEBALLS)
|
||||
.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)
|
||||
.pattern("RRR", "RRR", "RRR")
|
||||
.define('R', ActuallyItems.RICE_SLIMEBALL.get())
|
||||
.save(recipeOutput);
|
||||
.define('R', Tags.Items.SLIMEBALLS)
|
||||
.save(recipeOutput, new ResourceLocation(ActuallyAdditions.MODID, "tagged_slime_block"));
|
||||
|
||||
//Shards
|
||||
addShard(recipeOutput, ActuallyItems.VOID_CRYSTAL_SHARD, ActuallyItems.VOID_CRYSTAL);
|
||||
|
|
|
@ -17,7 +17,7 @@ import java.util.concurrent.CompletableFuture;
|
|||
|
||||
public class ItemTagsGenerator extends ItemTagsProvider {
|
||||
public ItemTagsGenerator(PackOutput packOutput, CompletableFuture<HolderLookup.Provider> lookupProvider,
|
||||
TagsProvider<Block> blockTagProvider, ExistingFileHelper existingFileHelper) {
|
||||
TagsProvider<Block> blockTagProvider, ExistingFileHelper existingFileHelper) {
|
||||
super(packOutput, lookupProvider, blockTagProvider.contentsGetter(), ActuallyAdditions.MODID, existingFileHelper);
|
||||
}
|
||||
|
||||
|
|
|
@ -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<BlockCrusher, AABlockItem, TileEntityCrusher> CRUSHER = new AABlockReg<>("crusher", () -> new BlockCrusher(false),
|
||||
(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);
|
||||
|
||||
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.blocks.base.DirectionalBlock;
|
||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityLavaFactoryController;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StringUtil;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.resources.language.I18n;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
|
@ -66,9 +65,9 @@ public class BlockLavaFactoryController extends DirectionalBlock.Container imple
|
|||
if (factory != null) {
|
||||
int state = factory.isMultiblock();
|
||||
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) {
|
||||
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;
|
||||
|
||||
public final class PlayerData {
|
||||
|
||||
private static PlayerSave clientData = null;
|
||||
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;
|
||||
UUID id = player.getUUID();
|
||||
|
||||
|
|
|
@ -10,20 +10,24 @@
|
|||
|
||||
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.SlotOutput;
|
||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnergizer;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.inventory.InventoryMenu;
|
||||
import net.minecraft.world.inventory.Slot;
|
||||
import net.minecraft.world.item.ArmorItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.neoforged.neoforge.capabilities.Capabilities;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -76,13 +80,11 @@ public class ContainerEnergizer extends AbstractContainerMenu {
|
|||
return (itemstack.isEmpty() || player.isCreative() || !EnchantmentHelper.hasBindingCurse(itemstack)) && super.mayPickup(player);
|
||||
}
|
||||
|
||||
// TODO: [port] add back
|
||||
|
||||
// @Override
|
||||
// @OnlyIn(Dist.CLIENT)
|
||||
// public String getSlotTexture() {
|
||||
// return Armor.EMPTY_SLOT_NAMES[slot.getIndex()];
|
||||
// }
|
||||
@Nullable
|
||||
@Override
|
||||
public Pair<ResourceLocation, ResourceLocation> getNoItemIcon() {
|
||||
return Pair.of(InventoryMenu.BLOCK_ATLAS, InventoryMenu.TEXTURE_EMPTY_SLOTS[slot.getIndex()]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,19 +10,23 @@
|
|||
|
||||
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.SlotOutput;
|
||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityEnervator;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||
import net.minecraft.world.inventory.InventoryMenu;
|
||||
import net.minecraft.world.inventory.Slot;
|
||||
import net.minecraft.world.item.ArmorItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.neoforged.neoforge.capabilities.Capabilities;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -64,13 +68,11 @@ public class ContainerEnervator extends AbstractContainerMenu {
|
|||
return StackUtil.isValid(stack) && stack.getItem() instanceof ArmorItem;
|
||||
}
|
||||
|
||||
// TODO: [port] add this back
|
||||
|
||||
// @Override
|
||||
// @OnlyIn(Dist.CLIENT)
|
||||
// public String getSlotTexture() {
|
||||
// return ItemArmor.EMPTY_SLOT_NAMES[slot.getIndex()];
|
||||
// }
|
||||
@Nullable
|
||||
@Override
|
||||
public Pair<ResourceLocation, ResourceLocation> getNoItemIcon() {
|
||||
return Pair.of(InventoryMenu.BLOCK_ATLAS, InventoryMenu.TEXTURE_EMPTY_SLOTS[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.SlotItemHandlerUnconditioned;
|
||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityRangedCollector;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
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.item.ItemStack;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.Objects;
|
||||
|
||||
public class ContainerRangedCollector extends AbstractContainerMenu {
|
||||
|
@ -57,8 +57,9 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
|||
}
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public ItemStack quickMoveStack(Player player, int slot) {
|
||||
public ItemStack quickMoveStack(@Nonnull Player player, int slot) {
|
||||
int inventoryStart = 18;
|
||||
int inventoryEnd = inventoryStart + 26;
|
||||
int hotbarStart = inventoryEnd + 1;
|
||||
|
@ -87,7 +88,7 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
|||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
if (!StackUtil.isValid(newStack)) {
|
||||
if (newStack.isEmpty()) {
|
||||
theSlot.set(ItemStack.EMPTY);
|
||||
} else {
|
||||
theSlot.setChanged();
|
||||
|
@ -104,7 +105,7 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
|||
}
|
||||
|
||||
@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)) {
|
||||
return; //TODO: Check if this is correct, used to return ItemStack.EMPTY
|
||||
} else {
|
||||
|
@ -113,7 +114,7 @@ public class ContainerRangedCollector extends AbstractContainerMenu {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean stillValid(Player player) {
|
||||
public boolean stillValid(@Nonnull Player 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.SlotOutput;
|
||||
import de.ellpeck.actuallyadditions.mod.recipe.CrusherRecipeRegistry;
|
||||
import de.ellpeck.actuallyadditions.mod.tile.TileEntityCrusher;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
@ -62,7 +64,6 @@ public class CrusherContainer extends AbstractContainerMenu {
|
|||
|
||||
@Override
|
||||
public ItemStack quickMoveStack(Player player, int slot) {
|
||||
/*
|
||||
int inventoryStart = this.isDouble
|
||||
? 6
|
||||
: 3;
|
||||
|
@ -79,7 +80,7 @@ public class CrusherContainer extends AbstractContainerMenu {
|
|||
//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 (!this.moveItemStackTo(newStack, inventoryStart, hotbarEnd + 1, true)) {
|
||||
return StackUtil.getEmpty();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
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.isDouble) {
|
||||
if (!this.moveItemStackTo(newStack, TileEntityCrusher.SLOT_INPUT_2, TileEntityCrusher.SLOT_INPUT_2 + 1, false)) {
|
||||
return StackUtil.getEmpty();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
} else {
|
||||
return StackUtil.getEmpty();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -101,30 +102,29 @@ public class CrusherContainer extends AbstractContainerMenu {
|
|||
|
||||
else if (slot >= inventoryStart && slot <= inventoryEnd) {
|
||||
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)) {
|
||||
return StackUtil.getEmpty();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
} else if (!this.moveItemStackTo(newStack, inventoryStart, hotbarEnd + 1, false)) {
|
||||
return StackUtil.getEmpty();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
if (!StackUtil.isValid(newStack)) {
|
||||
theSlot.set(StackUtil.getEmpty());
|
||||
theSlot.set(ItemStack.EMPTY);
|
||||
} else {
|
||||
theSlot.setChanged();
|
||||
}
|
||||
|
||||
if (newStack.getCount() == currentStack.getCount()) {
|
||||
return StackUtil.getEmpty();
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
theSlot.onTake(player, newStack);
|
||||
|
||||
return currentStack;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ public class CrusherScreen extends AAScreen<CrusherContainer> {
|
|||
this.energy.render(guiGraphics, 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);
|
||||
|
||||
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) {
|
||||
int i = this.tileGrinder.getFirstTimeToScale(23);
|
||||
|
|
|
@ -11,19 +11,15 @@
|
|||
package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
||||
|
||||
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 net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.gui.components.AbstractButton;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.api.distmarker.OnlyIn;
|
||||
import net.neoforged.neoforge.network.PacketDistributor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -37,19 +33,19 @@ public class FilterSettingsGui {
|
|||
public Button whitelistButton;
|
||||
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.whitelistButton = Button.builder(Component.literal("WH"), $ -> {
|
||||
theSettings.isWhitelist = !theSettings.isWhitelist;
|
||||
buttonClicked(idOffset);
|
||||
clickConsumer.accept(idOffset);
|
||||
})
|
||||
.bounds(x, y, 16, 12).build();
|
||||
buttonConsumer.accept(this.whitelistButton);
|
||||
y += 14;
|
||||
this.modButton = Button.builder(Component.literal("MO"), $ -> {
|
||||
theSettings.respectMod = !theSettings.respectMod;
|
||||
buttonClicked(idOffset + 1);
|
||||
clickConsumer.accept(idOffset + 1);
|
||||
})
|
||||
.bounds(x, y, 16, 12).build();
|
||||
buttonConsumer.accept(this.modButton);
|
||||
|
@ -57,13 +53,13 @@ public class FilterSettingsGui {
|
|||
this.tick();
|
||||
}
|
||||
|
||||
public void buttonClicked(int id) {
|
||||
/* public void buttonClicked(int id) {
|
||||
CompoundTag data = new CompoundTag();
|
||||
data.putInt("ButtonID", id);
|
||||
data.putInt("PlayerID", Minecraft.getInstance().player.getId());
|
||||
data.putString("WorldID", Minecraft.getInstance().level.dimension().location().toString());
|
||||
PacketDistributor.SERVER.noArg().send(new PacketClientToServer(data, PacketHandler.GUI_BUTTON_TO_CONTAINER_HANDLER));
|
||||
}
|
||||
}*/
|
||||
|
||||
public void tick() {
|
||||
this.whitelistButton.setMessage(Component.literal("WH").withStyle(this.theSettings.isWhitelist
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
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.network.PacketHandlerHelper;
|
||||
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.components.AbstractSliderButton;
|
||||
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
|
||||
import net.minecraft.client.resources.language.I18n;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
|
@ -31,13 +30,15 @@ import java.text.NumberFormat;
|
|||
@OnlyIn(Dist.CLIENT)
|
||||
public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox> {
|
||||
|
||||
private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("gui_firework_box");
|
||||
|
||||
protected final TileEntityFireworkBox tile;
|
||||
|
||||
public GuiFireworkBox(ContainerFireworkBox screenContainer, Inventory inv, Component titleIn) {
|
||||
super(screenContainer, inv, titleIn);
|
||||
this.tile = screenContainer.fireworkbox;
|
||||
this.imageWidth = 300;
|
||||
this.imageHeight = 120;
|
||||
this.imageWidth = 302;
|
||||
this.imageHeight = 130;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -45,30 +46,31 @@ public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox
|
|||
super.init();
|
||||
|
||||
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)));
|
||||
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(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(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(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(this.getGuiLeft(), this.getGuiTop() + 100, Component.literal("Color Amount"), 1, 6, this.tile.colorAmount, intFormatter, (slider) -> PacketHandlerHelper.sendNumberPacket(this.tile, slider.getValue(), 5)));
|
||||
int left = this.getGuiLeft() + 2;
|
||||
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(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(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(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(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(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(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(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(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() + 2, 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() + 23, 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() + 44, 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() + 65, 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() + 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
|
||||
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
|
||||
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
|
||||
|
@ -88,7 +90,7 @@ public class GuiFireworkBox extends AbstractContainerScreen<ContainerFireworkBox
|
|||
protected final CustomSlider.OnApply onApply;
|
||||
private final double stepSize = 0;
|
||||
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.min = min;
|
||||
this.max = max;
|
||||
|
|
|
@ -12,14 +12,19 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
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.util.AssetUtil;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.neoforged.api.distmarker.Dist;
|
||||
import net.neoforged.api.distmarker.OnlyIn;
|
||||
import net.neoforged.neoforge.network.PacketDistributor;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
|
@ -43,14 +48,14 @@ public class GuiRangedCollector extends AAScreen<ContainerRangedCollector> {
|
|||
public void 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
|
||||
public void render(@Nonnull GuiGraphics guiGraphics, int x, int y, float f) {
|
||||
super.render(guiGraphics, x, y, f);
|
||||
|
||||
//this.filter.drawHover(matrices, x, y);
|
||||
this.filter.drawHover(guiGraphics, x, y);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -68,9 +73,16 @@ public class GuiRangedCollector extends AAScreen<ContainerRangedCollector> {
|
|||
|
||||
guiGraphics.blit(RES_LOC, this.leftPos, this.topPos, 0, 0, 176, 86);
|
||||
}
|
||||
|
||||
public void buttonClicked(int id) {
|
||||
CompoundTag data = new CompoundTag();
|
||||
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));
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void actionPerformed(Button button) {
|
||||
// PacketHandlerHelper.sendButtonPacket(this.collector, button.id);
|
||||
// }
|
||||
}
|
||||
|
|
|
@ -12,9 +12,11 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
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.util.AssetUtil;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
|
@ -38,35 +40,43 @@ public class GuiXPSolidifier extends AAScreen<ContainerXPSolidifier> {
|
|||
@Override
|
||||
public void init() {
|
||||
super.init();
|
||||
//
|
||||
// Button buttonOne = new GuiInputter.SmallerButton(this.leftPos + 62, this.topPos + 44, new StringTextComponent("1"), btn -> {
|
||||
// });
|
||||
// Button buttonFive = new GuiInputter.SmallerButton(this.leftPos + 80, this.topPos + 44, new StringTextComponent("5"), btn -> {
|
||||
// });
|
||||
// Button buttonTen = new GuiInputter.SmallerButton(this.leftPos + 99, this.topPos + 44, new StringTextComponent("10"), btn -> {
|
||||
// });
|
||||
// Button buttonTwenty = new GuiInputter.SmallerButton(this.leftPos + 62, this.topPos + 61, new StringTextComponent("20"), btn -> {
|
||||
// });
|
||||
// Button buttonThirty = new GuiInputter.SmallerButton(this.leftPos + 80, this.topPos + 61, new StringTextComponent("30"), btn -> {
|
||||
// });
|
||||
// Button buttonForty = new GuiInputter.SmallerButton(this.leftPos + 99, this.topPos + 61, new StringTextComponent("40"), btn -> {
|
||||
// });
|
||||
// Button buttonFifty = new GuiInputter.SmallerButton(this.leftPos + 62, this.topPos + 78, new StringTextComponent("50"), btn -> {
|
||||
// });
|
||||
// Button buttonSixtyFour = new GuiInputter.SmallerButton(this.leftPos + 80, this.topPos + 78, new StringTextComponent("64"), btn -> {
|
||||
// });
|
||||
// Button buttonAll = new GuiInputter.SmallerButton(this.leftPos + 99, this.topPos + 78, new StringTextComponent("All"), btn -> {
|
||||
// });
|
||||
//
|
||||
// this.addButton(buttonOne);
|
||||
// this.addButton(buttonFive);
|
||||
// this.addButton(buttonTen);
|
||||
// this.addButton(buttonTwenty);
|
||||
// this.addButton(buttonThirty);
|
||||
// this.addButton(buttonForty);
|
||||
// this.addButton(buttonFifty);
|
||||
// this.addButton(buttonSixtyFour);
|
||||
// this.addButton(buttonAll);
|
||||
|
||||
Button buttonOne = this.addRenderableWidget(Button.builder(Component.literal("1"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 0);
|
||||
this.solidifier.onButtonPressed(0, minecraft.player);
|
||||
}).bounds(this.leftPos + 62, this.topPos + 44, 16, 16).build());
|
||||
Button buttonFive = this.addRenderableWidget(Button.builder(Component.literal("5"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 1);
|
||||
this.solidifier.onButtonPressed(1, minecraft.player);
|
||||
}).bounds(this.leftPos + 80, this.topPos + 44, 16, 16).build());
|
||||
Button buttonTen = this.addRenderableWidget(Button.builder(Component.literal("10"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 2);
|
||||
this.solidifier.onButtonPressed(2, minecraft.player);
|
||||
}).bounds(this.leftPos + 99, this.topPos + 44, 16, 16).build());
|
||||
Button buttonTwenty = this.addRenderableWidget(Button.builder(Component.literal("20"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 3);
|
||||
this.solidifier.onButtonPressed(3, minecraft.player);
|
||||
}).bounds(this.leftPos + 62, this.topPos + 61, 16, 16).build());
|
||||
Button buttonThirty = this.addRenderableWidget(Button.builder(Component.literal("30"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 4);
|
||||
this.solidifier.onButtonPressed(4, minecraft.player);
|
||||
}).bounds(this.leftPos + 80, this.topPos + 61, 16, 16).build());
|
||||
Button buttonForty = this.addRenderableWidget(Button.builder(Component.literal("40"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 5);
|
||||
this.solidifier.onButtonPressed(5, minecraft.player);
|
||||
}).bounds(this.leftPos + 99, this.topPos + 61, 16, 16).build());
|
||||
Button buttonFifty = this.addRenderableWidget(Button.builder(Component.literal("50"), btn -> {
|
||||
PacketHandlerHelper.sendButtonPacket(this.solidifier, 6);
|
||||
this.solidifier.onButtonPressed(6, minecraft.player);
|
||||
}).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
|
||||
|
@ -77,13 +87,6 @@ public class GuiXPSolidifier extends AAScreen<ContainerXPSolidifier> {
|
|||
|
||||
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() {
|
||||
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(
|
||||
Component.literal("I")
|
||||
|
|
|
@ -13,10 +13,12 @@ package de.ellpeck.actuallyadditions.mod.jei;
|
|||
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||
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.GuiFurnaceDouble;
|
||||
import de.ellpeck.actuallyadditions.mod.items.ActuallyItems;
|
||||
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.fermenting.FermentingCategory;
|
||||
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<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<CrushingRecipe> CRUSHING = RecipeType.create(ActuallyAdditions.MODID, "crushing", CrushingRecipe.class);
|
||||
|
||||
@Override
|
||||
public void registerCategories(IRecipeCategoryRegistration registry) {
|
||||
|
@ -59,6 +62,7 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
|||
registry.addRecipeCategories(new EmpowererRecipeCategory(helpers.getGuiHelper()));
|
||||
registry.addRecipeCategories(new CoffeeMachineCategory(helpers.getGuiHelper()));
|
||||
registry.addRecipeCategories(new PressingCategory(helpers.getGuiHelper()));
|
||||
registry.addRecipeCategories(new CrusherCategory(helpers.getGuiHelper()));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -70,11 +74,9 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
|||
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.EMPOWERER.getItem()), EMPOWERER);
|
||||
registry.addRecipeCatalyst(new ItemStack(ActuallyBlocks.COFFEE_MACHINE.getItem()), COFFEE_MACHINE);
|
||||
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(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(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(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.CRUSHER_RECIPES, CrusherRecipeCategory.NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -110,12 +114,6 @@ public class JEIActuallyAdditionsPlugin implements IModPlugin {
|
|||
// 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();
|
||||
// blacklist.addIngredientToBlacklist(new ItemStack(ActuallyBlocks.blockRice.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) {
|
||||
if (t instanceof TileEntityCrusher tile) {
|
||||
tile.serverTick();
|
||||
}
|
||||
}
|
||||
|
||||
if (tile.isDouble && tile.isAutoSplit) {
|
||||
TileEntityPoweredFurnace.autoSplit(tile.inv, SLOT_INPUT_1, SLOT_INPUT_2);
|
||||
@Override
|
||||
protected void serverTick() {
|
||||
super.serverTick();
|
||||
if (isDouble && isAutoSplit) {
|
||||
TileEntityPoweredFurnace.autoSplit(inv, SLOT_INPUT_1, SLOT_INPUT_2);
|
||||
}
|
||||
|
||||
boolean crushed = false;
|
||||
|
||||
boolean canCrushOnFirst = canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
||||
boolean canCrushOnSecond = false;
|
||||
if (isDouble) {
|
||||
canCrushOnSecond = canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
||||
}
|
||||
|
||||
boolean shouldPlaySound = false;
|
||||
|
||||
if (canCrushOnFirst) {
|
||||
if (storage.getEnergyStored() >= ENERGY_USE) {
|
||||
if (firstCrushTime % 20 == 0) {
|
||||
shouldPlaySound = true;
|
||||
}
|
||||
firstCrushTime++;
|
||||
if (firstCrushTime >= getMaxCrushTime()) {
|
||||
finishCrushing(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
||||
firstCrushTime = 0;
|
||||
}
|
||||
storage.extractEnergyInternal(ENERGY_USE, false);
|
||||
}
|
||||
crushed = storage.getEnergyStored() >= ENERGY_USE;
|
||||
} else {
|
||||
firstCrushTime = 0;
|
||||
}
|
||||
|
||||
boolean crushed = false;
|
||||
|
||||
boolean canCrushOnFirst = tile.canCrushOn(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
||||
boolean canCrushOnSecond = false;
|
||||
if (tile.isDouble) {
|
||||
canCrushOnSecond = tile.canCrushOn(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
||||
}
|
||||
|
||||
boolean shouldPlaySound = false;
|
||||
|
||||
if (canCrushOnFirst) {
|
||||
if (tile.storage.getEnergyStored() >= ENERGY_USE) {
|
||||
if (tile.firstCrushTime % 20 == 0) {
|
||||
if (isDouble) {
|
||||
if (canCrushOnSecond) {
|
||||
if (storage.getEnergyStored() >= ENERGY_USE) {
|
||||
if (secondCrushTime % 20 == 0) {
|
||||
shouldPlaySound = true;
|
||||
}
|
||||
tile.firstCrushTime++;
|
||||
if (tile.firstCrushTime >= tile.getMaxCrushTime()) {
|
||||
tile.finishCrushing(SLOT_INPUT_1, SLOT_OUTPUT_1_1, SLOT_OUTPUT_1_2);
|
||||
tile.firstCrushTime = 0;
|
||||
secondCrushTime++;
|
||||
if (secondCrushTime >= getMaxCrushTime()) {
|
||||
finishCrushing(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
||||
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 {
|
||||
tile.firstCrushTime = 0;
|
||||
secondCrushTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (tile.isDouble) {
|
||||
if (canCrushOnSecond) {
|
||||
if (tile.storage.getEnergyStored() >= ENERGY_USE) {
|
||||
if (tile.secondCrushTime % 20 == 0) {
|
||||
shouldPlaySound = true;
|
||||
}
|
||||
tile.secondCrushTime++;
|
||||
if (tile.secondCrushTime >= tile.getMaxCrushTime()) {
|
||||
tile.finishCrushing(SLOT_INPUT_2, SLOT_OUTPUT_2_1, SLOT_OUTPUT_2_2);
|
||||
tile.secondCrushTime = 0;
|
||||
}
|
||||
tile.storage.extractEnergyInternal(ENERGY_USE, false);
|
||||
}
|
||||
crushed = tile.storage.getEnergyStored() >= ENERGY_USE;
|
||||
} else {
|
||||
tile.secondCrushTime = 0;
|
||||
}
|
||||
}
|
||||
boolean current = getBlockState().getValue(BlockStateProperties.LIT);
|
||||
boolean changeTo = current;
|
||||
if (lastCrushed != crushed) {
|
||||
changeTo = crushed;
|
||||
}
|
||||
if (isRedstonePowered) {
|
||||
changeTo = true;
|
||||
}
|
||||
if (!crushed && !isRedstonePowered) {
|
||||
changeTo = false;
|
||||
}
|
||||
|
||||
boolean current = state.getValue(BlockStateProperties.LIT);
|
||||
boolean changeTo = current;
|
||||
if (tile.lastCrushed != crushed) {
|
||||
changeTo = crushed;
|
||||
}
|
||||
if (tile.isRedstonePowered) {
|
||||
changeTo = true;
|
||||
}
|
||||
if (!crushed && !tile.isRedstonePowered) {
|
||||
changeTo = false;
|
||||
}
|
||||
if (changeTo != current) {
|
||||
level.setBlockAndUpdate(getBlockPos(), getBlockState().setValue(BlockStateProperties.LIT, changeTo));
|
||||
}
|
||||
|
||||
if (changeTo != current) {
|
||||
level.setBlockAndUpdate(pos, state.setValue(BlockStateProperties.LIT, changeTo));
|
||||
}
|
||||
lastCrushed = crushed;
|
||||
|
||||
tile.lastCrushed = crushed;
|
||||
if ((lastEnergy != storage.getEnergyStored() || lastFirstCrush != firstCrushTime || lastSecondCrush != secondCrushTime || isAutoSplit != lastAutoSplit) && sendUpdateWithInterval()) {
|
||||
lastEnergy = storage.getEnergyStored();
|
||||
lastFirstCrush = firstCrushTime;
|
||||
lastSecondCrush = secondCrushTime;
|
||||
lastAutoSplit = isAutoSplit;
|
||||
}
|
||||
|
||||
if ((tile.lastEnergy != tile.storage.getEnergyStored() || tile.lastFirstCrush != tile.firstCrushTime || tile.lastSecondCrush != tile.secondCrushTime || tile.isAutoSplit != tile.lastAutoSplit) && tile.sendUpdateWithInterval()) {
|
||||
tile.lastEnergy = tile.storage.getEnergyStored();
|
||||
tile.lastFirstCrush = tile.firstCrushTime;
|
||||
tile.lastSecondCrush = tile.secondCrushTime;
|
||||
tile.lastAutoSplit = tile.isAutoSplit;
|
||||
}
|
||||
|
||||
if (shouldPlaySound) {
|
||||
level.playSound(null, pos.getX(), pos.getY(), pos.getZ(), AASounds.CRUSHER.get(), SoundSource.BLOCKS, 0.025F, 1.0F);
|
||||
}
|
||||
if (shouldPlaySound) {
|
||||
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);
|
||||
if (!inputStack.isEmpty()) {
|
||||
Optional<RecipeHolder<CrushingRecipe>> recipeOpt = getRecipeForInput(inputStack);
|
||||
if (!recipeOpt.isPresent()) {
|
||||
if (recipeOpt.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
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) {
|
||||
Optional<RecipeHolder<CrushingRecipe>> recipeOpt = getRecipeForInput(this.inv.getStackInSlot(theInput));
|
||||
if (!recipeOpt.isPresent()) {
|
||||
if (recipeOpt.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
CrushingRecipe recipe = recipeOpt.get().value();
|
||||
|
|
|
@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.tile;
|
|||
|
||||
import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -34,4 +35,9 @@ public class TileEntityCrusherDouble extends TileEntityCrusher {
|
|||
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) {
|
||||
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) {
|
||||
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
|
||||
public Component getDisplayName() {
|
||||
return Component.empty();
|
||||
return Component.translatable("container.actuallyadditions.energizer");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -14,7 +14,6 @@ import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks;
|
|||
import de.ellpeck.actuallyadditions.mod.inventory.ContainerEnervator;
|
||||
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor;
|
||||
import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IRemover;
|
||||
import de.ellpeck.actuallyadditions.mod.util.StackUtil;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
@ -63,7 +62,7 @@ public class TileEntityEnervator extends TileEntityInventoryBase implements ISha
|
|||
if (t instanceof TileEntityEnervator tile) {
|
||||
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()) {
|
||||
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
|
||||
public Component getDisplayName() {
|
||||
return Component.empty();
|
||||
return Component.translatable("container.actuallyadditions.enervator");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -294,7 +294,7 @@ public class TileEntityFireworkBox extends TileEntityBase implements IEnergyDisp
|
|||
|
||||
@Override
|
||||
public Component getDisplayName() {
|
||||
return Component.empty();
|
||||
return Component.translatable("container.actuallyadditions.fireworkBox");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -36,7 +36,6 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
|
|||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.neoforged.neoforge.fluids.FluidStack;
|
||||
import net.neoforged.neoforge.fluids.FluidType;
|
||||
import net.neoforged.neoforge.fluids.IFluidBlock;
|
||||
import net.neoforged.neoforge.fluids.capability.IFluidHandler;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
@ -116,7 +115,7 @@ public class TileEntityFluidCollector extends TileEntityBase implements ISharing
|
|||
Block fluid = stack.getFluid().defaultFluidState().createLegacyBlock().getBlock();
|
||||
if (fluid != null) {
|
||||
BlockPos offsetPos = this.worldPosition.relative(sideToManipulate);
|
||||
boolean placeable = !(blockToBreak instanceof IFluidBlock) && blockToBreak.defaultBlockState().canBeReplaced();
|
||||
boolean placeable = !stateToBreak.getFluidState().isSource() && blockToBreak.defaultBlockState().canBeReplaced();
|
||||
if (placeable) {
|
||||
this.tank.drainInternal(FluidType.BUCKET_VOLUME, IFluidHandler.FluidAction.EXECUTE);
|
||||
// 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.phys.AABB;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -111,17 +112,17 @@ public class TileEntityRangedCollector extends TileEntityInventoryBase implement
|
|||
|
||||
@Override
|
||||
public void onButtonPressed(int buttonID, Player player) {
|
||||
//this.filter.onButtonPressed(buttonID);
|
||||
} //TODO
|
||||
this.filter.onButtonPressed(buttonID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Component getDisplayName() {
|
||||
return Component.empty();
|
||||
return Component.translatable("container.actuallyadditions.rangedCollector");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
if (orbs != null && !orbs.isEmpty()) {
|
||||
for (ExperienceOrb orb : orbs) {
|
||||
// TODO: [port] validate the getPersistentData is correct
|
||||
if (orb != null && orb.isAlive() && !orb.getPersistentData().getBoolean(ActuallyAdditions.MODID + "FromSolidified")) {
|
||||
tile.singlePointAmount += orb.getValue();
|
||||
orb.discard();
|
||||
|
@ -223,7 +222,7 @@ public class TileEntityXPSolidifier extends TileEntityInventoryBase implements I
|
|||
|
||||
@Override
|
||||
public Component getDisplayName() {
|
||||
return Component.empty();
|
||||
return Component.translatable("container.actuallyadditions.experienceSolidifier");
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
@ -2,4 +2,5 @@ public net.minecraft.world.damagesource.DamageSources *() # DamageSources
|
|||
public net.minecraft.world.damagesource.DamageSources damageTypes
|
||||
public-f net.minecraft.data.recipes.RecipeProvider getName()Ljava/lang/String;
|
||||
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.black_quartz_brick_block": "Black Quartz Bricks",
|
||||
"block.actuallyadditions.feeder": "Automatic Feeder (wip)",
|
||||
"block.actuallyadditions.crusher": "Crusher (wip)",
|
||||
"block.actuallyadditions.crusher_double": "Double Crusher (wip)",
|
||||
"block.actuallyadditions.crusher": "Crusher",
|
||||
"block.actuallyadditions.crusher_double": "Double Crusher",
|
||||
"block.actuallyadditions.powered_furnace": "Powered Furnace",
|
||||
"block.actuallyadditions.fishing_net": "Fishing Net (wip)",
|
||||
"block.actuallyadditions.heat_collector": "Heat Collector (wip)",
|
||||
"block.actuallyadditions.item_repairer": "Item Repairer (wip)",
|
||||
"block.actuallyadditions.wood_casing": "Wood Casing (wip)",
|
||||
"block.actuallyadditions.greenhouse_glass": "Greenhouse Glass (wip)",
|
||||
"block.actuallyadditions.energizer": "Energizer (wip)",
|
||||
"block.actuallyadditions.enervator": "Enervator (wip)",
|
||||
"block.actuallyadditions.energizer": "Energizer",
|
||||
"block.actuallyadditions.enervator": "Enervator",
|
||||
"block.actuallyadditions.rice": "Rice Plant",
|
||||
"block.actuallyadditions.coal_generator": "Coal Generator",
|
||||
"block.actuallyadditions.lamp_controller": "Lamp Controller (wip)",
|
||||
|
@ -142,8 +142,8 @@
|
|||
"block.actuallyadditions.phantom_liquiface": "Phantom Liquiface (wip)",
|
||||
"block.actuallyadditions.phantom_placer": "Phantom Placer (wip)",
|
||||
"block.actuallyadditions.phantom_breaker": "Phantom Breaker (wip)",
|
||||
"block.actuallyadditions.lava_factory_controller": "Lava Factory Controller (wip)",
|
||||
"block.actuallyadditions.lava_factory_casing": "Lava Casing (wip)",
|
||||
"block.actuallyadditions.lava_factory_controller": "Lava Factory Controller",
|
||||
"block.actuallyadditions.lava_factory_casing": "Lava Casing",
|
||||
"block.actuallyadditions.fluid_placer": "Fluid Placer",
|
||||
"block.actuallyadditions.fluid_collector": "Fluid Collector",
|
||||
"block.actuallyadditions.phantom_booster": "Phantom Booster (wip)",
|
||||
|
@ -169,10 +169,10 @@
|
|||
"block.actuallyadditions.ender_casing": "Ender Casing",
|
||||
"block.actuallyadditions.flax": "Flax Plant",
|
||||
"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.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_advanced": "Advanced 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.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.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.noOredictNameAvail.desc": "None",
|
||||
"tooltip.actuallyadditions.codeName.desc": "Code Name",
|
||||
|
@ -471,8 +471,8 @@
|
|||
"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.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.off": "Auto-Split Items Off",
|
||||
"info.actuallyadditions.gui.autosplititems.on": "Auto-Split Items On",
|
||||
"info.actuallyadditions.gui.autosplititems.off": "Auto-Split Items Off",
|
||||
"info.actuallyadditions.gui.inbound": "INBOUND",
|
||||
"info.actuallyadditions.gui.outbound": "OUTBOUND",
|
||||
"info.actuallyadditions.gui.coffee": "Coffee",
|
||||
|
@ -585,6 +585,7 @@
|
|||
"container.actuallyadditions.laserRelayFluids": "Fluid Laser Relay",
|
||||
"container.actuallyadditions.distributorItem": "Item Distributor",
|
||||
"container.actuallyadditions.fireworkBox": "Firework Box",
|
||||
"container.actuallyadditions.experienceSolidifier": "Experience Solidifier",
|
||||
"_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.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