This commit is contained in:
Gábriel 2024-04-19 05:22:50 +00:00 committed by GitHub
commit e3332c41d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 80 additions and 39 deletions

View File

@ -8,6 +8,70 @@ function technic.register_compressor_recipe(data)
technic.register_recipe("compressing", data) technic.register_recipe("compressing", data)
end end
-- Defuse the default recipes, since we have
-- the compressor to take over in a more realistic manner.
local crafts_to_clear = {
"default:desert_sand",
"default:sand",
"default:silver_sand",
}
local dependent_crafts_to_clear = {
everness = {
"everness:coral_sand",
"everness:coral_forest_deep_ocean_sand",
"everness:coral_white_sand",
"everness:crystal_sand",
"everness:cursed_sand",
"everness:cursed_lands_deep_ocean_sand",
"everness:crystal_forest_deep_ocean_sand",
"everness:mineral_sand",
},
nether = {
"nether:brick",
"nether:brick_compressed",
},
}
-- Add dependent recipes to main collection of
-- recipes to be cleared if their mods are used.
for dependency, crafts in pairs(dependent_crafts_to_clear) do
if minetest.get_modpath(dependency) then
for _, craft_entry in ipairs(crafts) do
table.insert(crafts_to_clear, craft_entry)
end
end
end
-- Clear recipes
for _, craft_name in ipairs(crafts_to_clear) do
local is_regular = string.sub(craft_name, 1, 7) ~= "nether:"
local shaped_recipe
if is_regular then
-- Regular compression recipes use 2x2 shape.
shaped_recipe = {
{craft_name, craft_name},
{craft_name, craft_name},
}
else
-- Nether's compression recipes use 3x3 shape.
shaped_recipe = {
{craft_name, craft_name, craft_name},
{craft_name, craft_name, craft_name},
{craft_name, craft_name, craft_name},
}
end
minetest.clear_craft({
type = "shaped",
recipe = shaped_recipe,
})
end
--
-- Compile compressor recipes
--
local recipes = { local recipes = {
{"default:snowblock", "default:ice"}, {"default:snowblock", "default:ice"},
{"default:sand 2", "default:sandstone"}, {"default:sand 2", "default:sandstone"},
@ -21,8 +85,8 @@ local recipes = {
{"technic:uranium35_ingot 5", "technic:uranium_fuel"}, {"technic:uranium35_ingot 5", "technic:uranium_fuel"},
} }
if minetest.get_modpath("everness") then local dependent_recipes = {
local everness_sand_to_sandstone_recipes = { everness = {
{"everness:coral_deep_ocean_sand 2", "everness:coral_deep_ocean_sandstone_block"}, {"everness:coral_deep_ocean_sand 2", "everness:coral_deep_ocean_sandstone_block"},
{"everness:coral_sand 2", "everness:coral_sandstone"}, {"everness:coral_sand 2", "everness:coral_sandstone"},
{"everness:coral_white_sand 2", "everness:coral_white_sandstone"}, {"everness:coral_white_sand 2", "everness:coral_white_sandstone"},
@ -31,47 +95,24 @@ if minetest.get_modpath("everness") then
{"everness:cursed_lands_deep_ocean_sand 2", "everness:cursed_lands_deep_ocean_sandstone_block"}, {"everness:cursed_lands_deep_ocean_sand 2", "everness:cursed_lands_deep_ocean_sandstone_block"},
{"everness:cursed_sand 2", "everness:cursed_sandstone_block"}, {"everness:cursed_sand 2", "everness:cursed_sandstone_block"},
{"everness:mineral_sand 2", "everness:mineral_sandstone"}, {"everness:mineral_sand 2", "everness:mineral_sandstone"},
} },
nether = {
for _, data in ipairs(everness_sand_to_sandstone_recipes) do {"nether:brick 9", "nether:brick_compressed"},
table.insert(recipes, {data[1], data[2]}) {"nether:brick_compressed 9", "nether:nether_lump"},
end },
end
-- defuse the default sandstone recipe, since we have the compressor to take over in a more realistic manner
local crafts_to_clear = {
"default:desert_sand",
"default:sand",
"default:silver_sand"
} }
if minetest.get_modpath("everness") then -- Add dependent recipes to main recipe collection
local everness_crafts_to_clear = { -- if their mods are used.
"everness:coral_sand", for dependency, recipes_to_add in pairs(dependent_recipes) do
"everness:coral_forest_deep_ocean_sand", if minetest.get_modpath(dependency) then
"everness:coral_white_sand", for _, recipe_entry in ipairs(recipes_to_add) do
"everness:crystal_sand", table.insert(recipes, recipe_entry)
"everness:cursed_sand", end
"everness:cursed_lands_deep_ocean_sand",
"everness:crystal_forest_deep_ocean_sand",
"everness:mineral_sand",
}
for _, sand_name in ipairs(everness_crafts_to_clear) do
table.insert(crafts_to_clear, sand_name)
end end
end end
for _, sand_name in ipairs(crafts_to_clear) do -- Register compressor recipes
minetest.clear_craft({
type = "shaped",
recipe = {
{sand_name, sand_name},
{sand_name, sand_name},
},
})
end
for _, data in pairs(recipes) do for _, data in pairs(recipes) do
technic.register_compressor_recipe({input = {data[1]}, output = data[2]}) technic.register_compressor_recipe({input = {data[1]}, output = data[2]})
end end

View File

@ -1,3 +1,3 @@
name = technic name = technic
depends = default, pipeworks, technic_worldgen, basic_materials depends = default, pipeworks, technic_worldgen, basic_materials
optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye, craftguide, i3, everness optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye, craftguide, i3, everness, nether