EntityCoolSystem/src/ecs/system.cr

28 lines
432 B
Crystal

class ECS::System
include ECS::World::HasWorldRef
include ECS::EntityContainer
@dirty = Hash(String, ECS::System).new
def dirt(name : String, system = ECS::System) : self
@dirty[name] = system
self
end
def dirty? : Bool
!@dirty.empty?
end
module Init
abstract def init : self
end
module Update
abstract def update : self
end
module Cleanup
abstract def cleanup : self
end
end