class Player
include CoralMUD::HasStuff ### Makes this a generic container for any stuffs. At the time of adding this it was for objects to be carried.
include CoralMUD::LivingEntity
include CoralMUD::FileIO
include DataMapper::Resource
before :save do
log :info, "saving #{self} to database."
end
property :id, Serial
property :name, String
property :password, String
property :level, Integer, :default=>1
property :extra_data, Text
attr_accessor :pathtarget, :clas, :race, :sign, :traits, :socket,:reply_to, :editing, :security
attr_writer :flags, :security, :channel_flags
@@version = 1 # Current version. This can be increased to make changes to the save structure.
# This is only required to change if there's a particular change in old variables/structure.
# saved instance variables. Called by writable module.
def to_configure_properties
['@security', '@channel_flags', '@clas', '@race', '@traits', '@sign', '@stuff']
end
def security; @security ||= {}; end
def flags; @flags ||= []; end
def channel_flags; @channel_flags ||= {}; end
# hook to configure for versioning. This method doesn't need to be defined if
# we aren't going to version manage. When we change versioning we can edit this.
def version_config version, data
end
def data_transform_on_save map
# stuff needs to be get_configure
temp_stuff = []
each_stuff do |item|
temp_stuff << item.gen_configure
end
map['@stuff'] = temp_stuff
return map
end
def data_transform_on_load v, map
# transform each item facade.
arr = map['@stuff']
arr.each do |i|
item = ItemFacade.new(nil, false)
item.configure(i) # loads each room file.
self.accept item
end
map.delete '@stuff'
return map
end
end