dirt sieving

This commit is contained in:
Andrey Stepanov 2024-12-04 23:37:42 +05:00
parent 5988b97950
commit 5ff715f0e6
Signed by: Koldun
GPG Key ID: 53DE683337F5D25F
3 changed files with 228 additions and 2 deletions

View File

@ -1,6 +1,6 @@
name = tech_additions
description = Adds some block and recipes.
depends = default, techage
optional_depends = craft_ingredients
optional_depends = bbq, craft_ingredients, ethereal, farming
min_minetest_version = 5.7
title = Tech additions

223
sieving.lua Normal file
View File

@ -0,0 +1,223 @@
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
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

View File

@ -64,4 +64,7 @@ minetest.register_craft({
techage.add_grinder_recipe({input="multidecor:consolidated_oil", output="techage:plastic_granules"})
techage.add_grinder_recipe({input="ethereal:wild_onion_plant 10", output="dye:white"})
techage.add_grinder_recipe({input="default:ice", output="default:snow 3"})
techage.add_grinder_recipe({input="default:ice", output="default:snow 3"})
--add extra sieving
dofile(minetest.get_modpath("tech_additions") .. "/sieving.lua")