User:Lil Toady: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (9 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
===TODO:=== | ===TODO:=== | ||
* OOP tostring | * OOP tostring | ||
* | * Handle vectors in CLuaArgument | ||
* Optimize destroyElement | * Optimize destroyElement | ||
* Release packets queue after function call | * Release packets queue after function call | ||
* Enhance files and timers (gc) | |||
===OOP Metatable Structure=== | |||
<syntaxhighlight lang="lua"> | |||
-- 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, | |||
__call = __class.create, | |||
__set = { | |||
type = CLuaClassDefs::ReadOnly, | |||
health = setElementHealth, | |||
... | |||
}, | |||
__get = { | |||
type = getElementType, | |||
health = getElementHealth, | |||
... | |||
}, | |||
} | |||
VehicleMT = { | |||
__index = CLuaClassDefs::Index, | |||
__newindex = CLuaClassDefs::NewIndex, | |||
__class = Vehicle, | |||
__parent = ElementMT, | |||
__call = __class.create, | |||
__set = { | |||
damageProof = setVehicleDamageProof | |||
... | |||
}, | |||
__get = { | |||
damageProof = isVehicleDamageProof | |||
... | |||
}, | |||
} | |||
</syntaxhighlight> | |||
Latest revision as of 14:48, 6 June 2014
TODO:
- OOP tostring
- Handle vectors in CLuaArgument
- Optimize destroyElement
- Release packets queue after function call
- Enhance files and timers (gc)
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,
__call = __class.create,
__set = {
type = CLuaClassDefs::ReadOnly,
health = setElementHealth,
...
},
__get = {
type = getElementType,
health = getElementHealth,
...
},
}
VehicleMT = {
__index = CLuaClassDefs::Index,
__newindex = CLuaClassDefs::NewIndex,
__class = Vehicle,
__parent = ElementMT,
__call = __class.create,
__set = {
damageProof = setVehicleDamageProof
...
},
__get = {
damageProof = isVehicleDamageProof
...
},
}
