module Gamefic::Scripting::Scenes
Public Instance Methods
Source
# File lib/gamefic/scripting/scenes.rb, line 10 def default_conclusion self.class.default_conclusion end
@return [Scene::Conclusion]
Source
# File lib/gamefic/scripting/scenes.rb, line 5 def default_scene self.class.default_scene end
@return [Scene::Base]
Source
# File lib/gamefic/scripting/scenes.rb, line 15 def introductions included_scripts.reverse .flat_map(&:introductions) .map { |blk| Binding.new(self, blk) } end
@return [Array<Binding>]
Source
# File lib/gamefic/scripting/scenes.rb, line 22 def named_scenes {}.merge(*included_scripts.flat_map(&:named_scenes)) end
@return [Hash]
Source
# File lib/gamefic/scripting/scenes.rb, line 33 def prepare name_or_class, actor, props, **context scene_classes_map[name_or_class]&.new(actor, self, props, **context).tap do |scene| scene&.rename(name_or_class.to_s) if name_or_class.is_a?(Symbol) end end
Prepare a scene to be executed. Scenes
can be accessed by their class or by a symbolic name if one has been defined in this narrative.
@param name_or_class [Symbol, Class<Scene::Base>] @param actor [Actor] @param props [Props::Default] @return [Scene::Base]
Source
# File lib/gamefic/scripting/scenes.rb, line 46 def scene_class(name_or_class) scene_classes_map[name_or_class] end
@param name_or_class [Symbol, Class<Scene::Base>] @return [Scene::Base]
Source
# File lib/gamefic/scripting/scenes.rb, line 40 def scenes self.class.scenes end
@return [Array<Scene::Base>]
Private Instance Methods
Source
# File lib/gamefic/scripting/scenes.rb, line 52 def scene_classes_map {}.merge(*included_scripts.flat_map(&:scene_classes_map)) end