Compare commits

...

10 Commits

Author SHA1 Message Date
tenplus1
da1d09da5d add translation support 2024-12-18 11:25:25 +00:00
tenplus1
77dcda83e3 tweak and tidy code 2024-08-14 11:02:06 +01:00
tenplus1
8569eabd0c 5.x 2023-08-08 15:29:33 +01:00
tenplus1
8e57c4bc2d update license.txt 2022-11-28 09:05:51 +00:00
tenplus1
7712f72cb2 update license.txt 2022-11-26 08:54:17 +00:00
tenplus1
b759c733c2 coal can be used to make iron/charcoal mix, added recipes to de-rust corner stairs 2022-09-30 08:51:33 +01:00
tenplus1
f7cc7bb4ed code tidy 2021-04-20 10:46:04 +01:00
tenplus1
9b0572ce6c update mod.conf info 2021-01-21 10:33:15 +00:00
TenPlus1
497a63d27b fix tool groups 2019-06-03 10:09:53 +01:00
TenPlus1
43b8b7d6eb add tool groups 2019-06-03 08:43:38 +01:00
9 changed files with 199 additions and 142 deletions

View File

@ -8,11 +8,11 @@ This mod exists to add a little progression to the game so that steel isn't so e
- Iron Ingots can be made by smelting Iron Ore in a furnace
- Charcoal can be made by cooking Tree's in a furnace
- 1x Iron Ingot and 3x Charcoal create a mix that is smelted into 1x Steel Ingot
- 1x Iron Ingot and 4x Charcoal/Coal create a mix that can be smelted into 1x Steel Ingot
- Iron Ingots can be made into blocks which can be used to make stairs
- Iron blocks and stairs can rust when near water, cook in furnace to remove rust
- A bucket of water surrounded by Iron Blocks returns 8x Rusted Iron Blocks
- Added Iron tools which is better than stone but worse than steel/bronze
- Added Iron tools which is better than stone but worse than steel and bronze
- Switched Bronze and Steel tool strength since steel is stronger in real life
Lucky Blocks: 8
@ -23,4 +23,6 @@ Changelog:
- 0.2 - Added Iron Pickaxe
- 0.3 - Add Iron Axe, Shovel, Sword, Hoe and more lucky blocks
- 0.4 - Switch Bronze and Steel tool capabilities (Steel is stronger irl)
- 0.5 - Add Toolranks support for iron tools
- 0.5 - Add Toolranks support for iron tools, add tool groups
- 0.6 - Coal lumps can also be used to make iron/charcoal mix
- 0.7 - Added recipes to de-rust inner/outer rusted iron stairs

View File

@ -1,5 +0,0 @@
default
stairs?
farming?
lucky_block?
toolranks?

View File

@ -1 +0,0 @@
Adds pig iron ingots which need to be crafted to make steel, also blocks and stairs.

112
init.lua
View File

