Пример #1
0
        public void AddArea(UIArea uiArea)
        {
            uiArea.Construct();
            UIAreas.Add(uiArea);

            UpdateDepth();
        }
Пример #2
0
        /// <summary>
        /// 重写OnMouseDown
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseDown(MouseEventArgs e)
        {
            try
            {
                this._lastMouseDownMoveLocation = e.Location;
                this._mouseDownArgs             = e;
                this._mouseDownUIArea           = this.GetUIArea(e.Location);

                //在主波形区域中键双击全选主波形区域
                if (this._mouseDownUIArea == UIArea.WavArea &&
                    e.Button == System.Windows.Forms.MouseButtons.Middle && e.Clicks == 1 &&
                    this._bassDataTotalLength > 0)
                {
                    //全选
                    this._ss = this._ws;
                    this._se = this._we;

                    //刷新波形选中区域改变
                    this.RefreshWavSelectedChange(this._wavArea.X, this._wavArea.Width);
                }
            }
            catch (Exception ex)
            {
                this.OnRaiseLog(ex);
            }
            finally
            {
                base.OnMouseDown(e);
            }
        }
Пример #3
0
        private void SetZoomWavMoveMouseStyle(UIArea area)
        {
            //Point location = this.PointToClient(Control.MousePosition);
            //Loger.Info(area.ToString());
            switch (area)
            {
            case UIArea.GlobalViewZoomDisplay:
                if (this._zoomInfo.HasZoom())
                {
                    this.Cursor = this._zoomWavDisplayAreaMmoveMouseStyle;
                }
                else
                {
                    this.Cursor = this._defaultCursor;
                }
                break;

            case UIArea.Wave:
            case UIArea.Voice:
                this.Cursor = this._wavAndVoiceSelecteMouseStyle;
                break;

            case UIArea.WaveSelected:
            case UIArea.VoiceSelected:
                this.Cursor = this._wavAndVoiceSelecteMouseStyle;
                break;

            case UIArea.TimeArea:
            default:
                this.Cursor = this._defaultCursor;
                break;
            }
        }
Пример #4
0
        public override void BuildUI(UIManager manager)
        {
            UIArea manageData;
            manager.AddArea(manageData = new UIArea(Screen.Width - 400, 100, 250, 300) {Closable = true});
            manageData.Visible = true;
            manageData.AddControl(new TextArea(30, 25, "Manage Defense") {Color = "blue"});

            myClickState = null;
            myClickState = new Button<bool>(false, 20, 50, 100, 25, new Func<string>(() => { return myClickState.Data ? "This" : "That"; })) {
                                                                                                                                                     Click = (p) => { myClickState.Data = !myClickState.Data; }
                                                                                                                                             };

            manageData.AddControl(myClickState);
            manageData.AddControl(new Button(20, 80, 100, 25, "Send Wave") {
                                                                                   Click = (p) => {
                                                                                               //idk do something on button click
                                                                                           }
                                                                           });
        }
Пример #5
0
        /// <summary>
        /// 重写OnMouseDown
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseDown(MouseEventArgs e)
        {
            try
            {
                this._lastMouseDownMoveLocation = e.Location;
                this._mouseDownArgs             = e;
                this._mouseDownUIArea           = this.GetUIArea(e.Location, this._plotPara, this._selectedInfo);

                if (e.Button == MouseButtons.Right &&
                    (this._mouseDownUIArea == UIArea.Wave || this._mouseDownUIArea == UIArea.WaveSelected || this._mouseDownUIArea == UIArea.Voice || this._mouseDownUIArea == UIArea.VoiceSelected))
                {
                    SelectedInfo oldSelectedInfo = this._selectedInfo;
                    if (e.Clicks == 1)
                    {
                        //右键单击,取消选择
                        if (this._selectedInfo == null)
                        {
                            return;
                        }

                        this._selectedInfo = null;
                    }
                    else
                    {
                        //右键双击,全选
                        this._selectedInfo = new SelectedInfo(this._plotPara.BaseTime, 0d, this._plotPara.DurationMillisecond);
                    }

                    this.SelectedAreaChangeDraw(oldSelectedInfo);
                }
            }
            catch (Exception ex)
            {
                Loger.Error(ex);
            }
            finally
            {
                base.OnMouseDown(e);
            }
        }
