fixes and addons

master
root 2021-08-30 10:54:41 +02:00
parent d5a81edeae
commit 5d5288b888
58 changed files with 834 additions and 103 deletions

121
mods/aloz/LICENSE.txt Normal file
View File

@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

13
mods/aloz/README.md Normal file
View File

@ -0,0 +1,13 @@
# AluminumZ
A new ore and related stuff for Minetest.
## Dependencies
- default
optional_depends = doors
## License
- Code: GPL v3.0
- Textures: CC BY-SA 4.0

241
mods/aloz/init.lua Normal file
View File

@ -0,0 +1,241 @@
-- internationalization boilerplate
local S = minetest.get_translator(minetest.get_current_modname())
----Aluminum Basics
minetest.register_node("aloz:stone_with_bauxite", {
description = S("Bauxite Ore"),
tiles = {"default_stone.png^aloz_mineral_bauxite.png"},
groups = {cracky = 2, aluminum = 1},
drop = "aloz:bauxite_lump 10",
sounds = default.node_sound_stone_defaults(),
})
function default.register_ores()
minetest.register_ore({
ore_type = "scatter",
ore = "aloz:stone_with_bauxite",
wherein = "default:stone",
clust_scarcity = 6 * 6 * 6,
clust_num_ores = 6,
clust_size = 6,
y_max = -48,
y_min = -512,
})
end
minetest.register_craftitem("aloz:bauxite_lump", {
description = S("Bauxite Lump"),
inventory_image = "aloz_bauxite_lump.png"
})
--Aluminum Ingot
minetest.register_craftitem("aloz:aluminum_ingot", {
description = S("Aluminum Ingot"),
inventory_image = "aloz_aluminum_ingot.png"
})
minetest.register_craft({
type = "cooking",
output = "aloz:aluminum_ingot",
recipe = "aloz:bauxite_lump",
cooktime = 10,
})
--Aluminum Block
minetest.register_node("aloz:aluminum_block", {
description = S("Aluminum Block"),
tiles = {"aloz_aluminum_block.png"},
is_ground_content = false,
groups = {cracky = 1, level = 2, aluminum = 1},
sounds = default.node_sound_metal_defaults(),
})
minetest.register_craft({
output = "default:aluminum_ingot 9",
recipe = {
{"aloz:aluminum_block"},
}
})
--Beam
minetest.register_node("aloz:aluminum_beam", {
description = S("Aluminum Beam"),
tiles = {"aloz_beam_top.png", "aloz_beam_top.png", "aloz_beam_side.png"},
groups = {cracky = 3, level= 3, aluminum = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
type= "shaped",
output = "default:aluminum_beam",
recipe = {
{"", "aloz:aluminum_block", ""},
{"", "aloz:aluminum_block", ""},
{"", "aloz:aluminum_block", ""}
}
})
--Doors
if minetest.get_modpath("doors") ~= nil then
doors.register("door_aluminum", {
tiles = {{ name = "aloz_door_aluminum.png", backface_culling = true }},
description = S("Aluminum Door"),
inventory_image = "aloz_door_aluminum_inv.png",
groups = {node = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
recipe = {
{"aloz:aluminum_ingot", "xpanes:pane_flat"},
{"aloz:aluminum_ingot", "aloz:aluminum_ingot"},
{"aloz:aluminum_ingot", "aloz:trapdoor"},
}
})
doors.register("door_green_aluminum", {
tiles = {{ name = "aloz_door_green_aluminum.png", backface_culling = true }},
description = S("Green Aluminum Door"),
inventory_image = "aloz_door_green_aluminum_inv.png",
groups = {node = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
recipe = {
{"aloz:door_aluminum", "dye:green"},
}
})
doors.register("door_red_aluminum", {
tiles = {{ name = "aloz_door_red_aluminum.png", backface_culling = true }},
description = S("Red Aluminum Door"),
inventory_image = "aloz_door_red_aluminum_inv.png",
groups = {node = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
recipe = {
{"aloz:door_aluminum", "dye:red"},
}
})
doors.register_trapdoor("aloz:trapdoor_aluminum", {
description = S("Aluminum Trapdoor"),
inventory_image = "aloz_trapdoor_aluminum.png",
wield_image = "aloz_trapdoor_aluminum.png",
tile_front = "aloz_trapdoor_aluminum.png",
tile_side = "aloz_trapdoor_aluminum_side.png",
protected = true,
sounds = default.node_sound_metal_defaults(),
sound_open = "doors_steel_door_open",
sound_close = "doors_steel_door_close",
gain_open = 0.2,
gain_close = 0.2,
groups = {cracky = 1, level = 2, door = 1},
})
minetest.register_craft({
output = "aloz:trapdoor_aluminum 2",
recipe = {
{"default:aluminum_ingot", "default:aluminum_ingot", "default:aluminum_ingot"},
{"default:aluminum_ingot", "default:aluminum_ingot", "default:aluminum_ingot"},
{"", "", ""},
}
})
end
local function register_pane(name, def)
for i = 1, 15 do
minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat")
end
local flatgroups = table.copy(def.groups)
flatgroups.pane = 1
minetest.register_node(":xpanes:" .. name .. "_flat", {
description = def.description,
drawtype = "nodebox",
paramtype = "light",
is_ground_content = false,
sunlight_propagates = true,
inventory_image = def.inventory_image,
wield_image = def.wield_image,
paramtype2 = "facedir",
tiles = {
def.textures[3],
def.textures[3],
def.textures[2],
def.textures[2],
def.textures[1],
def.textures[1]
},
groups = flatgroups,
drop = "xpanes:" .. name .. "_flat",
sounds = def.sounds,
use_texture_alpha = def.use_texture_alpha and "blend" or "clip",
node_box = {
type = "fixed",
fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}},
},
selection_box = {
type = "fixed",
fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}},
},
connect_sides = { "left", "right" },
})
local groups = table.copy(def.groups)
groups.pane = 1
groups.not_in_creative_inventory = 1
minetest.register_node(":xpanes:" .. name, {
drawtype = "nodebox",
paramtype = "light",
is_ground_content = false,
sunlight_propagates = true,
description = def.description,
tiles = {
def.textures[3],
def.textures[2],
def.textures[1]
},
groups = groups,
drop = "xpanes:" .. name .. "_flat",
sounds = def.sounds,
use_texture_alpha = def.use_texture_alpha and "blend" or "clip",
node_box = {
type = "connected",
fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}},
connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}},
connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}},
connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}},
connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}},
},
connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"},
})
minetest.register_craft({
output = "xpanes:" .. name .. "_flat 16",
recipe = def.recipe
})
end
register_pane("aluminum_railing", {
description = S("Aluminum Railing"),
textures = {"aloz_aluminum_railing.png", "aloz_aluminum_railing_rl.png", "aloz_aluminum_railing_tb.png"},
inventory_image = "aloz_aluminum_railing.png",
wield_image = "aloz_aluminum_railing.png",
groups = {cracky=2},
sounds = default.node_sound_metal_defaults(),
recipe = {
{"aloz:aluminum_ingot", "", "aloz:aluminum_ingot"},
{"", "aloz:aluminum_ingot", ""},
{"aloz:aluminum_ingot", "", "aloz:aluminum_ingot"}
}
})
register_pane("aluminum_barbed_wire", {
description = S("Aluminum Barbed Wire"),
textures = {"aloz_barbed_wire.png", "aloz_barbed_wire_rl.png", "aloz_barbed_wire_tb.png"},
inventory_image = "aloz_barbed_wire.png",
wield_image = "aloz_barbed_wire.png",
groups = {cracky=2},
sounds = default.node_sound_metal_defaults(),
recipe = {
{"aloz:aluminum_ingot", "xpanes:aluminum_railing", ""}
}
})

