Add optional Lua scripting module, examples, and validation
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
local motion = require("util.motion")
|
||||
|
||||
local Beacon = faset.behavior {
|
||||
id = "example.lua_beacon",
|
||||
version = 1,
|
||||
name = "Lua Beacon",
|
||||
fields = {
|
||||
amplitude = { name = "Height", type = "number", default = 0.3, min = 0, max = 2 },
|
||||
frequency = { name = "Frequency", type = "number", default = 0.7, min = 0, max = 5 }
|
||||
}
|
||||
}
|
||||
|
||||
function Beacon:on_start()
|
||||
self.state.origin_y = self.entity:transform().position.y
|
||||
self.state.elapsed = 0
|
||||
end
|
||||
|
||||
function Beacon:update(delta)
|
||||
self.state.elapsed = self.state.elapsed + delta
|
||||
local pose = self.entity:transform()
|
||||
pose.position.y = self.state.origin_y
|
||||
+ motion.bob(self.state.elapsed, self.fields.frequency, self.fields.amplitude)
|
||||
pose.rotation.z = self.state.elapsed
|
||||
self.entity:set_transform(pose)
|
||||
end
|
||||
|
||||
return Beacon
|
||||
Reference in New Issue
Block a user