1 package net.systemeD.halcyon.mapfeatures {
3 import flash.events.EventDispatcher;
4 import flash.events.Event;
5 import net.systemeD.halcyon.connection.Entity;
7 public class Feature extends EventDispatcher {
8 private var mapFeatures:MapFeatures;
10 private static var variablesPattern:RegExp = /[$][{]([^}]+)[}]/g;
11 private var _tags:Array;
13 public function Feature(_xml:XML) {
17 for each(var tag:XML in definition.tag) {
18 var tagObj:Object = new Object();
26 public function get definition():XML {
30 [Bindable(event="nameChanged")]
31 public function get name():String {
35 [Bindable(event="imageChanged")]
36 public function get image():String {
37 var icon:XMLList = _xml.icon;
39 if ( icon.length() > 0 && icon[0].hasOwnProperty("@image") )
40 return icon[0].@image;
45 public function htmlDetails(entity:Entity):String {
46 var icon:XMLList = _xml.icon;
50 var txt:String = icon.children().toXMLString();
51 var replaceTag:Function = function():String {
52 var value:String = entity.getTag(arguments[1]);
53 return value == null ? "" : value;
55 txt = txt.replace(variablesPattern, replaceTag);
59 public function isInCategory(category:String):Boolean {
60 var cats:XMLList = _xml.category;
61 if ( cats.length() == 0 )
64 for each( var cat:XML in cats )
65 if ( cat.text()[0] == category )
70 public function get tags():Array {