mods that hopefully work for a TechAge-based pack
This commit is contained in:
1 parent
4e6b08d194
commit
c27db2a537
6234 files changed
+375578
No files matched your search
@@ -0,0 +1,255 @@
|
||||
--[[
|
||||
|
||||
TechAge
|
||||
=======
|
||||
|
||||
Copyright (C) 2019-2025 Joachim Stolberg
|
||||
|
||||
AGPL v3
|
||||
See LICENSE.txt for more information
|
||||
|
||||
Meltingpot recipes
|
||||
Bucket redefinitions
|
||||
|
||||
]]--
|
||||
|
||||
local S = techage.S
|
||||
|
||||
--
|
||||
-- New burner recipes
|
||||
--
|
||||
techage.ironage_register_recipe({
|
||||
output = "default:obsidian",
|
||||
recipe = {"default:cobble"},
|
||||
heat = 10,
|
||||
time = 8,
|
||||
})
|
||||
|
||||
techage.ironage_register_recipe({
|
||||
output = "techage:iron_ingot",
|
||||
recipe = {"default:iron_lump"},
|
||||
heat = 5,
|
||||
time = 3,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("techage:iron_ingot", {
|
||||
description = S("TA1 Iron Ingot"),
|
||||
inventory_image = "techage_iron_ingot.png",
|
||||
use_texture_alpha = techage.CLIP,
|
||||
})
|
||||
|
||||
minetest.register_node('techage:iron_block', {
|
||||
description = S('TA1 Iron Block'),
|
||||
tiles = {'techage_iron_block.png'},
|
||||
is_ground_content = false,
|
||||
groups = { cracky = 1 },
|
||||
sounds = default.node_sound_metal_defaults()
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'techage:iron_block 1',
|
||||
recipe = {
|
||||
{'techage:iron_ingot','techage:iron_ingot','techage:iron_ingot'},
|
||||
{'techage:iron_ingot','techage:iron_ingot','techage:iron_ingot'},
|
||||
{'techage:iron_ingot','techage:iron_ingot','techage:iron_ingot'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'techage:iron_ingot 9',
|
||||
recipe = {{'techage:iron_block'}}
|
||||
})
|
||||
|
||||
local function check_protection(pos, name, text)
|
||||
if minetest.is_protected(pos, name) then
|
||||
minetest.log("action", (name ~= "" and name or "A mod")
|
||||
.. " tried to " .. text
|
||||
.. " at protected position "
|
||||
.. minetest.pos_to_string(pos)
|
||||
.. " with a bucket")
|
||||
minetest.record_protection_violation(pos, name)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- derived from bucket/init.lua
|
||||
local function register_liquid(source, flowing, itemname, inventory_image, name,
|
||||
groups, force_renew)
|
||||
bucket.liquids[source] = {
|
||||
source = source,
|
||||
flowing = flowing,
|
||||
itemname = itemname,
|
||||
force_renew = force_renew,
|
||||
}
|
||||
bucket.liquids[flowing] = bucket.liquids[source]
|
||||
|
||||
if itemname ~= nil then
|
||||
minetest.unregister_item(itemname)
|
||||
|
||||
minetest.register_craftitem(":"..itemname, {
|
||||
description = name,
|
||||
inventory_image = inventory_image,
|
||||
stack_max = 1,
|
||||
liquids_pointable = true,
|
||||
groups = groups,
|
||||
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
-- Must be pointing to node
|
||||
if pointed_thing.type ~= "node" then
|
||||
return
|
||||
end
|
||||
|
||||
local node = minetest.get_node_or_nil(pointed_thing.under)
|
||||
local ndef = node and minetest.registered_nodes[node.name]
|
||||
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if ndef and ndef.on_rightclick and
|
||||
not (user and user:is_player() and
|
||||
user:get_player_control().sneak) then
|
||||
return ndef.on_rightclick(
|
||||
pointed_thing.under,
|
||||
node, user,
|
||||
itemstack)
|
||||
end
|
||||
|
||||
local lpos
|
||||
|
||||
-- Check if pointing to a buildable node
|
||||
if ndef and ndef.buildable_to then
|
||||
-- buildable; replace the node
|
||||
lpos = pointed_thing.under
|
||||
else
|
||||
-- not buildable to; place the liquid above
|
||||
-- check if the node above can be replaced
|
||||
|
||||
lpos = pointed_thing.above
|
||||
node = minetest.get_node_or_nil(lpos)
|
||||
local above_ndef = node and minetest.registered_nodes[node.name]
|
||||
|
||||
if not above_ndef or not above_ndef.buildable_to then
|
||||
-- do not remove the bucket with the liquid
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
|
||||
if check_protection(lpos, user
|
||||
and user:get_player_name()
|
||||
or "", "place "..source) then
|
||||
return
|
||||
end
|
||||
|
||||
-------------------------------- Start Modification
|
||||
if techage.disable_lava_above_sea_level then
|
||||
if source == "default:lava_source" and lpos.y > 0 and not minetest.is_singleplayer() then
|
||||
minetest.chat_send_player(user:get_player_name(), S("[Bucket] Lava can only be placed below sea level!"))
|
||||
return
|
||||
else
|
||||
-- see "basis/lib.lua" techage.is_ocean(pos)
|
||||
minetest.set_node(lpos, {name = source, param2 = 1})
|
||||
end
|
||||
else
|
||||
minetest.set_node(lpos, {name = source, param2 = 1})
|
||||
end
|
||||
-------------------------------- End Modification
|
||||
return ItemStack("bucket:bucket_empty")
|
||||
end
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Changed default recipes
|
||||
--
|
||||
if techage.modified_recipes_enabled then
|
||||
minetest.clear_craft({
|
||||
recipe = {
|
||||
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
||||
{"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"},
|
||||
{"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"},
|
||||
}
|
||||
})
|
||||
-- delete cooking iron lumps into steel ingots
|
||||
minetest.clear_craft({
|
||||
type = "cooking",
|
||||
recipe = "default:iron_lump",
|
||||
})
|
||||
minetest.clear_craft({output = "fire:flint_and_steel"})
|
||||
minetest.clear_craft({output = "bucket:bucket_empty"})
|
||||
|
||||
techage.ironage_register_recipe({
|
||||
output = "default:bronze_ingot 4",
|
||||
recipe = {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot", "default:tin_ingot"},
|
||||
heat = 4,
|
||||
time = 8,
|
||||
})
|
||||
|
||||
techage.ironage_register_recipe({
|
||||
output = "default:steel_ingot 4",
|
||||
recipe = {"default:coal_lump", "default:iron_lump", "default:iron_lump", "default:iron_lump"},
|
||||
heat = 7,
|
||||
time = 8,
|
||||
})
|
||||
|
||||
techage.ironage_register_recipe({
|
||||
output = "default:tin_ingot 1",
|
||||
recipe = {"default:tin_lump"},
|
||||
heat = 4,
|
||||
time = 2,
|
||||
})
|
||||
|
||||
if minetest.global_exists("moreores") then
|
||||
techage.ironage_register_recipe({
|
||||
output = "moreores:silver_ingot 1",
|
||||
recipe = {"moreores:silver_lump"},
|
||||
heat = 5,
|
||||
time = 2,
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = "fire:flint_and_steel",
|
||||
recipe = {
|
||||
{"default:flint", "default:iron_lump"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'bucket:bucket_empty 2',
|
||||
recipe = {
|
||||
{'techage:iron_ingot', '', 'techage:iron_ingot'},
|
||||
{'', 'techage:iron_ingot', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.override_item("fire:flint_and_steel", {
|
||||
description = S("Flint and Iron"),
|
||||
inventory_image = "fire_flint_steel.png^[colorize:#c7643d:60",
|
||||
})
|
||||
|
||||
minetest.override_item("bucket:bucket_empty", {
|
||||
inventory_image = "bucket.png^[colorize:#c7643d:40"
|
||||
})
|
||||
minetest.override_item("bucket:bucket_river_water", {
|
||||
inventory_image = "bucket_river_water.png^[colorize:#c7643d:30"
|
||||
})
|
||||
|
||||
register_liquid(
|
||||
"default:water_source",
|
||||
"default:water_flowing",
|
||||
"bucket:bucket_water",
|
||||
"bucket_water.png^[colorize:#c7643d:30",
|
||||
"Water Bucket",
|
||||
{water_bucket = 1}
|
||||
)
|
||||
|
||||
register_liquid(
|
||||
"default:lava_source",
|
||||
"default:lava_flowing",
|
||||
"bucket:bucket_lava",
|
||||
"bucket_lava.png^[colorize:#c7643d:30",
|
||||
"Lava Bucket"
|
||||
)
|
||||
end
|
||||
Reference in new issue
Block a user