Object lib serialization.

This commit is contained in:
jussi
2024-05-22 00:11:40 +03:00
parent c95c797da6
commit cb1bc03681
10 changed files with 198 additions and 8 deletions

View File

@@ -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