Skip to content

Commit 43bcef5

Browse files
author
Björn Ritzl
committed
Keep track of initial node scale and reset it between effects in simple_input
1 parent f9a4248 commit 43bcef5

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

ludobits/m/simple_input.lua

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function M.register(node_or_string, callback)
2222
assert(node_or_string, "You must provide a node")
2323
assert(callback, "You must provide a callback")
2424
local node = ensure_node(node_or_string)
25-
registered_nodes[node] = { url = msg.url(), callback = callback, node = node }
25+
registered_nodes[node] = { url = msg.url(), callback = callback, node = node, scale = gui.get_scale(node) }
2626
end
2727

2828
--- Unregister a previously registered node or all nodes
@@ -42,14 +42,15 @@ function M.unregister(node_or_string)
4242
end
4343
end
4444

45-
local function shake(node)
45+
local function shake(node, initial_scale)
4646
gui.cancel_animation(node, "scale.x")
4747
gui.cancel_animation(node, "scale.y")
48+
gui.set_scale(node, initial_scale)
4849
local scale = gui.get_scale(node)
4950
gui.set_scale(node, scale * 1.2)
5051
gui.animate(node, "scale.x", scale.x, gui.EASING_OUTELASTIC, 0.8)
5152
gui.animate(node, "scale.y", scale.y, gui.EASING_OUTELASTIC, 0.8, 0.05, function()
52-
gui.set_scale(node, scale)
53+
gui.set_scale(node, initial_scale)
5354
end)
5455
end
5556

@@ -75,7 +76,7 @@ function M.on_input(action_id, action)
7576
if registered_node.url == url then
7677
local node = registered_node.node
7778
if is_enabled(node) and gui.pick_node(node, action.x, action.y) then
78-
shake(node)
79+
shake(node, registered_node.scale)
7980
registered_node.callback()
8081
return true
8182
end

0 commit comments

Comments
 (0)