22 lines
		
	
	
		
			359 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
		
		
			
		
	
	
			22 lines
		
	
	
		
			359 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
|  | local PWClass = {} | ||
|  | 
 | ||
|  | local function MetaCall(cls, ...) | ||
|  |     local inst = { | ||
|  |         __CLASS = cls | ||
|  |     } | ||
|  |     cls.ctor(inst, ...) | ||
|  |     return setmetatable(inst, cls) | ||
|  | end | ||
|  | 
 | ||
|  | function PWClass.derive(name, base) | ||
|  |     local cls = { | ||
|  |         __CLASS_NAME = name | ||
|  |     } | ||
|  |     cls.__index = cls | ||
|  |     return setmetatable(cls, { | ||
|  |         __call = MetaCall | ||
|  |     }) | ||
|  | end | ||
|  | 
 | ||
|  | 
 | ||
|  | return PWClass |