forked from MTSR/tech_additions
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
38ba241f0c | |||
168180ea34 | |||
833a9549c8 | |||
![]() |
5988b97950 |
24
airblock.lua
24
airblock.lua
@ -1,7 +1,19 @@
|
||||
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
|
||||
@ -10,12 +22,14 @@ 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 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
|
||||
if replace_allowed[getPos.name] then
|
||||
minetest.set_node(new_pos, {name="tech_additions:air_block"})
|
||||
end
|
||||
end
|
||||
|
2
mod.conf
2
mod.conf
@ -1,6 +1,6 @@
|
||||
name = tech_additions
|
||||
description = Adds some block and recipes.
|
||||
depends = default, techage
|
||||
optional_depends = craft_ingredients
|
||||
optional_depends = bbq, bonemeal, craft_ingredients, ethereal, farming, smartshop
|
||||
min_minetest_version = 5.7
|
||||
title = Tech additions
|
247
sieving.lua
Normal file
247
sieving.lua
Normal file
@ -0,0 +1,247 @@
|
||||
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
|
56
techage.lua
56
techage.lua
@ -64,3 +64,59 @@ 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"})
|
||||
|
||||
--add extra sieving
|
||||
dofile(minetest.get_modpath("tech_additions") .. "/sieving.lua")
|
||||
|
||||
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
|
||||
|
Loading…
x
Reference in New Issue
Block a user