Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import Relapse.Dynamics.BasicInventoryItem;
- import Relapse.Dynamics.IInventoryItem;
- import Relapse.Dynamics.Messages.LocalClickMessage;
- import Relapse.Dynamics.Messages.LocalMousePositionMessage;
- import Relapse.Logic.Inventory;
- import Relapse.Logic.Messages.InventoryModeMessage;
- import Relapse.Logic.Messages.InventorySelectMessage;
- import Relapse.Messaging.IMessage;
- import Relapse.Messaging.IMessageable;
- import Relapse.Messaging.Message;
- import Relapse.Messaging.MessageSwitch;
- import Relapse.UI.CursorController;
- import Relapse.UI.FloatingInventoryView;
- import Relapse.UI.Messages.CursorMessage;
- import Relapse.UI.Messages.CursorModeMessage;
- import Relapse.UI.Messages.DefaultCursorMessage;
- [ SWF ( width = 400, height = 200, frameRate = 60 ) ]
- public class Main extends Sprite implements IMessageable
- {
- private var INV:Inventory;
- private var CRS:CursorController;
- private var CItem:IInventoryItem;
- private var Ack:Boolean;
- private var Switch:MessageSwitch;
- public function Main()
- {
- INV = new Inventory ( new FloatingInventoryView ( 0, 150, 400, 50, 40, 4, 70, 1.8, 15, 0.6 ) );
- addChild ( INV.GetView () );
- INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
- INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
- INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
- INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
- INV.AddItem ( new BasicInventoryItem ( new TestItem_N (), new TestItem_I (), new TestItem_H (), OnHandle ) );
- INV.SendMessage ( new InventoryModeMessage ( InventoryModeMessage.INVENTORY_MODE_INTERACTIVE ) );
- INV.SendMessage ( new LocalMousePositionMessage ( 250, 525 ) );
- INV.AddReceiver ( this );
- this.addEventListener ( Event.ENTER_FRAME, OnEnterFrame );
- stage.addEventListener ( MouseEvent.MOUSE_MOVE, OnMouseMove );
- stage.addEventListener ( MouseEvent.CLICK, OnMouseClick );
- CRS = new CursorController ();
- CRS.SendMessage ( new CursorModeMessage ( CursorModeMessage.CURSOR_MODE_CUSTOM ) );
- CRS.AddCursor ( "TestItem", new TestItem_N () );
- addChild ( CRS.GetView () );
- CItem = null;
- Ack = false;
- Switch = new MessageSwitch ();
- }
- private function OnEnterFrame ( E:Event ) : void
- {
- INV.SendMessage ( new Message ( Message.MESSAGE_UPDATE ) );
- };
- private function OnMouseMove ( M:MouseEvent ) : void
- {
- var MPos:LocalMousePositionMessage = new LocalMousePositionMessage ( M.stageX, M.stageY );
- INV.SendMessage ( MPos );
- CRS.SendMessage ( MPos );
- };
- private function OnMouseClick ( M:MouseEvent ) : void
- {
- INV.SendMessage ( new LocalClickMessage ( M.stageX, M.stageY ) );
- };
- private function OnHandle ( Item:IInventoryItem ) : void
- {
- trace ( "HANDLE" );
- CRS.SendMessage ( new CursorMessage ( "TestItem" ) );
- if ( CItem == null )
- {
- CItem = Item;
- Ack = false;
- CRS.SendMessage ( new CursorMessage ( "TestItem" ) );
- }
- };
- public function SendMessage ( M:IMessage ) : void
- {
- if ( M.GetID () == InventorySelectMessage.INVENTORY_SELECT_MESSAGE && M is InventorySelectMessage )
- {
- if ( CItem != null )
- {
- if ( CItem == ( M as InventorySelectMessage ).GetItem () )
- {
- if ( Ack == true )
- {
- INV.SendMessage ( new InventoryModeMessage ( InventoryModeMessage.INVENTORY_MODE_INTERACTIVE ) );
- CRS.SendMessage ( new DefaultCursorMessage () );
- CItem = null;
- }
- Ack = true;
- }
- }
- }
- };
- public function GetAcceptedMessageIDS () : Vector.<String>
- {
- return new <String> [ InventorySelectMessage.INVENTORY_SELECT_MESSAGE ];
- };
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement