Page 1 of 1

Overriding The Hand

PostPosted: Mon Dec 01, 2014 10:01
by LocaL_ALchemisT
":" from default mod
how to override this item to give action when user left-clicked while empty-handed?

Re: Overriding The Hand

PostPosted: Mon Dec 01, 2014 17:03
by TG-MyinaWD
I think its Hardcoded in the Source. Since I tried making the hand a nodebox but it gives me a warning. So it somewhere in the Source.

Re: Overriding The Hand

PostPosted: Mon Dec 01, 2014 17:27
by rubenwardy
Code: Select all
minetest.register_item(":", {
   type = "none",
   wield_image = "wieldhand.png",
   wield_scale = {x=1,y=1,z=2.5},
   tool_capabilities = {
      full_punch_interval = 0.9,
      max_drop_level = 0,
      groupcaps = {
         crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
         snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
         oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0}
      },
      damage_groups = {fleshy=1},
   }
})


https://github.com/minetest/minetest_ga ... ols.lua#L4

Re: Overriding The Hand

PostPosted: Mon Dec 01, 2014 17:47
by pandaro
This is a good question.
I tried using "minetest.override_item ()"
This raises an error:
18:42:59: ERROR[main]: ...est/0.49.5/bin/../games/blockrole/mods/tradeoff/init.lua:2: Attempt to redefine type of : to "none"
So the only solution I see is to change the definition of the hand in default.
If some core developper could implement a more elegant solution would be useful.

Re: Overriding The Hand

PostPosted: Mon Dec 01, 2014 19:51
by rubenwardy
pandaro wrote:This is a good question.
I tried using "minetest.override_item ()"
This raises an error:
18:42:59: ERROR[main]: ...est/0.49.5/bin/../games/blockrole/mods/tradeoff/init.lua:2: Attempt to redefine type of : to "none"
So the only solution I see is to change the definition of the hand in default.
If some core developper could implement a more elegant solution would be useful.


Override item is supposed to be used to override properties, not the whole thing.
The name of the hand is "", not ":" (":" is used to allow the item name to be "", it is the override character).

Suggestion: minetest.registered_items[""].on_punch = ...

Re: Overriding The Hand

PostPosted: Mon Dec 01, 2014 20:31
by pandaro
sorry rubenwardy
i try with your subgestion like:
minetest.registered_items[""].on_use=function(itemstack,placer,pointed_thing)
print(tostring("hell"))
end
there is somethings wrong?

Re: Overriding The Hand

PostPosted: Tue Dec 16, 2014 19:03
by Hybrid Dog
I've got a question about hand:
When I played with an old tnt mod, a hand spawned. And it was an entity, l think. How can l let my hand spawn somewhere outside my inventory without writing a special code for it?