Cristiano Magro
2024-08-27 535e04d542520f58a2db8d4d7a222b73e5c96ef1
commit | author | age
c0a173 1
N 2 local S = technic.getter
3
dd65a6 4 technic.register_recipe_type("compressing", { description = S("Compressing") })
c0a173 5
N 6 function technic.register_compressor_recipe(data)
7     data.time = data.time or 4
8     technic.register_recipe("compressing", data)
9 end
10
98675a 11 -- Defuse the default recipes, since we have
G 12 -- the compressor to take over in a more realistic manner.
13 local crafts_to_clear = {
14     "default:desert_sand",
15     "default:sand",
16     "default:silver_sand",
17 }
18
19 local dependent_crafts_to_clear = {
20     everness = {
21         "everness:coral_sand",
22         "everness:coral_forest_deep_ocean_sand",
23         "everness:coral_white_sand",
24         "everness:crystal_sand",
25         "everness:cursed_sand",
26         "everness:cursed_lands_deep_ocean_sand",
27         "everness:crystal_forest_deep_ocean_sand",
28         "everness:mineral_sand",
29     },
30     nether = {
31         "nether:brick",
32         "nether:brick_compressed",
6731db 33         "nether:rack",
G 34         "nether:rack_deep",
98675a 35     },
G 36 }
37
38 -- Add dependent recipes to main collection of
39 -- recipes to be cleared if their mods are used.
40 for dependency, crafts in pairs(dependent_crafts_to_clear) do
41     if minetest.get_modpath(dependency) then
42         for _, craft_entry in ipairs(crafts) do
43             table.insert(crafts_to_clear, craft_entry)
44         end
45     end
46 end
47
48 -- Clear recipes
49 for _, craft_name in ipairs(crafts_to_clear) do
6731db 50     -- Regular bricks are 2x2 shaped, nether bricks are 3x3 shaped (irregular)
G 51     local is_regular = string.sub(craft_name, 1, 12) ~= "nether:brick"
98675a 52     local shaped_recipe
G 53
54     if is_regular then
55         shaped_recipe = {
56             {craft_name, craft_name},
57             {craft_name, craft_name},
58         }
59     else
60         shaped_recipe = {
61             {craft_name, craft_name, craft_name},
62             {craft_name, craft_name, craft_name},
63             {craft_name, craft_name, craft_name},
64         }
65     end
66
67     minetest.clear_craft({
68         type = "shaped",
69         recipe = shaped_recipe,
70     })
71 end
72
73 --
74 -- Compile compressor recipes
75 --
c0a173 76 local recipes = {
N 77     {"default:snowblock",          "default:ice"},
a8c097 78     {"default:sand 2",             "default:sandstone"},
5b97d9 79     {"default:desert_sand 2",      "default:desert_sandstone"},
D 80     {"default:silver_sand 2",      "default:silver_sandstone"},
c0a173 81     {"default:desert_sand",        "default:desert_stone"},
N 82     {"technic:mixed_metal_ingot",  "technic:composite_plate"},
83     {"default:copper_ingot 5",     "technic:copper_plate"},
84     {"technic:coal_dust 4",        "technic:graphite"},
85     {"technic:carbon_cloth",       "technic:carbon_plate"},
b0faa7 86     {"technic:uranium35_ingot 5",  "technic:uranium_fuel"},
c0a173 87 }
N 88
98675a 89 local dependent_recipes = {
G 90     everness = {
d5ff69 91         {"everness:coral_deep_ocean_sand 2",          "everness:coral_deep_ocean_sandstone_block"},
G 92         {"everness:coral_sand 2",                     "everness:coral_sandstone"},
93         {"everness:coral_white_sand 2",               "everness:coral_white_sandstone"},
94         {"everness:crystal_forest_deep_ocean_sand 2", "everness:crystal_forest_deep_ocean_sandstone_block"},
95         {"everness:crystal_sand 2",                   "everness:crystal_sandstone"},
96         {"everness:cursed_lands_deep_ocean_sand 2",   "everness:cursed_lands_deep_ocean_sandstone_block"},
97         {"everness:cursed_sand 2",                    "everness:cursed_sandstone_block"},
98         {"everness:mineral_sand 2",                   "everness:mineral_sandstone"},
98675a 99     },
G 100     nether = {
101         {"nether:brick 9",                "nether:brick_compressed"},
102         {"nether:brick_compressed 9",    "nether:nether_lump"},
6731db 103         {"nether:rack",                 "nether:brick",},
G 104         {"nether:rack_deep",            "nether:brick_deep"},
98675a 105     },
d5ff69 106 }
G 107
98675a 108 -- Add dependent recipes to main recipe collection
G 109 -- if their mods are used.
110 for dependency, recipes_to_add in pairs(dependent_recipes) do
111     if minetest.get_modpath(dependency) then
112         for _, recipe_entry in ipairs(recipes_to_add) do
113             table.insert(recipes, recipe_entry)
114         end
d5ff69 115     end
G 116 end
117
98675a 118 -- Register compressor recipes
c0a173 119 for _, data in pairs(recipes) do
d55ecc 120     technic.register_compressor_recipe({input = {data[1]}, output = data[2]})
c0a173 121 end