Пример #1
0
        public SizingCommandItem(CommandPosition position, EditorItem owner)
            : base(position, owner)
        {
            this.commandSize = 6;
            this.widthInPixels = 6;
            this.heightInPixels = 6;
            switch (this.CommandPosition)
            {
                case CommandPosition.TopLeft:
                case CommandPosition.BottomRight:
                    this.cursor = Cursors.SizeNWSE;

                    break;
                case CommandPosition.TopCenter:
                case CommandPosition.BottomCenter:
                    this.cursor = Cursors.SizeNS;
                    break;
                case CommandPosition.MiddleLeft:
                case CommandPosition.MiddleRight:
                    this.cursor = Cursors.SizeWE;
                    break;
                case CommandPosition.TopRight:
                case CommandPosition.BottomLeft:
                    this.cursor = Cursors.SizeNESW;
                    break;
            }
        }
        public override void Generate()
        {
            List <OsbSprite> LyricsSprites = new List <OsbSprite>();

            foreach (char c in LyricsContent)
            {
                string    char_path = System.IO.Path.Combine(CharPath, $"{(int)c}.png");
                OsbSprite sprite    = GetLayer("BeginningContentsEffects").CreateSprite(char_path, OsbOrigin.CentreLeft);
                LyricsSprites.Add(sprite);
            }

            float font_size_len = 128 * FontScale;

            //显示字幕
            for (int i = 0; i < LyricsSprites.Count; i++)
            {
                var sprite = LyricsSprites[i];
                sprite.Fade(OsbEasing.None, StartTime + i * FadeInTimeInv, StartTime + 500 + i * FadeInTimeInv, 0, 1);
                sprite.Fade(OsbEasing.None, EndTime - 500, EndTime, 1, 0);

                var postion = new CommandPosition(Position.X + (font_size_len + UnitOffset) * i, Position.Y);
                sprite.Move(StartTime, postion.X, postion.Y);
                sprite.Scale(StartTime, FontScale);
            }
        }
        public override void Generate()
        {
            var layer = GetLayer("TitleLightDotFlyEffect");

            for (int i = 0; i < Count; i++)
            {
                var sprite = layer.CreateSprite(@"SB\effect\light_dot.png");

                float total_time = StartTime + (float)Random(0, 1.0f) * FlyTime;

                while (total_time < EndTime)
                {
                    float cast_time = (float)Random(FlyTime * (1 - FlyRandomTimeRate), FlyTime * (1 + FlyRandomTimeRate));

                    var random_start_posion = new CommandPosition(854, Random(-0, 480));
                    var end_position        = new CommandPosition(854 - Random(854 * (1 - 0.25), 854 * (1 + 0.25)), Random(-0, 480));
                    var alpha = Random(MinAlpha, MaxAlpha);

                    sprite.Fade(OsbEasing.None, total_time, total_time + FadeInOutTime, 0, alpha);
                    sprite.Fade(OsbEasing.None, total_time + cast_time - FadeInOutTime, total_time + cast_time, alpha, 0);

                    sprite.Additive(total_time, total_time + cast_time);

                    sprite.Move(OsbEasing.None, total_time, total_time + cast_time, random_start_posion, end_position);

                    total_time += cast_time;
                }
            }
        }
        public override void Generate()
        {
            var layer = GetLayer("BlurBallRaiseEffect");

            for (int i = 0; i < Count; i++)
            {
                var sprite = layer.CreateSprite(FilePath);

                float total_time = StartTime + (float)Random(0, 1.0f) * RaiseTime;

                while (total_time < EndTime)
                {
                    float cast_time = (float)Random(RaiseTime * (1 - RaiseRandomTimeRate), RaiseTime * (1 + RaiseRandomTimeRate));

                    var random_start_posion = new CommandPosition(Random(-107, 640), BaseY);
                    var end_position        = new CommandPosition(random_start_posion.X, random_start_posion.Y - Random(RaiseHeight * (1 - RaiseRandomHeightRate), RaiseHeight * (1 + RaiseRandomHeightRate)));
                    var alpha = Random(MinAlpha, MaxAlpha);

                    sprite.Fade(OsbEasing.None, total_time, total_time + FadeInOutTime, 0, alpha);
                    sprite.Fade(OsbEasing.None, total_time + cast_time - FadeInOutTime, total_time + cast_time, alpha, 0);

                    sprite.Scale(total_time, Random(ScaleMin, ScaleMax));
                    sprite.Color(total_time, GetRandomColor());

                    sprite.Move(OsbEasing.None, total_time, total_time + cast_time, random_start_posion, end_position);

                    total_time += cast_time;
                }
            }
        }
Пример #5
0
        public SizingCommandItem(CommandPosition position, EditorItem owner) : base(position, owner)
        {
            this.commandSize    = 6;
            this.widthInPixels  = 6;
            this.heightInPixels = 6;
            switch (this.CommandPosition)
            {
            case CommandPosition.TopLeft:
            case CommandPosition.BottomRight:
                this.cursor = Cursors.SizeNWSE;

                break;

            case CommandPosition.TopCenter:
            case CommandPosition.BottomCenter:
                this.cursor = Cursors.SizeNS;
                break;

            case CommandPosition.MiddleLeft:
            case CommandPosition.MiddleRight:
                this.cursor = Cursors.SizeWE;
                break;

            case CommandPosition.TopRight:
            case CommandPosition.BottomLeft:
                this.cursor = Cursors.SizeNESW;
                break;
            }
        }
Пример #6
0
        public CommandItem(CommandPosition position, EditorItem owner)
        {
            this.Owner = owner;
            this.commandPosition = position;

            this.widthInPixels = commandSize;
            this.heightInPixels = commandSize;
        }
Пример #7
0
        public CommandItem(CommandPosition position, EditorItem owner)
        {
            this.Owner           = owner;
            this.commandPosition = position;

            this.widthInPixels  = commandSize;
            this.heightInPixels = commandSize;
        }
        public override void Generate()
        {
            var layer = GetLayer("TitleSakuraFlyingEffect");

            for (int i = 0; i < Count; i++)
            {
                var sprite = layer.CreateSprite($@"SB\effect\sakura\flower{Random(1,5)}.png");

                float total_time = StartTime + (float)Random(0, 1.0f) * FlyTime;

                while (total_time < EndTime)
                {
                    float cast_time = (float)Random(FlyTime * (1 - FlyRandomTimeRate), FlyTime * (1 + FlyRandomTimeRate));

                    var random_start_posion = new CommandPosition(854, Random(-0, 480));
                    var end_position        = new CommandPosition(854 - Random(854 * (1 - 0.25), 854 * (1 + 0.25)), Random(-0, 480));
                    var alpha = Random(MinAlpha, MaxAlpha);

                    var random_radius        = Random(0, 2 * Math.PI);
                    var random_rotate_radius = Random(-420, 420) * Math.PI / 180;

                    float random_scale_start_x, random_scale_start_y, random_scale_end_x, random_scale_end_y;
                    float keep_scale         = (float)Random(BaseSize * (1 - SizeRange), BaseSize * (1 + SizeRange));
                    float change_scale_start = (float)(Random(BaseSize * (1 - SizeRange), BaseSize * (1 + SizeRange)) * Random(0, 1.0f));
                    float change_scale_end   = Random(2857) % 5 == 0 ? change_scale_start : (float)(Random(BaseSize * (1 - SizeRange), BaseSize * (1 + SizeRange)) * Random(0, 1.0f));
                    if (Random(2857) % 2 == 0)
                    {
                        random_scale_start_x = random_scale_end_x = keep_scale;
                        random_scale_start_y = change_scale_start;
                        random_scale_end_y   = change_scale_end;
                    }
                    else
                    {
                        random_scale_start_y = random_scale_end_y = keep_scale;
                        random_scale_start_x = change_scale_start;
                        random_scale_end_x   = change_scale_end;
                    }

                    sprite.Fade(OsbEasing.None, total_time, total_time + FadeInOutTime, 0, alpha);
                    sprite.Fade(OsbEasing.None, total_time + cast_time - FadeInOutTime, total_time + cast_time, alpha, 0);
                    sprite.Rotate(OsbEasing.None, total_time, total_time + cast_time, random_radius, random_rotate_radius);
                    sprite.ScaleVec(OsbEasing.None, total_time, total_time + cast_time, new CommandScale(random_scale_start_x, random_scale_start_y), new CommandScale(random_scale_end_x, random_scale_end_y));

                    sprite.Additive(total_time, total_time + cast_time);

                    sprite.Move(OsbEasing.None, total_time, total_time + cast_time, random_start_posion, end_position);

                    total_time += cast_time;
                }
            }
        }
        //认怂,todo//显示一半index,后半部分是前半部分的镜像
        public void GenerateMirrorSakura(int total_sakura_count, float sakura_size_width)
        {
            for (int current_index = 0; current_index < total_sakura_count; current_index++)
            {
                var bg_sprite = RequestAvaliableSakuraSprite(current_index);

                bg_sprite.Fade(OsbEasing.None, StartTime + current_index * FadeInTimeInv, StartTime + 500 + current_index * FadeInTimeInv, 0, SakuraAlpha);
                bg_sprite.Fade(OsbEasing.None, EndTime - 500, EndTime, SakuraAlpha, 0);

                var postion = new CommandPosition(Position.X + (sakura_size_width + SakuraUnitOffset) * current_index, Position.Y);
                bg_sprite.Move(StartTime, postion.X, postion.Y);
                bg_sprite.Scale(StartTime, FontScale);
            }
        }
        public override void Generate()
        {
            var layer = GetLayer("LyricsLayer");

            foreach (char c in LyricsContent)
            {
                string    char_path = System.IO.Path.Combine(CharPath, $"{(int)c}.png");
                OsbSprite sprite    = layer.CreateSprite(char_path, OsbOrigin.CentreLeft);
                LyricsSprites.Add(sprite);
            }

            float font_size_len = 128 * FontScale;

            //显示字幕
            for (int i = 0; i < LyricsSprites.Count; i++)
            {
                var sprite = LyricsSprites[i];
                sprite.Fade(OsbEasing.None, StartTime + i * FadeInTimeInv, StartTime + 500 + i * FadeInTimeInv, 0, 1);
                sprite.Fade(OsbEasing.None, EndTime - 500, EndTime, 1, 0);

                var postion = new CommandPosition(Position.X + (font_size_len + UnitOffset) * i, Position.Y);
                sprite.Move(StartTime, postion.X, postion.Y);
                sprite.Scale(StartTime, FontScale);
            }

            //显示樱花背景 92x480
            float total_lyrics_content_width = LyricsSprites.Count * (font_size_len + UnitOffset);
            float sakura_size_width          = 92.0f * FontScale;
            float sakura_size_height         = 480.0f * FontScale;

            int total_sakura_count = (int)(total_lyrics_content_width / (sakura_size_width + SakuraUnitOffset)) + 1;

            /*
             * if (total_sakura_count>15)
             * {
             *  GenerateFullSakura(total_sakura_count,sakura_size_width);
             * }
             * else
             * {
             *  GenerateMirrorSakura(total_sakura_count, sakura_size_width);
             * }
             */
            GenerateMirrorSakura(total_sakura_count, sakura_size_width);
        }
        private void ShowINOCHIPart()
        {
            string title = @"いのち";
            float  size  = 32 * INOCHIScale;

            for (int i = 0; i < title.Length; i++)
            {
                char c        = title[i];
                var  position = new CommandPosition(INOCHIBaseX, INOCHIStartY + (INOCHIUnitOffset + size) * i);

                var sprite = GetLayer("TitleShowTitleEffect").CreateSprite($@"SB\font\title\l{(int)c}.png", OsbOrigin.Centre, new CommandPosition(position.X, position.Y));

                sprite.Fade(OsbEasing.None, StartTime + INOCHIFadeOutTimeInv * i, StartTime + INOCHIFadeOutTimeInv * i + FadeOutTime, 0, 1);
                sprite.Fade(OsbEasing.None, EndTime - FadeInTime, EndTime, 1, 0);

                sprite.Scale(StartTime, INOCHIScale);
                sprite.Color(StartTime, 0, 0, 0);
            }
        }
        private void ShowSubTitle()
        {
            string title = @"I was born for you";
            float  size  = 32 * SubTitleScale;

            for (int i = 0; i < title.Length; i++)
            {
                char c        = title[i];
                var  position = new CommandPosition(SubTitleStartX + (SubTitleUnitOffset + size) * i, SubTitleBaseY);

                var sprite = GetLayer("TitleShowTitleEffect").CreateSprite($@"SB\font\title\l{(int)c}.png", OsbOrigin.Centre, new CommandPosition(position.X, SubTitleBaseY));

                sprite.Fade(OsbEasing.None, StartTime + FadeOutTimeInv * i, StartTime + FadeOutTimeInv * i + FadeOutTime, 0, 1);
                sprite.Fade(OsbEasing.None, EndTime - FadeInTime, EndTime, 1, 0);

                sprite.Scale(StartTime, SubTitleScale);
                sprite.Color(StartTime, 0, 0, 0);
            }
        }
Пример #13
0
        private void ShowContent(string content, int move_distance, int start_time, int end_time, int start_x, float base_y, int fadeout_time, int fadein_time, float scale, float offset, int move_time, OsbEasing move_easing)
        {
            float size = 128 * Scale;

            for (int i = 0; i < content.Length; i++)
            {
                char c        = content[i];
                var  position = new CommandPosition(start_x + (offset + size) * i, base_y);

                var sprite = GetLayer("TitleShowInfoEffect").CreateSprite($@"SB\font\title\{(int)c}.png", OsbOrigin.Centre, new CommandPosition(position.X, base_y));

                sprite.Fade(OsbEasing.None, start_time + FadeOutTimeInv * i, start_time + FadeOutTime + FadeOutTimeInv * i, 0, 1);
                sprite.Fade(OsbEasing.None, end_time - FadeInTime, end_time, 1, 0);

                sprite.Scale(start_time, scale);
                sprite.Color(start_time, 0, 0, 0);

                sprite.MoveX(move_easing, start_time, start_time + move_time, position.X, position.X + move_distance);
            }
        }
        //显示index 1~15,中间插几张镜像
        public void GenerateFullSakura(int total_sakura_count, float sakura_size_width)
        {
            for (int current_index = 0; current_index < total_sakura_count; current_index++)
            {
                int  sprite_index = current_index;
                bool is_loop      = false;

                if (sprite_index > 8 && sprite_index < (total_sakura_count - 7))
                {
                    sprite_index = 8 + sprite_index % 2;
                    is_loop      = sprite_index % 2 != 0;
                }

                if (sprite_index > (total_sakura_count - 7))
                {
                    sprite_index = 8 + total_sakura_count - sprite_index;
                }

                var bg_sprite = RequestAvaliableSakuraSprite(sprite_index);

                bg_sprite.Fade(OsbEasing.None, StartTime + current_index * FadeInTimeInv, StartTime + 500 + current_index * FadeInTimeInv, 0, SakuraAlpha);
                bg_sprite.Fade(OsbEasing.None, EndTime - 500, EndTime, SakuraAlpha, 0);

                if (is_loop)
                {
                    if (Random(2) != 0)
                    {
                        bg_sprite.FlipH(StartTime, EndTime);
                    }

                    if (Random(2) != 0)
                    {
                        //bg_sprite.FlipV(StartTime, EndTime);
                    }
                }

                var postion = new CommandPosition(Position.X + (sakura_size_width + SakuraUnitOffset) * current_index, Position.Y);
                bg_sprite.Move(StartTime, postion.X, postion.Y);
                bg_sprite.Scale(StartTime, FontScale);
            }
        }
        private void ShowMainTitle()
        {
            string title = @"伏凋のスペア";
            float  size  = 128 * Scale;

            for (int i = 0; i < title.Length; i++)
            {
                char c        = title[i];
                var  position = new CommandPosition(StartX + (Offset + size) * i, BaseY + CharPositionOffset[i] * Scale);

                var sprite = GetLayer("TitleShowTitleEffect").CreateSprite($@"SB\font\title\{(int)c}.png", OsbOrigin.Centre, new CommandPosition(position.X, BaseY));

                sprite.Fade(OsbEasing.None, StartTime, StartTime + FadeOutTime, 0, 1);
                sprite.Fade(OsbEasing.None, EndTime - FadeInTime, EndTime, 1, 0);

                sprite.Scale(StartTime, Scale);
                sprite.Color(StartTime, 0, 0, 0);

                sprite.MoveY(MoveEasing, StartTime, StartTime + MoveTime, BaseY, position.Y);
            }
        }
        private void ShowTitleSakuraPart()
        {
            //flower4.png

            float size = 128 * Scale;

            var position = new CommandPosition(StartX + (Offset + size) * 3 + SakuraOffset.X, BaseY + CharPositionOffset[3] * Scale + SakuraOffset.Y);
            var sprite   = GetLayer("TitleShowTitleEffect").CreateSprite(@"SB\effect\title_flower.png", OsbOrigin.Centre, new CommandPosition(position.X, BaseY));

            sprite.Fade(OsbEasing.None, StartTime, StartTime + FadeOutTime, 0, 1);
            sprite.Fade(OsbEasing.None, EndTime - FadeInTime, EndTime, 1, 0);

            sprite.Rotate(StartTime, SakuraAngle * Math.PI / 180);
            sprite.Scale(StartTime, SakuraScale);

            var color_change_time = StartTime + (EndTime - StartTime) / 2;

            sprite.Color(StartTime, 0, 0, 0);
            sprite.Color(OsbEasing.None, color_change_time, color_change_time + 500, new CommandColor(0, 0, 0), new CommandColor(1, 1, 1));

            sprite.MoveY(MoveEasing, StartTime, StartTime + MoveTime, BaseY, position.Y);
        }
