private void QueueUI(double timeDelta)
        {
            (int windowWidth, int windowHeight) = GameEngine.windowHandler.GetWindowDimensions();
            double uiScale = windowWidth > windowHeight ? windowWidth / 1920d : windowHeight / 1080d;

            textMesh = TextMeshGenerator.RegenerateMesh($"Vector Engine\n" +
                                                        $"VSync: {UseVSync}\n" +
                                                        $"FPS: {((int)(1 / timeDelta * 10)) / 10f}",
                                                        arialFont, textMesh, 2, 50);

            RenderEngine.AddToRenderQueue(uiMaterial, treeMesh, Mathmatics.CreateTransformationMatrix(new Vector3d(1, 0, 0) / uiScale, Vector3d.Zero, new Vector3d(250d / windowWidth, 250d / windowHeight, 1) * uiScale), true);
            //RenderEngine.AddToRenderQueue(uiMaterial, treeMesh, Mathmatics.CreateTransformationMatrix(new Vector3d(0, 0, 0) / uiScale, Vector3d.Zero, new Vector3d(0.5d, 0.5d, 1) * uiScale), true);
            RenderEngine.AddToRenderQueue(arialFontMaterial, textMesh, Mathmatics.CreateTransformationMatrix(new Vector3d(-windowWidth + 50, windowHeight - 50, 0) / uiScale, Vector3d.Zero, new Vector3d(1d / windowWidth, 1d / windowHeight, 1) * uiScale), true);
        }
Exemplo n.º 2
0
        private void UpdateMesh()
        {
            if (!isDirty)
            {
                return;
            }
            if (string.IsNullOrEmpty(text))
            {
                return;
            }

            if (mesh != null)
            {
                mesh.DestroyImmediate();
                mesh = null;
            }

            TextGenerationSettings settings = new TextGenerationSettings();

            settings.generationExtents = new Vector2(540, 47.5f);
            settings.pivot             = new Vector2(0.5f, 0.5f);
            settings.verticalOverflow  = VerticalWrapMode.Overflow;

            settings.font = UIStyleValues.TextFont; // To-Do: Font Customization

            settings.textAnchor  = (TextAnchor)config.Anchor;
            settings.color       = config.TextColor;
            settings.richText    = config.RichText;
            settings.fontSize    = config.TextSize;
            settings.fontStyle   = config.Style;
            settings.scaleFactor = config.Scale;
            settings.lineSpacing = config.LineSpacing;

            string displayText = text;

            displayText = displayText.Replace("<loaderName/>", (MelonLaunchOptions.Console.Mode == MelonLaunchOptions.Console.DisplayMode.LEMON) ? "LemonLoader" : "MelonLoader");
            displayText = displayText.Replace("<loaderVersion/>", BuildInfo.Version);
            displayText = displayText.Replace("LemonLoader", "<color=#FFCC4D>LemonLoader</color>");
            displayText = displayText.Replace("MelonLoader", "<color=#78f764>Melon</color><color=#ff3c6a>Loader</color>");

            mesh           = TextMeshGenerator.Generate(displayText, settings);
            mesh.hideFlags = HideFlags.HideAndDontSave;
            mesh.DontDestroyOnLoad();

            isDirty = false;
        }
Exemplo n.º 3
0
        private void RefreshTextmesh()
        {
            if (textCached == text)
            {
                return;
            }

            textCached = text;

            TextGenerationSettings settings2 = new TextGenerationSettings();

            settings2.textAnchor        = TextAnchor.MiddleCenter;
            settings2.color             = UICustomization.ProgressText.TextColor;
            settings2.generationExtents = new Vector2(540, 47.5f);
            settings2.richText          = true;
            settings2.font             = font;
            settings2.pivot            = new Vector2(0.5f, 0.5f);
            settings2.fontSize         = 16;
            settings2.fontStyle        = FontStyle.Bold;
            settings2.verticalOverflow = VerticalWrapMode.Overflow;
            settings2.scaleFactor      = 1f;
            settings2.lineSpacing      = 1f;
            textmesh = TextMeshGenerator.Generate(text, settings2);
        }