forked from MineClone5/MineClone5
Rename register_digtime_group to register_diggroup
This commit is contained in:
parent
fa86d4e5eb
commit
0c90dda04c
|
@ -20,9 +20,9 @@ In MineClone 2, all diggable node have the hardness set in the custom field
|
||||||
"_mcl_hardness" (0 by default). Digging groups are registered using the
|
"_mcl_hardness" (0 by default). Digging groups are registered using the
|
||||||
following code:
|
following code:
|
||||||
|
|
||||||
mcl_autogroup.register_digtime_group("pickaxey", { levels = 5 })
|
mcl_autogroup.register_diggroup("pickaxey", { levels = 5 })
|
||||||
mcl_autogroup.register_digtime_group("shovely")
|
mcl_autogroup.register_diggroup("shovely")
|
||||||
mcl_autogroup.register_digtime_group("shovely")
|
mcl_autogroup.register_diggroup("shovely")
|
||||||
|
|
||||||
The first line registers "pickaxey" as a digging group. The "levels" field
|
The first line registers "pickaxey" as a digging group. The "levels" field
|
||||||
indicates that the digging group have 5 levels (in this case one for each
|
indicates that the digging group have 5 levels (in this case one for each
|
||||||
|
@ -51,24 +51,18 @@ _mcl_autogroup contains most of the code. The leading underscore in the name
|
||||||
as possible. Minetest loads mods in reverse alphabetical order.
|
as possible. Minetest loads mods in reverse alphabetical order.
|
||||||
--]]
|
--]]
|
||||||
|
|
||||||
-- The groups which affect dig times
|
|
||||||
local basegroups = {}
|
|
||||||
for group, _ in pairs(mcl_autogroup.registered_digtime_groups) do
|
|
||||||
table.insert(basegroups, group)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Returns a table containing the unique "_mcl_hardness" for nodes belonging to
|
-- Returns a table containing the unique "_mcl_hardness" for nodes belonging to
|
||||||
-- each basegroup.
|
-- each diggroup.
|
||||||
local function get_hardness_values_for_groups()
|
local function get_hardness_values_for_groups()
|
||||||
local maps = {}
|
local maps = {}
|
||||||
local values = {}
|
local values = {}
|
||||||
for _, g in pairs(basegroups) do
|
for g, _ in pairs(mcl_autogroup.registered_diggroups) do
|
||||||
maps[g] = {}
|
maps[g] = {}
|
||||||
values[g] = {}
|
values[g] = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, ndef in pairs(minetest.registered_nodes) do
|
for _, ndef in pairs(minetest.registered_nodes) do
|
||||||
for _, g in pairs(basegroups) do
|
for g, _ in pairs(mcl_autogroup.registered_diggroups) do
|
||||||
if ndef.groups[g] ~= nil then
|
if ndef.groups[g] ~= nil then
|
||||||
maps[g][ndef._mcl_hardness or 0] = true
|
maps[g][ndef._mcl_hardness or 0] = true
|
||||||
end
|
end
|
||||||
|
@ -81,14 +75,14 @@ local function get_hardness_values_for_groups()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, g in pairs(basegroups) do
|
for g, _ in pairs(mcl_autogroup.registered_diggroups) do
|
||||||
table.sort(values[g])
|
table.sort(values[g])
|
||||||
end
|
end
|
||||||
return values
|
return values
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Returns a table containing a table indexed by "_mcl_hardness_value" to get
|
-- Returns a table containing a table indexed by "_mcl_hardness_value" to get
|
||||||
-- its index in the list of unique hardnesses for each basegroup.
|
-- its index in the list of unique hardnesses for each diggroup.
|
||||||
local function get_hardness_lookup_for_groups(hardness_values)
|
local function get_hardness_lookup_for_groups(hardness_values)
|
||||||
map = {}
|
map = {}
|
||||||
for g, values in pairs(hardness_values) do
|
for g, values in pairs(hardness_values) do
|
||||||
|
@ -117,7 +111,8 @@ local function compute_creativetimes(group)
|
||||||
return creativetimes
|
return creativetimes
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Get the list of digging times for using a specific tool on a specific group.
|
-- Get the list of digging times for using a specific tool on a specific
|
||||||
|
-- diggroup.
|
||||||
--
|
--
|
||||||
-- Parameters:
|
-- Parameters:
|
||||||
-- group - the group which it is digging
|
-- group - the group which it is digging
|
||||||
|
@ -190,7 +185,7 @@ local function add_groupcaps(groupcaps, groupcaps_def)
|
||||||
for g, capsdef in pairs(groupcaps_def) do
|
for g, capsdef in pairs(groupcaps_def) do
|
||||||
local mult = capsdef.tool_multiplier or 1
|
local mult = capsdef.tool_multiplier or 1
|
||||||
local eff = capsdef.efficiency or 0
|
local eff = capsdef.efficiency or 0
|
||||||
local def = mcl_autogroup.registered_digtime_groups[g]
|
local def = mcl_autogroup.registered_diggroups[g]
|
||||||
local level = capsdef.level or 1
|
local level = capsdef.level or 1
|
||||||
local max_level = def.levels or 0
|
local max_level = def.levels or 0
|
||||||
|
|
||||||
|
@ -247,7 +242,7 @@ local overwrite = function()
|
||||||
|
|
||||||
-- Assign groups used for digging this node depending on
|
-- Assign groups used for digging this node depending on
|
||||||
-- the registered digging groups
|
-- the registered digging groups
|
||||||
for g, gdef in pairs(mcl_autogroup.registered_digtime_groups) do
|
for g, gdef in pairs(mcl_autogroup.registered_diggroups) do
|
||||||
local index = hardness_lookup[g][ndef._mcl_hardness]
|
local index = hardness_lookup[g][ndef._mcl_hardness]
|
||||||
if ndef.groups[g] then
|
if ndef.groups[g] then
|
||||||
if gdef.levels then
|
if gdef.levels then
|
||||||
|
|
|
@ -9,8 +9,8 @@ _mcl_autogroup contains most of the code. The leading underscore in the name
|
||||||
as possible. Minetest loads mods in reverse alphabetical order.
|
as possible. Minetest loads mods in reverse alphabetical order.
|
||||||
--]]
|
--]]
|
||||||
mcl_autogroup = {}
|
mcl_autogroup = {}
|
||||||
mcl_autogroup.registered_digtime_groups = {}
|
mcl_autogroup.registered_diggroups = {}
|
||||||
|
|
||||||
function mcl_autogroup.register_digtime_group(group, def)
|
function mcl_autogroup.register_diggroup(group, def)
|
||||||
mcl_autogroup.registered_digtime_groups[group] = def or {}
|
mcl_autogroup.registered_diggroups[group] = def or {}
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,16 +3,16 @@ mcl_core = {}
|
||||||
-- Repair percentage for toolrepair
|
-- Repair percentage for toolrepair
|
||||||
mcl_core.repair = 0.05
|
mcl_core.repair = 0.05
|
||||||
|
|
||||||
mcl_autogroup.register_digtime_group("handy")
|
mcl_autogroup.register_diggroup("handy")
|
||||||
mcl_autogroup.register_digtime_group("pickaxey", { levels = 5 })
|
mcl_autogroup.register_diggroup("pickaxey", { levels = 5 })
|
||||||
mcl_autogroup.register_digtime_group("axey")
|
mcl_autogroup.register_diggroup("axey")
|
||||||
mcl_autogroup.register_digtime_group("shovely")
|
mcl_autogroup.register_diggroup("shovely")
|
||||||
mcl_autogroup.register_digtime_group("shearsy")
|
mcl_autogroup.register_diggroup("shearsy")
|
||||||
mcl_autogroup.register_digtime_group("shearsy_wool")
|
mcl_autogroup.register_diggroup("shearsy_wool")
|
||||||
mcl_autogroup.register_digtime_group("shearsy_cobweb")
|
mcl_autogroup.register_diggroup("shearsy_cobweb")
|
||||||
mcl_autogroup.register_digtime_group("swordy")
|
mcl_autogroup.register_diggroup("swordy")
|
||||||
mcl_autogroup.register_digtime_group("swordy_cobweb")
|
mcl_autogroup.register_diggroup("swordy_cobweb")
|
||||||
mcl_autogroup.register_digtime_group("creative_breakable")
|
mcl_autogroup.register_diggroup("creative_breakable")
|
||||||
|
|
||||||
-- Load files
|
-- Load files
|
||||||
local modpath = minetest.get_modpath("mcl_core")
|
local modpath = minetest.get_modpath("mcl_core")
|
||||||
|
|
Loading…
Reference in New Issue