module Engine.Systems.UpdateSystem;

import Engine.System;
import Engine.CStorage;
import Engine.Entity;

class UpdateSystem : System {
   
	override void start() {
		
	}
	
	override void process() {
		foreach(cs ; ComponentStorage.all()) {
			cs.RunFunction!(void delegate())("Update");
		}
	}

	@property override Timing timing() { 
		return Timing.Update;
	}
	
	override void onEntityEnter(Entity e) {

	}
	
	override void onEntityLeave(Entity e) {
		
	}
}