1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-02 16:38:41 +00:00

Only apply "touch_punch_gesture" when wielded item has no on_use callback (#15098)

This commit is contained in:
grorp 2024-09-12 23:41:47 +02:00 committed by GitHub
parent 8617993386
commit af67353f7a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 17 additions and 5 deletions

View file

@ -45,7 +45,8 @@ TouchInteraction::TouchInteraction()
pointed_object = TouchInteractionMode_USER;
}
TouchInteractionMode TouchInteraction::getMode(PointedThingType pointed_type) const
TouchInteractionMode TouchInteraction::getMode(const ItemDefinition &selected_def,
PointedThingType pointed_type) const
{
TouchInteractionMode result;
switch (pointed_type) {
@ -63,7 +64,9 @@ TouchInteractionMode TouchInteraction::getMode(PointedThingType pointed_type) co
}
if (result == TouchInteractionMode_USER) {
if (pointed_type == POINTEDTHING_OBJECT)
if (pointed_type == POINTEDTHING_OBJECT && !selected_def.usable)
// Only apply when we're actually able to punch the object, i.e. when
// the selected item has no on_use callback defined.
result = g_settings->get("touch_punch_gesture") == "long_tap" ?
LONG_DIG_SHORT_PLACE : SHORT_DIG_LONG_PLACE;
else