Module: Configs

Defined in:
scripts/00020 Config.rb,
scripts/00021 ProjectConfig.rb,
scripts/00800 Studio/00000 Configs/00004 Stats.rb,
scripts/00800 Studio/00000 Configs/00003 States.rb,
scripts/00800 Studio/00000 Configs/00005 Window.rb,
scripts/01450 Systems/00001 Title/00001 Configs.rb,
scripts/00800 Studio/00000 Configs/00001 Natures.rb,
scripts/00800 Studio/00000 Configs/00002 Flavors.rb,
scripts/01450 Systems/00002 Credits/00001 Configs.rb,
scripts/01450 Systems/00106 Save Load/00001 Configs.rb

Overview

Module responsive of giving access to various configuration contained into Data/configs

Examples:

How to create a basic configuration

module Configs
  class MyConfigDescription
    # Define attributes etc...
    def initialize # <= Configs will call this without argument so you can set default value if file does not exist
    end
  end
  # @!method self.my_config_accessor
  #   @return [MyConfigDescription]
  register(:my_config_accessor, 'my_config', :json, false, MyConfigDescription)
end

Defined Under Namespace

Modules: Project Classes: CreditsConfig, Flavors, Natures, SaveConfig, SceneTitleConfig, States, Stats, Window

Constant Summary collapse

KEY_TRANSLATIONS =

List of keys from file to ruby world

{
  isMouseDisabled: :is_mouse_disabled,
  mouseSkin: :mouse_skin,
  gameResolution: :game_resolution,
  windowScale: :window_scale,
  isFullscreen: :is_fullscreen,
  isPlayerAlwaysCentered: :is_player_always_centered,
  tilemapSettings: :tilemap_settings,
  introMovieMapId: :intro_movie_map_id,
  bgmName: :bgm_name,
  bgmDuration: :bgm_duration,
  isLanguageSelectionEnabled: :language_selection_enabled,
  additionalSplashes: :additional_splashes,
  controlWaitTime: :control_wait,
  maximumSave: :maximum_save_count,
  saveKey: :save_key,
  saveHeader: :save_header,
  baseFilename: :base_filename,
  isCanSaveOnAnySave: :can_save_on_any_save,
  projectSplash: :project_splash,
  lineHeight: :line_height,
  scrollSpeed: :speed,
  leaderSpacing: :leader_spacing,
  chiefProjectTitle: :chief_project_title,
  chiefProjectName: :chief_project_name,
  gameCredits: :game_credits,
  pokemonMaxLevel: :max_level,
  isAlwaysUseForm0ForEvolution: :always_use_form0_for_evolution,
  isUseForm0WhenNoEvolutionData: :use_form0_when_no_evolution_data,
  maxBagItemCount: :max_bag_item_count,
  isSmoothTexture: :smooth_texture,
  isVsyncEnabled: :vsync_enabled,
  gameTitle: :game_title,
  gameVersion: :game_version,
  defaultLanguage: :default_language_code,
  choosableLanguageCode: :choosable_language_code,
  choosableLanguageTexts: :choosable_language_texts
}
SCRIPTS_REQUIRED_CONFIG =

Name of the file that must exist if we want to successfully load scripts

'Data/configs/display_config.json'

Class Method Summary collapse

Class Method Details

.credits_configCreditsConfig

Returns:



38
# File 'scripts/01450 Systems/00002 Credits/00001 Configs.rb', line 38

register(:credits_config, 'credits_config', :json, false, CreditsConfig)

.devicesProject::Devices

Returns:



277
# File 'scripts/00021 ProjectConfig.rb', line 277

register(:devices, 'devices_config', :json, false, Project::Devices)

.displayProject::Display

Returns:



280
# File 'scripts/00021 ProjectConfig.rb', line 280

register(:display, 'display_config', :json, false, Project::Display)

.flavorsFlavors

Returns:



92
# File 'scripts/00800 Studio/00000 Configs/00002 Flavors.rb', line 92

register(:flavors, 'flavors', :json, false, Flavors)

.game_optionsProject::GameOptions



283
# File 'scripts/00021 ProjectConfig.rb', line 283

register(:game_options, 'game_options_config', :json, false, Project::GameOptions)

.graphicProject::Graphic

Returns:



292
# File 'scripts/00021 ProjectConfig.rb', line 292

register(:graphic, 'graphic_config', :json, false, Project::Graphic)

.infosProject::Infos

Returns:



295
# File 'scripts/00021 ProjectConfig.rb', line 295

register(:infos, 'infos_config', :json, false, Project::Infos)

.languageProject::Language

Returns:



298
# File 'scripts/00021 ProjectConfig.rb', line 298

register(:language, 'language_config', :json, false, Project::Language)

.naturesNatures

Returns:



88
# File 'scripts/00800 Studio/00000 Configs/00001 Natures.rb', line 88

register(:natures, 'natures', :json, true, Natures)

.register(name, filename, type, preload, klass)

Register a new config

Parameters:

  • name (Symbol)

    name of the config

  • filename (String)

    name of the file inside Data/configs

  • type (Symbol)

    type of the config file: :yml or :json

  • preload (Boolean)

    if the file need to be preloaded

  • klass (Class)

    class describing the config content



66
67
68
69
70
71
72
73
# File 'scripts/00020 Config.rb', line 66

def register(name, filename, type, preload, klass)
  @all_registered_configs[name] = { filename: filename, type: type, klass: klass }
  if preload
    load_file_data(name)
  else
    define_singleton_method(name) { load_file_data(name) }
  end
end

.save_configSaveConfig

Returns:



38
# File 'scripts/01450 Systems/00106 Save Load/00001 Configs.rb', line 38

register(:save_config, 'save_config', :json, true, SaveConfig)

.scene_title_configSceneTitleConfig

Returns:



29
# File 'scripts/01450 Systems/00001 Title/00001 Configs.rb', line 29

register(:scene_title_config, 'scene_title_config', :json, true, SceneTitleConfig)

.settingsProject::Settings

Returns:



289
# File 'scripts/00021 ProjectConfig.rb', line 289

register(:settings, 'settings_config', :json, false, Project::Settings)

.statesStates

Returns:



38
# File 'scripts/00800 Studio/00000 Configs/00003 States.rb', line 38

register(:states, 'states', :json, false, States)

.statsStats

Returns:



105
# File 'scripts/00800 Studio/00000 Configs/00004 Stats.rb', line 105

register(:stats, 'stats', :json, false, Stats)

.textsProject::Texts

Returns:



286
# File 'scripts/00021 ProjectConfig.rb', line 286

register(:texts, 'texts_config', :json, false, Project::Texts)

.windowWindow

Returns:



67
# File 'scripts/00800 Studio/00000 Configs/00005 Window.rb', line 67

register(:window, 'window', :json, false, Window)