Example #1
0
        public void SetHandler(IAreaHandler handler)
        {
            PlayerHandler?.PlayerLeft();

            PlayerHandler = handler;
            PlayerHandler.PlayerJoin();
        }
Example #2
0
        public void Process(PlayerLoaded playerLoaded)
        {
            if (playerLoaded.Token.IsCancellationRequested)
            {
                return;
            }

            var playerContext = new PlayerContex(playerLoaded.StoreData, playerLoaded.Output);

            state.Players.Add(playerContext.Id, playerContext);

            IAreaHandler handler = playerContext.PlayerType == PlayerType.Bot
                ? new StasisAreaHandler(playerContext.Id, state)
                : (playerLoaded.StoreData.IsActivated
                        ? (IAreaHandler) new ReturnAreaHandler(playerContext.Id, state)
                        : new WelcomeAreaHandler(playerContext.Id, state));

            playerContext.SetHandler(handler);
        }
Example #3
0
        protected AreaBase(IAreaHandler handler)
        {
            var areaHandlerInternal = new AreaHandler
            {
                DragBroken = (areaHandler, area) =>
                {
                    var realArea = Areas[area];
                    handler.DragBroken(realArea);
                },
                Draw = (IntPtr areaHandler, IntPtr area, ref AreaDrawParamsInternal param) =>
                {
                    var realArea = Areas[area];
                    var p        = (AreaDrawParams)param;
                    handler.Draw(realArea, ref p);
                },
                KeyEvent = (IntPtr areaHandler, IntPtr area, ref AreaKeyEvent keyEvent) =>
                {
                    var realArea = Areas[area];
                    return(handler.KeyEvent(realArea, ref keyEvent));
                },
                MouseCrossed = (areaHandler, area, left) =>
                {
                    var realArea = Areas[area];
                    handler.MouseCrossed(realArea, left);
                },
                MouseEvent = (IntPtr areaHandler, IntPtr area, ref AreaMouseEvent mouseEvent) =>
                {
                    var realArea = Areas[area];
                    handler.MouseEvent(realArea, ref mouseEvent);
                }
            };


            AreaHandlerInternal = new AreaHandlerInternal
            {
                DragBroken   = Marshal.GetFunctionPointerForDelegate(areaHandlerInternal.DragBroken),
                Draw         = Marshal.GetFunctionPointerForDelegate(areaHandlerInternal.Draw),
                KeyEvent     = Marshal.GetFunctionPointerForDelegate(areaHandlerInternal.KeyEvent),
                MouseCrossed = Marshal.GetFunctionPointerForDelegate(areaHandlerInternal.MouseCrossed),
                MouseEvent   = Marshal.GetFunctionPointerForDelegate(areaHandlerInternal.MouseEvent)
            };;
        }
Example #4
0
 public Area(IAreaHandler handler) : base(handler)
 {
     handle        = NativeMethods.NewArea(AreaHandlerInternal);
     Areas[handle] = this;
 }
Example #5
0
 public ScrollingArea(IAreaHandler handler, int width, int height) : base(handler)
 {
     handle        = NativeMethods.NewScrollingArea(AreaHandlerInternal, width, height);
     Areas[handle] = this;
 }