Пример #6
0
        public override void BuildUI(UIManager manager)
        {
            UIArea manageData;
            manager.AddArea(manageData = new UIArea(Screen.Width - 400, 100, 250, 300) {Closable = true});
            manageData.Visible = true;
            manageData.AddControl(new TextArea(30, 25, "Manage Defense") {Color = "blue"});

            manageData.AddControl(new TextArea(5, 50, "Mode: "));

            myClickState = null;
            myClickState = new Button<bool>(true, 20, 50, 100, 25, new Func<string>(() => { return myClickState.Data ? "Edit" : "Play"; })) {
                                                                                                                                                    Click = (p) => {
                                                                                                                                                                myClickState.Data = !myClickState.Data;

                                                                                                                                                                if (myClickState.Data) gameManager.GameMode = GameMode.Play;
                                                                                                                                                                else gameManager.GameMode = GameMode.TileEdit;
                                                                                                                                                            }
                                                                                                                                            };

            manageData.AddControl(myClickState);
            manageData.AddControl(new Button(20, 80, 100, 25, "Send Wave") {Click = (p) => { }});
        }
Пример #7
0
        /// <summary>
        /// 设置缩略波形图平移鼠标样式
        /// </summary>
        /// <param name="area">鼠标所在区域</param>
        private void SetZoomWavMoveMouseStyle(UIArea area)
        {
            if (this._wavArea.Width == this._zoomDisplayArea.Width)
            {
                //如果当前缩略波形全部为显示区域,则不作处理,不允许移动
                if (this.Cursor == this._zoomWavDisplayAreaMmoveMouseStyle)
                {
                    this.Cursor = this._defaultCursor;
                }

                return;
            }

            if (area == UIArea.ZoomDisplayArea && this.Cursor != this._zoomWavDisplayAreaMmoveMouseStyle)
            {
                //在缩略波形区域内,在该区域内可左右移动显示的波形区域,所以设置鼠标光标样式为可移动的样式
                this.Cursor = this._zoomWavDisplayAreaMmoveMouseStyle;
            }
            else if (area == UIArea.ZoomArea && this.Cursor != this._defaultCursor)
            {
                this.Cursor = this._defaultCursor;
            }
        }
Пример #8
0
        public LevelManagerArea(UIManager.UIManager uiManager)
        {

            LevelManager = uiManager.UIManagerAreas.LevelManagerArea = new UIArea(Window.OuterWidth - 440, 100, 390, 390) { Closable = true };
            LevelManager.Visible = true;

            uiManager.AddArea(LevelManager);
            LevelManager.AddControl(new TextArea(30, 25, "Level Manager") { Color = "blue" });

            LevelManager.AddControl(new Button(50, 70, 120, 28, "Live Objects") { Click = (p) => { new LiveObjectsArea(uiManager); } });
            LevelManager.AddControl(new Button(50, 110, 120, 28, "Debug Animations")
            {
                Click = (p) =>
                {

                    SonicManager.Instance.TileChunkDebugDrawOptions.OutlineChunk = !SonicManager.Instance.TileChunkDebugDrawOptions.OutlineChunk;
                    SonicManager.Instance.TileChunkDebugDrawOptions.ShowPaletteAnimationData = !SonicManager.Instance.TileChunkDebugDrawOptions.ShowPaletteAnimationData;
                    SonicManager.Instance.TileChunkDebugDrawOptions.ShowBaseData = !SonicManager.Instance.TileChunkDebugDrawOptions.ShowBaseData;
                    SonicManager.Instance.TileChunkDebugDrawOptions.ShowTileAnimationData = !SonicManager.Instance.TileChunkDebugDrawOptions.ShowTileAnimationData;

                }
            });
        }
