mirror of
https://github.com/archfan7411/enhanced.git
synced 2024-12-22 21:22:24 +01:00
Add init.lua
This commit is contained in:
parent
544f3462d5
commit
fd4ea763af
87
init.lua
Normal file
87
init.lua
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
-- Tool enhancement (mese infusion) mod by archfan7411, licensed MIT.
|
||||||
|
|
||||||
|
-- Factor by which performance is to be increased for enhanced tools.
|
||||||
|
-- Default is 1.2, which translates to a 20% increase in effectiveness.
|
||||||
|
local modifier = 1.2
|
||||||
|
|
||||||
|
-- Tint of enhanced tools.
|
||||||
|
local tint = "#FFFF00"
|
||||||
|
-- Opacity of said tint (0-255)
|
||||||
|
local opacity = 40
|
||||||
|
|
||||||
|
-- Saving the default tool registration function for later use.
|
||||||
|
old_register_tool = minetest.register_tool
|
||||||
|
|
||||||
|
-- Overriding the tool registration to also define enhanced tools
|
||||||
|
function minetest.register_tool(name, def)
|
||||||
|
|
||||||
|
-- Copying the given tool def to create the enhanced def
|
||||||
|
local e_def = table.copy(def)
|
||||||
|
|
||||||
|
-- The name is a separate argument which we need to copy as well.
|
||||||
|
local e_name = name
|
||||||
|
|
||||||
|
-- If the tool has standardized tool capabilities
|
||||||
|
if e_def.tool_capabilities and e_def.tool_capabilities.groupcaps then
|
||||||
|
|
||||||
|
local e_groupcaps = e_def.tool_capabilities.groupcaps
|
||||||
|
|
||||||
|
-- For each group the tool has defined capabilities for
|
||||||
|
for i, group in pairs(e_groupcaps) do
|
||||||
|
|
||||||
|
-- Ensure the group is a table
|
||||||
|
if type(group) == "table" and group.times then
|
||||||
|
|
||||||
|
-- For every group level defined in "times"
|
||||||
|
for index, level in pairs(group.times) do
|
||||||
|
|
||||||
|
-- Decrease the time to dig that level; speeding it up by modifier% (default 20%)
|
||||||
|
e_def.tool_capabilities.groupcaps[i].times[index] = level / modifier
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Improve damage dealt by tool
|
||||||
|
if e_def.tool_capabilities.damage_groups then
|
||||||
|
for group, value in pairs(e_def.tool_capabilities.damage_groups) do
|
||||||
|
e_def.tool_capabilities.damage_groups[group] = math.ceil(value * modifier)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- We create our own inventory image by tinting the provided inventory image yellow
|
||||||
|
if e_def.inventory_image then
|
||||||
|
|
||||||
|
e_def.inventory_image = e_def.inventory_image .. "^[colorize:"..tint..":"..opacity
|
||||||
|
end
|
||||||
|
|
||||||
|
-- In case the tool has a separate wield image, we must tint it as well.
|
||||||
|
if e_def.wield_image then
|
||||||
|
|
||||||
|
e_def.wield_image = e_def.wield_image .. "^[colorize:"..tint..":"..opacity
|
||||||
|
end
|
||||||
|
|
||||||
|
-- We make the enhanced version's description by concatenating "Enhanced" to the start of the given description.
|
||||||
|
if e_def.description then
|
||||||
|
|
||||||
|
e_def.description = "Enhanced " .. e_def.description
|
||||||
|
end
|
||||||
|
|
||||||
|
-- This code concatenates "_enhanced" to the itemstring of the tool
|
||||||
|
e_name = e_name .. "_enhanced"
|
||||||
|
|
||||||
|
-- Registering the enhanced tool.
|
||||||
|
old_register_tool(e_name, e_def)
|
||||||
|
|
||||||
|
-- Registering a craft for the enhanced tool.
|
||||||
|
minetest.register_craft({
|
||||||
|
output = e_name,
|
||||||
|
type = "shapeless",
|
||||||
|
recipe = {name, "default:mese_crystal"},
|
||||||
|
})
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Registering the normal tool with the normal parameters.
|
||||||
|
old_register_tool(name, def)
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user