class TyranoDsl::Elements::World
The game world
Attributes
backgrounds[R]
@return [Hash{String => TyranoDsl::Elements::Background}]
characters[R]
@return [Hash{String => TyranoDsl::Elements::Character}]
jump_targets[R]
@return [Array<TyranoDsl::Elements::JumpTarget>]
labels[R]
@return [Hash{String => TyranoDsl::Elements::Label}]
scenes[R]
@return [Hash{String => TyranoDsl::Elements::Scene}]
title_screen[R]
@return [TyranoDsl::Elements::TitleScreen]
variables[R]
@return [Hash{String => TyranoDsl::Elements::Variable}]
Public Class Methods
new()
click to toggle source
# File lib/tyrano_dsl/elements/world.rb, line 24 def initialize @characters = {} @backgrounds = {} @labels = {} @jump_targets = [] @scenes = {} @variables = {} @title_screen = TyranoDsl::Elements::TitleScreen.new end
Public Instance Methods
label_value(label_name)
click to toggle source
@param [String, nil] label_name @return [TyranoDsl::Elements::Label]
# File lib/tyrano_dsl/elements/world.rb, line 51 def label_value(label_name) if @labels.key? label_name @labels[label_name] else technical_name = label_name ? "label_#{@labels.length}" : nil label = TyranoDsl::Elements::Label.new(label_name, technical_name) @labels[label_name] = label label end end
validate()
click to toggle source
@return [void] @raise [TyranoDsl::TyranoException]
# File lib/tyrano_dsl/elements/world.rb, line 36 def validate @jump_targets.each do |jump_target| scene = @scenes[jump_target.scene] unless scene raise TyranoDsl::TyranoException, "Unknown scene [#{jump_target.scene}] declared in label" end jump_target_label = jump_target.label if jump_target_label && (!scene.labels.include?(jump_target_label.name)) raise TyranoDsl::TyranoException, "Unknown label [#{jump_target_label.name}] declared in label" end end end