Пример #17
0
 public void Move(double time, CommandPosition position) => Move(OsbEasing.None, time, time, position, position);
Пример #18
0
 public void Move(double startTime, double endTime, CommandPosition startPosition, double endX, double endY) => Move(OsbEasing.None, startTime, endTime, startPosition, endX, endY);
Пример #19
0
 public void Move(OsbEasing easing, double startTime, double endTime, CommandPosition startPosition, double endX, double endY) => Move(easing, startTime, endTime, startPosition, new CommandPosition(endX, endY));
Пример #20
0
 public void Move(OsbEasing easing, double startTime, double endTime, CommandPosition startPosition, CommandPosition endPosition) => addCommand(new MoveCommand(easing, startTime, endTime, startPosition, endPosition));
        public void AddCommandPosition(string address, CommandPosition commandPosition)
        {
            address = Convert.ToInt32(address, 16).ToString();

            mLM3Memory.SetCellPositionByAddress(address, commandPosition);
        }
Пример #22
0
        public IOsbSpriteCommand ParseCommandLine(string line, int lineNumber, CommandPosition initialPosition)
        {
            var values = line.Trim().Split(',');

            if (string.IsNullOrEmpty(values[3]))
            {
                values[3] = values[2];
            }

            var commandType = values[0];
            var easing      = (OsbEasing)int.Parse(values[1]);
            var startTime   = double.Parse(values[2], CultureInfo.InvariantCulture);
            var endTime     = double.Parse(values[3], CultureInfo.InvariantCulture);

            switch (commandType)
            {
            case "F":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                return(new FadeCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = startValue,
                        EndValue = endValue,
                        Line = lineNumber,
                    });
            }

            case "S":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                return(new ScaleCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = startValue,
                        EndValue = endValue,
                        Line = lineNumber,
                    });
            }

            case "V":
            {
                var startX = double.Parse(values[4], CultureInfo.InvariantCulture);
                var startY = double.Parse(values[5], CultureInfo.InvariantCulture);
                var endX   = values.Length > 6 ? double.Parse(values[6], CultureInfo.InvariantCulture) : startX;
                var endY   = values.Length > 7 ? double.Parse(values[7], CultureInfo.InvariantCulture) : startY;
                return(new VectorScaleCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = new CommandScale()
                        {
                            X = startX, Y = startY
                        },
                        EndValue = new CommandScale()
                        {
                            X = endX, Y = endY
                        },
                        Line = lineNumber,
                    });
            }

            case "R":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                return(new RotateCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = startValue,
                        EndValue = endValue,
                        Line = lineNumber,
                    });
            }

            case "M":
            {
                var startX = double.Parse(values[4], CultureInfo.InvariantCulture);
                var startY = double.Parse(values[5], CultureInfo.InvariantCulture);
                var endX   = values.Length > 6 ? double.Parse(values[6], CultureInfo.InvariantCulture) : startX;
                var endY   = values.Length > 7 ? double.Parse(values[7], CultureInfo.InvariantCulture) : startY;

                var m = new MoveCommand()
                {
                    Easing     = easing,
                    StartTime  = startTime,
                    EndTime    = endTime,
                    StartValue = new CommandPosition()
                    {
                        X = startX, Y = startY
                    },
                    EndValue = new CommandPosition()
                    {
                        X = endX, Y = endY
                    },
                    Line = lineNumber,
                };
                m.SetDefaultValue(initialPosition);
                return(m);
            }

            case "MX":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                var mx         = new MoveXCommand()
                {
                    Easing     = easing,
                    StartTime  = startTime,
                    EndTime    = endTime,
                    StartValue = startValue,
                    EndValue   = endValue,
                    Line       = lineNumber,
                };
                mx.SetDefaultValue(initialPosition);
                return(mx);
            }

            case "MY":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                var my         = new MoveYCommand()
                {
                    Easing     = easing,
                    StartTime  = startTime,
                    EndTime    = endTime,
                    StartValue = startValue,
                    EndValue   = endValue,
                    Line       = lineNumber,
                };
                my.SetDefaultValue(initialPosition);
                return(my);
            }

            case "C":
            {
                var startR = byte.Parse(values[4], CultureInfo.InvariantCulture);
                var startG = byte.Parse(values[5], CultureInfo.InvariantCulture);
                var startB = byte.Parse(values[6], CultureInfo.InvariantCulture);
                var endR   = values.Length > 7 ? byte.Parse(values[7], CultureInfo.InvariantCulture) : startR;
                var endG   = values.Length > 8 ? byte.Parse(values[8], CultureInfo.InvariantCulture) : startG;
                var endB   = values.Length > 9 ? byte.Parse(values[9], CultureInfo.InvariantCulture) : startB;
                return(new ColorCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = new CommandColor()
                        {
                            R = startR, G = startG, B = startB
                        },
                        EndValue = new CommandColor()
                        {
                            R = endR, G = endG, B = endB
                        },
                        Line = lineNumber,
                    });
            }

            case "P":
            {
                var type = GetParameterType(values[4]);
                return(new ParameterCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = type,
                        EndValue = type,
                        Line = lineNumber,
                    });
            }

            default:
                throw new FormatException($"Invalid Commandtype {commandType} detected");
            }
        }
Пример #23
0
        private IOsbCompoundCommand ParseCompoundCommandLine(List <string> lines, int lineStart, CommandPosition initialPosition)
        {
            IOsbCompoundCommand osbCompoundCommand = GetOsbCompoundCommand(lines.FirstOrDefault(), lineStart);

            for (int i = 1; i < lines.Count; i++)
            {
                osbCompoundCommand.OsbCommands = osbCompoundCommand.OsbCommands.Append(ParseCommandLine(lines[i], lineStart + i, initialPosition));
            }

            return(osbCompoundCommand);
        }