コード例 #1
0
        public override bool OnMouseUp(Pointer e)
        {
            if (!Visible) return false;
            Dragging = false;

            for (var ij = ScrollOffset; ij < Controls.Count; ij++) {
                var control = Controls[ij];
                if (control.Y <= e.Y && control.Y + control.Height > e.Y && control.X <= e.X + 2 && control.X + control.Width + 2 > e.X) {
                    e.X -= control.X;
                    e.Y -= control.Y;
                    control.OnMouseUp(e);
                    return true;
                }
            }

            if (MouseUp != null) MouseUp(new Point(e.X, e.Y));
            return base.OnMouseUp(e);
        }
コード例 #2
0
        public bool OnMouseMove(Pointer cell)
        {
            var cl = ( UIAreas ).OrderBy((f) => { return -f.Depth; }).ToArray();

            foreach (var are in cl) {
                if (are.Dragging.Truthy() || are.IsEditMode() || ( are.Visible && are.Y <= cell.Y &&
                                                                   are.Y + are.Height > cell.Y &&
                                                                   are.X <= cell.X &&
                                                                   are.X + are.Width > cell.X )) {
                    var cell2 = new Pointer(cell.X - are.X, cell.Y - are.Y, 0, cell.Right);
                    return are.OnMouseOver(cell2);
                }
            }

            return false;
        }
コード例 #3
0
 public void OnMouseUp(Pointer cell)
 {
     foreach (var are in UIAreas) {
         var ec = new Pointer(cell.X - are.X, cell.Y - are.Y, 0, cell.Right);
         are.OnMouseUp(ec);
     }
 }
コード例 #4
0
 public override bool OnScroll(Pointer e)
 {
     return base.OnScroll(e);
 }
コード例 #5
0
 public override bool OnClick(Pointer e)
 {
     return base.OnClick(e);
 }
コード例 #6
0
 public bool MouseUp(Pointer e)
 {
     foreach (var j in points) {
         j.Editing = false;
     }
     Editing = false;
     Dragging = false;
     StartDragging = null;
     dragg = null;
     return false;
 }
コード例 #7
0
 public void OffsetPointer(Pointer pointer)
 {
     pointer.X -= screenOffset.X;
     pointer.Y -= screenOffset.Y;
 }
コード例 #8
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        private Pointer getTilePointer(Pointer gamePointer)
        {
            var tilePointer = gamePointer.ClonePointer();

            tilePointer.X /= gameManager.Scale.X;
            tilePointer.Y /= ZombieGameConfig.TileSize; //the scale "offset"
            return tilePointer;
        }
コード例 #9
0
 public Pointer(int x, int y, Pointer pointer)
     : base(x, y)
 {
     WheelDelta = pointer.WheelDelta;
     Right = pointer.Right;
 }
コード例 #10
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        public override bool OnClick(Pointer screenPointer)
        {
            clicking = true;
            var gamePointer = getGamePointer(screenPointer);
            var tilePointer = getTilePointer(gamePointer);

            switch (gameManager.ClickMode) {
                case ClickMode.MoveCharacter:
                    if (gameManager.WindowManager.Collides(gamePointer))
                        gameManager.UnitManager.MainCharacter.MoveTowards(gamePointer.X, gamePointer.Y);
                    break;
            }
            return false;
        }
コード例 #11
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
 private Pointer getGamePointer(Pointer screenPointer)
 {
     var gamePointer = screenPointer.ClonePointer();
     gameManager.OffsetPointer(gamePointer);
     gamePointer.X /= gameManager.Scale.X;
     gamePointer.Y /= gameManager.Scale.Y; //the scale "offset"
     gameManager.WindowManager.OffsetPointer(gamePointer); //the window offset
     return gamePointer;
 }
コード例 #12
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        public override bool MouseUp(Pointer pointer)
        {
            clicking = false;

            return base.MouseUp(pointer);
        }
コード例 #13
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        public override bool MouseMove(Pointer screenPointer)
        {
            if (!clicking) return false;
            var gamePointer = getGamePointer(screenPointer);
            var tilePointer = getTilePointer(gamePointer);

            switch (gameManager.ClickMode) {
                case ClickMode.MoveCharacter:
                    if (gameManager.WindowManager.Collides(gamePointer)) {
                        gameManager.UnitManager.MainCharacter.MoveTowards(gamePointer.X, gamePointer.Y);
                        this.gameManager.ActionManager.ScheduleAction(new MovePlayerZombieLampAction() { X = gamePointer.X, Y = gamePointer.Y, User = gameManager.UnitManager.MainCharacter.LampPlayer });
                    }
                    break;
                case ClickMode.DragMap:
                    gameManager.WindowManager.CenterAround(screenPointer.X, screenPointer.Y);
                    break;
            }
            return false;
        }
