User:Lil Toady
Jump to navigation
Jump to search
TODO:
- OOP tostring
- OOP vectors
- Optimize destroyElement
- Release packets queue after function call
OOP Metatable Structure
-- Exposed to global environment
Element = {
create = createElement,
setPosition = setElementPosition,
...
}
Vehicle = {
create = createVehicle,
setColor = setVehicleColor,
...
}
-- Hidden in lua registry, applied to userdata
ElementMT = {
__index = CLuaClassDefs::Index,
__newindex = CLuaClassDefs::NewIndex,
__class = Element,
__set = {
type = CLuaClassDefs::ReadOnly,
health = setElementHealth,
...
},
__get = {
type = getElementType,
health = getElementHealth,
...
},
}
VehicleMT = {
__index = CLuaClassDefs::Index,
__newindex = CLuaClassDefs::NewIndex,
__class = Vehicle,
__parent = ElementMT,
__set = {
damageProof = setVehicleDamageProof
...
},
__get = {
damageProof = isVehicleDamageProof
...
},
}
