Add mods: technic, moreores, paintings, Nyancat (Pbj_pup). Small fix: sandwiches

This commit is contained in:
N-Nachtigal 2025-06-05 16:15:56 +02:00
parent 15e8e696a2
commit fb09deddc1
1404 changed files with 156555 additions and 211 deletions

View file

@ -0,0 +1,13 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.{lua,luacheckrc}]
indent_style = tab
indent_size = 4

View file

@ -0,0 +1,22 @@
name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- run: |
sudo apt-get update -qq
sudo apt-get install -qqq luarocks
- name: Install LuaCheck and pre-commit
run: |
pip3 install pre-commit
luarocks install --local luacheck
- name: Run LuaCheck using pre-commit
run: |
export PATH="$HOME/.luarocks/bin:$PATH"
pre-commit run --all-files

3
mods/moreores/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
## Generic ignorable patterns and files
*~
debug.txt

34
mods/moreores/.luacheckrc Normal file
View file

@ -0,0 +1,34 @@
std = "lua51+minetest"
unused_args = false
allow_defined_top = true
max_line_length = 90
stds.minetest = {
read_globals = {
"DIR_DELIM",
"minetest",
"core",
"dump",
"vector",
"nodeupdate",
"VoxelManip",
"VoxelArea",
"PseudoRandom",
"ItemStack",
"default",
table = {
fields = {
"copy",
},
},
}
}
read_globals = {
"carts",
"farming",
"frame",
"mg",
"toolranks",
"mcl_sounds"
}

View file

@ -0,0 +1,15 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: fix-byte-order-marker
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
args: [--fix=lf]
- repo: https://github.com/Calinou/pre-commit-luacheck
rev: v1.0.0
hooks:
- id: luacheck

View file

