public static e3Text text  = null; // объект

        static void Main()
        {
            // Объекты массивов Id
            Object symIds  = new Object();
            Object textIds = new Object();

            // Подключаем E3
            App = e3App.ToE3();
            App?.PutInfo(0, "Starting Transliterating!");
            Prj  = App?.CreateJobObject();
            Sym  = Prj.CreateSymbolObject();
            text = Prj.CreateTextObject();
            // Получаем массив Id символов
            Prj.GetSymbolIds(ref symIds);


            foreach (var symId in (Array)symIds)
            {
                if (symId != null)
                {
                    Sym.SetId((int)symId);
                    // Получаем массив Id текстов типа "12"
                    Sym.GetTextIds(ref textIds, 12);
                    foreach (var textId in (Array)textIds)
                    {
                        if (textId != null)
                        {
                            text.SetId((int)textId);

                            if (text.GetText() != "")
                            {
                                Debug.WriteLine($"Type - {text.GetTypeId()}");
                                Debug.Indent();
                                Debug.WriteLine(text.GetText());
                                // Заменяем текст на транслитерированный библиотекой UnidecodeSharpFork
                                text.SetText(text.GetText().Unidecode());
                                Debug.WriteLine(text.GetText());
                                Debug.Unindent();
                            }
                        }
                    }
                }
            }

            Debug.Flush();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Open files and run scripts
        /// </summary>
        private static void Process(string file, List <string> scriptsListBoxSelectedItems)
        {
            // Open File
            e3Application e3App = AppConnect.ToE3(file, out bool quitThenDone);

            if (scriptsListBoxSelectedItems.Count > 0)
            {
                FileLogic.RunScripts(e3App, scriptsListBoxSelectedItems);
            }

            if (quitThenDone)
            {
                e3Job e3Prj = (e3Job)e3App.CreateJobObject();
                e3Prj.Save();
                e3Prj.Close();
                //e3App.GetProcessProperty("");
                AppConnect.CloseE3App(e3App);
            }
        }
Exemplo n.º 3
0
 public static void GetE3App(string filePath)
 {
     // Подключаем E3
     App = AppConnect.ToE3(filePath);
     App?.PutInfo(0, $"GetE3App for {filePath}!");
 }
Exemplo n.º 4
0
        /////////////////////////////////////////


        public static void GetE3App()
        {
            // Подключаем E3
            App = AppConnect.ToE3();
            App?.PutInfo(0, "GetE3App!");
        }
Exemplo n.º 5
0
        static void Main()
        {
            // Подключаем E3
            App = e3App.ToE3();
            App?.PutInfo(0, "Starting The Snake!");

            Prj   = App?.CreateJobObject();
            Sheet = Prj.CreateSheetObject();
            Graph = Prj.CreateGraphObject();
            Sym   = Prj.CreateSymbolObject();

            // Выберем  лист

            while (sheetid == 0)
            {
                sheetid = Prj.GetActiveSheetId();
                Sheet.SetId(sheetid);

                if (sheetid == 0)
                {
                    MessageBox.Show("Выберите лист для игры!");
                }
            }

            //находим середину листа
            object xmin = 0;
            object ymin = 0;
            object xmax = 0;
            object ymax = 0;

            Sheet.GetDrawingArea(ref xmin, ref ymin, ref xmax, ref ymax);

            double centerX = Math.Round(((double)xmin + (double)xmax) / 2);
            double centerY = Math.Round(((double)ymin + (double)ymax) / 2);

            // Переменные мира
            int score = 5;

            Pixel head = new Pixel(centerX, centerY, 13);

            List <Pixel> body = new List <Pixel>();

            for (int i = 0; i < score; i++)
            {
                if (i == 0)
                {
                    body.Add(new Pixel(head.XPos - 2, head.YPos, 35));
                }
                else
                {
                    body.Add(new Pixel(body[i - 1].XPos - 2, body[i - 1].YPos, 35));
                }
            }
            body.Reverse();

            Direction currentMovement = Direction.Right;

            //Собираем коллекцию символов
            object        symIds      = 0;
            object        xSmin       = 0;
            object        ySmin       = 0;
            object        xSmax       = 0;
            object        ySmax       = 0;
            object        xS          = 0;
            object        yS          = 0;
            object        gridS       = 0;
            List <Symbol> symbols     = new List <Symbol>();
            int           symCnt      = Sheet.GetSymbolIds(ref symIds);
            var           symIdsArray = (Array)symIds;

            foreach (var symId in symIdsArray)
            {
                if (symId != null)
                {
                    Sym.SetId((int)symId);
                    Sym.GetArea(ref xSmin, ref ySmin, ref xSmax, ref ySmax);
                    Sym.GetSchemaLocation(ref xS, ref yS, gridS);
                    string rotS = Sym.GetRotation();
                    if (rotS.Contains("x"))
                    {
                        symbols.Add(new Symbol((double)xS + (double)xSmin, (double)yS - (double)ySmax, (double)xS + (double)xSmax, (double)yS - (double)ySmin, (int)symId));
                    }
                    else if (rotS.Contains("y"))
                    {
                        symbols.Add(new Symbol((double)xS - (double)xSmax, (double)yS + (double)ySmin, (double)xS - (double)xSmin, (double)yS + (double)ySmax, (int)symId));
                    }
                    else
                    {
                        symbols.Add(new Symbol((double)xS + (double)xSmin, (double)yS + (double)ySmin, (double)xS + (double)xSmax, (double)yS + (double)ySmax, (int)symId));
                    }
                }
            }
////////////////////////////////////////////////////////////////////////////////////////
            while (true)
            {
                // Выход за границы листа
                gameover |= (head.XPos >= (double)xmax - 1 || head.XPos <= 1 || head.YPos >= (double)ymax - 1 || head.YPos <= 1);

                // Съесть символ
                foreach (var symbol in symbols)
                {
                    if (symbol.Collide(head.XPos, head.YPos))
                    {
                        score++;
                        frameTime *= 0.9;
                        Sym.SetId(symbol.Id);
                        Sym.Delete();
                        symbols.Remove(symbol);
                        break;
                    }
                }
                Console.Clear();
                Console.WriteLine($"Счет: {score - 5}");
                //Рисуем тело
                for (int i = 0; i < body.Count; i++)
                {
                    Pixel tmpbody = body[i];
                    DrawPixel(ref tmpbody);
                    body[i]   = tmpbody;
                    gameover |= (body[i].XPos == head.XPos && body[i].YPos == head.YPos);
                }

                if (gameover)
                {
                    break;
                }
                //Рисуем голову
                DrawPixel(ref head);
                //Ждем кадр
                var sw = Stopwatch.StartNew();
                while (sw.ElapsedMilliseconds <= frameTime)
                {
                    currentMovement = ReadMovement(currentMovement);
                }
                //Добавляем пиксель тела чтобы подвинуться
                body.Add(new Pixel(head.XPos, head.YPos, 35));
                // Изменяем положение головы
                switch (currentMovement)
                {
                case Direction.Up:
                    head.YPos += 2;
                    break;

                case Direction.Down:
                    head.YPos -= 2;
                    break;

                case Direction.Left:
                    head.XPos -= 2;
                    break;

                case Direction.Right:
                    head.XPos += 2;
                    break;
                }
                //Удаляем змейку, чтобы перерисовать в новом кадре
                Clear(head, body);

                // Удаляем последнее звено из коллекции тела чтобы змея двигалась
                if (body.Count > score)
                {
                    body.RemoveAt(0);
                }
            }

            // Сообщение с результатом
            MessageBox.Show($"Game over, Score: {score - 5}");

            Clear(head, body);

            App = null;
        }