Beispiel #1
0
        public void CreateContext(MainWindow window)
        {
            var uidata = new UiData();

            uidata.FileSystem = window.GameData.VFS;
            uidata.DataPath   = window.GameData.Ini.Freelancer.DataPath;
            if (window.GameData.Ini.Navmap != null)
            {
                uidata.NavmapIcons = new IniNavmapIcons(window.GameData.Ini.Navmap);
            }
            else
            {
                uidata.NavmapIcons = new NavmapIcons();
            }
            uidata.Fonts           = window.GetService <FontManager>();
            uidata.ResourceManager = window.Resources;
            ctx = new UiContext(uidata);
            ctx.RenderContext   = window.RenderContext;
            navmap              = new Navmap();
            navmap.Width        = 480;
            navmap.Height       = 480;
            navmap.LetterMargin = true;
            navmap.MapBorder    = true;
            ctx.SetWidget(navmap);
            this.win = window;
        }
Beispiel #2
0
 void StartPlay(string classname)
 {
     try
     {
         _playData = new UiData()
         {
             Fonts           = Project.UiData.Fonts,
             Infocards       = Project.UiData.Infocards,
             DataPath        = Project.UiData.DataPath,
             FileSystem      = Project.UiData.FileSystem,
             FlDirectory     = Project.UiData.FlDirectory,
             ResourceManager = Project.UiData.ResourceManager,
             NavbarIcons     = Project.UiData.NavbarIcons,
             NavmapIcons     = Project.UiData.NavmapIcons,
             Resources       = Project.UiData.Resources
         };
         _playData.SetBundle(Compiler.Compile(Project.XmlFolder, Project.XmlLoader));
         _playContext = new UiContext(_playData)
         {
             RenderContext = RenderContext
         };
         _playContext.CommandBuffer = CommandBuffer;
         _playContext.GameApi       = TestApi;
         _playContext.LoadCode();
         _playContext.OpenScene(classname);
         playing = true;
     }
     catch (Exception e)
     {
         var detail = new StringBuilder();
         BuildExceptionString(e, detail);
         CrashWindow.Run("Interface Edit", "Compile Error", detail.ToString());
     }
 }
Beispiel #3
0
    void Start()
    {
        new screenSetting().screenSet();

        menu      = new UiData("menu");
        gameStart = new ButtonData("gameStart");
        login     = new ButtonData("login");
        exit      = new ButtonData("exit");

        select = new UiData("selectMusic");
        music1 = new ButtonData("music1");
        music2 = new ButtonData("music2");
        music3 = new ButtonData("music3");

        musicinfo  = new UiData("musicInfo");
        left       = new ButtonData("left");
        selectThis = new ButtonData("select");
        right      = new ButtonData("right");

        back       = new UiData("back");
        backbutton = new ButtonData("backbutton");

        enableMenu();
        disableSelectmusic();
        disableMusicinfo();
        disableBack();
    }
Beispiel #4
0
 private void UiLoad()
 {
     if (sd.GetKey())
     {
         sd = LoadService.LoadData(sd);
     }
 }
 public ResourceWindow(MainWindow mainWindow, UiData context)
 {
     this.resources  = context.Resources;
     this.context    = context;
     librarySelector = new FileSelector(context.FlDirectory);
     modelSelector   = new FileSelector(context.FlDirectory);
     this.mainWindow = mainWindow;
 }
 public ResourceWindow(MainWindow mainWindow, UiData context)
 {
     this.resources  = context.Resources;
     this.context    = context;
     librarySelector = new FileSelector(mainWindow.Project.ResolvedDataDir);
     modelSelector   = new FileSelector(mainWindow.Project.ResolvedDataDir);
     this.mainWindow = mainWindow;
 }
Beispiel #7
0
 public StylesheetEditor(string xmlFolder, UiData context)
 {
     Title      = "Stylesheet";
     textEditor = new ColorTextEdit();
     uiContext  = context;
     path       = Path.Combine(xmlFolder, "stylesheet.xml");
     textEditor.SetText(File.ReadAllText(path));
     TextChanged();
 }
Beispiel #8
0
        public void HandleMsg(ref Message msg)
        {
            UiData uiData = (UiData)Marshal.PtrToStructure(msg.LParam, typeof(UiData));

            if ((ControlMsg)msg.WParam == ControlMsg.REPLACE_COLLOID_STATUS)
            {
                this.Close();
            }
        }
Beispiel #9
0
 public static void CountVote(UiData sd)
 {
     _sd = sd;
     foreach (var vd in _sd.VdList)
     {
         List <Candidate> candidates = CreateCandidates(vd);
         CalculateWinners(candidates);
     }
 }
Beispiel #10
0
    Button CreateButton(Transform _parent, UiData _button)
    {
        UiData iData = new UiData(_button);

        Image buttonImage = CreateImage(_parent, iData);

        Button button = buttonImage.gameObject.AddComponent <Button>();

        return(button);
    }
Beispiel #11
0
        public bool CheckData(IEngine engine, UiData data)
        {
            if (!engine.CheckData(data))
            {
                Console.WriteLine($"Invalid data for the operator [{engine.Operation}]");
                return(false);
            }

            return(true);
        }
Beispiel #12
0
 public void Open(string projectpath)
 {
     UiData      = new UiData();
     XmlFolder   = Path.GetDirectoryName(projectpath);
     ProjectFile = projectpath;
     using (var reader = new StreamReader(File.OpenRead(projectpath)))
     {
         var x = (ProjectXml)_xml.Deserialize(reader);
         FlFolder = x.DataFolder;
     }
     Load();
 }
Beispiel #13
0
        private static void CreateVoteData(IList <string> block, int lineCount)
        {
            int lineCurr = lineCount - block.Count;

            if (int.TryParse(block[0], out var canCount))
            {
                if (canCount > 0 && canCount <= 20)
                {
                    int bullCount = block.Count - canCount - 1;

                    string[] names = new string[canCount];
                    int[,] bulletins = new int[bullCount, canCount];

                    for (int i = 0; i < canCount; i++)
                    {
                        names[i] = block[i + 1];
                    }

                    Parallel.For(canCount + 1, block.Count, (i, state) =>
                    {
                        var bulletin = block[i].Split();
                        for (int j = 0; j < canCount; j++)
                        {
                            if (int.TryParse(bulletin[j], out var n))
                            {
                                bulletins[i - canCount - 1, j] = n;
                            }
                            else
                            {
                                _sd = new CreateVoteDataFail(GetMsg(
                                                                 "Недопустимое значение количества голосов", lineCurr + i));
                                state.Break();
                            }
                        }
                    });
                    if (_sd.GetKey())
                    {
                        _sd.AddVoteData(new VoteData(canCount, bullCount, names, bulletins));
                    }
                }
                else
                {
                    _sd = new CreateVoteDataFail(GetMsg(
                                                     "Недопустимое значение количества голосов", lineCurr));
                }
            }
            else
            {
                _sd = new CreateVoteDataFail(GetMsg(
                                                 "Недопустимое значение количества голосов", lineCurr));
            }
        }
Beispiel #14
0
        private static UiData CreateCandidateList(IList <string> voteDataString)
        {
            IList <VoteData> items = new List <VoteData>();

            if (int.TryParse(voteDataString[0], out var blockCount))
            {
                if (blockCount > 0)
                {
                    IList <string> blockList = new List <string>();
                    for (int i = 2; i < voteDataString.Count; i++)
                    {
                        if (_sd.GetKey())
                        {
                            // Разбиваем на блоки.
                            // Если пустая строка (разделитель).
                            if (string.IsNullOrEmpty(voteDataString[i].Trim(' ')))
                            {
                                var list = blockList.Clone();
                                CreateVoteData(list, i);
                                blockList = new List <string>();
                            }
                            // Если последняя строка.
                            else if (i == voteDataString.Count - 1)
                            {
                                blockList.Add(voteDataString[i]);
                                CreateVoteData(blockList, i);
                            }
                            // Читаем тело.
                            else
                            {
                                blockList.Add(voteDataString[i]);
                            }
                        }
                        else
                        {
                            return(_sd);
                        }
                    }
                }
                else
                {
                    _sd = new CreateCandidateListFail(GetMsg("Количество блоков меньше или равно нулю", 1));
                    return(_sd);
                }
            }
            else
            {
                _sd = new CreateCandidateListFail(GetMsg("Количество блоков не является числом.", 1));
                return(_sd);
            }
            return(_sd);
        }
Beispiel #15
0
    Text CreateText(Transform _parent, UiData _image)
    {
        RectTransform uiRect = CreateRect(_parent, _image.name);

        Text text = uiRect.gameObject.AddComponent <Text>();

        text.color     = Color.black;
        text.fontSize  = _image.fontSize;
        text.alignment = TextAnchor.MiddleCenter;
        text.text      = _image.text;

        SetUiRect(uiRect, _image.position);


        return(text);
    }