コード例 #14
0
        public override bool OnScroll(Pointer e)
        {
            if (!Visible) return false;

            if (e.WheelDelta > 0) {
                if (ScrollOffset > 0)
                    ScrollOffset--;
            } else {
                if (ScrollOffset < Controls.Count - VisibleItems)
                    ScrollOffset++;
            }

            foreach (var control in Controls) {
                if (control.Y <= e.Y && control.Y + control.Height > e.Y && control.X <= e.X && control.X + control.Width > e.X) {
                    e.X -= control.X;
                    e.Y -= control.Y;
                    return true;
                }
            }
            //if (this.scroll) this.scroll();
            return true;
        }
コード例 #15
0
        public bool Click(Pointer e)
        {
            var x = 0;
            var y = 0;
            var w = Element.Width;
            var h = Element.Height;

            //uiManager.propertyList.populate(this.Element);

            foreach (var j in points) {
                j.Editing = false;
            }

            foreach (var j in points) {
                var sz = j.Size * 5;

                var rect = new Rectangle(x + ( w * j.X / 100 ) - sz / 2, y + ( h * j.Y / 100 ) - sz / 2, sz, sz);

                if (e.X > rect.X && e.X < rect.X + rect.Width && e.Y > rect.Y && e.Y < rect.Y + rect.Height) {
                    Document.Body.Style.Cursor = j.Cursor;
                    StartDragging = new Point(e.X, e.Y);
                    Editing = true;
                    j.Editing = true;
                    return true;
                }
            }

            if (e.X > x && e.X < x + w && e.Y > y && e.Y < y + h) {
                dragg = new Point(e.X, e.Y);
                Document.Body.Style.Cursor = "move";
                Dragging = true;
                return false;
            } else
                Document.Body.Style.Cursor = "default";
            return false;
        }
コード例 #16
0
 public virtual void Focus(Pointer e)
 {
     Focused = true;
 }
コード例 #17
0
        public bool MouseOver(Pointer e)
        {
            var x = 0;
            var y = 0;
            var w = Element.Width;
            var h = Element.Height;

            Document.Body.Style.Cursor = "move";
            if (Dragging) {
            /*
                if (this.Element.ChildrenAreEditing())
                {
                    return false;
                }
            */
                var jx = e.X - dragg.X;
                var jy = e.Y - dragg.Y;
                Element.X += jx;
                Element.Y += jy;

                /*   window.DEBUGLABELS[0] = "E: " + e.X + " " + e.Y;
                   window.DEBUGLABELS[1] = "Dragg: " + this.dragg.X + " " + this.dragg.Y;
                   window.DEBUGLABELS[2] = "Element: " + this.Element.X + " " + this.Element.Y;
                   window.DEBUGLABELS[3] = "Offset: " + jx + " " + jy;*/
                //this.dragg.x += jx;
                //this.dragg.y += jy;

                return false;
            }
            foreach (var j in points) {
                var sz = j.Size * 5;

                if (j.Editing) {
                    Document.Body.Style.Cursor = j.Cursor;
                    var dv = new Point(StartDragging.X - e.X, StartDragging.Y - e.Y);

                    j.Click(dv);
                    StartDragging = new Point(e.X + dv.X, e.Y + dv.Y);
                    return true;
                }

                var rect = new Rectangle(x + ( w * j.X / 100 ) - sz / 2, y + ( h * j.Y / 100 ) - sz / 2, sz, sz);

                if (e.X > rect.X && e.X < rect.X + rect.Width && e.Y > rect.Y && e.Y < rect.Y + rect.Height) {
                    Document.Body.Style.Cursor = j.Cursor;

                    if (j.Editing) {
                        var dv = new Point(StartDragging.X - e.X, StartDragging.Y - e.Y);

                        j.Click(dv);
                        StartDragging = new Point(e.X + dv.X, e.Y + dv.Y);
                    }
                    return true;
                }
            }

            StartDragging = new Point(e.X, e.Y);
            return Editing;
        }
コード例 #18
0
 public virtual bool OnClick(Pointer e)
 {
     if (IsEditMode()) {
         if (EditorEngine.Click(e))
             return true;
     }
     return false;
 }
コード例 #19
0
        private void canvasMouseMove(jQueryEvent queryEvent)
        {
            queryEvent.PreventDefault();
            Document.Body.Style.Cursor = "default";
            lastMouseMove = CHelp.GetCursorPosition(queryEvent);
            if (UIManager.OnMouseMove(lastMouseMove)) return;
            if (gameManager.MouseMove(lastMouseMove)) return;

            return;
        }
コード例 #20
0
 public virtual bool OnMouseUp(Pointer e)
 {
     if (IsEditMode()) {
         if (EditorEngine.MouseUp(e))
             return true;
     }
     return false;
 }
コード例 #21
0
 public override bool OnMouseUp(Pointer e)
 {
     return base.OnMouseUp(e);
 }
コード例 #22
0
 public virtual bool OnScroll(Pointer e)
 {
     return false;
 }
コード例 #23
0
 public override void Focus(Pointer e)
 {
     base.Focus(e);
 }
コード例 #24
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        public override bool MouseMove(Pointer jQueryEvent)
        {
            if (!clicking) return false;

            return false;
        }
コード例 #25
0
        public bool OnClick(Pointer cell)
        {
            UIArea goodArea = null;
            var cl = ( UIAreas ).OrderBy((f) => -f.Depth).ToArray();
            foreach (var are in cl) {
                if (are.Visible &&
                    ( are.IsEditMode()
                              ? are.Y - are.EditorEngine.MaxSize() <= cell.Y &&
                                are.Y + are.EditorEngine.MaxSize() + are.Height > cell.Y &&
                                are.X - are.EditorEngine.MaxSize() <= cell.X &&
                                are.X + are.EditorEngine.MaxSize() + are.Width > cell.X
                              : are.Y <= cell.Y &&
                                are.Y + are.Height > cell.Y &&
                                are.X <= cell.X &&
                                are.X + are.Width > cell.X )) {
                    goodArea = are;
                    var ec = new Pointer(cell.X - are.X, cell.Y - are.Y, 0, cell.Right);
                    are.OnClick(ec);
                    break;
                }
            }

            if (goodArea.Truthy()) {
                foreach (var are in UIAreas) {
                    if (goodArea == are) {
                        are.Depth = 1;
                        are.Focus(cell);
                    } else {
                        if (are.Visible) {
                            are.Depth = 0;
                            are.LoseFocus();
                        }
                    }
                }

                return true;
            } else {
                foreach (var are in UIAreas) {
                    if (are.Visible) {
                        are.Depth = 0;
                        are.LoseFocus();
                    }
                }
            }

            return false;
        }
コード例 #26
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        public override bool MouseUp(Pointer jQueryEvent)
        {
            clicking = false;

            return false;
        }
コード例 #27
0
        public bool OnMouseScroll(jQueryEvent e)
        {
            int delta = e.Me().wheelDelta ? e.Me().wheelDelta / 40 : e.Me().detail ? -e.Me().detail : 0;

            var cell = CHelp.GetCursorPosition(e);

            foreach (var are in UIAreas) {
                if (are.Visible && are.Y <= cell.Y && are.Y + are.Height > cell.Y && are.X <= cell.X && are.X + are.Width > cell.X) {
                    var cell2 = new Pointer(cell.X - are.X, cell.Y - are.Y, delta, cell.Right);
                    return are.OnScroll(cell2);
                }
            }
            return false;
        }
コード例 #28
0
ファイル: Game.cs プロジェクト: dested/LampLightOnlineSharp
        public override bool OnClick(Pointer jQueryEvent)
        {
            clicking = true;
            var x = jQueryEvent.X;
            var y = jQueryEvent.Y;

            DebugText[0] = x + " " + y;
            //idk do something with xy
            return false;
        }
コード例 #29
0
 public void OffsetPointer(Pointer pointer)
 {
     pointer.X += X;
     pointer.Y += Y;
 }
コード例 #30
0
        public override bool OnMouseOver(Pointer e)
        {
            if (!Visible) return false;
            foreach (var control in Controls) {
                if (control.Y <= e.Y && control.Y + control.Height > e.Y && control.X + 2 <= e.X && control.X + control.Width + 2 > e.X) {
                    e.X -= control.X;
                    e.Y -= control.Y;
                    control.OnMouseOver(e);
                    break;
                }
            }
            if (Dragging && e.Y > ItemHeight && e.Y < ItemHeight + ScrollWidth) {
                var width = VisibleItems * ( ItemWidth + JWidth ) - 2;
                ScrollOffset = (int) ( ( (double) e.X / width ) * ( Controls.Count - VisibleItems ) );

                ScrollOffset = Math.Min(Math.Max(ScrollOffset, 0), Controls.Count);
            }
            if (MouseOver != null) MouseOver(new Point(e.X, e.Y));
            return base.OnMouseOver(e);
        }