Advertisement
Guest User

Relapse Demo 2

a guest
Jul 17th, 2014
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.    
  4.     import flash.display.Sprite;
  5.     import flash.events.Event;
  6.     import flash.events.MouseEvent;
  7.    
  8.     import Relapse.Dynamics.BasicInventoryItem;
  9.     import Relapse.Dynamics.IInventoryItem;
  10.     import Relapse.Dynamics.Messages.LocalClickMessage;
  11.     import Relapse.Dynamics.Messages.LocalMousePositionMessage;
  12.     import Relapse.Logic.Inventory;
  13.     import Relapse.Logic.Messages.InventoryModeMessage;
  14.     import Relapse.Logic.Messages.InventorySelectMessage;
  15.     import Relapse.Messaging.IMessage;
  16.     import Relapse.Messaging.IMessageable;
  17.     import Relapse.Messaging.Message;
  18.     import Relapse.Messaging.MessageSwitch;
  19.     import Relapse.UI.CursorController;
  20.     import Relapse.UI.FloatingInventoryView;
  21.     import Relapse.UI.Messages.CursorMessage;
  22.     import Relapse.UI.Messages.CursorModeMessage;
  23.     import Relapse.UI.Messages.DefaultCursorMessage;
  24.    
  25.     [ SWF ( width = 400, height = 200, frameRate = 60 ) ]
  26.     public class Main extends Sprite implements IMessageable
  27.     {
  28.        
  29.         private var INV:Inventory;
  30.         private var CRS:CursorController;
  31.        
  32.         private var CItem:IInventoryItem;
  33.         private var Ack:Boolean;
  34.        
  35.         private var Switch:MessageSwitch;
  36.        
  37.         public function Main()
  38.         {
  39.            
  40.             INV = new Inventory ( new FloatingInventoryView ( 0, 150, 400, 50, 40, 4, 70, 1.8, 15, 0.6 ) );
  41.             addChild ( INV.GetView () );
  42.            
  43.             INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
  44.             INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
  45.             INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
  46.             INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
  47.             INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
  48.            
  49.             INV.SendMessage ( new InventoryModeMessage ( InventoryModeMessage.INVENTORY_MODE_INTERACTIVE ) );
  50.             INV.SendMessage ( new LocalMousePositionMessage ( 250, 525 ) );
  51.            
  52.             INV.AddReceiver ( this );
  53.            
  54.             this.addEventListener ( Event.ENTER_FRAME, OnEnterFrame );
  55.             stage.addEventListener ( MouseEvent.MOUSE_MOVE, OnMouseMove );
  56.             stage.addEventListener ( MouseEvent.CLICK, OnMouseClick );
  57.            
  58.             CRS = new CursorController ();
  59.             CRS.SendMessage ( new CursorModeMessage ( CursorModeMessage.CURSOR_MODE_CUSTOM ) );
  60.             CRS.AddCursor ( "TestItem", new TestItem_N () );
  61.            
  62.             addChild ( CRS.GetView () );
  63.            
  64.             CItem = null;
  65.             Ack = false;
  66.            
  67.             Switch = new MessageSwitch ();
  68.            
  69.         }
  70.        
  71.         private function OnEnterFrame ( E:Event ) : void
  72.         {
  73.            
  74.             INV.SendMessage ( new Message ( Message.MESSAGE_UPDATE ) );
  75.            
  76.         };
  77.        
  78.         private function OnMouseMove ( M:MouseEvent ) : void
  79.         {
  80.            
  81.             var MPos:LocalMousePositionMessage = new LocalMousePositionMessage ( M.stageX, M.stageY );
  82.            
  83.             INV.SendMessage ( MPos );
  84.             CRS.SendMessage ( MPos );
  85.            
  86.         };
  87.        
  88.         private function OnMouseClick ( M:MouseEvent ) : void
  89.         {
  90.            
  91.             INV.SendMessage ( new LocalClickMessage ( M.stageX, M.stageY ) );
  92.            
  93.         };
  94.        
  95.         private function OnHandle ( Item:IInventoryItem ) : void
  96.         {
  97.            
  98.             trace ( "HANDLE" );
  99.            
  100.             CRS.SendMessage ( new CursorMessage ( "TestItem" ) );
  101.            
  102.             if ( CItem == null )
  103.             {
  104.                
  105.                 CItem = Item;
  106.                 Ack = false;
  107.                
  108.                 CRS.SendMessage ( new CursorMessage ( "TestItem" ) );
  109.                
  110.             }
  111.            
  112.         };
  113.        
  114.         public function SendMessage ( M:IMessage ) : void
  115.         {
  116.            
  117.             if ( M.GetID () == InventorySelectMessage.INVENTORY_SELECT_MESSAGE && M is InventorySelectMessage )
  118.             {
  119.                
  120.                 if ( CItem != null )
  121.                 {
  122.                    
  123.                     if ( CItem == ( M as InventorySelectMessage ).GetItem () )
  124.                     {
  125.                        
  126.                         if ( Ack == true )
  127.                         {
  128.                            
  129.                             INV.SendMessage ( new InventoryModeMessage ( InventoryModeMessage.INVENTORY_MODE_INTERACTIVE ) );
  130.                             CRS.SendMessage ( new DefaultCursorMessage () );
  131.                            
  132.                             CItem = null;
  133.                        
  134.                         }
  135.                        
  136.                         Ack = true;
  137.                        
  138.                     }
  139.                    
  140.                 }
  141.                
  142.             }
  143.            
  144.         };
  145.        
  146.         public function GetAcceptedMessageIDS () : Vector.<String>
  147.         {
  148.            
  149.             return new <String> [ InventorySelectMessage.INVENTORY_SELECT_MESSAGE ];
  150.            
  151.         };
  152.        
  153.     };
  154.    
  155. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement