Advertisement
Guest User

Untitled

a guest
Oct 11th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package  
  2. {
  3.     import flash.utils.*;
  4.     import org.flixel.*;
  5.     import org.flashdevelop.utils.FlashConnect;
  6.    
  7.     public class ItemRegistry
  8.     {
  9.        
  10.         [Embed(source = 'Items.xml', mimeType = "application/octet-stream")] private var xmlData:Class;
  11.        
  12.         private var byteArray:ByteArray;
  13.         private var xml:XML = new XML();
  14.        
  15.         private var store:Dictionary = new Dictionary()
  16.         private var warnings:Dictionary = new Dictionary();
  17.  
  18.         public function ItemRegistry()
  19.         {
  20.             byteArray = new xmlData as ByteArray;
  21.             xml = new XML(byteArray);
  22.            
  23.             var itemList:XMLList = xml.item;
  24.            
  25.             for each(var item:XML in itemList) {
  26.                 //FlashConnect.trace(item.@name);
  27.                 registerClass(new TestItem(), item);
  28.             }
  29.         }
  30.  
  31.         public function registerClass($class:Item, item:XML):void
  32.         {
  33.             FlashConnect.trace("registering " + $class +  " at " + item.@name);
  34.             if (item.@name in store)
  35.             {
  36.                 FlashConnect.trace("warning, key overlap, class " + store[item.@name] + " will be replaced with " + $class);
  37.             }
  38.            
  39.             $class.name = item.@name;
  40.             $class.color = item.@color;
  41.             store[$class.name] = $class;
  42.         }
  43.  
  44.         public function getClass($key:String):Class
  45.         {
  46.             if ($key in store) return store[$key];
  47.             else if (!warnings[$key])
  48.             {
  49.                 FlashConnect.trace(this + " WARNING : [" + $key + "] not registered with a class, call registerClass first");
  50.                 warnings[$key] = true;
  51.             }
  52.             return null;
  53.         }
  54.  
  55.         public function hasClass($key:String):Boolean
  56.         {
  57.             if ($key in store) return true;
  58.             return false;
  59.         }
  60.        
  61.     }
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement