CoralMUD-0.15/
CoralMUD-0.15/core/
CoralMUD-0.15/data/
CoralMUD-0.15/data/areas/
CoralMUD-0.15/data/help/
CoralMUD-0.15/data/players/
CoralMUD-0.15/lib/automap/
CoralMUD-0.15/lib/items/
class Zone
  define_creatable
  define_editor :zone_edit
  define_editor_field({:name=>"vtag", :filter=>:filt_to_tag, :type=>:vtag})
  define_editor_field({:name=>"name", :filter=>:filt_none})
  define_editor_field({:name=>"access", :filter=>:filt_none, 
    :proc_fun=>proc do |ed, ch, obj, arg|
      if obj.can_access?(arg)
        obj.remove_access(arg)
        ch.view "Security access removed for #{ch.peek(arg)}"+ENDL
      else
        obj.add_access(arg)
        ch.view "Security access added for #{ch.peek(arg)}"+ENDL
      end
      log :info, "Security access list changed for #{obj.name}"
    end,
    :display=>proc do |obj|
      ["#{mxptag('send access prompt')}#R[#Waccess#R]:#{mxptag('/send')} #G#{obj.access_list}#n"]
    end

  })
  define_editor_field({:name=>"notes",:arg_type=>:arg_none, :filter=>:filt_none,
    :proc_fun=>proc do |ed, ch, obj, arg|
      ch.editing.unshift(obj.devnotes)
      ch.view "Editing developer notes." + ENDL
    end,

    :display=>proc do |obj|
      ["#{mxptag('send notes')}#R[#Wnotes#R]:#{mxptag('/send')}","#n"+obj.devnotes,"----"]
    end
  })

  def self.create ch
    area = self.new
    area.namespace = nil 
    area.assign_tag Tag.gen_generic_tag(area), nil
    return area
  end

end