View File

@ -0,0 +1,12 @@
# textdomain: aloz
Bauxite Ore=Mineral de bauxita
Bauxite Lump=Pepita de bauxita
Aluminum Ingot=Lingote de aluminio
Aluminum Block=Bloque de aluminio
Aluminum Beam=Viga de aluminio
Aluminum Door=Puerta de aluminio
Green Aluminum Door=Puerta de aluminio verde
Red Aluminum Door=Puerta de aluminio roja
Aluminum Traapdoor=Trampilla de aluminio
Aluminum Railing=Verja de alumninio
Aluminum Barbed Wire=Concertina de aluminio

4
mods/aloz/mod.conf Normal file
View File

@ -0,0 +1,4 @@
name = aloz
description = Aluminium
depends = default
optional_depends = doors

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -139,7 +139,27 @@ trash:set_size("main", 1)
creative.formspec_add = ""
function creative.register_tab(name, title, items)
-- Sort registered items
local registered_nodes = {}
local registered_tools = {}
local registered_craftitems = {}
minetest.register_on_mods_loaded(function()
for name, def in pairs(minetest.registered_items) do
local group = def.groups or {}
local nogroup = not (group.node or group.tool or group.craftitem)
if group.node or (nogroup and minetest.registered_nodes[name]) then
registered_nodes[name] = def
elseif group.tool or (nogroup and minetest.registered_tools[name]) then
registered_tools[name] = def
elseif group.craftitem or (nogroup and minetest.registered_craftitems[name]) then
registered_craftitems[name] = def
end
end
end)
function creative.register_tab(name, title)
sfinv.register_page("creative:" .. name, {
title = title,
is_in_nav = function(self, player, context)
@ -147,22 +167,30 @@ function creative.register_tab(name, title, items)
end,
get = function(self, player, context)
local player_name = player:get_player_name()
local items = context.items or minetest.registered_items
creative.update_creative_inventory(player_name, items)
local inv = player_inventory[player_name]
local pagenum = math.floor(inv.start_i / (4*8) + 1)
local pagemax = math.ceil(inv.size / (4*8))
local esc = minetest.formspec_escape
return sfinv.make_formspec(player, context,
"label[5.8,4.15;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" ..
"label[6.3,4.15;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" ..
[[
image[4.08,4.2;0.8,0.8;creative_trash_icon.png]
image[3.08,4.2;0.8,0.8;creative_trash_icon.png]
listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]
list[detached:creative_trash;main;4.02,4.1;1,1;]
list[detached:creative_trash;main;3.02,4.1;1,1;]
listring[]
image_button[5,4.05;0.8,0.8;creative_prev_icon.png;creative_prev;]
image_button[5.5,4.05;0.8,0.8;creative_prev_icon.png;creative_prev;]
image_button[7.2,4.05;0.8,0.8;creative_next_icon.png;creative_next;]
image_button[2.63,4.05;0.8,0.8;creative_search_icon.png;creative_search;]
image_button[3.25,4.05;0.8,0.8;creative_clear_icon.png;creative_clear;]
image_button[1.63,4.05;0.8,0.8;creative_search_icon.png;creative_search;]
image_button[2.25,4.05;0.8,0.8;creative_clear_icon.png;creative_clear;]
image_button[4,4.05;1,0.5;;items_all;]]..S("All")..[[]
tooltip[items_nodes;]]..S("Nodes")..[[]
image_button[5,4.05;0.5,0.5;creative_nodes_icon.png;items_nodes;]
tooltip[items_tools;]]..S("Tools")..[[]
image_button[4,4.5;0.5,0.5;creative_tools_icon.png;items_tools;]
tooltip[items_craftitems;]]..S("Items")..[[]
image_button[4.5,4.5;1,0.5;;items_craftitems;]]..S("Items")..[[]
]] ..
"tooltip[creative_search;" .. esc(S("Search")) .. "]" ..
"tooltip[creative_clear;" .. esc(S("Reset")) .. "]" ..
@ -170,7 +198,7 @@ function creative.register_tab(name, title, items)
"tooltip[creative_next;" .. esc(S("Next page")) .. "]" ..
"listring[current_player;main]" ..
"field_close_on_enter[creative_filter;false]" ..
"field[0.3,4.2;2.8,1.2;creative_filter;;" .. esc(inv.filter) .. "]" ..
"field[0.3,4.2;1.8,1.2;creative_filter;;" .. esc(inv.filter) .. "]" ..
"listring[detached:creative_" .. player_name .. ";main]" ..
"list[detached:creative_" .. player_name .. ";main;0,0;8,4;" .. tostring(inv.start_i) .. "]" ..
creative.formspec_add, true)
@ -196,6 +224,18 @@ function creative.register_tab(name, title, items)
inv.start_i = 0
inv.filter = fields.creative_filter:lower()
sfinv.set_player_inventory_formspec(player, context)
elseif fields.items_all then
context.items = minetest.registered_items
sfinv.set_player_inventory_formspec(player, context)
elseif fields.items_nodes then
context.items = registered_nodes
sfinv.set_player_inventory_formspec(player, context)
elseif fields.items_tools then
context.items = registered_tools
sfinv.set_player_inventory_formspec(player, context)
elseif fields.items_craftitems then
context.items = registered_craftitems
sfinv.set_player_inventory_formspec(player, context)
elseif not fields.quit then
local start_i = inv.start_i or 0
@ -221,35 +261,12 @@ function creative.register_tab(name, title, items)
})
end
-- Sort registered items
local registered_nodes = {}
local registered_tools = {}
local registered_craftitems = {}
minetest.register_on_mods_loaded(function()
for name, def in pairs(minetest.registered_items) do
local group = def.groups or {}
local nogroup = not (group.node or group.tool or group.craftitem)
if group.node or (nogroup and minetest.registered_nodes[name]) then
registered_nodes[name] = def
elseif group.tool or (nogroup and minetest.registered_tools[name]) then
registered_tools[name] = def
elseif group.craftitem or (nogroup and minetest.registered_craftitems[name]) then
registered_craftitems[name] = def
end
end
end)
creative.register_tab("all", S("All"), minetest.registered_items)
creative.register_tab("nodes", S("Nodes"), registered_nodes)
creative.register_tab("tools", S("Tools"), registered_tools)
creative.register_tab("craftitems", S("Items"), registered_craftitems)
creative.register_tab("creative", S("Creative"))
local old_homepage_name = sfinv.get_homepage_name
function sfinv.get_homepage_name(player)
if minetest.is_creative_enabled(player:get_player_name()) then
return "creative:all"
return "creative:creative"
else
return old_homepage_name(player)
end

View File

@ -8,3 +8,4 @@ All=Alles
Nodes=Blöcke
Tools=Werkzeuge
Items=Gegenstände
Creative=Kreativ

View File

@ -8,3 +8,4 @@ All=Todos
Nodes=Nodos
Tools=Herramientas
Items=Objetos
Creative=Creativo

View File

@ -8,3 +8,4 @@ All=Tout
Nodes=Nœuds
Tools=Outils
Items=Article
Creative=Créatif

View File

@ -8,3 +8,4 @@ All=Tutto
Nodes=Nodi
Tools=Strumenti
Items=Oggetti
Creative=Creativo

View File

@ -8,3 +8,4 @@ All=Todos
Nodes=Blocos
Tools=Ferramentas
Items=Itens
Creative=Criativo

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 B

After

Width:  |  Height:  |  Size: 521 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 20 20" id="entypo-tools" width="64" height="64" fill="#ffffff"><g><path d="M3.135 6.89c.933-.725 1.707-.225 2.74.971.116.135.272-.023.361-.1.088-.078 1.451-1.305 1.518-1.361.066-.059.146-.169.041-.292a36.238 36.238 0 0 1-.743-.951c-1.808-2.365 4.946-3.969 3.909-3.994-.528-.014-2.646-.039-2.963-.004-1.283.135-2.894 1.334-3.705 1.893-1.061.726-1.457 1.152-1.522 1.211-.3.262-.048.867-.592 1.344-.575.503-.934.122-1.267.414-.165.146-.627.492-.759.607-.133.117-.157.314-.021.471 0 0 1.264 1.396 1.37 1.52.105.122.391.228.567.071.177-.156.632-.553.708-.623.078-.066-.05-.861.358-1.177zm5.708.517c-.12-.139-.269-.143-.397-.029L7.012 8.63a.289.289 0 0 0-.027.4l8.294 9.439c.194.223.53.246.751.053l.97-.813a.54.54 0 0 0 .052-.758L8.843 7.407zM19.902 3.39c-.074-.494-.33-.391-.463-.182-.133.211-.721 1.102-.963 1.506-.24.4-.832 1.191-1.934.41-1.148-.811-.749-1.377-.549-1.758.201-.383.818-1.457.907-1.59.089-.135-.015-.527-.371-.363-.357.164-2.523 1.025-2.823 2.26-.307 1.256.257 2.379-.85 3.494l-1.343 1.4 1.349 1.566 1.654-1.57c.394-.396 1.236-.781 1.998-.607 1.633.369 2.524-.244 3.061-1.258.482-.906.402-2.814.327-3.308zM2.739 17.053a.538.538 0 0 0 0 .758l.951.93c.208.209.538.121.746-.088l4.907-4.824-1.503-1.714-5.101 4.938z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,7 +1,8 @@
local S = minetest.get_translator(minetest.get_current_modname())
local hbinfo = {}
hbinfo.players = {}
local hbinfo = {
players = {}
}
minetest.register_on_leaveplayer(function(player)
hbinfo.players[player:get_player_name()] = nil
@ -39,7 +40,7 @@ local biome_description = {
desert_ocean = S("Desert ocean"),
ice_sheet_ocean = S("Ice sheet ocean"),
swampz = S("Swamp"),
swampz_shore = S("Swampz shore"),
swampz_shore = S("Swamp shore"),
temperate_rainforest = S("Temperate rainforest"),
salt_desert = S("Salt desert"),
redwood_forest = S("Redwood forest"),
@ -54,35 +55,47 @@ local function get_biome_name(player)
return description
end
local function compose_pos(player)
local pos = player:get_pos()
local pos_str = "["..tostring(math.round(pos.x)).."x, "
..tostring(math.round(pos.z)).."z] ("
..tostring(math.round(pos.y)).."y)"
return pos_str
end
minetest.register_on_joinplayer(function(player)
local player_name = player:get_player_name()
local _biome_name = get_biome_name(player)
local _idx = player:hud_add({
hud_elem_type = "text",
number = "0xFFFFFF",
position = {x = 0, y = 1},
text = _biome_name,
text = _biome_name.." "..compose_pos(player),
alignment = {x = 1, y = -1},
scale = {x = 100, y = 100},
})
local player_name = player:get_player_name()
hbinfo.players[player_name] = {idx = _idx, biome_name = _biome_name}
end)
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime;
if timer >= 1 then
if timer >= 0.5 then
for _, player in pairs(minetest.get_connected_players()) do
local biome_name = get_biome_name(player)
local player_name = player:get_player_name()
if hbinfo.players[player_name] and not(biome_name == hbinfo.players[player_name].biome_name) then
hbinfo.players[player_name].biome_name = biome_name
player:hud_change(hbinfo.players[player_name].idx, "text", biome_name)
if timer >= 1 then
local biome_name = get_biome_name(player)
if hbinfo.players[player_name]
and not(biome_name == hbinfo.players[player_name].biome_name) then
hbinfo.players[player_name].biome_name = biome_name
end
timer = 0
end
end
timer = 0
if hbinfo.players[player_name] then
player:hud_change(hbinfo.players[player_name].idx, "text",
hbinfo.players[player_name].biome_name.." "..compose_pos(player))
end
end --for
end
end)

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

0
mods/moreores/.gitignore vendored Executable file → Normal file
View File

33
mods/moreores/.luacheckrc Normal file
View File

@ -0,0 +1,33 @@
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",
}

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

16
mods/moreores/.travis.yml Normal file
View File

@ -0,0 +1,16 @@
dist: bionic
language: python
python:
- 3.7.1
install:
- sudo apt-get update -qq
- sudo apt-get install -qqq luarocks
- pip3 install pre-commit
- luarocks install --local luacheck
script:
# All linters are run with pre-commit hooks
- export PATH="$HOME/.luarocks/bin:$PATH"
- pre-commit run --all-files

View File

@ -7,10 +7,33 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
## [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
@ -40,5 +63,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Initial versioned release.
[Unreleased]: https://github.com/minetest-mods/moreores/compare/v1.1.0...HEAD
[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

@ -1,6 +1,6 @@
# zlib license
Copyright © 2011-2019 Hugo Locurcio and contributors
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.**

View File

@ -18,9 +18,7 @@ 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. If you do so, you will need to extract the archive then rename
the resulting folder from `moreores-master` to `moreores` this is
**absolutely** required, as the mod won't work otherwise.
of More Ores.
### Enable the mod
@ -60,13 +58,13 @@ on that line.
## Version compatibility
More Ores is currently primarily tested with Minetest 0.4.17.
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 0.4.17 will generally not be fixed.
versions than 5.0.0 will generally not be fixed.
## License
Copyright © 2011-2019 Hugo Locurcio and contributors
Copyright © 2011-2020 Hugo Locurcio and contributors
- More Ores code is licensed under the zlib license, see
[`LICENSE.md`](LICENSE.md) for details.

View File

@ -1,4 +0,0 @@
default
farming?
intllib?
mg?

View File

@ -1 +0,0 @@
Adds new Ore types.

View File

@ -3,7 +3,7 @@
** More Ores **
By Calinou, with the help of Nore.
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
=====================================================================
--]]
@ -12,7 +12,8 @@ moreores = {}
local modpath = minetest.get_modpath("moreores")
local S = minetest.get_translator(minetest.get_current_modname())
local S = minetest.get_translator("moreores")
moreores.S = S
dofile(modpath .. "/_config.txt")
@ -21,6 +22,9 @@ if minetest.get_modpath("mg") then
dofile(modpath .. "/mg.lua")
end
-- `frame` support
local use_frame = minetest.get_modpath("frame")
local default_stone_sounds = default.node_sound_stone_defaults()
local default_metal_sounds = default.node_sound_metal_defaults()
@ -87,6 +91,10 @@ local function add_ore(modname, description, mineral_name, oredef)
sounds = default_stone_sounds,
drop = lump_item,
})
if use_frame then
frame.register(modname .. ":mineral_" .. mineral_name)
end
end
if oredef.makes.block then
@ -110,6 +118,9 @@ local function add_ore(modname, description, mineral_name, oredef)
}
})
end
if use_frame then
frame.register(block_item)
end
end
if oredef.makes.lump then
@ -125,6 +136,9 @@ local function add_ore(modname, description, mineral_name, oredef)
recipe = lump_item,
})
end
if use_frame then
frame.register(lump_item)
end
end
if oredef.makes.ingot then
@ -133,6 +147,9 @@ local function add_ore(modname, description, mineral_name, oredef)
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
@ -214,7 +231,18 @@ local function add_ore(modname, description, mineral_name, oredef)
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
@ -327,45 +355,20 @@ else
end
-- Copper rail (unique node)
minetest.register_node("moreores:copper_rail", {
description = S("Copper Rail"),
drawtype = "raillike",
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",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {
-1/2,
-1/2,
-1/2,
1/2,
-1/2 + 1/16,
1/2,
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",
},
},
sounds = default_metal_sounds,
groups = {bendy = 2, snappy = 1, dig_immediate = 2, rail = 1, connect_to_raillike = 1},
mesecons = {
effector = {
action_on = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0.5")
end,
action_off = function(pos, node)
minetest.get_meta(pos):set_string("cart_acceleration", "0")
end,
},
},
})
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",

View File

@ -0,0 +1,22 @@
# textdomain: moreores
# Translation by Xanthin
[moreores] loaded.=[moreores] geladen.
@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,21 @@
# textdomain: moreores
[moreores] loaded.=[moreores] loaded.
@1 Ore=@1 Ore
@1 Lump=@1 Lump
@1 Ingot=@1 Ingot
@1 Block=@1 Block
@1 Pickaxe=@1 Pickaxe
@1 Shovel=@1 Shovel
@1 Axe=@1 Axe
@1 Sword=@1 Sword
@1 Hoe=@1 Hoe
Copper=Copper
Tin=Tin
Bronze=Bronze
Silver=Silver
Gold=Gold
Mithril=Mithril
Copper Rail=Copper Rail

View File

@ -0,0 +1,23 @@
# textdomain: moreores
# Translation by Calinou
[moreores] loaded.=[moreores] a été chargé.
@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,22 @@
# textdomain: moreores
# Translation by An0n3m0us
[moreores] loaded.=[moreores] betöltve.
@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,22 @@
# textdomain: moreores
# Translation by Pagliaccio
[moreores] loaded.=[moreores] caricato.
@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,19 @@
# textdomain: moreores
[moreores] loaded.=[moreores] geladen.
@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,22 @@
# textdomain: moreores
# Translation by mat9117
[moreores] loaded.=[moreores] załadowano.
@1 Ore=@1 Ruda
@1 Lump=@1 Bryłka
@1 Ingot=@1 Sztabka
@1 Block=@1 Blok
@1 Pickaxe=@1 Kilof
@1 Shovel=@1 Łopatka
@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,23 @@
# textdomain: moreores
# Translation by github.com/caiorrs
[moreores] loaded.=[moreores] carregado.
@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,28 @@
# textdomain: moreores
# Translation by Mahmutelmas06
# mahmutelmas06@hotmail.com
# Türkçe Çeviri
# Turkish translation
# Language 2 letter iso code is "tr"
[moreores] loaded.=[moreores] yüklendi.
@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

@ -1,7 +1,7 @@
--[[
More Ores: `mg` mod support
Copyright © 2011-2019 Hugo Locurcio and contributors.
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
@ -44,7 +44,7 @@ mg.register_ore({
wherein = "default:stone",
seeddiff = 10,
maxvdistance = 10.5,
maxheight = -384,
maxheight = -512,
seglenghtn = 2,
seglenghtdev = 4,
sizen = 12,

View File

@ -1 +1,5 @@
name = moreores
description = Adds new ore types.
depends = default
optional_depends = carts,farming,frame,mg,toolranks
min_minetest_version = 5.0.0