generated from jasonl8446/minetest-boilerplate
Added efficiency
This commit is contained in:
23
enchants.lua
23
enchants.lua
@ -11,6 +11,9 @@ function tool_level_enchanting.set_enchantment(itemstack,enchantment_name,level)
|
||||
local itemdesc = itemdef.original_description or ""
|
||||
itemmeta:set_string(enchantment_name,level)
|
||||
itemmeta:set_string("description", tool_level_enchanting.create_description(itemdesc, dugnodes, itemstack))
|
||||
if enchantment_name == "efficiency" then
|
||||
itemstack = tool_level_enchanting.efficiency_change(itemstack,level)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
@ -29,8 +32,23 @@ end
|
||||
|
||||
-- Efficiency
|
||||
-- 10% speed increase each level?
|
||||
-- Max Level 10
|
||||
|
||||
-- Max Level 5
|
||||
function tool_level_enchanting.efficiency_change(itemstack, enchant_level)
|
||||
local itemmeta = itemstack:get_meta()
|
||||
local itemdef = itemstack:get_definition()
|
||||
print(ItemStack("default:pick_diamond"):get_tool_capabilities())
|
||||
if itemdef.tool_capabilities then
|
||||
local speed_multiplier = 1 - (0.1 * tonumber(enchant_level))
|
||||
local cap = table.copy(itemdef.tool_capabilities)
|
||||
for _,c in pairs(cap.groupcaps) do
|
||||
for i,t in pairs(c.times) do
|
||||
c.times[i] = t * speed_multiplier --FIXME: add actual
|
||||
end
|
||||
end
|
||||
itemmeta:set_tool_capabilities(cap)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- Fortune
|
||||
-- 10% Chance per level of doubling ore
|
||||
@ -56,7 +74,6 @@ end
|
||||
|
||||
-- This keeps existing handling of node drops
|
||||
local old_handle_node_drops = minetest.handle_node_drops
|
||||
|
||||
function minetest.handle_node_drops(pos, drops, digger)
|
||||
if not digger or not digger:is_player() then
|
||||
return old_handle_node_drops(pos, drops, digger)
|
||||
|
8
init.lua
8
init.lua
@ -27,7 +27,7 @@ function tool_level_enchanting.get_level(uses)
|
||||
end
|
||||
|
||||
function tool_level_enchanting.create_description(name, uses, itemstack)
|
||||
enchantment_string = 'Enchants:'
|
||||
local enchantment_string = 'Enchants:'
|
||||
if itemstack then
|
||||
local itemmeta = itemstack:get_meta()
|
||||
local unbreaking = tonumber(itemmeta:get_string("unbreaking")) or 0
|
||||
@ -85,6 +85,7 @@ function tool_level_enchanting.on_use(itemstack, user, node, digparams)
|
||||
local fortune = tonumber(itemmeta:get_string("fortune")) or 0
|
||||
local silk_touch = tonumber(itemmeta:get_string("silk_touch")) or 0
|
||||
local auto_repair = tonumber(itemmeta:get_string("auto_repair")) or 0
|
||||
|
||||
-- Make sure play exists
|
||||
if not pname then return itemstack end
|
||||
|
||||
@ -111,7 +112,6 @@ function tool_level_enchanting.on_use(itemstack, user, node, digparams)
|
||||
end
|
||||
|
||||
function tool_level_enchanting.add_tool(name)
|
||||
print(name)
|
||||
local desc = ItemStack(name):get_definition().description
|
||||
minetest.override_item(name, {
|
||||
original_description = desc,
|
||||
@ -121,4 +121,8 @@ function tool_level_enchanting.add_tool(name)
|
||||
end
|
||||
|
||||
tool_level_enchanting.add_tool("default:pick_wood")
|
||||
tool_level_enchanting.add_tool("default:pick_stone")
|
||||
tool_level_enchanting.add_tool("default:pick_steel")
|
||||
tool_level_enchanting.add_tool("default:pick_bronze")
|
||||
tool_level_enchanting.add_tool("default:pick_mese")
|
||||
tool_level_enchanting.add_tool("default:pick_diamond")
|
Reference in New Issue
Block a user