Compare commits

..

2 Commits
lsr ... main

4 changed files with 123 additions and 321 deletions

View File

@ -1,19 +1,7 @@
local S = minetest.get_translator("tech_additions")
local replace_allowed = {}
replace_allowed["air"] = true
replace_allowed["default:water_source"] = true
replace_allowed["default:water_flowing"] = true
replace_allowed["default:river_water_source"] = true
replace_allowed["default:river_water_flowing"] = true
local placeairblock = function ()
return function(itemstack, user, pointed_thing)
local name = user:get_player_name()
if not minetest.is_creative_enabled(name) then
return
end
local pos = user:getpos()
local dir = user:get_look_dir()
local distancefromplayer = 3
@ -22,14 +10,12 @@ local placeairblock = function ()
y = pos.y + 1 + (dir.y * distancefromplayer),
z = pos.z + (dir.z * distancefromplayer),
}
if minetest.is_protected(new_pos, name) then
minetest.record_protection_violation(new_pos, name)
return
end
local getPos = minetest.get_node(new_pos)
if replace_allowed[getPos.name] then
if getPos.name == "air" or
getPos.name == "default:water_source" or
getPos.name == "default:water_flowing" or
getPos.name == "default:river_water_source" or
getPos.name == "default:river_water_flowing" then
minetest.set_node(new_pos, {name="tech_additions:air_block"})
end
end

View File

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

View File

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

View File

@ -62,61 +62,124 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:afualite_cobble', }} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:amphibolite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:andesite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:aplite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:basalt_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:dark_vindesite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:di})ite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:dolomite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:emutite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:gabbro_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:gneiss_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:granite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:green_slimestone_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:hekt})ite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:limestone_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:marble_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:omphyrite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:pegmatite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:peridotite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:phonolite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:phylite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:purple_slimestone_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:quartzite_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:red_slimestone_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:schist_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:sichamine_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:slate_cobble',}} })
minetest.register_craft({
output = 'default:cobble',
recipe = {{ 'underch:vindesite_cobble',}} })
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"})
--add extra sieving
dofile(minetest.get_modpath("tech_additions") .. "/sieving.lua")
techage.add_grinder_recipe({input="underch:afualite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:amphibolite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:andesite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:aplite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:basalt_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:dark_vindesite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:diorite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:dolomite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:emutite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:gabbro_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:gneiss_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:granite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:green_slimestone_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:hektorite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:limestone_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:marble_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:omphyrite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:pegmatite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:peridotite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:phonolite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:phylite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:purple_slimestone_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:quartzite_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:red_slimestone_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:schist_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:sichamine_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:slate_cobble", output="default:gravel"})
techage.add_grinder_recipe({input="underch:vindesite_cobble", output="default:gravel"})
local OwnerCache = {}
local function is_owner(pos, meta)
local owner = meta:get_string("owner")
local key = minetest.hash_node_position(pos)
if OwnerCache[key] ~= owner then
if not minetest.is_protected(pos, owner) then
OwnerCache[key] = owner
end
end
return OwnerCache[key] == owner
end
if smartshop then
techage.register_node(
{
"smartshop:shop",
"smartshop:shop_full",
"smartshop:shop_empty",
"smartshop:shop_used",
"smartshop:storage",
"smartshop:storage_lacks_refill",
"smartshop:storage_has_send"
},
{
on_inv_request = function(pos, in_dir, access_type)
local meta = minetest.get_meta(pos)
if is_owner(pos, meta) then
return meta:get_inventory(), "main"
end
end,
on_pull_item = function(pos, in_dir, num)
local meta = minetest.get_meta(pos)
if is_owner(pos, meta) then
local inv = meta:get_inventory()
return techage.get_items(pos, inv, "main", num)
end
end,
on_push_item = function(pos, in_dir, stack)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
return techage.put_items(inv, "main", stack)
end,
on_unpull_item = function(pos, in_dir, stack)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
return techage.put_items(inv, "main", stack)
end,
}
)
end