many worldgen mods and gonna try technic now

This commit is contained in:
2026-09-13 03:30:48 -06:00
parent bac6ac94a3
commit 548749cb1a
4811 changed files with 163271 additions and 1 deletions
+2
View File
@@ -0,0 +1,2 @@
*.zip
doc/
+41
View File
@@ -0,0 +1,41 @@
Raw Ore Blocks Changelog
========================
0.3.0 (2026-01-07)
------------------
- Added Silver support.
- Added Elepower support (requested by Opons).
- Added Terumet support (requested by Opons).
- Fixed an issue with using the API from other mods.
- Fixed sounds being copied from groups (contributed by programmerjake).
- Added supported games to mod.conf.
- Changed the registration API from `lumpblocks.register_lump_block{name, ...options}` to `lumpblocks.register_lump_block(name, {...options})`.
The old version is still available but deprecated.
- The `def` field can now override fields defined by Raw Ore Blocks.
0.2.0 (2022-11-16)
------------------
- Added Repixture support.
- Added Techage support.
- Added sounds.
0.1.0 (2022-11-04)
------------------
- Improved textures.
- Redesigned colouring system.
- Various code improvements.
- Added Glooptest support.
- Added Nether support.
- Improved item descriptions.
- Uranium is now radioactive.
0.0.0 (2022-10-30)
------------------
- Added everything.
+49
View File
@@ -0,0 +1,49 @@
Raw Ore Blocks Licence
======================
Licence of Code
---------------
- `init.lua`
- `api.lua`
- `definitions.lua`
- Copyright © 2022-2026, [Silver Sandstone] <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
Licence of Assets
-----------------
- `lumpblocks_lump_block.png`
- `lumpblocks_lump_block_mask.png`
- `lumpblocks_lump_block_mask.xcf`
- Based on `moreblocks_iron_stone.png` from [RPG16] by [Hugues Alexandre Ross],
licensed under the [Creative Commons Attribution-ShareAlike 4.0 International Licence][CC BY-SA 4.0].
- Modifications:
- Blurred.
- Converted to greyscale/alpha.
[Silver Sandstone]: https://content.luanti.org/users/SilverSandstone/ "Silver Sandstone on Luanti ContentDB"
[Hugues Alexandre Ross]: https://huguesross.net "Hugues Alexandre Ross"
[RPG16]: https://content.luanti.org/packages/Hugues%20Ross/rpg16/ "RPG16 on Luanti ContentDB"
[CC BY-SA 4.0]: https://creativecommons.org/licenses/by-sa/4.0/ "Creative Commons Attribution-ShareAlike 4.0 International"
+40
View File
@@ -0,0 +1,40 @@
Raw Ore Blocks
==============
[ContentDB](https://content.luanti.org/packages/SilverSandstone/lumpblocks/) ·
[Codeberg](https://codeberg.org/SilverSandstone/lumpblocks)
Raw Ore Blocks adds compressed block forms of metal lumps.
These blocks can be used for efficient storage of raw ores, or decoration.
Nine lumps can be crafted into a block, and a block can be crafted back into nine lumps.
Compatibility
-------------
Supported games:
- Dreambuilder
- Mesecraft
- Minetest
- Repixture
Supported mods:
- Elepower
- Glooptest
- More Ores
- Nether
- Techage
- Technic
- Terumet
Licence
-------
Raw Ore Blocks is licensed under the MIT licence, with assets under CC BY-SA 4.0.
See `LICENCE.md` for more information.
+202
View File
@@ -0,0 +1,202 @@
--[[
Raw Ore Blocks — adds block forms of metal lumps to Luanti
Copyright © 2022-2026, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
]]
--- Public API functions.
-- @module api
local S = core.get_translator('lumpblocks');
local get_sounds;
if core.get_modpath('default') then
get_sounds = default.node_sound_metal_defaults or default.node_sound_stone_defaults;
elseif core.get_modpath('mcl_sounds') then
get_sounds = mcl_sounds.node_sounds_metal_defaults;
elseif core.get_modpath('rp_sounds') then
get_sounds = rp_sounds.node_sound_defaults;
end;
if not get_sounds then
function get_sounds(sounds)
return sounds or {};
end;
end;
local function update(dest, ...)
for index = 1, select('#', ...) do
local src = select(index, ...);
if src then
for key, value in pairs(src) do
dest[key] = value;
end;
end;
end;
return dest;
end;
--- Registers a raw ore block.
-- @param name [string] The name of the raw ore block to register.
-- @param options [table] A table of options.
-- @param options.lump [string] The name of the lump item.
-- @param options.texture [string] Overrides the node's texture.
-- @param options.light_colour [ColourSpec] The lighter colour of the texture.
-- @param options.dark_colour [ColourSpec] The darker (or only) colour of the texture.
-- @param options.colour [ColourSpec] Alias for `dark_colour`.
-- @param options.colours [ColourSpec[2]] A table of {dark_colour, light_colour}.
-- @param options.description [string] Overrides the node's description.
-- @param options.groups [{string: integer}] Overrides the node's groups.
-- @param options.def [NodeDef] Overrides arbitrary properties of the node's definition.
-- @return [string|nil] The name of the registered node, or nil on failure.
function lumpblocks.register_lump_block(name, options)
if type(name) == 'table' then
options = name;
name = nil;
end;
local lump_name;
local texture;
local dark_colour;
local light_colour;
local description;
local override;
local groups = {};
for key, value in pairs(options) do
if key == 'base_name' or key == 1 then
name = ('lumpblocks:%s_block'):format(value);
elseif key == 'lump' or key == 2 then
lump_name = value;
elseif key == 'name' then
name = value;
elseif key == 'texture' then
texture = value;
elseif key == 'dark_colour' or key == 'colour' then
dark_colour = value;
elseif key == 'light_colour' then
light_colour = value;
elseif key == 'colours' then
dark_colour, light_colour = unpack(value);
elseif key == 'description' then
description = value;
elseif key == 'def' then
override = value;
elseif key == 'groups' then
groups = value;
else
core.log('error', ('Invalid key [%q] in lumpblocks.register_lump_block().'):format(key));
end;
end;
assert(name, 'No block name specified!');
assert(lump_name, 'No lump name specified!');
assert(texture or dark_colour, 'No texture or colour specified!');
local lump_def = core.registered_items[lump_name];
if not lump_def then
return nil;
end;
local def = {};
def.description = description or S('@1 Block', lump_def.description);
def.groups = update({cracky = 3, lump_block = 1}, groups);
def.tiles = {texture or lumpblocks.generate_lumpblock_texture(dark_colour, light_colour)};
def.sounds = update(get_sounds(), options.sounds);
def._doc_items_longdesc = S('A compressed block form of @1 for decoration or efficient storage.', lump_def.description);
update(def, override);
core.register_node(':' .. name, def);
-- Crafting recipes:
core.register_craft(
{
output = name;
recipe =
{
{lump_name, lump_name, lump_name},
{lump_name, lump_name, lump_name},
{lump_name, lump_name, lump_name},
};
});
core.register_craft(
{
type = 'shapeless';
output = lump_name .. ' 9';
recipe = {name};
});
if core.get_modpath('rp_crafting') then
crafting.register_craft(
{
output = name;
items = {lump_name .. ' 9'};
});
crafting.register_craft(
{
output = lump_name .. ' 9';
items = {name};
});
end;
return name;
end;
-- Generates a raw ore block texture in the specified colours.
-- @param dark_colour [ColourSpec] The darker (or only) colour.
-- @param light_colour [ColourSpec|nil] The lighter colour.
-- @return [string] A texture string.
function lumpblocks.generate_lumpblock_texture(dark_colour, light_colour)
assert(dark_colour, 'No colour specified!');
if light_colour then
-- Gradient-based colouring system:
dark_colour = core.colorspec_to_colorstring(dark_colour);
light_colour = core.colorspec_to_colorstring(light_colour);
local mask = 'lumpblocks_lump_block_mask.png';
return ('(%s^[multiply:#00000000^[invert:a^[colorize:%s:255)^(%s^[multiply:%s)'):format(mask, dark_colour, mask, light_colour);
else
-- Multiplication-based colouring system:
local colour = core.colorspec_to_colorstring(dark_colour);
local inverted = lumpblocks.invert_colour(colour);
local base = 'lumpblocks_lump_block.png';
return ('((%s^[invert:rgb)^[multiply:%s^[invert:rgb)^(%s^[multiply:%s^[opacity:127)'):format(base, inverted, base, colour);
end;
end;
--- Inverts a colour in RGB space.
-- @param colour [ColourSpec] The colour to invert.
-- @return [ColourString] The inverted colour.
function lumpblocks.invert_colour(colour)
local bytes = core.colorspec_to_bytes(colour);
local values = {nil, nil, nil, bytes:byte(4)};
for index = 1, 3 do
values[index] = 255 - bytes:byte(index);
end;
return ('#%02X%02X%02X%02X'):format(unpack(values));
end;
+252
View File
@@ -0,0 +1,252 @@
--[[
Raw Ore Blocks — adds block forms of metal lumps to Luanti
Copyright © 2022-2026, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
]]
--- Block definitions.
-- @module definitions
local S = core.get_translator('lumpblocks');
-- Minetest:
lumpblocks.register_lump_block('lumpblocks:copper_block',
{
lump = 'default:copper_lump';
description = S'Raw Copper Block';
colours = {'#973F23', '#F4D352'};
});
lumpblocks.register_lump_block('lumpblocks:gold_block',
{
lump = 'default:gold_lump';
description = S'Raw Gold Block';
colours = {'#BD4B00', '#FFF444'};
});
lumpblocks.register_lump_block('lumpblocks:iron_block',
{
lump = 'default:iron_lump';
description = S'Raw Iron Block';
colours = {'#7F3E24', '#D47F4E'};
});
lumpblocks.register_lump_block('lumpblocks:tin_block',
{
lump = 'default:tin_lump';
description = S'Raw Tin Block';
colours = {'#878787', '#C3C3C3'};
});
-- Repixture:
lumpblocks.register_lump_block('lumpblocks:bronze_block',
{
lump = 'rp_default:lump_bronze';
description = S'Raw Bronze Block';
colours = {'#B13F07', '#FBA24F'};
});
lumpblocks.register_lump_block('lumpblocks:copper_block',
{
lump = 'rp_default:lump_copper';
description = S'Raw Copper Block';
colours = {'#973F23', '#F4D352'};
});
lumpblocks.register_lump_block('lumpblocks:iron_block',
{
lump = 'rp_default:lump_iron';
description = S'Raw Iron Block';
colours = {'#7F3E24', '#D47F4E'};
});
lumpblocks.register_lump_block('lumpblocks:tin_block',
{
lump = 'rp_default:lump_tin';
description = S'Raw Tin Block';
colours = {'#878787', '#C3C3C3'};
});
lumpblocks.register_lump_block('lumpblocks:gold_block',
{
lump = 'rp_gold:lump_gold';
description = S'Raw Gold Block';
colours = {'#BD4B00', '#FFF444'};
});
-- More Ores:
lumpblocks.register_lump_block('lumpblocks:mithril_block',
{
lump = 'moreores:mithril_lump';
description = S'Raw Mithril Block';
colours = {'#1C2D7E', '#806DD5'};
});
lumpblocks.register_lump_block('lumpblocks:silver_block',
{
lump = 'moreores:silver_lump';
description = S'Raw Silver Block';
colours = {'#7488AA', '#F4F8FD'};
});
-- Technic:
lumpblocks.register_lump_block('lumpblocks:chromium_block',
{
lump = 'technic:chromium_lump';
description = S'Raw Chromium Block';
colours = {'#8AB0B0', '#F5F8F8'};
});
lumpblocks.register_lump_block('lumpblocks:lead_block',
{
lump = 'technic:lead_lump';
description = S'Raw Lead Block';
colours = {'#454545', '#EBEBEB'};
});
lumpblocks.register_lump_block('lumpblocks:sulfur_block',
{
lump = 'technic:sulfur_lump';
description = S'Raw Sulphur Block';
colours = {'#B69A00', '#FFE400'};
});
lumpblocks.register_lump_block('lumpblocks:uranium_block',
{
lump = 'technic:uranium_lump';
description = S'Raw Uranium Block';
colours = {'#00592A', '#99ED1A'};
groups = {radioactive = 1};
});
lumpblocks.register_lump_block('lumpblocks:zinc_block',
{
lump = 'technic:zinc_lump';
description = S'Raw Zinc Block';
colours = {'#6CB5C9', '#DCF2F8'};
});
-- Nether:
lumpblocks.register_lump_block('lumpblocks:nether_block',
{
lump = 'nether:nether_lump';
description = S'Raw Nether Block';
colours = {'#586628', '#AEBF72'};
});
-- Glooptest:
lumpblocks.register_lump_block('lumpblocks:akalin_block',
{
lump = 'glooptest:akalin_lump';
description = S'Raw Akalin Block';
colours = {'#8A84C6', '#A5B4EB'};
});
lumpblocks.register_lump_block('lumpblocks:alatro_block',
{
lump = 'glooptest:alatro_lump';
description = S'Raw Alatro Block';
colours = {'#4B1778', '#C290EC'};
});
lumpblocks.register_lump_block('lumpblocks:arol_block',
{
lump = 'glooptest:arol_lump';
description = S'Raw Arol Block';
colours = {'#197115', '#84D97D'};
});
lumpblocks.register_lump_block('lumpblocks:kalite_block',
{
lump = 'glooptest:kalite_lump';
description = S'Raw Kalite Block';
colours = {'#700000', '#B90000'};
});
lumpblocks.register_lump_block('lumpblocks:talinite_block',
{
lump = 'glooptest:talinite_lump';
description = S'Raw Talinite Block';
colours = {'#259496', '#42D5D7'};
def = {light_source = 6};
});
-- Techage:
lumpblocks.register_lump_block('lumpblocks:baborium_block',
{
lump = 'techage:baborium_lump';
description = S'Raw Baborium Block';
colours = {'#6D1414', '#D4691A'};
});
-- Silver:
lumpblocks.register_lump_block('lumpblocks:silver_block',
{
lump = 'silver:silver_lump';
description = S'Raw Silver Block';
colours = {'#746E6E', '#DDDDDD'};
});
-- Elepower:
lumpblocks.register_lump_block('lumpblocks:lead_block',
{
lump = 'elepower_dynamics:lead_lump';
description = S'Raw Lead Block';
colours = {'#283240', '#3E4E66'},
});
lumpblocks.register_lump_block('lumpblocks:nickel_block',
{
lump = 'elepower_dynamics:nickel_lump';
description = S'Raw Nickel Block';
colours = {'#7A7659', '#959275'};
});
lumpblocks.register_lump_block('lumpblocks:viridisium_block',
{
lump = 'elepower_dynamics:viridisium_lump';
description = S'Raw Viridisium Block';
colours = {'#46783E', '#65B151'};
});
lumpblocks.register_lump_block('lumpblocks:zinc_block',
{
lump = 'elepower_dynamics:zinc_lump';
description = S'Raw Zinc Block';
colours = {'#5E8DA1', '#82A7B9'};
});
lumpblocks.register_lump_block('lumpblocks:uranium_block',
{
lump = 'elepower_nuclear:uranium_lump';
description = S'Raw Uranium Lump';
colours = {'#036403', '#038F03'};
});
-- Terumet:
lumpblocks.register_lump_block('lumpblocks:terumet_block',
{
lump = 'terumet:lump_raw';
description = S'Raw Terumet Lump';
colours = {'#411117', '#CA767A'};
});
+34
View File
@@ -0,0 +1,34 @@
--[[
Raw Ore Blocks — adds block forms of metal lumps to Luanti
Copyright © 2022-2026, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
]]
--- Mod entry point.
-- @module init
lumpblocks = {};
local modpath = core.get_modpath(core.get_current_modname());
dofile(modpath .. '/api.lua');
dofile(modpath .. '/definitions.lua');
@@ -0,0 +1,104 @@
msgid ""
msgstr ""
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: MTTranslate\n"
#: api.lua:119
msgid "@1 Block"
msgstr ""
#: api.lua:123
msgid "A compressed block form of @1 for decoration or efficient storage."
msgstr ""
#: definitions.lua:33
#: definitions.lua:40
msgid "Raw Copper Block"
msgstr ""
#: definitions.lua:34
#: definitions.lua:43
msgid "Raw Gold Block"
msgstr ""
#: definitions.lua:35
#: definitions.lua:41
msgid "Raw Iron Block"
msgstr ""
#: definitions.lua:36
#: definitions.lua:42
msgid "Raw Tin Block"
msgstr ""
#: definitions.lua:39
msgid "Raw Bronze Block"
msgstr ""
#: definitions.lua:46
msgid "Raw Mithril Block"
msgstr ""
#: definitions.lua:47
#: definitions.lua:70
msgid "Raw Silver Block"
msgstr ""
#: definitions.lua:50
msgid "Raw Chromium Block"
msgstr ""
#: definitions.lua:51
msgid "Raw Lead Block"
msgstr ""
#: definitions.lua:52
msgid "Raw Sulphur Block"
msgstr ""
#: definitions.lua:53
msgid "Raw Uranium Block"
msgstr ""
#: definitions.lua:54
msgid "Raw Zinc Block"
msgstr ""
#: definitions.lua:57
msgid "Raw Nether Block"
msgstr ""
#: definitions.lua:60
msgid "Raw Akalin Block"
msgstr ""
#: definitions.lua:61
msgid "Raw Alatro Block"
msgstr ""
#: definitions.lua:62
msgid "Raw Arol Block"
msgstr ""
#: definitions.lua:63
msgid "Raw Kalite Block"
msgstr ""
#: definitions.lua:64
msgid "Raw Talinite Block"
msgstr ""
#: definitions.lua:67
msgid "Raw Baborium Block"
msgstr ""
#: mod.conf:2
msgid "Raw Ore Blocks"
msgstr ""
#: mod.conf:3
msgid "Adds block forms of metal lumps."
msgstr ""
+21
View File
@@ -0,0 +1,21 @@
name = lumpblocks
title = Raw Ore Blocks
description = Adds block forms of metal lumps.
author = SilverSandstone
optional_depends = """
default,
elepower_dynamics,
elepower_nuclear,
glooptest,
moreores,
mcl_sounds,
nether,
rp_crafting,
rp_default,
rp_sounds,
techage,
technic_worldgen,
terumet
"""
supported_games = asuna, dreambuilder, mesecraft, minetest_game, repixture, survivetest, voxelgarden
min_minetest_version = 5.0.0
Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB