I just discovered that lua support operator overloading for tables so I had to test it out.
So i tried in TIC-80 and it works, so I though "What about moonscript ?'
It happens that it is that easy:
-- example of the use of lua's metamethods with moonscript's classes
class Vector
new:(x,y)=>
@x = x
@y = y
__add:(vecA,vecB)->
return Vector(vecA.x + vecB.x, vecA.y + vecB.y)
a = Vector 1,2
b = Vector 3,4
c = a + b
print "c.x = "..c.x -- prints 4 (1+3 = 4)
print "c.y = "..c.y -- prints 6 (2+4 = 6)
So it is possible to change the behavior of operators based on the class of the tables.
If other people are interrested, you can read the lua doc regarding metamethods.
