diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cb1d15f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +data/settings.json \ No newline at end of file diff --git a/lib/setting.rb b/lib/setting.rb new file mode 100644 index 0000000..c3a60db --- /dev/null +++ b/lib/setting.rb @@ -0,0 +1,49 @@ +class IMICRTS + class Setting + def self.file_path + "#{GAME_ROOT_PATH}/data/settings.json" + end + + def self.setup + save_defaults unless File.exist?(Setting.file_path) + @store = JSON.parse(File.read(Setting.file_path), symbolize_names: true) + end + + def self.save_defaults + hash = { + player_name: "Rookie", + player_default_map_spawn: 0, + default_map: "test_map", + + skip_intro: false, + + debug_mode: false, + debug_info_bar: false, + debug_pathfinding: false, + debug_pathfinding_allow_diagonal: true, + } + + File.open(Setting.file_path, "w") {|f| f.write(JSON.dump(hash))} + end + + def self.enabled?(key) + @store.dig(key) + end + + def self.disabled?(key) + @store.dig(key) + end + + def self.set(key, value) + @store[key]=value + end + + def self.get(key) + @store.dig(key) + end + + def self.save! + File.open(Setting.file_path, "w") {|f| f.write(JSON.dump(@store))} + end + end +end \ No newline at end of file