]> git.lizzy.rs Git - dragonblocks3d-lua.git/blobdiff - modules/PlayerSystem/src/player.lua
Refactoring
[dragonblocks3d-lua.git] / modules / PlayerSystem / src / player.lua
diff --git a/modules/PlayerSystem/src/player.lua b/modules/PlayerSystem/src/player.lua
new file mode 100644 (file)
index 0000000..4bf03b9
--- /dev/null
@@ -0,0 +1,28 @@
+local Player = {}
+
+function Player:init()
+       Dragonblocks.create_event_interface(self)
+       self.pos = glm.vec3(0, 0, 0)
+end
+
+function Player:set_position(pos)
+       self:fire_event({
+               type = "on_set_position",
+               new_position = pos,
+               cancel = false
+       }, function(evt) self:raw_set_position(evt) end)
+end
+
+function Player:raw_set_position(event)
+       local self = event.origin
+       if not event.cancel then
+               self.pos = event.new_position
+       end
+       self:fire_event({
+               type = "after_set_position",
+       })
+end
+
+
+
+return Player