Пример #9
0
        /// <summary>
        /// 重写OnMouseUp
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseUp(MouseEventArgs e)
        {
            try
            {
                UIArea area = this.GetUIArea(e.Location);
                switch (area)
                {
                case UIArea.ZoomArea:

                    break;

                case UIArea.WavArea:
                    if (this._mouseDownArgs != null && this._mouseDownArgs.Location == e.Location)
                    {
                        if (e.Button == System.Windows.Forms.MouseButtons.Right)
                        {
                            //计算主波形选中区域起始结束索引
                            this.CalculateWavSelectedAreaIndex(0, 0);

                            //添加更新区域
                            bool refreshFlag = this.AddPartRefreshArea(this._wavSelectedArea);
                            refreshFlag |= this.AddPartRefreshArea(this._zoomSelectedArea);

                            //更新波形选中区域
                            this.UpdateSelectedArea(0, 0);

                            //添加更新区域
                            refreshFlag |= this.AddPartRefreshArea(this._wavSelectedArea);
                            refreshFlag |= this.AddPartRefreshArea(this._zoomSelectedArea);

                            //刷新
                            if (refreshFlag)
                            {
                                this.RefreshWave(true, false, false, false, false, false);
                            }
                        }
                        else if (e.Button == System.Windows.Forms.MouseButtons.Left && e.Clicks == 1 && this.GrtPlayState() == PlayStatus.PLAYING)
                        {
                            //播放位置跳转
                            //播放位置对应当前播放段的比例
                            float pscale       = ((float)(e.X - this._wavArea.X)) / this._wavArea.Width;
                            long  bytePosition = (long)((this._we - this._ws) * pscale) + this._ws;
                            long  pos          = bytePosition * this._channelInfo.chans * WavePlayer.OFFSETPARA;
                            float wavLocation  = (float)pos / (this._channelInfo.chans * WavePlayer.OFFSETPARA);

                            //如果当前有开启环听,则当跳转的位置不在选中的区域范围内,则不允许跳转
                            if (this._isRingHear && (wavLocation >= this._se || wavLocation <= this._ss))
                            {
                                return;
                            }

                            //设置播放位置
                            Bass.BASS_ChannelSetPosition(this._handle, pos, BASSMode.BASS_POS_BYTE);

                            //将当前的播放位置指示线区域添加为需要更新的区域
                            this.AddPartRefreshArea(new RectangleF(this._wavPlayLineX, this._wavArea.Y, this._playLineChannelPen.Width, this._wavArea.Height));
                            this.AddPartRefreshArea(new RectangleF(this._zoomPlayLineX, this._zoomArea.Y, this._playLineChannelPen.Width, this._zoomArea.Height));
                        }
                    }

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                this.OnRaiseLog(ex);
            }
            finally
            {
                //还原鼠标是否近下标识
                this._mouseDownArgs = null;
                base.OnMouseUp(e);
            }
        }
Пример #10
0
        /// <summary>
        /// 重写OnMouseMove
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseMove(MouseEventArgs e)
        {
            try
            {
                this._currentMouseArgs = e;
                UIArea area = this.GetUIArea(this._currentMouseArgs.Location);
                switch (area)
                {
                case UIArea.ZoomDisplayArea:
                case UIArea.ZoomArea:
                    //设置鼠标样式
                    this.SetZoomWavMoveMouseStyle(area);

                    //计算新的显示区域
                    if (this._mouseDownArgs != null &&
                        this._mouseDownArgs.Button == System.Windows.Forms.MouseButtons.Left &&
                        this._mouseDownArgs.Clicks == 1 &&
                        this._mouseDownUIArea == UIArea.ZoomDisplayArea &&
                        this._srcLeftChannelDataLength != 0)
                    {
                        int offset = (e.X - this._lastMouseDownMoveLocation.X) * this._srcLeftChannelDataLength / this._zoomArea.Width;

                        //缩略波形对应主波形中显示段改变
                        this.ZoomWavDisplaySegmentAreaChange(offset);

                        //更新主波形播放位置指示线上次指示线所在的位置是否在主波形显示段内
                        this.UpdateWavPlayLocationLingLastInArea();
                    }

                    break;

                case UIArea.WavArea:
                    //在主波形区域内,在该区域内有缩放波形、选中波形区域、跳转播放位置、右键菜单等操作,所以设置鼠标光标样式为可选中的样式
                    if (this.Cursor != this._wavSelecteMouseStyle)
                    {
                        this.Cursor = this._wavSelecteMouseStyle;
                    }

                    //更新缩略波形区域
                    if (this._mouseDownArgs != null &&
                        this._mouseDownArgs.Button == System.Windows.Forms.MouseButtons.Right &&
                        this._mouseDownUIArea == UIArea.WavArea)
                    {
                        int   mouseDownX = this._mouseDownArgs.Location.X;
                        float x, sectedAreaWidth;
                        if (e.X < mouseDownX)
                        {
                            x = e.X;
                            sectedAreaWidth = mouseDownX - e.X;
                        }
                        else
                        {
                            x = mouseDownX;
                            sectedAreaWidth = e.X - mouseDownX;
                        }

                        //计算主波形选中区域起始结束索引
                        this.CalculateWavSelectedAreaIndex(x, sectedAreaWidth);

                        //刷新波形选中区域改变
                        this.RefreshWavSelectedChange(x, sectedAreaWidth);
                    }

                    break;

                //case UIArea.TimeArea:
                //    break;
                //case UIArea.DbArea:
                //    break;
                default:
                    if (this.Cursor != this._defaultCursor)
                    {
                        this.Cursor = this._defaultCursor;
                    }

                    break;
                }
            }
            catch (Exception ex)
            {
                this.OnRaiseLog(ex);
            }
            finally
            {
                this._lastMouseDownMoveLocation = e.Location;
                base.OnMouseMove(e);
            }
        }
Пример #11
0
        /// <summary>
        /// 重写OnMouseMove
        /// </summary>
        /// <param name="e"></param>
        protected override void OnMouseMove(MouseEventArgs e)
        {
            try
            {
                if (this._plotPara == null)
                {
                    return;
                }

                this._currentMouseArgs = e;
                UIArea area = this.GetUIArea(this._currentMouseArgs.Location, this._plotPara, this._selectedInfo);
                this.SetZoomWavMoveMouseStyle(area);

                switch (area)
                {
                case UIArea.GlobalViewZoomDisplay:
                    if (e.Button != MouseButtons.Left || !this._zoomInfo.HasZoom())
                    {
                        return;
                    }

                    //有缩放时,拖动全局视图进行移动,改变放大后显示区域
                    double moveMillisecond = (e.X - this._lastMouseDownMoveLocation.X) * this._plotPara.DurationMillisecond / this._content.Area.Width;
                    double sbtoMillisecond = this._plotPara.SBTOMillisecond + moveMillisecond;
                    double setoMillisecond;
                    if (sbtoMillisecond < PlotConstant.ZEROR_D)
                    {
                        sbtoMillisecond = 0;
                        setoMillisecond = this._plotPara.GetSETOMillisecond() - this._plotPara.SBTOMillisecond;
                    }
                    else
                    {
                        setoMillisecond = this._plotPara.GetSETOMillisecond() + moveMillisecond;
                        if (this._plotPara.DurationMillisecond - setoMillisecond < PlotConstant.ZEROR_D)
                        {
                            setoMillisecond = this._plotPara.DurationMillisecond;
                            sbtoMillisecond = setoMillisecond - (this._plotPara.GetSETOMillisecond() - this._plotPara.SBTOMillisecond);
                        }
                    }

                    this._plotPara.SBTOMillisecond = sbtoMillisecond;
                    this._plotPara.UpdateSETOMillisecond(setoMillisecond);
                    this.Resample();
                    this.PartDraw_ZoomMove();
                    break;

                case UIArea.Wave:
                case UIArea.Voice:
                    if (e.Button != MouseButtons.Right)
                    {
                        return;
                    }

                    //波形图和语谱图上选中区域改变
                    int   mouseDownX = this._mouseDownArgs.Location.X;
                    float beginX, endX;
                    if (e.X < mouseDownX)
                    {
                        beginX = e.X;
                        endX   = mouseDownX;
                    }
                    else
                    {
                        beginX = mouseDownX;
                        endX   = e.X;
                    }

                    double       setOMillisecond  = this._plotPara.GetSETOMillisecond();
                    double       unitTime         = (setOMillisecond - this._plotPara.SBTOMillisecond) / this._content.Area.Width;
                    double       beginMillisecond = this._plotPara.SBTOMillisecond + beginX * unitTime;
                    double       endMillisecond   = this._plotPara.SBTOMillisecond + endX * unitTime;
                    SelectedInfo oldSelectedInfo  = this._selectedInfo;
                    this._selectedInfo = new SelectedInfo(this._plotPara.BaseTime, beginMillisecond, endMillisecond);
                    this.SelectedAreaChangeDraw(oldSelectedInfo);
                    break;

                case UIArea.WaveSelected:
                case UIArea.VoiceSelected:
                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Loger.Error(ex);
            }
            finally
            {
                this._lastMouseDownMoveLocation = e.Location;
                base.OnMouseMove(e);
            }
        }
Пример #12
0
        public ObjectFrameworkArea(UIManager.UIManager manager)
        {
            var size = 40 * 4;

            objectFrameworkArea = new UIArea<ObjectFrameworkData>(new ObjectFrameworkData() {ObjectFramework = new LevelObject("Foo")}, 540, 75, 850, 690) {Closable = true};
            objectFrameworkArea.Visible = false;
            manager.AddArea(objectFrameworkArea);
            manager.UIManagerAreas.ObjectFrameworkArea = this;

            objectFrameworkArea.AddControl(new TextArea(30, 25, "Object Framework") {Color = "blue"});

            objectFrameworkArea.AddControl(new TextArea(16, 60, "Assets") {Color = "black"});

            objectFrameworkArea.AddControl(new Button(160, 38, 140, 25, "Add Asset") {
                                                                                             Color = "rgb(50,150,50)",
                                                                                             Click = (p) => {
                                                                                                         objectFrameworkArea.Data.ObjectFramework.Assets.Add(
                                                                                                                 new LevelObjectAsset("Asset " +
                                                                                                                                      ( objectFrameworkArea.Data.ObjectFramework.Assets.Count +
                                                                                                                                        1 )));
                                                                                                         Populate(objectFrameworkArea.Data.ObjectFramework);
                                                                                                     }
                                                                                     });

            objectFrameworkArea.AddControl(
                    objectFrameworkArea.Data.Assets = new ScrollBox(30, 60 + 10, 25, 4, 250) {BackColor = "rgb(50, 60, 127)",});

            objectFrameworkArea.AddControl(new TextArea(16, 60 + ( size * 1 ), "Pieces") {Color = "black"});

            objectFrameworkArea.AddControl(new Button(160, 38 + ( size * 1 ), 140, 25, "Add Piece") {
                                                                                                            Color = "rgb(50,150,50)",
                                                                                                            Click = (p) => {
                                                                                                                        objectFrameworkArea.Data.ObjectFramework.Pieces.Add(
                                                                                                                                new LevelObjectPiece("Piece " +
                                                                                                                                                     ( objectFrameworkArea.Data.ObjectFramework.
                                                                                                                                                                           Pieces.Count +
                                                                                                                                                       1 )));
                                                                                                                        Populate(objectFrameworkArea.Data.ObjectFramework);
                                                                                                                    }
                                                                                                    });

            objectFrameworkArea.AddControl(
                    objectFrameworkArea.Data.Pieces =
                    new ScrollBox(30, 60 + 10 + ( size * 1 ), 25, 4, 250) {BackColor = "rgb(50, 60, 127)",});

            objectFrameworkArea.AddControl(new TextArea(16, 60 + ( size * 2 ), "Piece Layouts") {Color = "black"});

            objectFrameworkArea.AddControl(new Button(160, 38 + ( size * 2 ), 140, 25, "Add Piece Layout") {
                                                                                                                   Color = "rgb(50,150,50)",
                                                                                                                   Click = (p) => {
                                                                                                                               objectFrameworkArea.Data.ObjectFramework.PieceLayouts.Add(
                                                                                                                                       new LevelObjectPieceLayout("Piece Layout " +
                                                                                                                                                                  ( objectFrameworkArea.Data.
                                                                                                                                                                                        ObjectFramework
                                                                                                                                                                                       .
                                                                                                                                                                                        PieceLayouts
                                                                                                                                                                                       .Count +
                                                                                                                                                                    1 )));
                                                                                                                               Populate(objectFrameworkArea.Data.ObjectFramework);
                                                                                                                           }
                                                                                                           });

            objectFrameworkArea.AddControl(
                    objectFrameworkArea.Data.PieceLayouts =
                    new ScrollBox(30, 60 + 10 + ( size * 2 ), 25, 4, 250) {BackColor = "rgb(50, 60, 127)",});

            objectFrameworkArea.AddControl(new TextArea(16, 60 + ( size * 3 ), "Projectiles") {Color = "black"});

            objectFrameworkArea.AddControl(new Button(160, 38 + ( size * 3 ), 140, 25, "Add Projectile") {
                                                                                                                 Color = "rgb(50,150,50)",
                                                                                                                 Click = (p) => {
                                                                                                                             objectFrameworkArea.Data.ObjectFramework.Projectiles.Add(
                                                                                                                                     new LevelObjectProjectile(
                                                                                                                                             "Piece Projectile " +
                                                                                                                                             ( objectFrameworkArea.Data.ObjectFramework.Projectiles.
                                                                                                                                                                   Count + 1 )));
                                                                                                                             Populate(objectFrameworkArea.Data.ObjectFramework);
                                                                                                                         }
                                                                                                         });

            objectFrameworkArea.AddControl(
                    objectFrameworkArea.Data.Projectiles =
                    new ScrollBox(30, 60 + 10 + ( size * 3 ), 25, 4, 250) {BackColor = "rgb(50, 60, 127)",});

            objectFrameworkArea.AddControl(new TextArea(320, 80 - 20, "Key: ") {Font = UIManager.UIManager.SmallTextFont, Color = "black"});
            objectFrameworkArea.AddControl(
                    objectFrameworkArea.Data.Key =
                    new TextBox(370, 60 - 20, 150, 25, "") {Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Key = objectFrameworkArea.Data.Key.Text; }});

            objectFrameworkArea.AddControl(new TextArea(320 + 205, 80 - 24, "Description: ") {Font = UIManager.UIManager.SmallTextFont, Color = "black"});
            objectFrameworkArea.AddControl(
                    objectFrameworkArea.Data.Description =
                    new TextBox(370 + 240, 60 - 20, 220, 25, "") {Color = "rgb(50,150,50)", Click = (p) => { objectFrameworkArea.Data.ObjectFramework.Description = objectFrameworkArea.Data.Description.Text; }});

            objectFrameworkArea.AddControl(objectFrameworkArea.Data.b1 = new Button(320, 95 - 20, 250, 25, "onInit") {
                                                                                                                             Color = "rgb(50,150,50)",
                                                                                                                             Click = (p) => {
                                                                                                                                         objectFrameworkArea.Data.b2.Toggled = false;
                                                                                                                                         objectFrameworkArea.Data.b3.Toggled = false;
                                                                                                                                         objectFrameworkArea.Data.b4.Toggled = false;
                                                                                                                                         if (objectFrameworkArea.Data.b1.Toggled) {
                                                                                                                                             addCodeWindow(objectFrameworkArea.Data.ObjectFramework.InitScript,
                                                                                                                                                           () => { objectFrameworkArea.Data.ObjectFramework.InitScript = objectFrameworkArea.Data.Editor.GetValue(); });
                                                                                                                                         } else
                                                                                                                                             ClearMainArea();
                                                                                                                                     }
                                                                                                                     });
            objectFrameworkArea.Data.b1.Toggle = true;

            objectFrameworkArea.AddControl(objectFrameworkArea.Data.b2 = new Button(580, 95 - 20, 250, 25, "onTick") {
                                                                                                                             Color = "rgb(50,150,50)",
                                                                                                                             Click = (p) => {
                                                                                                                                         objectFrameworkArea.Data.b1.Toggled = false;
                                                                                                                                         objectFrameworkArea.Data.b3.Toggled = false;
                                                                                                                                         objectFrameworkArea.Data.b4.Toggled = false;
                                                                                                                                         if (objectFrameworkArea.Data.b2.Toggled) {
                                                                                                                                             addCodeWindow(objectFrameworkArea.Data.ObjectFramework.TickScript,
                                                                                                                                                           () => { objectFrameworkArea.Data.ObjectFramework.TickScript = objectFrameworkArea.Data.Editor.GetValue(); });
                                                                                                                                         } else
                                                                                                                                             ClearMainArea();
                                                                                                                                     }
                                                                                                                     });
            objectFrameworkArea.Data.b2.Toggle = true;

            objectFrameworkArea.AddControl(objectFrameworkArea.Data.b3 = new Button(320, 130 - 20, 250, 25, "onCollide") {
                                                                                                                                 Color = "rgb(50,150,50)",
                                                                                                                                 Click = (p) => {
                                                                                                                                             objectFrameworkArea.Data.b1.Toggled = false;
                                                                                                                                             objectFrameworkArea.Data.b2.Toggled = false;
                                                                                                                                             objectFrameworkArea.Data.b4.Toggled = false;
                                                                                                                                             if (objectFrameworkArea.Data.b3.Toggled) {
                                                                                                                                                 addCodeWindow(objectFrameworkArea.Data.ObjectFramework.CollideScript,
                                                                                                                                                               () => { objectFrameworkArea.Data.ObjectFramework.CollideScript = objectFrameworkArea.Data.Editor.GetValue(); });
                                                                                                                                             } else
                                                                                                                                                 ClearMainArea();
                                                                                                                                         }
                                                                                                                         });
            objectFrameworkArea.Data.b3.Toggle = true;

            objectFrameworkArea.AddControl(objectFrameworkArea.Data.b4 = new Button(580, 130 - 20, 250, 25, "onHurtSonic") {
                                                                                                                                   Color = "rgb(50,150,50)",
                                                                                                                                   Click = (p) => {
                                                                                                                                               objectFrameworkArea.Data.b1.Toggled = false;
                                                                                                                                               objectFrameworkArea.Data.b2.Toggled = false;
                                                                                                                                               objectFrameworkArea.Data.b3.Toggled = false;
                                                                                                                                               if (objectFrameworkArea.Data.b4.Toggled) {
                                                                                                                                                   addCodeWindow(objectFrameworkArea.Data.ObjectFramework.HurtScript,
                                                                                                                                                                 () => { objectFrameworkArea.Data.ObjectFramework.HurtScript = objectFrameworkArea.Data.Editor.GetValue(); });
                                                                                                                                               } else
                                                                                                                                                   ClearMainArea();
                                                                                                                                           }
                                                                                                                           });
            objectFrameworkArea.Data.b4.Toggle = true;

            objectFrameworkArea.AddControl(objectFrameworkArea.Data.MainPanel = new Panel<MainPanelData>(new MainPanelData(), 320, 150, 510, 510));
            //    setTimeout("        var sc = document.getElementById("picFieldUploader");sc.style.visibility = "hidden";sc.style.position="absolute";", 300);
        }
Пример #13
0
        public LevelSelectorArea(UIManager.UIManager manager)
        {
            var levelInformation = new UIArea(70, 70, 460, 420);
            levelInformation.Visible = true;
            manager.AddArea(levelInformation);

            levelInformation.AddControl(new TextArea(30, 25, "Level Selector") { Font = UIManager.UIManager.TextFont, Color = "blue" });
            levelInformation.AddControl(new TextArea(30, 52, ((Func<string>)(() => UIManager.UIManager.CurLevelName))) { Font = UIManager.UIManager.TextFont, Color = "black" });

            levelInformation.AddControl(new Button(320, 70, 100, 22, "Save Level") { Font = UIManager.UIManager.ButtonFont, Color = "rgb(50,150,50)" });

            levelInformation.AddControl(new Button(320, 105, 135, 22, "Load Empty Level")
            {
                Font = UIManager.UIManager.ButtonFont,
                Color = "rgb(50,150,50)",
                Click = (p) =>
                {
                    /*  levelManagerArea.visible = true;
loadingText.visible = true;
var index = 0;
var tim = function () {
var max = 188;
if (index == max) {
setTimeout(function () {
alert(_H.stringify(sonicManager.SonicLevel));
sonicManager.uiManager.loadGame(_H.stringify(sonicManager.SonicLevel), sonicManager.mainCanvas);
loadingText.visible = false;
}, 500);
return;
}
setTimeout(tim, 100);

_H.loadSprite("assets/Chunks/Tile" + index++ + ".png", function (image) {
loadingText.text = "Loading " + index + "/" + max;
sonicManager.importChunkFromImage(image);
if (index == max) {
sonicManager.inds = { done: true };
}
});

};
setTimeout(tim, 100);*/
                }
            });

            var ctls =
                    levelInformation.AddControl(new ScrollBox(30, 70, 25, 11, 250) { BackColor = "rgb(50, 60, 127)", });
            var loadLevel = (Action<string>)(name =>
            {
                UIManager.UIManager.UpdateTitle("Downloading " + name);
                SonicEngine.Instance.client.Emit("LoadLevel.Request", new DataObject<string>(name));
                ;
            });
            bool neverGot=true;
            SonicEngine.Instance.client.On<DataObject<string>>("LoadLevel.Response", LoadLevel);
            Window.SetTimeout(() => {
                if (neverGot) {
                    UIManager.UIManager.CurLevelName = "Connection Failed, static level loaded";
                    LoadLevel(new DataObject<string>(Window.Instance.Me().STATICLEVEL));
                }

                  

                              }, 3000);

            SonicEngine.Instance.client.On<DataObject<string[]>>("GetLevels.Response",
                                                                 data => {
                                                                     neverGot = false;
                                                                     bool load = true;
                                                                     foreach (var level in data.Data.OrderBy(a => a))
                                                                     {
                                                                         if (load)
                                                                         {
                                                                             //#if RELEASE
                                                                             //loadLevel(level);
                                                                             //#endif
                                                                             load = false;
                                                                         }
                                                                         string area = level;
                                                                         ctls.AddControl(new Button(0, 0, 0, 0, level)
                                                                         {
                                                                             Color = "rgb(50,190,90)",
                                                                             Click = (p) => { loadLevel(area); }
                                                                         });
                                                                     }
                                                                 });
            SonicEngine.Instance.client.Emit("GetLevels.Request", null);

            UIManager.UIManager.CurLevelName = "Level Not Loaded";
        }
Пример #14
0
        public override void BuildUI(UIManager manager)
        {
            UIArea manageData;
            manager.AddArea(manageData = new UIArea(Screen.Width - 400, 100, 250, 300) {Closable = true});
            manageData.Visible = true;
            manageData.AddControl(new TextArea(30, 25, "Manage Defense") {Color = "blue"});

            myClickState = null;
            myClickState = new Button<int>(0,
                                           20,
                                           50,
                                           100,
                                           25,
                                           (Func<string>) ( () => {
                                                                switch (myClickState.Data) {
                                                                    case 0:
                                                                        return "Move Kingdom";
                                                                    case 1:
                                                                        return "Move Waypoint";
                                                                    case 2:
                                                                        return "Add Waypoint";
                                                                    case 3:
                                                                        return "Place Tower";
                                                                }
                                                                return "";
                                                            } )) {
                                                                         Click = (p) => {
                                                                                     myClickState.Data++;
                                                                                     myClickState.Data = myClickState.Data % 4;
                                                                                 }
                                                                 };
            manageData.AddControl(myClickState);
            manageData.AddControl(new Button(20, 80, 100, 25, "Send Wave") {
                                                                                   Click = (p) => {
                                                                                               foreach (var kingdom in Kingdoms) {
                                                                                                   for (int i = 0; i < 4; i++) {
                                                                                                       KeyValuePair<string, Kingdom> kingdom1 = kingdom;
                                                                                                       Window.SetTimeout(() => {
                                                                                                                             kingdom1.Value.Units.Add(new QuickShooterUnit(kingdom1.Value.Waypoints[0].Travel(150, Scale), kingdom1.Value));
                                                                                                                             kingdom1.Value.Units.Add(new QuickShooterUnit(kingdom1.Value.Waypoints[1].Travel(150, Scale), kingdom1.Value));
                                                                                                                             kingdom1.Value.Units.Add(new QuickShooterUnit(kingdom1.Value.Waypoints[2].Travel(150, Scale), kingdom1.Value));
                                                                                                                         },
                                                                                                                         750 * i);
                                                                                                   }
                                                                                               }
                                                                                           }
                                                                           });

            manageData.AddControl(new Button(20, 125, 100, 25, ( (Func<string>) ( () => { return DRAWFAST ? "Draw Slow" : "Draw Fast"; } ) )) {Click = (p) => { DRAWFAST = !DRAWFAST; }});
        }