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 ""
|
local itemdesc = itemdef.original_description or ""
|
||||||
itemmeta:set_string(enchantment_name,level)
|
itemmeta:set_string(enchantment_name,level)
|
||||||
itemmeta:set_string("description", tool_level_enchanting.create_description(itemdesc, dugnodes, itemstack))
|
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
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -29,8 +32,23 @@ end
|
|||||||
|
|
||||||
-- Efficiency
|
-- Efficiency
|
||||||
-- 10% speed increase each level?
|
-- 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
|
-- Fortune
|
||||||
-- 10% Chance per level of doubling ore
|
-- 10% Chance per level of doubling ore
|
||||||
@ -56,7 +74,6 @@ end
|
|||||||
|
|
||||||
-- This keeps existing handling of node drops
|
-- This keeps existing handling of node drops
|
||||||
local old_handle_node_drops = minetest.handle_node_drops
|
local old_handle_node_drops = minetest.handle_node_drops
|
||||||
|
|
||||||
function minetest.handle_node_drops(pos, drops, digger)
|
function minetest.handle_node_drops(pos, drops, digger)
|
||||||
if not digger or not digger:is_player() then
|
if not digger or not digger:is_player() then
|
||||||
return old_handle_node_drops(pos, drops, digger)
|
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
|
end
|
||||||
|
|
||||||
function tool_level_enchanting.create_description(name, uses, itemstack)
|
function tool_level_enchanting.create_description(name, uses, itemstack)
|
||||||
enchantment_string = 'Enchants:'
|
local enchantment_string = 'Enchants:'
|
||||||
if itemstack then
|
if itemstack then
|
||||||
local itemmeta = itemstack:get_meta()
|
local itemmeta = itemstack:get_meta()
|
||||||
local unbreaking = tonumber(itemmeta:get_string("unbreaking")) or 0
|
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 fortune = tonumber(itemmeta:get_string("fortune")) or 0
|
||||||
local silk_touch = tonumber(itemmeta:get_string("silk_touch")) or 0
|
local silk_touch = tonumber(itemmeta:get_string("silk_touch")) or 0
|
||||||
local auto_repair = tonumber(itemmeta:get_string("auto_repair")) or 0
|
local auto_repair = tonumber(itemmeta:get_string("auto_repair")) or 0
|
||||||
|
|
||||||
-- Make sure play exists
|
-- Make sure play exists
|
||||||
if not pname then return itemstack end
|
if not pname then return itemstack end
|
||||||
|
|
||||||
@ -111,7 +112,6 @@ function tool_level_enchanting.on_use(itemstack, user, node, digparams)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function tool_level_enchanting.add_tool(name)
|
function tool_level_enchanting.add_tool(name)
|
||||||
print(name)
|
|
||||||
local desc = ItemStack(name):get_definition().description
|
local desc = ItemStack(name):get_definition().description
|
||||||
minetest.override_item(name, {
|
minetest.override_item(name, {
|
||||||
original_description = desc,
|
original_description = desc,
|
||||||
@ -121,4 +121,8 @@ function tool_level_enchanting.add_tool(name)
|
|||||||
end
|
end
|
||||||
|
|
||||||
tool_level_enchanting.add_tool("default:pick_wood")
|
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")
|
tool_level_enchanting.add_tool("default:pick_diamond")
|
1
mod.conf
1
mod.conf
@ -2,3 +2,4 @@ name = tool_level_enchanting
|
|||||||
description = Enchant Tools based on how much you use them
|
description = Enchant Tools based on how much you use them
|
||||||
author = jasonl8446
|
author = jasonl8446
|
||||||
title = Tool Level Enchanting
|
title = Tool Level Enchanting
|
||||||
|
depends = default
|
Reference in New Issue
Block a user