diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua index b022bacd80..d40b8e01b0 100644 --- a/mods/ITEMS/mcl_tools/init.lua +++ b/mods/ITEMS/mcl_tools/init.lua @@ -49,7 +49,7 @@ minetest.register_item(":", { _doc_items_longdesc = S("You use your bare hand whenever you are not wielding any item. With your hand you can mine most blocks, but this is the slowest method and only the weakest blocks will yield their useful drop. The hand also deals minor damage by punching. Using the hand is often a last resort, as proper mining tools and weapons are much better.").."\n".. S("When you are wielding an item which is not a mining tool or a weapon, it will behave as if it were the hand when you start mining or punching.").."\n".. S("In Creative Mode, the hand is able to break all blocks instantly."), - wield_image = "wieldhand.png", + wield_image = "blank.png", wield_scale = {x=1.0,y=1.0,z=2.0}, -- According to Minecraft Wiki, the exact range is 3.975. -- Minetest seems to only support whole numbers, so we use 4. diff --git a/mods/ITEMS/mcl_tools/textures/wieldhand.png b/mods/ITEMS/mcl_tools/textures/wieldhand.png deleted file mode 100644 index 47d21f6901..0000000000 Binary files a/mods/ITEMS/mcl_tools/textures/wieldhand.png and /dev/null differ diff --git a/mods/PLAYER/wieldview/init.lua b/mods/PLAYER/wieldview/init.lua index dab577fa86..2da5cea862 100644 --- a/mods/PLAYER/wieldview/init.lua +++ b/mods/PLAYER/wieldview/init.lua @@ -71,6 +71,9 @@ minetest.register_on_joinplayer(function(player) wieldview.wielded_item[name] = "" minetest.after(0, function(player) wieldview:update_wielded_item(player) + local itementity = minetest.add_entity(player:get_pos(), "wieldview:wieldnode") + itementity:set_attach(player, "Right_Hand", vector.new(0, 0, 0), vector.new(15, 45, 0)) + itementity:get_luaentity().wielder = name end, player) end) @@ -80,3 +83,42 @@ minetest.register_globalstep(function() end end) +minetest.register_entity("wieldview:wieldnode", { + initial_properties = { + hp_max = 1, + visual = "wielditem", + physical = false, + textures = {""}, + automatic_rotate = 1.5, + is_visible = true, + pointable = false, + collide_with_objects = false, + static_save = false, + collisionbox = {-0.21, -0.21, -0.21, 0.21, 0.21, 0.21}, + selectionbox = {-0.21, -0.21, -0.21, 0.21, 0.21, 0.21}, + visual_size = {x = 0.21, y = 0.21}, + }, + + itemstring = "", + + on_step = function(self) + local player = minetest.get_player_by_name(self.wielder) + if player then + local wielded = player:get_wielded_item() + local itemstring = wielded:to_string() + if self.itemstring ~= itemstring then + local itemname = wielded:get_name() + local def = minetest.registered_items[itemname] + self.object:set_properties({glow = def and def.light_source or 0}) + if armor.textures[self.wielder].wielditem == "blank.png" then + self.object:set_properties({textures = {itemname}, wield_item = itemstring}) + else + self.object:set_properties({textures = {""}, wield_item = ""}) + end + self.itemstring = itemstring + end + else + self.object:remove() + end + end, +})