@ -0,0 +1,86 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Changed
- [Tweaked ore generation to better fit Minetest's new defaults.](https://github.com/minetest-mods/moreores/pull/45)
- Three layers (two underground and one high air/space) are now used instead of just one layer.
- Chunk size is no longer used as clust size anymore. Clust sizes are usually
just 3 nodes and not the whole area ("chunk"), where the ores are generated.
- Adjusted several default values.
- Mithril is now generated *below* diamond. Note that there was a change
in Minetest 5.0.0 where most ore generation was shifted to much lower
altitude (shifting diamond generation altitude below mithril generation altitude).
- The mithril ores are now also grouped together and not just found as a
single node in one chunk.
- The same overall ore density is retained in the deep layer.
- Switch to GitHub Actions.
- Benefits include faster responses, easier management, and more.
## [2.1.0] - 2021-06-28
### Added
- More Ores tools now have [`toolranks`](https://github.com/lisacvuk/minetest-toolranks) support.
- Hungarian translation.
### Changed
- Migrated translations to the
[Minetest translation file format](https://rubenwardy.com/minetest_modding_book/lua_api.html#translation-file-format).
## [2.0.0] - 2019-11-25
### Added
- More Ores nodes/items/tools can now be placed in item frames
from the [`frame`](https://github.com/minetest-mods/frame) mod.
- Polish translation.
### Changed
- The minimum supported Minetest version is now 5.0.0.
- Copper rails are now registered using functions from the `carts` mod,
making them interoperate seamlessly with default rails.
- Copper rails can no longer be placed in the air.
## [1.1.0] - 2019-03-23
### Added
- Brazilian and Dutch translations.
### Changed
- Ores are now slower to mine and cannot be mined using wooden tools anymore.
- Updated intllib support to avoid using deprecated functions.
### Deprecated
- Deprecated hoes to follow Minetest Game's deprecation of hoes
made of "rare" materials.
- Hoes are still available in existing worlds, but they
cannot be crafted anymore.
### Fixed
- Hoes now use the `farming` mod's handling function and can no longer
turn desert sand into dirt.
- Handle tin which is now included in [Minetest Game](https://github.com/minetest/minetest_game).
If it is detected, then the tin nodes and items from More Ores won't be registered.
## 1.0.0 - 2017-02-19
- Initial versioned release.
[Unreleased]: https://github.com/minetest-mods/moreores/compare/v2.1.0...HEAD
[2.1.0]: https://github.com/minetest-mods/moreores/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/minetest-mods/moreores/compare/v1.1.0...v2.0.0
[1.1.0]: https://github.com/minetest-mods/moreores/compare/v1.0.0...v1.1.0

View file

@ -0,0 +1,10 @@
# Contributing to More Ores
Thank you for your interest in More Ores! Before contributing,
be sure to know about these few guidelines:
- Contributions have to be licensed under the zlib license (or compatible)
for code, and CC BY-SA 3.0 (or compatible) for assets.
- Make sure to update the changelog, keeping the
[changelog format](http://keepachangelog.com/en/1.0.0/) we use.
- Don't bump the version yourself. Maintainers will do this when necessary.

13
mods/moreores/LICENSE.md Normal file
View file

@ -0,0 +1,13 @@
# zlib license
Copyright © 2011-2020 Hugo Locurcio and contributors
**This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.**
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

72
mods/moreores/README.md Normal file
View file

@ -0,0 +1,72 @@
# More Ores
More Ores for [Minetest](https://www.minetest.net/), a free and open source infinite
world block sandbox game.
[**Forum topic**](https://forum.minetest.net/viewtopic.php?f=11&t=549)
## Installation
### Download the mod
To install More Ores, clone this Git repository into your Minetest's `mods/`
directory:
```bash
git clone https://github.com/minetest-mods/moreores.git
```
You can also
[download a ZIP archive](https://github.com/minetest-mods/moreores/archive/master.zip)
of More Ores.
### Enable the mod
Once you have installed More Ores, you need to enable it in Minetest.
The procedure is as follows:
#### Using the client's main menu
This is the easiest way to enable More Ores when playing in singleplayer
(or on a server hosted from a client).
1. Start Minetest and switch to the **Local Game** tab.
2. Select the world you want to enable More Ores in.
3. Click **Configure**, then enable `moreores` by double-clicking it
(or ticking the **Enabled** checkbox).
4. Save the changes, then start a game on the world you enabled More Ores on.
5. More Ores should now be running on your world.
#### Using a text editor
This is the recommended way to enable the mod on a server without using a GUI.
1. Make sure Minetest is not currently running (otherwise, it will overwrite
the changes when exiting).
2. Open the world's `world.mt` file using a text editor.
3. Add the following line at the end of the file:
```text
load_mod_moreores = true
```
If the line is already present in the file, then replace `false` with `true`
on that line.
4. Save the file, then start a game on the world you enabled More Ores on.
5. More Ores should now be running on your world.
## Version compatibility
More Ores is currently primarily tested with Minetest 5.1.0.
It may or may not work with newer or older versions. Issues arising in older
versions than 5.0.0 will generally not be fixed.
## License
Copyright © 2011-2020 Hugo Locurcio and contributors
- More Ores code is licensed under the zlib license, see
[`LICENSE.md`](LICENSE.md) for details.
- Unless otherwise specified, More Ores textures are licensed under
[CC BY-SA 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/).

100
mods/moreores/_config.txt Normal file
View file

@ -0,0 +1,100 @@
------------------------------------------------------------------------------
------------------------------ CONFIGURATION ---------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------------
-------- Change settings by changing the values after the "=". ---------------
------------------------------------------------------------------------------
-- Chunk sizes for ore generation (bigger = ore deposits are more scattered around)
-- Tin
moreores.tin_chunk_size_high = 10
moreores.tin_chunk_size = 13
moreores.tin_chunk_size_deep = 10
-- Silver
moreores.silver_chunk_size_high = 11
moreores.silver_chunk_size = 13
moreores.silver_chunk_size_deep = 11
-- Mithril
moreores.mithril_chunk_size_high = 19
moreores.mithril_chunk_size = 21
moreores.mithril_chunk_size_deep = 19
-- Amount of ore per chunk (higher = bigger ore deposits)
-- Tin
moreores.tin_ore_per_chunk_high = 5
moreores.tin_ore_per_chunk = 4
moreores.tin_ore_per_chunk_deep = 5
-- Silver
moreores.silver_ore_per_chunk_high = 4
moreores.silver_ore_per_chunk = 2
moreores.silver_ore_per_chunk_deep = 4
-- Mithril
moreores.mithril_ore_per_chunk_high = 3
moreores.mithril_ore_per_chunk = 2
moreores.mithril_ore_per_chunk_deep = 4
-- Clust sizes for ore generation (bigger = ores in ore deposits are less bound together)
-- Tin
moreores.tin_clust_size_high = 3
moreores.tin_clust_size = 3
moreores.tin_clust_size_deep = 3
-- Silver
moreores.silver_clust_size_high = 3
moreores.silver_clust_size = 3
moreores.silver_clust_size_deep = 3
-- Mithril
moreores.mithril_clust_size_high = 3
moreores.mithril_clust_size = 3
moreores.mithril_clust_size_deep = 3
if minetest.get_modpath("mcl_core") then
-- Example adjustments for MineClone2
moreores.tin_max_depth_high = 0
moreores.tin_min_depth_high = -10
moreores.tin_max_depth = -11
moreores.tin_min_depth = -57
-- Similar adjustments for silver and mithril
moreores.silver_max_depth_high = 0
moreores.silver_min_depth_high = -10
moreores.silver_max_depth = -11
moreores.silver_min_depth = -57
moreores.mithril_max_depth_high = 0
moreores.mithril_min_depth_high = -20
moreores.mithril_max_depth = -21
moreores.mithril_min_depth = -57
else
-- Maximal and minimal depths of ore generation (Y coordinate, 0 being sea level by default)
-- Tin
moreores.tin_max_depth_high = 31000
moreores.tin_min_depth_high = 1025
moreores.tin_max_depth = -64 -- For v6 mapgen, -32 fits better
moreores.tin_min_depth = -127
moreores.tin_max_depth_deep = -128
moreores.tin_min_depth_deep = -31000
-- Silver
moreores.silver_max_depth_high = 31000
moreores.silver_min_depth_high = 1025
moreores.silver_max_depth = -64 -- For v6 mapgen, -32 fits better
moreores.silver_min_depth = -127 -- For v6 mapgen, -63 fits better
moreores.silver_max_depth_deep = -128 -- For v6 mapgen, -64 fits better
moreores.silver_min_depth_deep = -31000
-- Mithril
moreores.mithril_max_depth_high = 31000
moreores.mithril_min_depth_high = 2049
moreores.mithril_max_depth = -2048 -- For v6 mapgen, -256 fits better
moreores.mithril_min_depth = -4095 -- For v6 mapgen, -511 fits better
moreores.mithril_max_depth_deep = -4096 -- For v6 mapgen, -512 fits better
moreores.mithril_min_depth_deep = -31000
end

578
mods/moreores/init.lua Normal file
View file

@ -0,0 +1,578 @@
--[[
=====================================================================
** More Ores **
By Calinou, with the help of Nore.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
=====================================================================
--]]
moreores = {}
local modpath = minetest.get_modpath("moreores")
local S = minetest.get_translator("moreores")
moreores.S = S
dofile(modpath .. "/_config.txt")
-- `mg` mapgen support
if minetest.get_modpath("mg") then
dofile(modpath .. "/mg.lua")
end
-- `frame` support
local use_frame = minetest.get_modpath("frame")
local is_mcl_core_present = minetest.get_modpath("mcl_core") ~= nil
local is_mcl_sounds_present = minetest.get_modpath("mcl_sounds") ~= nil
local is_mcl_copper_present = minetest.registered_items["mcl_copper:copper_ingot"] ~= nil
local stone_ingredient = is_mcl_core_present and "mcl_core:stone" or "default:stone"
local copper_ingredient =
is_mcl_core_present and "mcl_copper:copper_ingot" or 'default:copper_ingot'
local default_stone_sounds
local default_metal_sounds
if is_mcl_sounds_present then
default_stone_sounds = mcl_sounds.node_sound_stone_defaults()
default_metal_sounds = mcl_sounds.node_sound_metal_defaults()
else
default_stone_sounds = default.node_sound_stone_defaults()
default_metal_sounds = default.node_sound_metal_defaults()
end
-- Returns the crafting recipe table for a given material and item.
local function get_recipe(material, item)
if is_mcl_core_present then
material = material:gsub("default:", "mcl_core:")
end
if item == "sword" then
return {
{material},
{material},
{"group:stick"},
}
end
if item == "shovel" then
return {
{material},
{"group:stick"},
{"group:stick"},
}
end
if item == "axe" then
return {
{material, material},
{material, "group:stick"},
{"", "group:stick"},
}
end
if item == "pick" then
return {
{material, material, material},
{"", "group:stick", ""},
{"", "group:stick", ""},
}
end
if item == "block" then
return {
{material, material, material},
{material, material, material},
{material, material, material},
}
end
if item == "lockedchest" then
return {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", material, "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
end
end
local function add_ore(modname, description, mineral_name, oredef, extra_node_def)
if mineral_name == "copper" and is_mcl_copper_present then
return
end
local img_base = modname .. "_" .. mineral_name
local toolimg_base = modname .. "_tool_"..mineral_name
local tool_base = modname .. ":"
local tool_post = "_" .. mineral_name
local item_base = tool_base .. mineral_name
local ingot = item_base .. "_ingot"
local lump_item = item_base .. "_lump"
local function merge_tables(t1, t2)
for k, v in pairs(t2) do
if type(v) == "table" and type(t1[k]) == "table" then
-- If both t1[k] and v are tables, merge them recursively
merge_tables(t1[k], v)
else
-- Otherwise, simply set the value
t1[k] = v
end
end
return t1
end
if oredef.makes.ore then
local node_def_tbl = {
description = S("@1 Ore", S(description)),
tiles = {"default_stone.png^" .. modname .. "_mineral_" .. mineral_name ..
".png"},
groups = {cracky = 2},
sounds = default_stone_sounds,
drop = lump_item,
}
if extra_node_def then
node_def_tbl = merge_tables(node_def_tbl, extra_node_def)
end
minetest.register_node(modname .. ":mineral_" .. mineral_name, node_def_tbl)
if use_frame then
frame.register(modname .. ":mineral_" .. mineral_name)
end
end
if oredef.makes.block then
local block_item = item_base .. "_block"
minetest.register_node(block_item, {
description = S("@1 Block", S(description)),
tiles = {img_base .. "_block.png"},
groups = {snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2},
is_ground_content = false,
sounds = default_metal_sounds,
})
minetest.register_alias(mineral_name.."_block", block_item)
if oredef.makes.ingot then
minetest.register_craft( {
output = block_item,
recipe = get_recipe(ingot, "block")
})
minetest.register_craft( {
output = ingot .. " 9",
recipe = {
{block_item},
}
})
end
if use_frame then
frame.register(block_item)
end
end
if oredef.makes.lump then
minetest.register_craftitem(lump_item, {
description = S("@1 Lump", S(description)),
inventory_image = img_base .. "_lump.png",
})
minetest.register_alias(mineral_name .. "_lump", lump_item)
if oredef.makes.ingot then
minetest.register_craft({
type = "cooking",
output = ingot,
recipe = lump_item,
})
end
if use_frame then
frame.register(lump_item)
end
end
if oredef.makes.ingot then
minetest.register_craftitem(ingot, {
description = S("@1 Ingot", S(description)),
inventory_image = img_base .. "_ingot.png",
})
minetest.register_alias(mineral_name .. "_ingot", ingot)
if use_frame then
frame.register(ingot)
end
end
if oredef.makes.chest then
if not is_mcl_core_present then
minetest.register_craft( {
output = "default:chest_locked",
recipe = {
{ingot},
{"default:chest"},
}
})
minetest.register_craft( {
output = "default:chest_locked",
recipe = get_recipe(ingot, "lockedchest")
})
end
end
oredef.oredef_high.ore_type = "scatter"
oredef.oredef_high.ore = modname .. ":mineral_" .. mineral_name
oredef.oredef_high.wherein = stone_ingredient
oredef.oredef.ore_type = "scatter"
oredef.oredef.ore = modname .. ":mineral_" .. mineral_name
oredef.oredef.wherein = stone_ingredient
oredef.oredef_deep.ore_type = "scatter"
oredef.oredef_deep.ore = modname .. ":mineral_" .. mineral_name
oredef.oredef_deep.wherein = stone_ingredient
minetest.register_ore(oredef.oredef_high)
minetest.register_ore(oredef.oredef)
minetest.register_ore(oredef.oredef_deep)
for tool_name, tooldef in pairs(oredef.tools) do
local tdef = {
description = "",
inventory_image = toolimg_base .. tool_name .. ".png",
tool_capabilities = {
max_drop_level = 3,
groupcaps = tooldef.groupcaps,
damage_groups = tooldef.damage_groups,
full_punch_interval = oredef.full_punch_interval,
},
sound = {breaks = "default_tool_breaks"},
_repair_material = ingot,
_mcl_toollike_wield = true,
mcl_diggroups = tooldef._mcl_diggroups,
groups = tooldef.groups,
}
if tool_name == "sword" then
tdef.description = S("@1 Sword", S(description))
if tdef.groups then
tdef.groups = merge_tables(tdef.groups, {sword = 1})
else
tdef.groups = {sword = 1}
end
end
if tool_name == "pick" then
tdef.description = S("@1 Pickaxe", S(description))
if tdef.groups then
tdef.groups = merge_tables(tdef.groups, {pickaxe = 1, tool=1})
else
tdef.groups = {pickaxe = 1, tool=1}
end
end
if tool_name == "axe" then
tdef.description = S("@1 Axe", S(description))
if tdef.groups then
tdef.groups = merge_tables(tdef.groups, {axe = 1, tool=1})
else
tdef.groups = {axe = 1, tool=1}
end
end
if tool_name == "shovel" then
tdef.description = S("@1 Shovel", S(description))
if tdef.groups then
tdef.groups = merge_tables(tdef.groups, {shovel = 1, tool=1})
else
tdef.groups = {shovel = 1, tool=1}
end
tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90"
end
local fulltool_name = tool_base .. tool_name .. tool_post
if tool_name == "hoe" and minetest.get_modpath("farming") then
tdef.max_uses = tooldef.max_uses
tdef.material = ingot
tdef.description = S("@1 Hoe", S(description))
farming.register_hoe(fulltool_name, tdef)
end
-- Hoe registration is handled above.
-- There are no crafting recipes for hoes, as they have been
-- deprecated from Minetest Game:
-- https://github.com/minetest/minetest_game/commit/9c459e77a
if tool_name ~= "hoe" then
minetest.register_tool(fulltool_name, tdef)
if oredef.makes.ingot then
minetest.register_craft({
output = fulltool_name,
recipe = get_recipe(ingot, tool_name)
})
end
end
-- Toolranks support
if minetest.get_modpath("toolranks") then
minetest.override_item(fulltool_name, {
original_description = tdef.description,
description = toolranks.create_description(tdef.description, 0, 1),
after_use = toolranks.new_afteruse})
end
minetest.register_alias(tool_name .. tool_post, fulltool_name)
if use_frame then
frame.register(fulltool_name)
end
end
end
local oredefs = {
silver = {
description = "Silver",
makes = {ore = true, block = true, lump = true, ingot = true, chest = true},
oredef_high= {
clust_scarcity = moreores.silver_chunk_size_high ^ 3,
clust_num_ores = moreores.silver_ore_per_chunk_high,
clust_size = moreores.silver_clust_size_high,
y_min = moreores.silver_min_depth_high,
y_max = moreores.silver_max_depth_high,
},
oredef = {
clust_scarcity = moreores.silver_chunk_size ^ 3,
clust_num_ores = moreores.silver_ore_per_chunk,
clust_size = moreores.silver_clust_size,
y_min = moreores.silver_min_depth,
y_max = moreores.silver_max_depth,
},
oredef_deep = {
clust_scarcity = moreores.silver_chunk_size_deep ^ 3,
clust_num_ores = moreores.silver_ore_per_chunk_deep,
clust_size = moreores.silver_clust_size_deep,
y_min = moreores.silver_min_depth_deep,
y_max = moreores.silver_max_depth_deep,
},
tools = {
pick = {
groupcaps = {
cracky = {times = {[1] = 2.60, [2] = 1.00, [3] = 0.60}, uses = 100, maxlevel = 1},
},
damage_groups = {fleshy = 4},
groups = {dig_speed_class=4, enchantability=14},
_mcl_diggroups = {
pickaxey = { speed = 6, level = 4, uses = 126 }
},
},
hoe = {
max_uses = 150,
},
shovel = {
groupcaps = {
crumbly = {times = {[1] = 1.10, [2] = 0.40, [3] = 0.25}, uses = 100, maxlevel = 1},
},
damage_groups = {fleshy = 3},
groups = {dig_speed_class=4, enchantability=14},
_mcl_diggroups = {
shovely = { speed = 6, level = 4, uses = 126 }
},
},
axe = {
groupcaps = {
choppy = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, uses = 100, maxlevel = 1},
fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 100, maxlevel = 1},
},
damage_groups = {fleshy = 5},
groups = {dig_speed_class=4, enchantability=14},
_mcl_diggroups = {
axey = { speed = 6, level = 4, uses = 126 }
},
},
sword = {
groupcaps = {
fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 100, maxlevel = 1},
snappy = {times = {[1] = 1.70, [2] = 0.70, [3] = 0.30}, uses = 100, maxlevel = 1},
choppy = {times = {[3] = 0.80}, uses = 100, maxlevel = 0},
},
damage_groups = {fleshy = 6},
_mcl_diggroups = {
swordy = { speed = 6, level = 4, uses = 126 },
swordy_cobweb = { speed = 6, level = 4, uses = 126 }
},
},
},
full_punch_interval = 1.0,
extra_node_def = {
_mcl_blast_resistance = 3,
_mcl_hardness = 4,
_mcl_silk_touch_drop = true,
groups = {pickaxey = 4}
}
},
mithril = {
description = "Mithril",
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
oredef_high = {
clust_scarcity = moreores.mithril_chunk_size_high ^ 3,
clust_num_ores = moreores.mithril_ore_per_chunk_high,
clust_size = moreores.mithril_clust_size_high,
y_min = moreores.mithril_min_depth_high,
y_max = moreores.mithril_max_depth_high,
},
oredef = {
clust_scarcity = moreores.mithril_chunk_size ^ 3,
clust_num_ores = moreores.mithril_ore_per_chunk,
clust_size = moreores.mithril_clust_size,
y_min = moreores.mithril_min_depth,
y_max = moreores.mithril_max_depth,
},
oredef_deep = {
clust_scarcity = moreores.mithril_chunk_size_deep ^ 3,
clust_num_ores = moreores.mithril_ore_per_chunk_deep,
clust_size = moreores.mithril_clust_size_deep,
y_min = moreores.mithril_min_depth_deep,
y_max = moreores.mithril_max_depth_deep,
},
tools = {
pick = {
groupcaps = {
cracky = {times = {[1] = 2.60, [2] = 1.00, [3] = 0.60}, uses = 3126, maxlevel = 3},
},
damage_groups = {fleshy = 6},
groups = {dig_speed_class=5, enchantability=10},
_mcl_diggroups = {
pickaxey = { speed = 8, level = 5, uses = 3126 }
},
},
hoe = {
max_uses = 2000,
},
shovel = {
groupcaps = {
crumbly = {times = {[1] = 1.10, [2] = 0.40, [3] = 0.25}, uses = 3126, maxlevel = 3},
},
damage_groups = {fleshy = 6},
groups = {dig_speed_class=5, enchantability=10},
_mcl_diggroups = {
shovely = { speed = 8, level = 5, uses = 3126 }
},
},
axe = {
groupcaps = {
choppy = {times = {[1] = 2.50, [2] = 0.80, [3] = 0.50}, uses = 3126, maxlevel = 3},
fleshy = {times = {[2] = 1.10, [3] = 0.60}, uses = 3126, maxlevel = 3},
},
damage_groups = {fleshy = 10},
groups = {dig_speed_class=5, enchantability=10},
_mcl_diggroups = {
axey = { speed = 8, level = 5, uses = 3126 }
},
},
sword = {
groupcaps = {
fleshy = {times = {[2] = 0.70, [3] = 0.30}, uses = 3126, maxlevel = 3},
snappy = {times = {[1] = 1.70, [2] = 0.70, [3] = 0.30}, uses = 3126, maxlevel = 3},
choppy = {times = {[3] = 0.80}, uses = 3126, maxlevel = 0},
},
damage_groups = {fleshy = 7},
_mcl_diggroups = {
swordy = { speed = 8, level = 5, uses = 3126 },
swordy_cobweb = { speed = 8, level = 5, uses = 3126 }
},
},
},
full_punch_interval = 0.45,
extra_node_def = {
_mcl_blast_resistance = 3,
_mcl_hardness = 5,
_mcl_silk_touch_drop = true,
groups = {pickaxey = 5}
},
}
}
-- If tin is available in the `default` mod, don't register More Ores' variant of tin
local default_tin
if minetest.registered_items["default:tin_ingot"] then
default_tin = true
else
default_tin = false
end
if default_tin then
minetest.register_alias("moreores:mineral_tin", "default:stone_with_tin")
minetest.register_alias("moreores:tin_lump", "default:tin_lump")
minetest.register_alias("moreores:tin_ingot", "default:tin_ingot")
minetest.register_alias("moreores:tin_block", "default:tinblock")
else
oredefs.tin = {
description = "Tin",
makes = {ore = true, block = true, lump = true, ingot = true, chest = false},
oredef_high = {
clust_scarcity = moreores.tin_chunk_size_high ^ 3,
clust_num_ores = moreores.tin_ore_per_chunk_high,
clust_size = moreores.tin_clust_size_high,
y_min = moreores.tin_min_depth_high,
y_max = moreores.tin_max_depth_high,
},
oredef = {
clust_scarcity = moreores.tin_chunk_size ^ 3,
clust_num_ores = moreores.tin_ore_per_chunk,
clust_size = moreores.tin_clust_size,
y_min = moreores.tin_min_depth,
y_max = moreores.tin_max_depth,
},
oredef_deep = {
clust_scarcity = moreores.tin_chunk_size_deep ^ 3,
clust_num_ores = moreores.tin_ore_per_chunk_deep,
clust_size = moreores.tin_clust_size_deep,
y_min = moreores.tin_min_depth_deep,
y_max = moreores.tin_max_depth_deep,
},
tools = {},
extra_node_def = {
_mcl_blast_resistance = 3,
_mcl_hardness = 3,
_mcl_silk_touch_drop = true,
groups = {pickaxey = 3}
},
}
-- Bronze has some special cases, because it is made from copper and tin
minetest.register_craft({
type = "shapeless",
output = "default:bronze_ingot 3",
recipe = {
"moreores:tin_ingot",
copper_ingredient,
copper_ingredient,
},
})
end
-- Copper rail (unique node)
if minetest.get_modpath("carts") then
carts:register_rail("moreores:copper_rail", {
description = S("Copper Rail"),
tiles = {
"moreores_copper_rail.png",
"moreores_copper_rail_curved.png",
"moreores_copper_rail_t_junction.png",
"moreores_copper_rail_crossing.png",
},
inventory_image = "moreores_copper_rail.png",
wield_image = "moreores_copper_rail.png",
groups = carts:get_rail_groups(),
}, {})
end
minetest.register_craft({
output = "moreores:copper_rail 24",
recipe = {
{copper_ingredient, "", copper_ingredient},
{copper_ingredient, "group:stick", copper_ingredient},
{copper_ingredient, "", copper_ingredient},
},
})
for orename, def in pairs(oredefs) do
-- Register everything
add_ore("moreores", def.description, orename, def, def.extra_node_def)
end

View file

@ -0,0 +1,20 @@
# textdomain: moreores
# Translation by Xanthin
@1 Ore=@1erz
@1 Lump=@1klumpen
@1 Ingot=@1barren
@1 Block=@1block
@1 Pickaxe=@1spitzhacke
@1 Shovel=@1schaufel
@1 Axe=@1axt
@1 Sword=@1schwert
Copper=Kupfer
Tin=Zinn
Bronze=Bronze
Silver=Silber
Gold=Gold
Mithril=Mithril
Copper Rail=Kupferschiene

View file

@ -0,0 +1,20 @@
# textdomain: moreores
# Translation by kaeza
@1 Ore=Mineral de @1
@1 Lump=Pepita de @1
@1 Ingot=Lingote de @1
@1 Block=Bloque de @1
@1 Pickaxe=Pico de @1
@1 Shovel=Pala de @1
@1 Axe=Hacha de @1
@1 Sword=Espada de @1
Copper=Cobre
Tin=Estaño
Bronze=Bronce
Silver=Plata
Gold=Oro
Mithril=Mitrilo
Copper Rail=Riel de Cobre

View file

@ -0,0 +1,21 @@
# textdomain: moreores
# Translation by Calinou
@1 Ore=Minerai en @1
@1 Lump=Roche en @1
@1 Ingot=Lingot en @1
@1 Block=Bloc en @1
@1 Pickaxe=Pioche en @1
@1 Shovel=Pelle en @1
@1 Axe=Hache en @1
@1 Sword=Épée en @1
@1 Hoe=Houe en @1
Copper=cuivre
Tin=étain
Bronze=bronze
Silver=argent
Gold=or
Mithril=mithril
Copper Rail=Rail en cuivre

View file

@ -0,0 +1,20 @@
# textdomain: moreores
# Translation by An0n3m0us
@1 Ore=@1 érc
@1 Lump=@1 rög
@1 Ingot=@1 öntvény
@1 Block=@1 blokk
@1 Pickaxe=@1 csákány
@1 Shovel=@1 ásó
@1 Axe=@1 fejsze
@1 Sword=@1 kard
Copper=Réz
Tin=Ón
Bronze=Bronz
Silver=Ezüst
Gold=Arany
Mithril=Mithril
Copper Rail=Réz sín

View file

@ -0,0 +1,20 @@
# textdomain: moreores
# Translation by Pagliaccio
@1 Ore=Minerale di @1
@1 Lump=@1 grezzo
@1 Ingot=Lingotto di @1
@1 Block=Blocco di @1
@1 Pickaxe=Piccone di @1
@1 Shovel=Badile di @1
@1 Axe=Ascia di @1
@1 Sword=Spada di @1
Copper=Rame
Tin=Stagno
Bronze=Bronzo
Silver=Argento
Gold=Oro
Mithril=Mithril
Copper Rail=Binario di rame

View file

@ -0,0 +1,17 @@
# textdomain: moreores
@1 Ore=@1 Erts
@1 Lump=@1 Klomp
@1 Ingot=@1 Staaf
@1 Block=@1 Blok
@1 Pickaxe=@1 Pikhouweel
@1 Shovel=@1 Schep
@1 Axe=@1 Bijl
@1 Sword=@1 Zwaard
Copper=Koper
Tin=Tin
Bronze=Brons
Silver=Silver
Gold=Goud
Mithril=Mithril

View file

@ -0,0 +1,20 @@
# textdomain: moreores
# Translation by mat9117
@1 Ore=@1 Ruda
@1 Lump=@1 Bryłka
@1 Ingot=@1 Sztabka
@1 Block=@1 Blok
@1 Pickaxe=@1 Kilof
@1 Shovel=@1 Łopata
@1 Axe=@1 Siekiera
@1 Sword=@1 Miecz
Copper=Miedź
Tin=Cyna
Bronze=Brąz
Silver=Srebro
Gold=Złoto
Mithril=Mithril
Copper Rail=Miedziany Tor

View file

@ -0,0 +1,21 @@
# textdomain: moreores
# Translation by github.com/caiorrs
@1 Ore=Minério de @1
@1 Lump=Pepita de @1
@1 Ingot=Lingote de @1
@1 Block=Bloco de @1
@1 Pickaxe=Picareta de @1
@1 Shovel=Pá de @1
@1 Axe=Machado de @1
@1 Sword=Espada de @1
Copper=Cobre
Tin=Estanho
Bronze=Bronze
Silver=Prata
Gold=Ouro
Mithril=Mitrilo
Copper Rail=Trilho de Cobre

View file

@ -0,0 +1,19 @@
# textdomain: moreores
@1 Ore=Руда @1
@1 Lump=Кусок @1
@1 Ingot=Слиток @1
@1 Block=Блок @1
@1 Pickaxe=Кирка из @1
@1 Shovel=Лопата из @1
@1 Axe=Топор из @1
@1 Sword=Меч из @1
@1 Hoe=Мотыга из @1
Copper=меди
Tin=олова
Bronze=бронзы
Silver=серебра
Gold=золота
Mithril=мифрила
Copper Rail=медные рельсы

View file

@ -0,0 +1,26 @@
# textdomain: moreores
# Translation by Mahmutelmas06
# mahmutelmas06@hotmail.com
# Türkçe Çeviri
# Turkish translation
# Language 2 letter iso code is "tr"
@1 Ore=@1 madeni
@1 Lump=@1 yığını
@1 Ingot=@1 külçesi
@1 Block=@1 blok
@1 Pickaxe=@1 kazma
@1 Shovel=@1 kürek
@1 Axe=@1 balta
@1 Sword=@1 kılıç
Copper=Bakır
Tin=Kalay
Bronze=Bronz
Silver=Gümüş
Gold=Altın
Mithril=Mithril
Copper Rail=Bakır ray

View file

@ -0,0 +1,22 @@
# textdomain: moreores
More Ores=Більше Руд
Adds new ore types.=Додає нові типи руд.
@1 Ore=Руда @1
@1 Lump=Шматок @1
@1 Ingot=Злиток @1
@1 Block=Блок @1
@1 Pickaxe=Кайло з @1
@1 Shovel=Лопата з @1
@1 Axe=Сокира з @1
@1 Sword=Меч з @1
@1 Hoe=Мотика з @1
Copper=міді
Tin=олова
Bronze=бронзи
Silver=срібла
Gold=золота
Mithril=міфрілу
Copper Rail=Мідні рейки

View file

@ -0,0 +1,18 @@
# textdomain: moreores
@1 Ore=
@1 Lump=
@1 Ingot=
@1 Block=
@1 Pickaxe=
@1 Shovel=
@1 Axe=
@1 Sword=
Copper=
Tin=
Bronze=
Silver=
Gold=
Mithril=
Copper Rail=

55
mods/moreores/mg.lua Normal file
View file

@ -0,0 +1,55 @@
--[[
More Ores: `mg` mod support
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
if not minetest.registered_items["default:tin_ingot"] then
mg.register_ore({
name = "moreores:mineral_tin",
wherein = "default:stone",
seeddiff = 8,
maxvdistance = 10.5,
maxheight = 8,
seglenghtn = 15,
seglenghtdev = 6,
segincln = 0,
segincldev = 0.6,
turnangle = 57,
forkturnangle = 57,
numperblock = 2
})
end
mg.register_ore({
name = "moreores:mineral_silver",
wherein = "default:stone",
seeddiff = 9,
maxvdistance = 10.5,
maxheight = -2,
seglenghtn = 15,
seglenghtdev = 6,
sizen = 60,
sizedev = 30,
segincln = 0,
segincldev = 0.6,
turnangle = 57,
forkturnangle = 57,
numperblock = 2
})
mg.register_ore({
name = "moreores:mineral_mithril",
wherein = "default:stone",
seeddiff = 10,
maxvdistance = 10.5,
maxheight = -512,
seglenghtn = 2,
seglenghtdev = 4,
sizen = 12,
sizedev = 5,
segincln = 0,
segincldev = 0.6,
turnangle = 57,
})

8
mods/moreores/mod.conf Normal file
View file

@ -0,0 +1,8 @@
name = moreores
description = Adds new ore types.
optional_depends = carts,farming,frame,mg,toolranks,mcl_core,mcl_sounds
min_minetest_version = 5.0.0
supported_games = mineclone2,mineclonia,minetest_game
release = 30151
author = Calinou
title = More Ores

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B