From cb1bc03681dff958da6ff851cfe32dfdd83f6f8d Mon Sep 17 00:00:00 2001 From: jussi Date: Wed, 22 May 2024 00:11:40 +0300 Subject: Object lib serialization. --- examples/resources/lib/rectangle.lua | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'examples/resources/lib/rectangle.lua') diff --git a/examples/resources/lib/rectangle.lua b/examples/resources/lib/rectangle.lua index 7413f53..5fc6c63 100644 --- a/examples/resources/lib/rectangle.lua +++ b/examples/resources/lib/rectangle.lua @@ -6,7 +6,7 @@ end local Vector2 = require( "vector2" ) local Rectangle = {} -Rectangle.meta = { +local metatable = { __index = Rectangle, __tostring = function( r ) return "{"..tostring( r.x )..", "..tostring( r.y )..", "..tostring( r.width )..", "..tostring( r.height ).."}" @@ -44,7 +44,7 @@ Rectangle.meta = { } function Rectangle:new( x, y, width, height ) - local object = setmetatable( {}, Rectangle.meta ) + local object = setmetatable( {}, metatable ) object.x = x or 0 object.y = y or object.x @@ -55,7 +55,7 @@ function Rectangle:new( x, y, width, height ) end function Rectangle:newT( t ) - local object = setmetatable( {}, Rectangle.meta ) + local object = setmetatable( {}, metatable ) object.x, object.y, object.width, object.height = table.unpack( t ) @@ -63,7 +63,7 @@ function Rectangle:newT( t ) end function Rectangle:newR( r ) - local object = setmetatable( {}, Rectangle.meta ) + local object = setmetatable( {}, metatable ) object.x = r.x object.y = r.y @@ -91,6 +91,10 @@ function Rectangle:setR( r ) self.height = r.height end +function Rectangle:serialize() + return "Rectangle:new("..self.x..","..self.y..","..self.width..","..self.height..")" +end + function Rectangle:arr() return { self.x, self.y, self.width, self.height } end -- cgit v1.2.3