Beispiel #16
0
        private void UiInput()
        {
            bool key = false;

            WriteLine("Введите имя файла:");
            sd = new UiData(ReadLine());
            CheckInput();

            void CheckInput()
            {
                key = (sd.FileName.Trim(' ').Length) != 0;
                if (!key)
                {
                    sd = new CheckInputFail("Недопустимое имя файла.");
                }
            }
        }
Beispiel #17
0
 public static UiData LoadData(UiData sd)
 {
     _sd = sd;
     if (File.Exists($"{Environment.CurrentDirectory}\\{_sd.FileName}"))
     {
         var loadResult = LoadFromFileAsync(_sd.FileName);
         if (sd.GetKey())
         {
             sd = CreateCandidateList(loadResult.Result);
         }
         return(sd);
     }
     else
     {
         return(new LoadFail("Файл не найден."));
     }
 }
Beispiel #18
0
    Image CreateImage(Transform _parent, UiData _image)
    {
        RectTransform uiRect = CreateRect(_parent, _image.name);

        Image image = uiRect.gameObject.AddComponent <Image>();

        image.color = _image.color;

        switch (_image.type)
        {
        case ImageType.Sprite:
        {
            SetUiRect(uiRect, _image.position);
            image.sprite = _image.sprite;
            image.SetNativeSize();
            break;
        }

        case ImageType.Color:
        {
            if (_image.sizeType == ImageSizeType.FullScreen)
            {
                SetExpandedUiRect(uiRect);
            }
            else
            {
                SetUiRect(uiRect, _image.position);
            }

            break;
        }

        case ImageType.Text:
        {
            SetUiRect(uiRect, _image.position);
            CreateText(image.transform, _image);
            break;
        }

        default:
            break;
        }


        return(image);
    }
Beispiel #19
0
    void Start()
    {
        new screenSetting().screenSet(1920); //1920*1080
        pauseMenu    = new UiData("picturePause");
        pauseButton  = new ButtonData("pause");
        resumeButton = new ButtonData("resume");
        exitButton   = new ButtonData("exit");

        pauseMenu.disable();
        pauseButton.enable();

        resumeButton.disable();
        exitButton.disable();

        sound      = GameObject.Find("music").GetComponent <AudioSource>();
        sound.clip = Resources.Load <AudioClip>(commonData.path + "/music/" + commonData.musicName) as AudioClip;

        score = GameObject.Find("score").GetComponent <Text>();
        combo = GameObject.Find("combo").GetComponent <Text>();

        commonData.clear();

        pauseMenu.buttonShow.sprite = Resources.Load <Sprite>(commonData.path + "/sprite/background/[1280_720]pauseMenu") as Sprite;
        sound.Play();

        switch (commonData.path[commonData.path.Length - 1])
        {
        case '1':
            score.color = Color.white;
            combo.color = Color.white;
            break;

        case '2':
            score.color = Color.white;
            combo.color = Color.gray;
            break;

        case '3':
            score.color = Color.blue;
            combo.color = Color.blue;
            break;
        }
        sw = new Stopwatch();
        sw.Start();
    }
Beispiel #20
0
        public void Create(string folder, string projectpath)
        {
            UiData             = new UiData();
            UiData.NavmapIcons = new NavmapIcons();
            FlFolder           = folder;
            XmlFolder          = Path.GetDirectoryName(projectpath);
            WriteBlankFiles();
            ProjectFile = projectpath;

            using (var writer = new StreamWriter(File.Create(projectpath)))
            {
                _xml.Serialize(writer, new ProjectXml()
                {
                    DataFolder = folder
                });
            }
            Load();
        }
Beispiel #21
0
        public void CreateContext(MainWindow window)
        {
            var uidata = new UiData();

            uidata.FileSystem      = window.GameData.VFS;
            uidata.Fonts           = window.GetService <FontManager>();
            uidata.ResourceManager = window.Resources;
            ctx                 = new UiContext(uidata);
            ctx.RenderState     = window.RenderState;
            ctx.Renderer2D      = window.Renderer2D;
            navmap              = new Navmap();
            navmap.Width        = 480;
            navmap.Height       = 480;
            navmap.LetterMargin = true;
            navmap.MapBorder    = true;
            ctx.SetWidget(navmap);
            this.win = window;
        }
Beispiel #22
0
        private static async Task <IList <string> > LoadFromFileAsync(string fileName)
        {
            IList <string> voteDataString = new List <string>();

            try
            {
                using StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default);
                string line;
                while ((line = await sr.ReadLineAsync()) != null)
                {
                    voteDataString.Add(line);
                }
            }
            catch (Exception e)
            {
                _sd = new LoadFail($"Не удалось прочитать файл {fileName}, ошибка:");
            }
            return(voteDataString);
        }
