mirror of
				https://github.com/Ukendio/jecs.git
				synced 2025-10-31 09:09:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			21 lines
		
	
	
	
		
			810 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
	
		
			810 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| local jecs = require("@jecs")
 | |
| local world = jecs.World.new()
 | |
| 
 | |
| local Model = world:component()
 | |
| 
 | |
| -- It is important to define hooks for the component before the component is ever used
 | |
| -- otherwise the hooks will never invoke!
 | |
| world:set(Model, jecs.OnRemove, function(entity)
 | |
| 	-- OnRemove is invoked before the component and its value is removed
 | |
| 	-- which provides a stable reference to the entity at deletion.
 | |
| 	-- This means that it is safe to retrieve the data inside of a hook
 | |
| 	local model = world:get(entity, Model)
 | |
| 	model:Destroy()
 | |
| end)
 | |
| 
 | |
| world:set(Model, jecs.OnSet, function(entity, model)
 | |
| 	-- OnSet is invoked after the data has been assigned.
 | |
| 	-- It also returns the data for faster access.
 | |
| 	-- There may be some logic to do some side effects on reassignments
 | |
| 	model:SetAttribute("entityId", entity)
 | |
| end)
 |