28 lines
432 B
Crystal
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
|