From a55b61e54eeba7bd71f5dcc79ccf2763d04c2444 Mon Sep 17 00:00:00 2001 From: Juraj Vajda Date: Sun, 31 Dec 2023 23:07:32 -0500 Subject: [PATCH] Add hammer sharp --- LICENSE.txt | 14 ++- api.lua | 155 ++++++++++++++++++------ bamboo.lua | 2 +- crafting.lua | 11 +- craftitems.lua | 2 +- doors.lua | 2 +- env_sounds.lua | 2 +- fences.lua | 2 +- functions.lua | 71 ++++++++++- init.lua | 2 +- loot_chests.lua | 2 +- mapgen.lua | 2 +- mapgen_after.lua | 2 +- mapgen_bamboo_forest.lua | 2 +- mapgen_bamboo_forest_under.lua | 2 +- mapgen_baobab_savanna.lua | 2 +- mapgen_coral_forest.lua | 2 +- mapgen_coral_forest_deep_ocean.lua | 2 +- mapgen_coral_forest_dunes.lua | 2 +- mapgen_coral_forest_ocean.lua | 2 +- mapgen_coral_forest_under.lua | 2 +- mapgen_crystal_forest.lua | 2 +- mapgen_crystal_forest_deep_ocean.lua | 2 +- mapgen_crystal_forest_dunes.lua | 2 +- mapgen_crystal_forest_ocean.lua | 2 +- mapgen_crystal_forest_shore.lua | 2 +- mapgen_crystal_forest_under.lua | 2 +- mapgen_cursed_lands.lua | 2 +- mapgen_cursed_lands_deep_ocean.lua | 2 +- mapgen_cursed_lands_dunes.lua | 2 +- mapgen_cursed_lands_ocean.lua | 2 +- mapgen_cursed_lands_swamp.lua | 2 +- mapgen_cursed_lands_under.lua | 2 +- mapgen_forsaken_desert.lua | 2 +- mapgen_forsaken_desert_ocean.lua | 2 +- mapgen_forsaken_desert_under.lua | 2 +- mapgen_forsaken_tundra.lua | 2 +- mapgen_forsaken_tundra_beach.lua | 2 +- mapgen_forsaken_tundra_ocean.lua | 2 +- mapgen_forsaken_tundra_under.lua | 2 +- mapgen_frosted_icesheet.lua | 2 +- mapgen_frosted_icesheet_ocean.lua | 2 +- mapgen_frosted_icesheet_under.lua | 2 +- mod_support_mcl.lua | 2 +- mod_support_mcl_aliases.lua | 2 +- mod_support_rp_aliases.lua | 2 +- mod_support_x_farming.lua | 2 +- mod_support_x_obsidianmese.lua | 2 +- mod_support_x_tumbleweed.lua | 2 +- nodes_farming.lua | 2 +- panes.lua | 2 +- scripts/deploy.js | 2 +- sneak_pickup.lua | 2 +- sounds/everness_cool_lava.1.ogg | Bin 0 -> 9583 bytes sounds/everness_cool_lava.2.ogg | Bin 0 -> 7977 bytes sounds/everness_cool_lava.3.ogg | Bin 0 -> 6499 bytes stairs.lua | 2 +- textures/everness_hammer_item.png | Bin 432 -> 388 bytes textures/everness_hammer_mesh.png | Bin 1192 -> 1164 bytes textures/everness_hammer_sharp_item.png | Bin 0 -> 446 bytes textures/everness_hammer_sharp_mesh.png | Bin 0 -> 740 bytes tools.lua | 61 +++++++++- trees.lua | 2 +- vines.lua | 2 +- walls.lua | 2 +- 65 files changed, 326 insertions(+), 92 deletions(-) create mode 100644 sounds/everness_cool_lava.1.ogg create mode 100644 sounds/everness_cool_lava.2.ogg create mode 100644 sounds/everness_cool_lava.3.ogg create mode 100644 textures/everness_hammer_sharp_item.png create mode 100644 textures/everness_hammer_sharp_mesh.png diff --git a/LICENSE.txt b/LICENSE.txt index b021ef8..feb5ba0 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,7 +1,7 @@ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -885,6 +885,10 @@ GNU Lesser General Public License v2.1 or later - everness_mese_tree_sapling.png - everness_mese_tree_top.png - everness_mese_wood.png +- everness_hammer_mesh.png +- everness_hammer_sharp_mesh.png +- everness_hammer_sharp_item.png +- everness_hammer_item.png **CC-BY-SA-4.0, Pixel Perfection by XSSheep**, https://minecraft.curseforge.com/projects/pixel-perfection-freshly-updated @@ -1321,6 +1325,12 @@ https://freesound.org/people/Rudmer_Rotteveel/sounds/590950/ - everness_creaky_door_open.2.ogg - everness_creaky_door_close.ogg +**CC-BY-SA-3.0, celeron55, Perttu Ahola** + +- everness_cool_lava.1.ogg +- everness_cool_lava.2.ogg +- everness_cool_lava.3.ogg + ### Models **CC-BY-SA-4.0, by SaKeL** @@ -1335,6 +1345,7 @@ https://freesound.org/people/Rudmer_Rotteveel/sounds/590950/ - everness_lumecorn.obj - everness_skull_with_candle.obj - everness_venus_trap.obj +- everness_hammer_pick.obj **CC-BY-SA-3.0, by sofar** @@ -1354,6 +1365,7 @@ https://freesound.org/people/Rudmer_Rotteveel/sounds/590950/ - everness_mesh_bush.blend - everness_skull_with_candle.blend - everness_venus_trap.blend +- everness_hammer_pick.blend ### Schematics diff --git a/api.lua b/api.lua index 9888fd9..a486cd2 100644 --- a/api.lua +++ b/api.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -1105,6 +1105,42 @@ local function destroy(drops, npos, cid, c_air, can_dig, owner) end end +-- Draw wear bar texture overlay +function Everness.draw_wear_bar(itemstack, wear) + local itemstack_meta = itemstack:get_meta() + local px_width = 14 + local px_one = 65535 / px_width + local px_color = px_width - math.floor(wear / px_one) + + local inventory_overlay = '[combine:16x16' + + for i = 1, px_width do + if i > px_color then + inventory_overlay = inventory_overlay .. ':' .. i .. ',14=[combine\\:1x1\\^[noalpha\\^[colorize\\:#000000\\:255' + else + local color + + if px_color < px_width / 4 then + -- below 25% + color = '#FF0000' + elseif px_color < (px_width / 4) * 2 then + -- below 50% + color = '#FFA500' + elseif px_color < (px_width / 4) * 3 then + -- below 75% + color = '#FFFF00' + else + -- above 75% + color = '#00FF00' + end + + inventory_overlay = inventory_overlay .. ':' .. i .. ',14=[combine\\:1x1\\^[noalpha\\^[colorize\\:' .. color .. '\\:255' + end + end + + itemstack_meta:set_string('inventory_overlay', inventory_overlay) +end + function Everness.hammer_after_dig_node(pos, node, metadata, digger, can_dig) if not digger then return @@ -1112,7 +1148,7 @@ function Everness.hammer_after_dig_node(pos, node, metadata, digger, can_dig) local wielditem = digger:get_wielded_item() - if wielditem:get_name() ~= 'everness:hammer' then + if not (wielditem:get_name() == 'everness:hammer' or wielditem:get_name() == 'everness:hammer_sharp') then return end @@ -1145,37 +1181,7 @@ function Everness.hammer_after_dig_node(pos, node, metadata, digger, can_dig) wielditem_meta:set_int('everness_wear', new_wear) -- Draw wear bar texture overlay - local px_width = 14 - local px_one = 65535 / px_width - local px_color = px_width - math.floor(new_wear / px_one) - - local inventory_overlay = '[combine:16x16' - - for i = 1, px_width do - if i > px_color then - inventory_overlay = inventory_overlay .. ':' .. i .. ',14=[combine\\:1x1\\^[noalpha\\^[colorize\\:#000000\\:255' - else - local color - - if px_color < px_width / 4 then - -- below 25% - color = '#FF0000' - elseif px_color < (px_width / 4) * 2 then - -- below 50% - color = '#FFA500' - elseif px_color < (px_width / 4) * 3 then - -- below 75% - color = '#FFFF00' - else - -- above 75% - color = '#00FF00' - end - - inventory_overlay = inventory_overlay .. ':' .. i .. ',14=[combine\\:1x1\\^[noalpha\\^[colorize\\:' .. color .. '\\:255' - end - end - - wielditem_meta:set_string('inventory_overlay', inventory_overlay) + Everness.draw_wear_bar(wielditem, new_wear) if wielditem_wear > 65535 then -- Break tool @@ -1185,7 +1191,9 @@ function Everness.hammer_after_dig_node(pos, node, metadata, digger, can_dig) }, true) digger:set_wielded_item(ItemStack('')) - elseif wielditem:get_name() == 'everness:hammer' then + elseif wielditem:get_name() == 'everness:hammer' + or wielditem:get_name() == 'everness:hammer_sharp' + then -- Save wear digger:set_wielded_item(wielditem) end @@ -1199,7 +1207,16 @@ function Everness.hammer_after_dig_node(pos, node, metadata, digger, can_dig) for x = -radius, radius do local r = vector.length(vector.new(x, y, z)) - if (radius * radius) / (r * r) >= (pr:next(30, 60) / 100) then + if wielditem:get_name() == 'everness:hammer' then + if (radius * radius) / (r * r) >= (pr:next(30, 60) / 100) then + local cid = data[vi] + local p = vector.new(pos.x + x, pos.y + y, pos.z + z) + + if cid ~= c_air and cid ~= c_ignore then + data[vi] = destroy(drops, p, cid, c_air, can_dig, p_name) + end + end + else local cid = data[vi] local p = vector.new(pos.x + x, pos.y + y, pos.z + z) @@ -1288,3 +1305,71 @@ function Everness.hammer_after_dig_node(pos, node, metadata, digger, can_dig) }) end end + +-- Function triggered for each qualifying node. +-- `dtime_s` is the in-game time (in seconds) elapsed since the block +-- was last active +function Everness.cool_lava(pos, node, dtime_s, prev_cool_lava_action) + if node.name == 'default:lava_source' or node.name == 'mcl_core:lava_source' then + if math.random(1, 5) == 1 then + local obi_nodes = { + { name = 'everness:blue_crying_obsidian', color = '#2978A6'}, + { name = 'everness:blue_weeping_obsidian', color = '#25B8FF'}, + { name = 'everness:weeping_obsidian', color = '#C90FFF'}, + } + local rand_node = obi_nodes[math.random(1, #obi_nodes)] + + minetest.set_node(pos, { + name = rand_node.name + }) + + minetest.sound_play('everness_cool_lava', + { + pos = pos, + max_hear_distance = 16, + gain = 0.2 + }, + true + ) + + if minetest.has_feature({ dynamic_add_media_table = true, particlespawner_tweenable = true }) then + -- new syntax, after v5.6.0 + minetest.add_particlespawner({ + amount = 80, + time = 1, + size = { + min = 0.5, + max = 1, + }, + exptime = 1, + pos = pos, + glow = 7, + attract = { + kind = 'point', + strength = 0.5, + origin = pos, + die_on_contact = true + }, + radius = 3, + texture = { + name = 'everness_particle.png^[colorize:' .. rand_node.color .. ':255', + alpha_tween = { + 0, 1, + style = 'fwd', + reps = 1 + }, + scale_tween = { + 0.25, 1, + style = 'fwd', + reps = 1 + } + } + }) + end + else + prev_cool_lava_action(pos, node, dtime_s) + end + else + prev_cool_lava_action(pos, node, dtime_s) + end +end diff --git a/bamboo.lua b/bamboo.lua index 08d8e2f..d3edfb9 100644 --- a/bamboo.lua +++ b/bamboo.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/crafting.lua b/crafting.lua index 6dfd11f..de5d8dd 100644 --- a/crafting.lua +++ b/crafting.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -712,6 +712,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'everness:hammer_sharp', + recipe = { + { 'everness:pyriteblock_forged', 'everness:pyriteblock_forged', 'everness:pyriteblock_forged' }, + { 'everness:pyriteblock_forged', 'everness:hammer', 'everness:pyriteblock_forged' }, + { '', 'everness:hammer', '' } + } +}) + -- -- Fuels -- diff --git a/craftitems.lua b/craftitems.lua index 98bcc2d..d83c1b4 100644 --- a/craftitems.lua +++ b/craftitems.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/doors.lua b/doors.lua index cd501b7..ee7edfa 100644 --- a/doors.lua +++ b/doors.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/env_sounds.lua b/env_sounds.lua index 83164a5..d9337fd 100644 --- a/env_sounds.lua +++ b/env_sounds.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/fences.lua b/fences.lua index 6378747..94bfb00 100644 --- a/fences.lua +++ b/fences.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/functions.lua b/functions.lua index baa3557..f26b355 100644 --- a/functions.lua +++ b/functions.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -794,3 +794,72 @@ minetest.register_abm({ minetest.add_particlespawner(particlespawner_def) end }) + +-- Override lava cooling to include some variations of obsidian +minetest.register_on_mods_loaded(function() + for _, abm in pairs(minetest.registered_abms) do + if abm.label == 'Lava cooling' and abm.action ~= nil then + local prev_cool_lava_action = abm.action + + abm.action = function(pos, node, dtime_s) + Everness.cool_lava(pos, node, dtime_s, prev_cool_lava_action) + end + end + end +end) + +-- Calculates `everness:hammer_sharp` wear when crafting +minetest.register_craft_predict(function(itemstack, player, old_craft_grid, craft_inv) + if itemstack and itemstack:get_name() == 'everness:hammer_sharp' then + local stack_meta = itemstack:get_meta() + local hammers = 0 + local wear_total = 0 + + for k, stack in pairs(old_craft_grid) do + if stack:get_name() == 'everness:hammer' then + local meta = stack:get_meta() + wear_total = wear_total + meta:get_int('everness_wear') + hammers = hammers + 1 + end + end + + local average_wear = wear_total / hammers + + stack_meta:set_int('everness_wear', math.ceil(average_wear)) + + -- Draw wear bar texture overlay + if average_wear > 0 then + Everness.draw_wear_bar(itemstack, average_wear) + end + + return itemstack + end +end) + +-- Calculates `everness:hammer_sharp` wear when crafting +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if itemstack and itemstack:get_name() == 'everness:hammer_sharp' then + local stack_meta = itemstack:get_meta() + local hammers = 0 + local wear_total = 0 + + for k, stack in pairs(old_craft_grid) do + if stack:get_name() == 'everness:hammer' then + local meta = stack:get_meta() + wear_total = wear_total + meta:get_int('everness_wear') + hammers = hammers + 1 + end + end + + local average_wear = wear_total / hammers + + stack_meta:set_int('everness_wear', math.ceil(average_wear)) + + -- Draw wear bar texture overlay + if average_wear > 0 then + Everness.draw_wear_bar(itemstack, average_wear) + end + + return itemstack + end +end) diff --git a/init.lua b/init.lua index 16b7ea1..b32681f 100644 --- a/init.lua +++ b/init.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/loot_chests.lua b/loot_chests.lua index f1bb8e1..3b69e04 100644 --- a/loot_chests.lua +++ b/loot_chests.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen.lua b/mapgen.lua index 95d9257..d670cc7 100644 --- a/mapgen.lua +++ b/mapgen.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_after.lua b/mapgen_after.lua index 1e96008..af99e94 100644 --- a/mapgen_after.lua +++ b/mapgen_after.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_bamboo_forest.lua b/mapgen_bamboo_forest.lua index 0fe26ff..24e7155 100644 --- a/mapgen_bamboo_forest.lua +++ b/mapgen_bamboo_forest.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_bamboo_forest_under.lua b/mapgen_bamboo_forest_under.lua index 935875f..2a53184 100644 --- a/mapgen_bamboo_forest_under.lua +++ b/mapgen_bamboo_forest_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_baobab_savanna.lua b/mapgen_baobab_savanna.lua index adbf033..37c80c5 100644 --- a/mapgen_baobab_savanna.lua +++ b/mapgen_baobab_savanna.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_coral_forest.lua b/mapgen_coral_forest.lua index 91ce396..90f1c20 100644 --- a/mapgen_coral_forest.lua +++ b/mapgen_coral_forest.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_coral_forest_deep_ocean.lua b/mapgen_coral_forest_deep_ocean.lua index d95f281..b040131 100644 --- a/mapgen_coral_forest_deep_ocean.lua +++ b/mapgen_coral_forest_deep_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_coral_forest_dunes.lua b/mapgen_coral_forest_dunes.lua index 06dd199..add7161 100644 --- a/mapgen_coral_forest_dunes.lua +++ b/mapgen_coral_forest_dunes.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_coral_forest_ocean.lua b/mapgen_coral_forest_ocean.lua index 88b0dc8..d95e669 100644 --- a/mapgen_coral_forest_ocean.lua +++ b/mapgen_coral_forest_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_coral_forest_under.lua b/mapgen_coral_forest_under.lua index 0c3e284..3d818dd 100644 --- a/mapgen_coral_forest_under.lua +++ b/mapgen_coral_forest_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_crystal_forest.lua b/mapgen_crystal_forest.lua index 1b11a0e..93dd061 100644 --- a/mapgen_crystal_forest.lua +++ b/mapgen_crystal_forest.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_crystal_forest_deep_ocean.lua b/mapgen_crystal_forest_deep_ocean.lua index 0d60369..8138fc8 100644 --- a/mapgen_crystal_forest_deep_ocean.lua +++ b/mapgen_crystal_forest_deep_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_crystal_forest_dunes.lua b/mapgen_crystal_forest_dunes.lua index 7f67801..6fb0101 100644 --- a/mapgen_crystal_forest_dunes.lua +++ b/mapgen_crystal_forest_dunes.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_crystal_forest_ocean.lua b/mapgen_crystal_forest_ocean.lua index 1867eae..a7b02ec 100644 --- a/mapgen_crystal_forest_ocean.lua +++ b/mapgen_crystal_forest_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_crystal_forest_shore.lua b/mapgen_crystal_forest_shore.lua index 811a50d..1fe1f1f 100644 --- a/mapgen_crystal_forest_shore.lua +++ b/mapgen_crystal_forest_shore.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_crystal_forest_under.lua b/mapgen_crystal_forest_under.lua index 6e00889..9a361b6 100644 --- a/mapgen_crystal_forest_under.lua +++ b/mapgen_crystal_forest_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_cursed_lands.lua b/mapgen_cursed_lands.lua index 4d5a0fa..aec0ca9 100644 --- a/mapgen_cursed_lands.lua +++ b/mapgen_cursed_lands.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_cursed_lands_deep_ocean.lua b/mapgen_cursed_lands_deep_ocean.lua index 858e8d6..128f94e 100644 --- a/mapgen_cursed_lands_deep_ocean.lua +++ b/mapgen_cursed_lands_deep_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_cursed_lands_dunes.lua b/mapgen_cursed_lands_dunes.lua index f1dd5b2..e48a9e7 100644 --- a/mapgen_cursed_lands_dunes.lua +++ b/mapgen_cursed_lands_dunes.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_cursed_lands_ocean.lua b/mapgen_cursed_lands_ocean.lua index fc9f03a..9a875fe 100644 --- a/mapgen_cursed_lands_ocean.lua +++ b/mapgen_cursed_lands_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_cursed_lands_swamp.lua b/mapgen_cursed_lands_swamp.lua index bb2dff5..59c637c 100644 --- a/mapgen_cursed_lands_swamp.lua +++ b/mapgen_cursed_lands_swamp.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_cursed_lands_under.lua b/mapgen_cursed_lands_under.lua index e453efe..ea6c490 100644 --- a/mapgen_cursed_lands_under.lua +++ b/mapgen_cursed_lands_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_desert.lua b/mapgen_forsaken_desert.lua index 19055fa..1f854da 100644 --- a/mapgen_forsaken_desert.lua +++ b/mapgen_forsaken_desert.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_desert_ocean.lua b/mapgen_forsaken_desert_ocean.lua index d8ddc68..dff383c 100644 --- a/mapgen_forsaken_desert_ocean.lua +++ b/mapgen_forsaken_desert_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_desert_under.lua b/mapgen_forsaken_desert_under.lua index 51262f5..6dbf737 100644 --- a/mapgen_forsaken_desert_under.lua +++ b/mapgen_forsaken_desert_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_tundra.lua b/mapgen_forsaken_tundra.lua index 7d8c6db..0bdca69 100644 --- a/mapgen_forsaken_tundra.lua +++ b/mapgen_forsaken_tundra.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_tundra_beach.lua b/mapgen_forsaken_tundra_beach.lua index 9a91e8b..f2b67e1 100644 --- a/mapgen_forsaken_tundra_beach.lua +++ b/mapgen_forsaken_tundra_beach.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_tundra_ocean.lua b/mapgen_forsaken_tundra_ocean.lua index e45ad86..5dce6ab 100644 --- a/mapgen_forsaken_tundra_ocean.lua +++ b/mapgen_forsaken_tundra_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_forsaken_tundra_under.lua b/mapgen_forsaken_tundra_under.lua index d675811..7de428e 100644 --- a/mapgen_forsaken_tundra_under.lua +++ b/mapgen_forsaken_tundra_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_frosted_icesheet.lua b/mapgen_frosted_icesheet.lua index 9cd8904..bca798d 100644 --- a/mapgen_frosted_icesheet.lua +++ b/mapgen_frosted_icesheet.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_frosted_icesheet_ocean.lua b/mapgen_frosted_icesheet_ocean.lua index 7271b7f..8ef1682 100644 --- a/mapgen_frosted_icesheet_ocean.lua +++ b/mapgen_frosted_icesheet_ocean.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mapgen_frosted_icesheet_under.lua b/mapgen_frosted_icesheet_under.lua index bfd253d..f39364f 100644 --- a/mapgen_frosted_icesheet_under.lua +++ b/mapgen_frosted_icesheet_under.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mod_support_mcl.lua b/mod_support_mcl.lua index 2bc6fc3..12b42ff 100644 --- a/mod_support_mcl.lua +++ b/mod_support_mcl.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mod_support_mcl_aliases.lua b/mod_support_mcl_aliases.lua index 8b42579..ce5f432 100644 --- a/mod_support_mcl_aliases.lua +++ b/mod_support_mcl_aliases.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mod_support_rp_aliases.lua b/mod_support_rp_aliases.lua index 76dc3c7..4a124b4 100644 --- a/mod_support_rp_aliases.lua +++ b/mod_support_rp_aliases.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mod_support_x_farming.lua b/mod_support_x_farming.lua index a0d88ac..aa26ad7 100644 --- a/mod_support_x_farming.lua +++ b/mod_support_x_farming.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mod_support_x_obsidianmese.lua b/mod_support_x_obsidianmese.lua index 4e1af67..7679929 100644 --- a/mod_support_x_obsidianmese.lua +++ b/mod_support_x_obsidianmese.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/mod_support_x_tumbleweed.lua b/mod_support_x_tumbleweed.lua index 39bccc5..62df3a5 100644 --- a/mod_support_x_tumbleweed.lua +++ b/mod_support_x_tumbleweed.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/nodes_farming.lua b/nodes_farming.lua index 418ddc8..68f716c 100644 --- a/nodes_farming.lua +++ b/nodes_farming.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/panes.lua b/panes.lua index 6d45ee1..9b8f151 100644 --- a/panes.lua +++ b/panes.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/scripts/deploy.js b/scripts/deploy.js index f1ffcd7..a8249d1 100644 --- a/scripts/deploy.js +++ b/scripts/deploy.js @@ -1,6 +1,6 @@ /** * Deploy code to CDB - * Copyright (C) 2023 SaKeL + * Copyright (C) 2024 SaKeL * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/sneak_pickup.lua b/sneak_pickup.lua index af8b86d..2127aa6 100644 --- a/sneak_pickup.lua +++ b/sneak_pickup.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/sounds/everness_cool_lava.1.ogg b/sounds/everness_cool_lava.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..42506ddffa2cfa4d3177bf13ce1e49b6785ac4b8 GIT binary patch literal 9583 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
F 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 nW~$6=@x>`Ovb9>9M97n055 literal 0 HcmV?d00001 diff --git a/stairs.lua b/stairs.lua index 0cc17f4..4a50234 100644 --- a/stairs.lua +++ b/stairs.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/textures/everness_hammer_item.png b/textures/everness_hammer_item.png index 031997c3e049395354cf27ed8159abd25720b0c4..1f472629af26f64d6cebcc29afc5dd08eed2a517 100644 GIT binary patch delta 343 zcmV-d0jU141B3&RHh(!uL_t(|0b_74@WDhgr*7J}_sZVAmocTVXqeQu7Kj$l-=CY) z6eX~XfQA{9eDQ&U2W|op zP8)z4Jls=(W&>3(TCg{f=Q@xCYS_2u3Qj)&-F@Kjb%^S(x_>{93w;N&iwgUI;+Pr` zZp+Q>0jgUl`~gVDM3w{XJb(W2p@TQEYlyPYgXn>%2Kwj7(L2i)9mK9dL&|(cwqv2Y zRa|U?vr{b4?1Klc&YHFnh!)P@%YdmG=yZ46e7Ju$ZaF=%e?3t3njeozwEgQ!OH z4-f%0podbBfl%7EzEmR>7p!4`9uILgMnHGxyIKI*_z{DosGK+39&61&h-$(bfT|bs p{|7o9!Y8ajNlFK(8fXKN8URQ6Ip@g3R-OO=002ovPDHLkV1nc?rMCb8 delta 387 zcmV-}0et?11F!>-Hh*PFL_t(|0b_74@WDi-*$bD=Ke2J@GfXKg8WKbLGoz=qlx|o! z`{>HZrvx+dC#LT$< zvh=xS`HL7ZReZOanr7*0L%6zHu8o>!b5j;p=Pk=l0{a1%YB;hsjcYQvTAncvJ(PkB z)VB4dLR6z6d-G)Uc!;wx0=hfj)dI-Ij~Hf7+q8JWzBMaPKvWafFsXlCcgISg1_+<9 h28i+d_Ff@U0|48GDa~5o8TtSK002ovPDHLkV1iuSy3qgt diff --git a/textures/everness_hammer_mesh.png b/textures/everness_hammer_mesh.png index 183a803886b2b26f90766a6ff0d4868711f1e326..74736ebff956f025ec9a62fb172d27926e4135a6 100644 GIT binary patch delta 1125 zcmV-r1e*J(35*GlHh)1$L_t(|0i=}!bSrBVh3~?%ZQHhOzjskyE2-P5?Tg^8nbet? zq_#DwJ?*n?+s4;5&+n#Ot4V(K?Emb&&-s_UI?r?$>PN~vo zudWv#ef-hB!AVUk6N~sB^$d@DhB(Z0!$T_)P3Bm0RE#;A!GETQ9=Ij+&K>?OsT9RJ zXJvM(EFbbpT!fWDrQB-GRFs3?Y_IEVP;2X)6&XT?DygzmR;_lprIKtRDMyHBTH>f? zMU`Aky#ka;h4~gWAzFOts88&+rd4}BrylV6_AK|<{@*GGzui{naY@Q1|IGy!nY2oz zs#>)}aXiygJ1wVIU;{=qY4K#16|t;#_kbhqivmD*GK z(>>i!Kv7dg8(VM)Mb@;3$$+3FwC*84IAMh;8NeQRUVj1NO<_TPtC!xs^p3q8dD{yF zb3(K^_QBhInOahE5=^0JSRqQf)?+Blph~o(DqASb;doQ{Od`Le5A#3V%V*zmY=ea` z5`^HQmmZnIMN?YWEmwscf5_RKp5br##b@pqpj0ZVbyjUnkx|>tE$f6kuh{_rwnMsvXveFEe`mKf6Uepi54l;j!v}rL01PNL zGMG7f#BEo4by2F2izD$RB4a09q>n!L(Q)77BBxZvff)dNEQ&%%@r+}9fiG7bn4-k5IyXc%YPYr1xPdnC*epJ^BC9K_xlHGXc7M`rSDp{=tQgZdWssZhBmW7!+*`h=d>hI$9^8Xmda)6mbK? zrbKt|^P6F(`2isEbGnXgXz?fvC(r6rcYo|D(=ZT#0|vnHho4DwGMFDgsGkou&5YYh zFA7+?37gXIa^f;E6+MzI4$R(*X0C%ewTV}Z8pcIcu5N@aSGu4G#xR)Kf8C-0C@Y7h ztj6t`*yp#6>n&J_zlzc!9ynYCOXRdD07%%HR!9aPAN#Z6BHoY+rJdG99WbWjFJ1}& z2C#}+*p7?V2gVYSTQha-|1}g*cX8%O!=?)a;5p+DRe8ct6~=yFX-*w5&b|4j0ITAh rn3TMj1d1#mM$y1qFlxc51vEtf^0)(}Zv1b400000NkvXXu0mjfiNY#a delta 1153 zcmV-{1b+LB38)E>Hh*17L_t(|0i>1ldUIJ6hx_+j#n`popthMbMO>t5Y}H1L+O|Em zZF_EEelutMHTm>BIX-8-J8QjrZNFu!W!^qB=U8i~)-HK=*C+Q6T`$i%Hu((GvU?G~ zd83J$cbI*Ww zogOsaqn+!JFPJ&cTRPSYk_D~oj&|vgf~(C>Wb{<*_E(-7T0MwfMX4@MEbT5o?yYzR zcNDBn-0=!f)T{N`Cp{Ifro=Sr#LIO>=DOmZW5p*W>4u72Wh0|QTCdN1#KH3f?ax(YykbIa5N0u`I2F8+x?O`?irbP?_6dQmzk%zbRq6 zF*+H;6#7_%jMaxhFpCZRQk5}yg1FOL@ghd^`<=jbuYgv%SV+^F@-9+hSelmcmsIcd zX(nyGN0dmKfY!BNdU3+sK#CX{!e#oaa`up%*&gy}Fn>}++>x?Jh&x^ZnbBF)P?9Kc zCN4NVBepC)Br_wiBq=hR8eNQ$W<;mssj6PQIkvW7U)dVp!pSjvF)<)4CoYd1o>`DU z%Zn>g1RK2qAPFp5bSyN}Wou)rghi0*-xf`cpW^2&1o116^uHbe1!2*!cBU$5g|NuN zxiWWb!+#R^Yay*0Dr&}a#$*1QD#g5_OOT&nM#VO_}il9 z+|Fv=kCF|FTjR-@x=c0YpxeDr&ir7aPeiwhpXdzn75D;_cxuM8v%&^ z)4@YuO!|yY01&-HIM7ntGZS;(Qrjl3?@$YDGPZR#>bW!eJMFC_aQA-zoTI8Yk4^wy zb$`B%N;XvX1U^Y+GR#80MIoGeruiFcytt;QtFfy4(E8%P0ra>KV~S)#Yh?ffJi7c3Vy563Ba~zZb;!qHZtOwXrD@< z1wT#eT=pYwR*|kxiB1~p1rFR8DPginBzux|WqQF*RjE_A{oEajOG&(s&ScdN$HNC-{u z5K!jdo*J2Mj$VunAR!jo5lU^2+~z&$M5*zp_zC@80e%}XiU!_-Q42;bpeX_XXUDJ0 T5(E^{00000NkvXXu0mjfFlaK} diff --git a/textures/everness_hammer_sharp_item.png b/textures/everness_hammer_sharp_item.png new file mode 100644 index 0000000000000000000000000000000000000000..1fecdba4df0cab40a85c699d61dca9951b11489e GIT binary patch literal 446 zcmV;v0YUzWP)~Ylo2<{g|}WAnIPExXXYb0YL&^E>B_H=pMWQ28|y|dg?#Y z6Mx`w3?6Q%gs@;(6WU*QP;Egn3*NxOVU1A1XK^^m3Al}XI@AR7h3yhx)2glnnH%%p z+zc7y^pD$d8<^a&IS-HZ;@#nvY+2Ekql;^>bwz7Z&NO6K@7xk`9VpW+f#XYhv1o8F zejcbT5MivzzH!AkIa(8(*XrU@u6G$~?0}qW5_q(+qC`aI?Ces=b+6}e;?|ua`0M`YnUc&O!hX4Qo07*qoM6N<$f|YF4m;e9( literal 0 HcmV?d00001 diff --git a/textures/everness_hammer_sharp_mesh.png b/textures/everness_hammer_sharp_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..e36ef1391515dd337785c1f882644431908e4145 GIT binary patch literal 740 zcmV>aYI#;{NHf{`cDc{Ojqvbm_foS~xCtOh0i)I&(=pST-zP zJTkSw+L^G`mZis{t(H##MQ8ME&~ZyRmMGZZL0jQRTKsV^1+iR!-ch zJ+yo==BF;-s5o3vIDbYE=cg>`wL;yJCcv3Y)vHD`U1pnU8(~i|baYE>OeVp3A)RO! zg+&RUXcees3f!qY#+XEJbx@XSA+xi1%&k*;NEUZV8COz0JX&0lY$u^-6W*yg*{VU- zlP=hkEcn-t_2Q}g@5KK4(oybVvmng=4#cPJsoD0t*@i7BmX?sr3phXy)G+^z#GW W{wI&WC~Hdq0000 + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -218,6 +218,7 @@ minetest.register_tool('everness:shell_of_underwater_breathing', { -- minetest.register_on_mods_loaded(function() + -- Hammer functionality and populating `cid_data` for lated VoxelManipulation for name, def in pairs(minetest.registered_nodes) do if def.walkable and def.pointable and def.diggable then local prev_after_dig = def.after_dig_node @@ -302,3 +303,61 @@ minetest.register_node('everness:hammer', { end end }) + +minetest.register_node('everness:hammer_sharp', { + description = S('Sharp') .. ' ' .. S('Hammer'), + mod_origin = 'evermess', + inventory_image = 'everness_hammer_sharp_item.png', + use_texture_alpha = 'clip', + drawtype = 'mesh', + mesh = 'everness_hammer_pick.obj', + tiles = { 'everness_hammer_sharp_mesh.png' }, + wield_scale = { x = 2, y = 2, z = 2 }, + node_placement_prediction = '', + range = 4.0, + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level = 3, + groupcaps = { + cracky = { times = { [1] = 2.0, [2] = 1.0, [3] = 0.50 }, uses = 30, maxlevel = 3 }, + }, + damage_groups = { fleshy = 5 }, + -- MCL + punch_attack_uses = 781, + }, + stack_max = 1, + sound = { breaks = 'everness_tool_breaks' }, + -- MCL + _mcl_toollike_wield = true, + groups = { + -- MCL + tool = 1, + dig_speed_class = 5 + }, + -- MCL + _mcl_diggroups = { + pickaxey = { speed = 8, level = 5, uses = 1562 } + }, + on_place = function(itemstack, placer, pointed_thing) + -- disable placing (returns `nil`) + if pointed_thing.type == 'node' then + local pos = minetest.get_pointed_thing_position(pointed_thing) + + if not pos or not placer then + return + end + + local pointed_node = minetest.get_node(pos) + local pointed_node_def = minetest.registered_nodes[pointed_node.name] + + if not pointed_node then + return + end + + -- check if we have to use default on_place first + if pointed_node_def.on_rightclick then + return pointed_node_def.on_rightclick(pos, pointed_node, placer, itemstack, pointed_thing) + end + end + end +}) diff --git a/trees.lua b/trees.lua index c08b48f..9b4a271 100644 --- a/trees.lua +++ b/trees.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/vines.lua b/vines.lua index 1a7f002..573c534 100644 --- a/vines.lua +++ b/vines.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public diff --git a/walls.lua b/walls.lua index 5b37a40..aba5824 100644 --- a/walls.lua +++ b/walls.lua @@ -1,6 +1,6 @@ --[[ Everness. Never ending discovery in Everness mapgen. - Copyright (C) 2023 SaKeL + Copyright (C) 2024 SaKeL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public