diff --git a/mods/default/tools.lua b/mods/default/tools.lua index 78792a7..02708b6 100644 --- a/mods/default/tools.lua +++ b/mods/default/tools.lua @@ -30,7 +30,7 @@ if minetest.setting_getbool("creative_mode") == true then { type = "none", wield_image = "wieldhand.png", - wield_scale = {x=1,y=1,z=2.0}, + wield_scale = {x=1.5,y=3,z=3}, tool_capabilities = { full_punch_interval = 1.0, max_drop_level = 0, diff --git a/mods/jewels/README.txt b/mods/jewels/README.txt new file mode 100644 index 0000000..d6b2551 --- /dev/null +++ b/mods/jewels/README.txt @@ -0,0 +1,8 @@ +Jewels mod +========== +By Kaadmy + +Adds tools with different stats via a Jeweler's Workbench. + +Asset license: WTFPL +Source license: WTFPL diff --git a/mods/jewels/depends.txt b/mods/jewels/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/jewels/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/jewels/init.lua b/mods/jewels/init.lua new file mode 100644 index 0000000..fc4f0d0 --- /dev/null +++ b/mods/jewels/init.lua @@ -0,0 +1,108 @@ +-- +-- Jewels mod +-- By Kaadmy +-- + +jewels = {} +jewels.registered_jewels = {} + +local function p(i) + if i >= 0 then i = "+" .. i end + return i +end + +function jewels.register_jewel(toolname, new_toolname, def) + -- registers a new tool with different stats + + local data = { + overlay = def.overlay or "jewels_jeweled_handle.png", -- overlay image + stats = { + digspeed = def.stats.digspeed, -- negative digs faster + maxlevel = def.stats.maxlevel, -- positive digs higher levels + maxdrop= def.stats.maxdrop, -- positive increases max drop level + uses = def.stats.uses, -- positive increases uses + fleshy = def.stats.fleshy, -- positive increases fleshy damage + range = def.stats.range, -- positive increases reach distance with tool + } + } + + jewels.registered_jewels[toolname] = data + + local tooldef = minetest.registered_tools[toolname] + + local new_tool_invimage = "" + if tooldef.inventory_image then + new_tool_invimage = tooldef.inventory_image .. "^" .. data.overlay + end + + local new_tool_wieldimage = "" + if tooldef.wield_image then + new_tool_wieldimage = tooldef.wield_image .. "^" .. data.overlay + end + + local new_tooldef = tooldef + local desc = new_tooldef.description or "" + + desc = "Jeweled " .. desc + + new_tooldef.inventory_image = new_tool_invimage + new_tooldef.wield_image = new_tool_wieldimage + + if data.stats.range and new_tooldef.range then + new_tooldef.range = new_tooldef.range + data.stats.range + desc = desc .. "\nRange: " .. p(data.stats.range) + end + + if new_tooldef.tool_capabilities then + if data.stats.maxdrop and new_tooldef.tool_capabilities.max_drop_level then + new_tooldef.tool_capabilities.max_drop_level = new_tooldef.tool_capabilities.max_drop_level + data.stats.maxdrop + desc = desc .. "\nDrop level: " .. p(data.stats.maxdrop) + end + + if data.stats.digspeed then + for group, cap in pairs(new_tooldef.tool_capabilities.groupcaps) do + for i, _ in ipairs(cap.times) do + cap.times[i] = cap.times[i] + data.stats.digspeed + end + + if data.stats.maxlevel and cap.maxlevel then + cap.maxlevel = cap.maxlevel + data.stats.maxlevel + desc = desc .. "\nDig level: " .. p(data.stats.maxlevel) + end + + if data.stats.uses and cap.uses then + cap.uses = cap.uses + data.stats.uses + desc = desc .. "\nUses: " .. p(data.stats.uses) + end + end + desc = desc .. "\nDig speed: " .. p(data.stats.digspeed) .. " seconds" + end + + if data.stats.fleshy and new_tooldef.tool_capabilities.damage_groups and new_tooldef.tool_capabilities.damage_groups.fleshy then + new_tooldef.tool_capabilities.damage_groups.fleshy = new_tooldef.tool_capabilities.damage_groups.fleshy + data.stats.fleshy + desc = desc .. "\nDamage: " .. p(data.stats.fleshy) + end + end + + new_tooldef.description = desc + + minetest.register_tool(new_toolname, new_tooldef) +end + +jewels.register_jewel( + "default:pick_steel", + "jewels:pick_steel_digspeed", + { + stats = { + fleshy = 2, + } + }) + +minetest.register_craftitem( + "jewels:jewel", + { + description = "Jewel", + inventory_image = "jewels_jewel.png", + stack_max = 10 + }) + diff --git a/mods/jewels/textures/jewels_jewel.png b/mods/jewels/textures/jewels_jewel.png new file mode 100644 index 0000000..e30a2a3 Binary files /dev/null and b/mods/jewels/textures/jewels_jewel.png differ diff --git a/mods/jewels/textures/jewels_jewel.xcf b/mods/jewels/textures/jewels_jewel.xcf new file mode 100644 index 0000000..18d1ed7 Binary files /dev/null and b/mods/jewels/textures/jewels_jewel.xcf differ diff --git a/mods/jewels/textures/jewels_jeweled_handle.xcf b/mods/jewels/textures/jewels_jeweled_handle.xcf new file mode 100644 index 0000000..6ec351c Binary files /dev/null and b/mods/jewels/textures/jewels_jeweled_handle.xcf differ