248 lines
11 KiB
Lua
248 lines
11 KiB
Lua
|
local function mod_loaded(name)
|
||
|
return (minetest.get_modpath(name) ~= nil)
|
||
|
end
|
||
|
|
||
|
local sieving_items = {}
|
||
|
sieving_items["default:dirt"] = { "default:sand", }
|
||
|
sieving_items["default:dirt_with_coniferous_litter"] = { "default:sand", }
|
||
|
sieving_items["default:dirt_with_dry_grass"] = { "default:sand", "default:dry_grass_1", }
|
||
|
sieving_items["default:dirt_with_grass"] = { "default:sand", "default:grass_1", }
|
||
|
sieving_items["default:dirt_with_rainforest_litter"] = { "default:sand", }
|
||
|
sieving_items["default:dirt_with_snow"] = { "default:sand", "default:snow" }
|
||
|
sieving_items["default:dry_dirt"] = { "default:deset_sand", }
|
||
|
sieving_items["default:dry_dirt_with_dry_grass"] = { "default:desert_sand", "default:dry_grass_1", }
|
||
|
|
||
|
|
||
|
if mod_loaded("farming") then
|
||
|
-- normal
|
||
|
table.insert(sieving_items["default:dirt"], "farming:seed_wheat")
|
||
|
table.insert(sieving_items["default:dirt"], "farming:seed_cotton")
|
||
|
|
||
|
-- slightly dry and cold
|
||
|
table.insert(sieving_items["default:dirt_with_coniferous_litter"], "farming:seed_wheat")
|
||
|
|
||
|
-- slightly dry
|
||
|
table.insert(sieving_items["default:dirt_with_dry_grass"], "farming:seed_cotton")
|
||
|
|
||
|
-- slightly wet
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "farming:seed_wheat")
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "farming:seed_cotton")
|
||
|
|
||
|
-- wet
|
||
|
table.insert(sieving_items["default:dirt_with_rainforest_litter"], "farming:seed_wheat")
|
||
|
|
||
|
-- cold
|
||
|
table.insert(sieving_items["default:dirt_with_snow"], "farming:seed_wheat")
|
||
|
|
||
|
-- dry
|
||
|
table.insert(sieving_items["default:dry_dirt"], "farming:seed_cotton")
|
||
|
|
||
|
-- dry
|
||
|
table.insert(sieving_items["default:dry_dirt_with_dry_grass"], "farming:seed_cotton")
|
||
|
|
||
|
if farming.mod and farming.mod == "redo" then
|
||
|
table.insert(sieving_items["default:dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["default:dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["default:dirt"], "farming:seed_barley")
|
||
|
table.insert(sieving_items["default:dirt"], "farming:seed_rice")
|
||
|
|
||
|
table.insert(sieving_items["default:dirt_with_coniferous_litter"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["default:dirt_with_coniferous_litter"], "farming:seed_oat")
|
||
|
|
||
|
table.insert(sieving_items["default:dirt_with_dry_grass"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["default:dirt_with_dry_grass"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["default:dirt_with_dry_grass"], "farming:seed_barley")
|
||
|
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "farming:seed_rice")
|
||
|
|
||
|
table.insert(sieving_items["default:dirt_with_rainforest_litter"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["default:dirt_with_rainforest_litter"], "farming:seed_rice")
|
||
|
|
||
|
table.insert(sieving_items["default:dirt_with_snow"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["default:dirt_with_snow"], "farming:seed_oat")
|
||
|
|
||
|
table.insert(sieving_items["default:dry_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["default:dry_dirt"], "farming:seed_barley")
|
||
|
|
||
|
table.insert(sieving_items["default:dry_dirt_with_dry_grass"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["default:dry_dirt_with_dry_grass"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["default:dry_dirt_with_dry_grass"], "farming:seed_barley")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if mod_loaded("ethereal") then
|
||
|
table.insert(sieving_items["default:dirt"], "ethereal:worm")
|
||
|
table.insert(sieving_items["default:dirt_with_coniferous_litter"], "ethereal:worm")
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "ethereal:worm")
|
||
|
table.insert(sieving_items["default:dirt_with_rainforest_litter"], "ethereal:worm")
|
||
|
|
||
|
sieving_items["ethereal:bamboo_dirt"] = {
|
||
|
"default:sand",
|
||
|
"default:grass_1",
|
||
|
"ethereal:worm"
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:cold_dirt"] = {
|
||
|
"default:sand",
|
||
|
"default:grass_1"
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:crystal_dirt"] = {
|
||
|
"default:sand",
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:gray_dirt"] = {
|
||
|
"default:sand",
|
||
|
"ethereal:worm"
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:grove_dirt"] = {
|
||
|
"default:sand",
|
||
|
"default:grass_1",
|
||
|
"ethereal:worm"
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:jungle_dirt"] = {
|
||
|
"default:sand",
|
||
|
"ethereal:worm"
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:mushroom_dirt"] = {
|
||
|
"default:sand",
|
||
|
"ethereal:worm"
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:dry_dirt"] = {
|
||
|
"default:desert_sand",
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:fiery_dirt"] = {
|
||
|
"default:desert_sand",
|
||
|
}
|
||
|
|
||
|
sieving_items["ethereal:prairie_dirt"] = {
|
||
|
"default:sand",
|
||
|
"default:grass_1",
|
||
|
"ethereal:worm"
|
||
|
}
|
||
|
|
||
|
if mod_loaded("farming") then
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "farming:seed_wheat")
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "farming:seed_cotton")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:cold_dirt"], "farming:seed_wheat")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "farming:seed_wheat")
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "farming:seed_cotton")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:grove_dirt"], "farming:seed_wheat")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:jungle_dirt"], "farming:seed_wheat")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:dry_dirt"], "farming:seed_cotton")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "farming:seed_wheat")
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "farming:seed_cotton")
|
||
|
|
||
|
if farming.mod and farming.mod == "redo" then
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "farming:seed_rice")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:cold_dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["ethereal:cold_dirt"], "farming:seed_oat")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:crystal_dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["ethereal:crystal_dirt"], "farming:seed_oat")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "farming:seed_barley")
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "farming:seed_rice")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:grove_dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["ethereal:grove_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["ethereal:grove_dirt"], "farming:seed_barley")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:jungle_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["ethereal:jungle_dirt"], "farming:seed_barley")
|
||
|
table.insert(sieving_items["ethereal:jungle_dirt"], "farming:seed_rice")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:dry_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["ethereal:dry_dirt"], "farming:seed_barley")
|
||
|
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "farming:seed_rye")
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "farming:seed_oat")
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "farming:seed_barley")
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "farming:seed_rice")
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if mod_loaded("bbq") then
|
||
|
table.insert(sieving_items["default:dirt"], "bbq:yeast")
|
||
|
table.insert(sieving_items["default:dirt_with_coniferous_litter"], "bbq:yeast")
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "bbq:yeast")
|
||
|
table.insert(sieving_items["default:dirt_with_rainforest_litter"], "bbq:yeast")
|
||
|
|
||
|
if mod_loaded("ethereal") then
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "bbq:yeast")
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "bbq:yeast")
|
||
|
table.insert(sieving_items["ethereal:grove_dirt"], "bbq:yeast")
|
||
|
table.insert(sieving_items["ethereal:jungle_dirt"], "bbq:yeast")
|
||
|
table.insert(sieving_items["ethereal:mushroom_dirt"], "bbq:yeast")
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "bbq:yeast")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if mod_loaded("bonemeal") then
|
||
|
table.insert(sieving_items["default:dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dirt_with_coniferous_litter"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dirt_with_dry_grass"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dirt_with_grass"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dirt_with_rainforest_litter"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dirt_with_snow"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dry_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["default:dry_dirt_with_dry_grass"], "bonemeal:bone")
|
||
|
|
||
|
if mod_loaded("ethereal") then
|
||
|
table.insert(sieving_items["ethereal:bamboo_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:cold_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:crystal_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:gray_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:grove_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:jungle_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:mushroom_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:dry_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:fiery_dirt"], "bonemeal:bone")
|
||
|
table.insert(sieving_items["ethereal:prairie_dirt"], "bonemeal:bone")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local sieving_items_count = {}
|
||
|
for dirt, items in pairs(sieving_items) do
|
||
|
sieving_items_count[dirt] = #items
|
||
|
end
|
||
|
|
||
|
local function sieve(dirt)
|
||
|
local items = sieving_items[dirt]
|
||
|
if math.random(7) ~= 1 then
|
||
|
return ItemStack(items[1])
|
||
|
else
|
||
|
return ItemStack(
|
||
|
items[
|
||
|
math.random(sieving_items_count[dirt])
|
||
|
]
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local function sieve_dirt(dirt)
|
||
|
return function() return sieve(dirt) end
|
||
|
end
|
||
|
|
||
|
for dirt, _ in pairs(sieving_items) do
|
||
|
techage.register_sieving_recipe(dirt, sieve_dirt(dirt))
|
||
|
end
|