added tween extension to visualize clicks
This commit is contained in:
parent
cd480daccc
commit
6f8bd55fc3
3 changed files with 36 additions and 22 deletions
|
|
@ -1,33 +1,47 @@
|
||||||
local api = ...
|
local api = ...
|
||||||
|
local tween = require "ext/tween/tween" -- https://github.com/kikito/tween.lua
|
||||||
|
|
||||||
return {
|
return {
|
||||||
enabled = false,
|
enabled = (lovr ~= nil),
|
||||||
|
|
||||||
init = function()
|
init = function()
|
||||||
local tweenUpdater = api.ecs.processingSystem({
|
local tweenUpdater = api.ecs.processingSystem({
|
||||||
updatethread = true,
|
updatethread = true,
|
||||||
filter = api.ecs.requireAll('tween'),
|
filter = function(obj) return true end, --obj.tween ~= nil end,
|
||||||
nocache = true,
|
nocache = true,
|
||||||
process = function( self, obj, dt)
|
process = function( self, obj, dt)
|
||||||
print("JAAA")
|
if obj.tween ~= nil then
|
||||||
foreach( obj.tween, function(k,t)
|
if obj.tween:update(dt) ~= true then
|
||||||
print("TWEENING!")
|
if obj.tween.target.scale ~= nil then
|
||||||
if t:update(dt) == true then
|
obj.model:setNodeScale(
|
||||||
obj.tween[k] = nil -- delete tween
|
obj.tween.subject.name,
|
||||||
if count(obj.tween) == 0 then
|
obj.tween.subject.scale[1],
|
||||||
obj.tween = nil
|
obj.tween.subject.scale[2],
|
||||||
print("deleted tweens")
|
obj.tween.subject.scale[3]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
api.ecs.remove( api.world, obj )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
api.ecs.addSystem( api.world, tweenUpdater )
|
api.ecs.addSystem( api.world, tweenUpdater )
|
||||||
end
|
end,
|
||||||
|
|
||||||
---- visualize click
|
onClick = function(obj,collider)
|
||||||
--onClick
|
-- visualize click
|
||||||
--obj.scale = 0.66
|
if obj.model ~= nil and obj.node ~= nil and obj.node.scale ~= nil then
|
||||||
--obj.tween = obj.tween or {}
|
local x = obj.node.scale[1]
|
||||||
--obj.tween['scale'] = tween.new(0.5, obj, {scale = 1})
|
local y = obj.node.scale[2]
|
||||||
|
local z = obj.node.scale[3]
|
||||||
|
obj.node.scale[1] = x * 0.88
|
||||||
|
obj.node.scale[2] = y * 0.88
|
||||||
|
obj.node.scale[3] = z * 0.88
|
||||||
|
api.ecs.add( api.world, {
|
||||||
|
model = obj.model,
|
||||||
|
tween = tween.new(0.13, obj.node, {scale = {x, y, z} })
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ xrf.makeClickable = function( physicsWorld, cb)
|
||||||
scale[3] * (d + 0.01) -- planes e.g.
|
scale[3] * (d + 0.01) -- planes e.g.
|
||||||
)
|
)
|
||||||
print("making node " .. node['name'] .. " clickable: " .. node.extras.href )
|
print("making node " .. node['name'] .. " clickable: " .. node.extras.href )
|
||||||
collider:setUserData( {name = node['name'], node = node, onclick = cb })
|
collider:setUserData( {name = node['name'], node = node, model = model, mesh = mesh, onclick = cb })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
local api = ...
|
local api = ...
|
||||||
local url = require('url')
|
local url = require('url')
|
||||||
local tween = require('tween')
|
|
||||||
local ecs = api.ecs
|
local ecs = api.ecs
|
||||||
local xrf = require("ext/xrfragments/lovr-xrf")
|
local xrf = require("ext/xrfragments/lovr-xrf")
|
||||||
xrf.level2 = api.util.addModuleHooks( require("ext/xrfragments/level2") )
|
xrf.level2 = api.util.addModuleHooks( require("ext/xrfragments/level2") )
|
||||||
|
|
@ -18,10 +17,11 @@ xrfimpl = {
|
||||||
function(obj, collider)
|
function(obj, collider)
|
||||||
local href = obj.node.extras.href
|
local href = obj.node.extras.href
|
||||||
trace("\n[xrf] href was clicked: " .. href)
|
trace("\n[xrf] href was clicked: " .. href)
|
||||||
|
api.ext.exec("onClick", obj, collider)
|
||||||
|
|
||||||
local ok = xrf.level2.load( href, obj, api.ext.URI.current, xrfimpl.onLoad)
|
--local ok = xrf.level2.load( href, obj, api.ext.URI.current, xrfimpl.onLoad)
|
||||||
or
|
-- or
|
||||||
xrf.level4.import( href, obj, api.ext.URI.current, xrfimpl.onImport)
|
-- xrf.level4.import( href, obj, api.ext.URI.current, xrfimpl.onImport)
|
||||||
|
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue