From bac6157ffb37f2e67d713ca14eca23adb1a85f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Mon, 25 Dec 2017 20:46:49 +0100 Subject: [PATCH] Make state persistent --- init.lua | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index a75f112..df54fc5 100644 --- a/init.lua +++ b/init.lua @@ -85,16 +85,27 @@ end function boat.on_activate(self, staticdata, dtime_s) - self.object:set_armor_groups({immortal = 1}) - if staticdata then - self.v = tonumber(staticdata) - end - self.last_v = self.v + self.object:set_armor_groups({immortal = 1}) + local data = {} + if staticdata then + data = minetest.deserialize(staticdata) + if not data then + return + end + + self.v = data.v + self.instructions = data.instr + self.selfdriving = data.sdr + self.dnext = data.dn + self.current = data.cur + end + self.last_v = self.v end function boat.get_staticdata(self) - return tostring(self.v) + data = {v = self.v, instr = self.instructions, cur = self.current, sdr = self.selfdriving, dn = self.dnext} + return minetest.serialize(data) end