module Draco::Scenes::InstanceMethods
Internal: The plugin code for a Draco::World
Public Instance Methods
after_initialize()
click to toggle source
# File lib/draco/scenes.rb, line 27 def after_initialize @scenes = {} scene_definitions.each do |name, klass| @scenes[name] = klass.new end @current_scene = default_scene end
before_tick(context)
click to toggle source
Calls superclass method
# File lib/draco/scenes.rb, line 37 def before_tick(context) super + @current_scene.systems.map do |system| entities = filter(system.filter) system.new(entities: entities, world: self) end end
default_scene()
click to toggle source
# File lib/draco/scenes.rb, line 63 def default_scene defined = self.class.instance_variable_get(:@default_scene) raise UndefinedSceneError, "No scene defined with name #{defined.inspect}" unless @scenes[defined] @scenes[defined] end
filter(*components)
click to toggle source
Calls superclass method
# File lib/draco/scenes.rb, line 45 def filter(*components) super.merge(@current_scene.filter(*components)) end
scene()
click to toggle source
# File lib/draco/scenes.rb, line 53 def scene @current_scene end
scene=(name)
click to toggle source
# File lib/draco/scenes.rb, line 57 def scene=(name) raise UndefinedSceneError, "No scene defined with name #{name.inspect}" unless @scenes[name] @current_scene = @scenes[name] end
scene_definitions()
click to toggle source
# File lib/draco/scenes.rb, line 70 def scene_definitions self.class.instance_variable_get(:@scene_definitions) || {} end
scenes()
click to toggle source
# File lib/draco/scenes.rb, line 49 def scenes @scenes end