Design goals are: minimal overhead (one table); minimal extra code to use
it (two lines in the header, to have a space to store a reference to the
table), same API for classes with and without a table; allow switching to
a table-bound class without derived classes having to know about it; keep
zero per-object overhead for classes that don't need it.
of its base classes, set __index in the methods table to point to the base class's
methods table. This has a few important advantages. First and most importantly,
types don't need access to the Luna type of their base to derive from it, so these
definitions don't have to be in the headers, and probably don't need to be
templated. Second, you can say:
function Actor:queue_rotate()
self:linear(0.5)
self:rotationz( 180 )
end
OnCommand=x,100;queue_rotate
This partially worked previously, but wasn't inherited; a function defined for
Actor wouldn't work for BitmapText.
(changes that use this in a few minutes)