@ -1,9 +1,13 @@
-- Translation support
local S = minetest.get_translator("pigiron")
-- Pig Iron Ingot
minetest.register_craftitem("pigiron:iron_ingot", {
description = "Iron Ingot",
inventory_image = "pigiron_iron_ingot.png",
description = S("Iron Ingot"),
inventory_image = "pigiron_iron_ingot.png"
})
-- Remove Iron Lump -> Steel Ingot Recipe
@ -18,17 +22,17 @@ minetest.clear_craft({
minetest.register_craft({
type = "cooking",
output = "pigiron:iron_ingot",
recipe = "default:iron_lump",
recipe = "default:iron_lump"
})
-- Pig Iron Block
minetest.register_node("pigiron:iron_block", {
description = "Iron Block",
description = S("Iron Block"),
tiles = {"pigiron_iron_block.png"},
is_ground_content = false,
groups = {cracky = 1},
sounds = default.node_sound_metal_defaults(),
sounds = default.node_sound_metal_defaults()
})
minetest.register_craft({
@ -36,24 +40,23 @@ minetest.register_craft({
recipe = {
{"pigiron:iron_ingot", "pigiron:iron_ingot", "pigiron:iron_ingot"},
{"pigiron:iron_ingot", "pigiron:iron_ingot", "pigiron:iron_ingot"},
{"pigiron:iron_ingot", "pigiron:iron_ingot", "pigiron:iron_ingot"},
{"pigiron:iron_ingot", "pigiron:iron_ingot", "pigiron:iron_ingot"}
}
})
minetest.register_craft({
output = "pigiron:iron_ingot 9",
type = "shapeless",
recipe = {"pigiron:iron_block"}
recipe = {{"pigiron:iron_block"}}
})
-- Rusted Pig Iron Block
minetest.register_node("pigiron:rusted_iron_block", {
description = "Rusted Iron Block",
description = S("Rusted Iron Block"),
tiles = {"pigiron_rusted_iron_block.png"},
is_ground_content = false,
groups = {cracky = 1},
sounds = default.node_sound_metal_defaults(),
sounds = default.node_sound_metal_defaults()
})
minetest.register_craft({
@ -61,7 +64,7 @@ minetest.register_craft({
recipe = {
{"pigiron:iron_block", "pigiron:iron_block", "pigiron:iron_block"},
{"pigiron:iron_block", "bucket:bucket_water", "pigiron:iron_block"},
{"pigiron:iron_block", "pigiron:iron_block", "pigiron:iron_block"},
{"pigiron:iron_block", "pigiron:iron_block", "pigiron:iron_block"}
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"}
@ -83,8 +86,8 @@ if not minetest.get_modpath("ethereal") then
-- Charcoal
minetest.register_craftitem("pigiron:charcoal_lump", {
description = "Lump of Charcoal",
inventory_image = "pigiron_charcoal_lump.png",
description = S("Lump of Charcoal"),
inventory_image = "pigiron_charcoal_lump.png"
})
-- Tree -> Charcoal Recipe
@ -101,7 +104,7 @@ if not minetest.get_modpath("ethereal") then
minetest.register_craft({
type = "fuel",
recipe = "pigiron:charcoal_lump",
burntime = 10,
burntime = 10
})
-- Charcoal Torch Recipe
@ -110,7 +113,7 @@ if not minetest.get_modpath("ethereal") then
output = "default:torch 4",
recipe = {
{"pigiron:charcoal_lump"},
{"group:stick"},
{"group:stick"}
}
})
@ -121,19 +124,28 @@ else
end -- END If Ethereal
-- Iron/Charcoal Mix
-- Iron/Charcoal/Coal Mix
minetest.register_craftitem("pigiron:iron_charcoal_mix", {
description = "Iron and Charcoal Mix",
inventory_image = "pigiron_iron_ingot.png^pigiron_charcoal_lump.png",
description = S("Iron and Charcoal Mix"),
inventory_image = "pigiron_iron_ingot.png^pigiron_charcoal_lump.png"
})
minetest.register_craft({
output = "pigiron:iron_charcoal_mix",
type = "shapeless",
recipe = {
"pigiron:iron_ingot", "pigiron:charcoal_lump",
"pigiron:charcoal_lump", "pigiron:charcoal_lump"
{"", "pigiron:charcoal_lump", ""},
{"pigiron:charcoal_lump", "pigiron:iron_ingot", "pigiron:charcoal_lump"},
{"", "pigiron:charcoal_lump", ""}
}
})
minetest.register_craft({
output = "pigiron:iron_charcoal_mix",
recipe = {
{"", "default:coal_lump", ""},
{"default:coal_lump", "pigiron:iron_ingot", "default:coal_lump"},
{"", "default:coal_lump", ""}
}
})
@ -151,24 +163,41 @@ minetest.register_craft({
minetest.register_abm({
label = "Rust Iron Block",
nodenames = {
"pigiron:iron_block", "stairs:slab_iron_block",
"stairs:stair_iron_block"
"pigiron:iron_block",
"stairs:slab_iron_block",
"stairs:stair_iron_block",
"stairs:stair_inner_iron_block",
"stairs:stair_outer_iron_block"
},
neighbors = {"group:water"},
interval = 20,
chance = 300,
catch_up = false,
action = function(pos, node)
if node.name == "pigiron:iron_block" then
minetest.set_node(pos, {name = "pigiron:rusted_iron_block"})
minetest.swap_node(pos, {name = "pigiron:rusted_iron_block"})
elseif node.name == "stairs:slab_iron_block" then
minetest.set_node(pos, {name = "stairs:slab_rusted_iron_block",
minetest.swap_node(pos, {name = "stairs:slab_rusted_iron_block",
param2 = node.param2})
elseif node.name == "stairs:stair_iron_block" then
minetest.set_node(pos, {name = "stairs:stair_rusted_iron_block",
minetest.swap_node(pos, {name = "stairs:stair_rusted_iron_block",
param2 = node.param2})
elseif node.name == "stairs:stair_inner_iron_block" then
minetest.swap_node(pos, {name = "stairs:stair_inner_rusted_iron_block",
param2 = node.param2})
elseif node.name == "stairs:stair_outer_iron_block" then
minetest.swap_node(pos, {name = "stairs:stair_outer_rusted_iron_block",
param2 = node.param2})
end
end
@ -179,7 +208,10 @@ minetest.register_abm({
local path = minetest.get_modpath("pigiron")
dofile(path .. "/tools.lua")
dofile(path .. "/lucky_block.lua")
if minetest.get_modpath("lucky_block") then
dofile(path .. "/lucky_block.lua")
end
-- Change Xpanes Iron Bar Recipe to use Iron Ingots
@ -187,9 +219,7 @@ if minetest.get_modpath("xpanes")
and minetest.registered_nodes["xpanes:bar_flat"]
and not minetest.registered_nodes["default:permafrost"] then
minetest.clear_craft({
output = "xpanes:bar_flat"
})
minetest.clear_craft({output = "xpanes:bar_flat"})
minetest.register_craft({
output = "xpanes:bar_flat",
@ -207,15 +237,15 @@ if minetest.get_modpath("stairs") then
stairs.register_stair_and_slab("iron_block", "pigiron:iron_block",
{cracky = 1},
{"pigiron_iron_block.png"},
"Iron Block Stair",
"Iron Block Slab",
S("Iron Block Stair"),
S("Iron Block Slab"),
default.node_sound_metal_defaults())
stairs.register_stair_and_slab("rusted_iron_block", "pigiron:rusted_iron_block",
{cracky = 1},
{"pigiron_rusted_iron_block.png"},
"Rusted Iron Block Stair",
"Rusted Iron Block Slab",
S("Rusted Iron Block Stair"),
S("Rusted Iron Block Slab"),
default.node_sound_metal_defaults())
-- Cook Rusted Iron Stairs and Slabs Back Into Normal Iron Stairs
@ -232,6 +262,20 @@ if minetest.get_modpath("stairs") then
recipe = "stairs:slab_rusted_iron_block",
cooktime = 5
})
minetest.register_craft({
output = "stairs:stair_outer_iron_block",
type = "cooking",
recipe = "stairs:stair_outer_rusted_iron_block",
cooktime = 5
})
minetest.register_craft({
output = "stairs:stair_inner_iron_block",
type = "cooking",
recipe = "stairs:stair_inner_rusted_iron_block",
cooktime = 5
})
end
print("[MOD] Pig Iron loaded")

View File

@ -20,4 +20,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
All textures are CC-BY-SA 3.0
Textures by BlockMen under Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)

16
locale/template.txt Normal file
View File

@ -0,0 +1,16 @@
# textdomain: pigiron
Iron Ingot=
Iron Block=
Iron Block Stair=
Iron Block Slab=
Rusted Iron Block=
Lump of Charcoal=
Iron and Charcoal Mix=
Rusted Iron Block Stair=
Rusted Iron Block Slab=
Iron Shovel=
Iron Axe=
Iron Sword=
Iron Pickaxe=
Iron Hoe=

View File

@ -1,25 +1,25 @@
-- Add Lucky Blocks if mod found
-- add lucky blocks
if minetest.get_modpath("lucky_block") then
lucky_block:add_blocks({
{"dro", {"pigiron:iron_ingots"}, 10},
{"nod", "pigiron:iron_block", 0},
{"nod", "pigiron:rusted_iron_block", 0},
{"tro", "pigiron:iron_block", nil, true},
{"dro", {"pigiron:charcoal_lump"}, 10},
{"dro", {"pigiron:sword_iron", "pigiron:axe_iron",
"pigiron:pickaxe_iron", "pigiron:shovel_iron"}, 1},
{"fal", {"pigiron:iron_block", "pigiron:rusted_iron_block",
"pigiron:iron_block", "pigiron:rusted_iron_block",
"pigiron:iron_block", "pigiron:rusted_iron_block"}
}
})
-- add iron hoe
if minetest.get_modpath("farming") then
lucky_block:add_blocks({
{"dro", {"pigiron:iron_ingots"}, 10},
{"nod", "pigiron:iron_block", 0},
{"nod", "pigiron:rusted_iron_block", 0},
{"tro", "pigiron:iron_block", nil, true},
{"dro", {"pigiron:charcoal_lump"}, 10},
{"dro", {"pigiron:sword_iron", "pigiron:axe_iron",
"pigiron:pickaxe_iron", "pigiron:shovel_iron"}, 1},
{"fal", {"pigiron:iron_block", "pigiron:rusted_iron_block",
"pigiron:iron_block", "pigiron:rusted_iron_block",
"pigiron:iron_block", "pigiron:rusted_iron_block"}},
{"dro", {"pigiron:hoe_iron"}, 1}
})
if minetest.get_modpath("farming") then
lucky_block:add_blocks({
{"dro", {"pigiron:hoe_iron"}, 1},
})
end
end

View File

@ -1 +1,5 @@
name = pigiron
name = pigiron
description = Adds pig iron ingots which need to be crafted to make steel, also blocks and stairs.
depends = default
optional_depends = stairs, farming, lucky_block, toolranks
min_minetest_version = 5.0

153
tools.lua
View File

@ -1,21 +1,25 @@
-- Translation support
local S = minetest.get_translator("pigiron")
-- Iron Pickaxe
minetest.register_tool("pigiron:pick_iron", {
description = "Iron Pickaxe",
description = S("Iron Pickaxe"),
inventory_image = "pigiron_iron_pick.png",
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level = 1,
groupcaps = {
cracky = {
times = {[1] = 2.5, [2] = 1.40, [3] = 0.95},
uses = 20, maxlevel = 2
},
times = {[1] = 2.5, [2] = 1.40, [3] = 0.95}, uses = 20, maxlevel = 2
}
},
damage_groups = {fleshy = 3},
damage_groups = {fleshy = 3}
},
sound = {breaks = "default_tool_breaks"},
groups = {pickaxe = 1},
sound = {breaks = "default_tool_breaks"}
})
minetest.register_craft({
@ -23,14 +27,14 @@ minetest.register_craft({
recipe = {
{"pigiron:iron_ingot", "pigiron:iron_ingot", "pigiron:iron_ingot"},
{"", "group:stick", ""},
{"", "group:stick", ""},
{"", "group:stick", ""}
}
})
-- Iron Shovel
minetest.register_tool("pigiron:shovel_iron", {
description = "Iron Shovel",
description = S("Iron Shovel"),
inventory_image = "pigiron_iron_shovel.png",
wield_image = "pigiron_iron_shovel.png^[transformR90",
tool_capabilities = {
@ -38,13 +42,13 @@ minetest.register_tool("pigiron:shovel_iron", {
max_drop_level = 1,
groupcaps = {
crumbly = {
times = {[1] = 1.70, [2] = 1.0, [3] = 0.45},
uses = 25, maxlevel = 1
},
times = {[1] = 1.70, [2] = 1.0, [3] = 0.45}, uses = 25, maxlevel = 1
}
},
damage_groups = {fleshy = 2},
damage_groups = {fleshy = 2}
},
sound = {breaks = "default_tool_breaks"},
groups = {shovel = 1},
sound = {breaks = "default_tool_breaks"}
})
minetest.register_craft({
@ -52,27 +56,27 @@ minetest.register_craft({
recipe = {
{"pigiron:iron_ingot"},
{"group:stick"},
{"group:stick"},
{"group:stick"}
}
})
-- Iron Axe
minetest.register_tool("pigiron:axe_iron", {
description = "Iron Axe",
description = S("Iron Axe"),
inventory_image = "pigiron_iron_axe.png",
tool_capabilities = {
full_punch_interval = 1.1,
max_drop_level = 1,
groupcaps = {
choppy = {
times = {[1] = 2.70, [2] = 1.70, [3] = 1.15},
uses = 20, maxlevel = 1
},
times = {[1] = 2.70, [2] = 1.70, [3] = 1.15}, uses = 20, maxlevel = 1
}
},
damage_groups = {fleshy = 3},
damage_groups = {fleshy = 3}
},
sound = {breaks = "default_tool_breaks"},
groups = {axe = 1},
sound = {breaks = "default_tool_breaks"}
})
minetest.register_craft({
@ -80,27 +84,27 @@ minetest.register_craft({
recipe = {
{"pigiron:iron_ingot", "pigiron:iron_ingot"},
{"pigiron:iron_ingot", "group:stick"},
{"", "group:stick"},
{"", "group:stick"}
}
})
-- Iron Sword
minetest.register_tool("pigiron:sword_iron", {
description = "Iron Sword",
description = S("Iron Sword"),
inventory_image = "pigiron_iron_sword.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level = 1,
groupcaps = {
snappy = {
times = {[1] = 2.0, [2] = 1.30, [3] = 0.38},
uses = 25, maxlevel = 1
},
times = {[1] = 2.0, [2] = 1.30, [3] = 0.38}, uses = 25, maxlevel = 1
}
},
damage_groups = {fleshy = 5},
damage_groups = {fleshy = 5}
},
sound = {breaks = "default_tool_breaks"},
groups = {sword = 1},
sound = {breaks = "default_tool_breaks"}
})
minetest.register_craft({
@ -108,7 +112,7 @@ minetest.register_craft({
recipe = {
{"pigiron:iron_ingot"},
{"pigiron:iron_ingot"},
{"group:stick"},
{"group:stick"}
}
})
@ -117,18 +121,19 @@ minetest.register_craft({
if minetest.get_modpath("farming") then
farming.register_hoe(":farming:hoe_iron", {
description = "Iron Hoe",
description = S("Iron Hoe"),
inventory_image = "pigiron_iron_hoe.png",
max_uses = 150,
material = "pigiron:iron_ingot"
material = "pigiron:iron_ingot",
groups = {hoe = 1, flammable = 2},
})
-- Toolranks support if farming redo active
if farming and farming.mod
and minetest.get_modpath("toolranks") then
if farming and farming.mod and minetest.get_modpath("toolranks") then
minetest.override_item("farming:hoe_iron", {
original_description = "Iron Hoe",
description = toolranks.create_description("Iron Hoe")})
original_description = S("Iron Hoe"),
description = toolranks.create_description(S("Iron Hoe"))})
end
end
@ -141,12 +146,11 @@ minetest.override_item("default:pick_steel", {
max_drop_level = 1,
groupcaps = {
cracky = {
times = {[1] = 4.50, [2] = 1.80, [3] = 0.90},
uses = 20, maxlevel = 2
},
times = {[1] = 4.50, [2] = 1.80, [3] = 0.90}, uses = 20, maxlevel = 2
}
},
damage_groups = {fleshy = 4},
},
damage_groups = {fleshy = 4}
}
})
minetest.override_item("default:pick_bronze", {
@ -155,12 +159,11 @@ minetest.override_item("default:pick_bronze", {
max_drop_level = 1,
groupcaps = {
cracky = {
times = {[1] = 4.00, [2] = 1.60, [3] = 0.80},
uses = 20, maxlevel = 2
},
times = {[1] = 4.00, [2] = 1.60, [3] = 0.80}, uses = 20, maxlevel = 2
}
},
damage_groups = {fleshy = 4},
},
damage_groups = {fleshy = 4}
}
})
minetest.override_item("default:shovel_steel", {
@ -169,12 +172,11 @@ minetest.override_item("default:shovel_steel", {
max_drop_level = 1,
groupcaps = {
crumbly = {
times = {[1] = 1.65, [2] = 1.05, [3] = 0.45},
uses = 25, maxlevel = 2
},
times = {[1] = 1.65, [2] = 1.05, [3] = 0.45}, uses = 25, maxlevel = 2
}
},
damage_groups = {fleshy = 3},
},
damage_groups = {fleshy = 3}
}
})
minetest.override_item("default:shovel_bronze", {
@ -183,12 +185,11 @@ minetest.override_item("default:shovel_bronze", {
max_drop_level = 1,
groupcaps = {
crumbly = {
times = {[1] = 1.50, [2] = 0.90, [3] = 0.40},
uses = 30, maxlevel = 2
},
times = {[1] = 1.50, [2] = 0.90, [3] = 0.40}, uses = 30, maxlevel = 2
}
},
damage_groups = {fleshy = 3},
},
damage_groups = {fleshy = 3}
}
})
minetest.override_item("default:axe_steel", {
@ -197,12 +198,11 @@ minetest.override_item("default:axe_steel", {
max_drop_level = 1,
groupcaps = {
choppy = {
times = {[1] = 2.75, [2] = 1.70, [3] = 1.15},
uses = 20, maxlevel = 2
},
times = {[1] = 2.75, [2] = 1.70, [3] = 1.15}, uses = 20, maxlevel = 2
}
},
damage_groups = {fleshy = 4},
},
damage_groups = {fleshy = 4}
}
})
minetest.override_item("default:axe_bronze", {
@ -211,12 +211,11 @@ minetest.override_item("default:axe_bronze", {
max_drop_level = 1,
groupcaps = {
choppy = {
times = {[1] = 2.50, [2] = 1.40, [3] = 1.00},
uses = 20, maxlevel = 2
},
times = {[1] = 2.50, [2] = 1.40, [3] = 1.00}, uses = 20, maxlevel = 2
}
},
damage_groups = {fleshy = 4},
},
damage_groups = {fleshy = 4}
}
})
minetest.override_item("default:sword_steel", {
@ -225,12 +224,11 @@ minetest.override_item("default:sword_steel", {
max_drop_level = 1,
groupcaps = {
snappy = {
times = {[1] = 2.75, [2] = 1.30, [3] = 0.375},
uses = 25, maxlevel = 2
},
times = {[1] = 2.75, [2] = 1.30, [3] = 0.375}, uses = 25, maxlevel = 2
}
},
damage_groups = {fleshy = 6},
},
damage_groups = {fleshy = 6}
}
})
minetest.override_item("default:sword_bronze", {
@ -239,12 +237,11 @@ minetest.override_item("default:sword_bronze", {
max_drop_level = 1,
groupcaps = {
snappy = {
times = {[1] = 2.5, [2] = 1.20, [3] = 0.35},
uses = 30, maxlevel = 2
},
times = {[1] = 2.5, [2] = 1.20, [3] = 0.35}, uses = 30, maxlevel = 2
}
},
damage_groups = {fleshy = 6},
},
damage_groups = {fleshy = 6}
}
})
-- Add [toolranks] mod support if found
@ -260,8 +257,8 @@ if minetest.get_modpath("toolranks") then
})
end
add_tool("pigiron:pick_iron", "Iron Pickaxe", true)
add_tool("pigiron:axe_iron", "Iron Axe", true)
add_tool("pigiron:shovel_iron", "Iron Shovel", true)
add_tool("pigiron:sword_iron", "Iron Sword", true)
add_tool("pigiron:pick_iron", S("Iron Pickaxe"), true)
add_tool("pigiron:axe_iron", S("Iron Axe"), true)
add_tool("pigiron:shovel_iron", S("Iron Shovel"), true)
add_tool("pigiron:sword_iron", S("Iron Sword"), true)
end