Beispiel #23
0
 public bool CheckData(UiData data)
 {
     return(true);
 }
Beispiel #24
0
        void NewGui(string folder)
        {
            UiData                 = new UiData();
            UiData.FlDirectory     = folder;
            UiData.ResourceManager = new GameResourceManager(this);
            UiData.FileSystem      = FileSystem.FromFolder(folder);
            UiData.Fonts           = Fonts;
            var flIni = new FreelancerIni(UiData.FileSystem);

            if (flIni.XInterfacePath != null)
            {
                XmlFolder = UiData.FileSystem.Resolve(flIni.XInterfacePath);
                if (!UiData.FileSystem.FileExists(Path.Combine(flIni.XInterfacePath, "resources.xml")))
                {
                    WriteBlankFiles();
                }
            }
            else
            {
                var dataPath = UiData.FileSystem.Resolve(flIni.DataPath);
                XmlFolder = Path.Combine(dataPath, "XmlUi");
                Directory.CreateDirectory(XmlFolder);
                WriteBlankFiles();
                var flIniPath = UiData.FileSystem.Resolve("EXE\\freelancer.ini");
                var flIniText = File.ReadAllText(flIniPath);
                File.WriteAllText(flIniPath, $"{flIniText}\n\n[Extended]\nxinterface = XmlUi");
            }
            UiData.OpenFolder(flIni.XInterfacePath);
            try
            {
                var navbarIni = new LibreLancer.Data.BaseNavBarIni(UiData.FileSystem);
                UiData.NavbarIcons = navbarIni.Navbar;
            }
            catch (Exception)
            {
                UiData.NavbarIcons = null;
            }

            try
            {
                var hud = new HudIni();
                hud.AddIni(flIni.HudPath, UiData.FileSystem);
                var maneuvers = new List <Maneuver>();
                var p         = flIni.DataPath.Replace('\\', Path.DirectorySeparatorChar);
                foreach (var m in hud.Maneuvers)
                {
                    maneuvers.Add(new Maneuver()
                    {
                        Action        = m.Action,
                        ActiveModel   = Path.Combine(p, m.ActiveModel),
                        InactiveModel = Path.Combine(p, m.InactiveModel)
                    });
                }
                TestApi.ManeuverData = maneuvers.ToArray();
            }
            catch (Exception)
            {
                TestApi.ManeuverData = null;
            }
            if (flIni.JsonResources != null)
            {
                UiData.Infocards = new InfocardManager(flIni.JsonResources.Item1, flIni.JsonResources.Item2);
            }
            else if (flIni.Resources != null)
            {
                UiData.Infocards = new InfocardManager(flIni.Resources);
            }
            Fonts.LoadFontsFromIni(flIni, UiData.FileSystem);
            UiData.DataPath       = flIni.DataPath;
            resourceEditor        = new ResourceWindow(this, UiData);
            resourceEditor.IsOpen = true;
            projectWindow         = new ProjectWindow(XmlFolder, this);
            projectWindow.IsOpen  = true;
            tabs.Add(new StylesheetEditor(XmlFolder, UiData));
        }
Beispiel #25
0
    void ShowOneImage(int _index)
    {
        bool drawImage = true;

        EditorGUILayout.BeginVertical(GUI.skin.box);
        EditorGUI.indentLevel++;

        EditorGUILayout.BeginHorizontal();
        imgSettings[_index].showContent = EditorGUILayout.Foldout(imgSettings[_index].showContent, "" + mData.images[_index].name);
        if (GUILayout.Button("DELETE", myStyle))
        {
            imageQueue.Enqueue(mData.images[_index]);
            mData.images.RemoveAt(_index);
            imageCount--;
            drawImage = false;
        }

        EditorGUILayout.BeginVertical(GUI.skin.box);
        //if (GUILayout.Button("^", myStyle)) { }
        //if (GUILayout.Button("v", myStyle)) { }

        EditorGUILayout.EndVertical();

        EditorGUILayout.EndHorizontal();
        if (drawImage)
        {
            if (imgSettings[_index].showContent)
            {
                EditorGUI.indentLevel++;//缩进
                UiData imgd = mData.images[_index];
                imgd.name  = EditorGUILayout.TextField("Image Name: ", mData.images[_index].name);
                imgd.layer = EditorGUILayout.IntField("Layer: ", mData.images[_index].layer);
                if (imgd.sizeType != ImageSizeType.FullScreen)
                {
                    imgd.position = EditorGUILayout.Vector2Field("Position: ", mData.images[_index].position);
                }

                imgSettings[_index].imageSettings = EditorGUILayout.Foldout(imgSettings[_index].imageSettings, "Image");
                if (imgSettings[_index].imageSettings)
                {
                    imgd.type     = (ImageType)EditorGUILayout.EnumPopup("Type: ", mData.images[_index].type);
                    imgd.sizeType = (ImageSizeType)EditorGUILayout.EnumPopup("Size: ", mData.images[_index].sizeType);

                    switch (imgd.type)
                    {
                    case ImageType.Text:
                    {
                        imgd.color    = EditorGUILayout.ColorField("Color: ", mData.images[_index].color);
                        imgd.text     = EditorGUILayout.TextField("Text: ", mData.images[_index].text);
                        imgd.fontSize = EditorGUILayout.IntField("Font Size: ", mData.images[_index].fontSize);
                        break;
                    }

                    case ImageType.Color:
                    {
                        imgd.color = EditorGUILayout.ColorField("Color: ", mData.images[_index].color);
                        break;
                    }

                    case ImageType.Sprite:
                    {
                        imgd.color  = EditorGUILayout.ColorField("Color: ", mData.images[_index].color);
                        imgd.sprite = (Sprite)EditorGUILayout.ObjectField("Sprite: ", mData.images[_index].sprite, typeof(Sprite), true);
                        break;
                    }

                    default: break;
                    }
                }

                mData.images[_index] = imgd;
                EditorGUI.indentLevel--;//恢复缩进
            }
        }


        EditorGUILayout.EndVertical();
        EditorGUI.indentLevel--;
    }
Beispiel #26
0
 public void DisplayResult(IEngine engine, UiData data)
 {
     Console.WriteLine("Result " + engine.Calculate(data));
     Console.ReadLine();
 }
Beispiel #27
0
 public bool CheckData(UiData data)
 {
     return(data.Second != 0);
 }
Beispiel #28
0
 public double Calculate(UiData DATA)
 {
     return(DATA.First / (double)DATA.Second);
 }
Beispiel #29
0
 public double Calculate(UiData data)
 {
     return(data.First - data.Second);
 }
    // Start is called before the first frame update
    void Start()
    {
        new screenSetting().screenSet(1920);

        acti1 = new UiData("1000");
        acti2 = new UiData("1100");
        acti3 = new UiData("1110");
        acti4 = new UiData("1111");

        lock2 = new UiData("lock2");
        lock3 = new UiData("lock3");
        lock4 = new UiData("lock4");


        ch1 = new ButtonData("select1");
        ch2 = new ButtonData("select2");
        ch3 = new ButtonData("select3");
        ch4 = new ButtonData("select4");

        acti1.disable();
        acti2.disable();
        acti3.disable();
        acti4.disable();

        lock2.disable();
        lock3.disable();
        lock4.disable();



        ch1.disable();
        ch2.disable();
        ch3.disable();
        ch4.disable();
        if (commonData.Totalscore < 500)
        {
            acti1.enable();
            ch1.enable();

            lock2.enable();
            lock3.enable();
            lock4.enable();
        }
        else if (commonData.Totalscore > 500 && commonData.Totalscore < 1000)
        {
            acti2.enable();
            ch1.enable();
            ch2.enable();

            lock3.enable();
            lock4.enable();
        }
        else if (commonData.Totalscore > 1000 && commonData.Totalscore < 2000)
        {
            acti3.enable();
            ch1.enable();
            ch2.enable();
            ch3.enable();

            lock4.enable();
        }
        else
        {
            acti4.enable();
            ch1.enable();
            ch2.enable();
            ch3.enable();
            ch4.enable();
        }

        switch (commonData.character)
        {
        case "character1":
            t   = check.transform.position;
            t.x = ch1.buttonEnable.gameObject.transform.position.x;
            check.transform.position = t;
            break;

        case "character2":
            t   = check.transform.position;
            t.x = ch2.buttonEnable.gameObject.transform.position.x;
            check.transform.position = t;
            break;

        case "character3":
            t   = check.transform.position;
            t.x = ch3.buttonEnable.gameObject.transform.position.x;
            check.transform.position = t;
            break;

        case "character4":
            t   = check.transform.position;
            t.x = ch4.buttonEnable.gameObject.transform.position.x;
            check.transform.position = t;
            break;
        }

        score.text = "Total Score: " + commonData.Totalscore.ToString();
    }