def self.init
@classlist = []
end
def self.classlist
return @classlist
end
def self.classlist= obj
@classlist = obj
end
module DataBase::CSV
attr_reader :data_table
def self.load_data(filename)
data = readtable(filename)
class_name = make_data_class(data, filename)
@data_table = fill_datas(data, class_name)
end
#生成数据文件对应的类
def self.make_data_class(data, filename)
names = data[0]
data_class = DataBase.const_set(filename.capitalize, Class.new)
data_class.class_eval do
names.each{|i| attr_accessor i}
define_method(:initialize) do |val|
names.each_with_index do |name, i|
instance_variable_set("@"+name, eval(val))
end
end
end
DataBase.classlist.push(filename)
#读取
def self.readtable(filename)
data = File.open("#{$DATAPATH}/#{filename}.csv", "r") do |f|
f = f.readlines()
f = f.each_index do |i|
f = f.split(",")
f[-1] = f[-1].chomp
end
end
end
end
end
#==============================================================================
# ■ DataManager
#------------------------------------------------------------------------------
# 数据库和游戏实例的管理器。所有在游戏中使用的全局变量都在这里初始化。
#==============================================================================
module DataManager
def self.load_database
if $BTEST
load_battle_test_database
else
load_normal_database
DataBase.init
load_assist_database
check_player_location
end
end
def self.load_assist_database
# $data_<database_names> = DataBase::CSV.load_data("<DataBaseNames>")
$data_actors = DataBase::CSV.load_data("Actors")
$data_npcs = DataBase::CSV.load_data("Npcs")
end