Пример #1
0
        public override void Initialize(object[] parameters)
        {
            base.Initialize();

            string text = "";

            if (parameters.Length >= 1 && parameters[0] is string txt)
            {
                text = txt;
            }

            FontFamily font = new FontFamily("Consolas");

            if (parameters.Length >= 2 && parameters[1] is FontFamily fnt)
            {
                font = fnt;
            }

            Color color = Color.BLACK;

            if (parameters.Length >= 3 && parameters[2] is Color c)
            {
                color = c;
            }

            textSprite = GameObject.AddComponent <TextSprite>(text, 16, font, color, (Width, Height));

            OnSizeChanged += () => {
                textSprite.Size = new Vector2(WorldWidth, WorldHeight);

                ResolveDockingCoordinates(Dock, WorldWidth, WorldHeight, out float x, out float y);
                textSprite.Offset = new Vector2(x, y);
            };
        }
Пример #2
0
        private void OnSceneLoad_Test()
        {
            //ResourceManager.LoadResource<string, TextLoadingParameters>("res_str_test_0", new TextLoadingParameters(new[] { "res_str_test_0.txt" }, Encoding.UTF8), 1, false);
            //if (!ResourceManager.TryGetResource("res_str_test_0", out string str, true))
            //    Log.WriteLine("Could not get resource 'res_str_test_0'", LogType.Message);

            ResourceManager.LoadResource <ITexture, TextureLoadingParameters>("res_tex_test_0", new TextureLoadingParameters(new[] { "res_tex_test_0.png" }, TextureWrapMode.ClampToEdge, TextureFilterMode.Nearest), 2, false);
            ResourceManager.LoadResource <ITexture, TextureLoadingParameters>("res_tex_test_1", new TextureLoadingParameters(new[] { "res_tex_test_1.png" }, TextureWrapMode.ClampToEdge, TextureFilterMode.Nearest), 2, false);
            ResourceManager.LoadResource <ITexture, TextureLoadingParameters>("res_tex_test_2", new TextureLoadingParameters(new[] { "res_tex_micha.png" }, TextureWrapMode.ClampToEdge, TextureFilterMode.Nearest), 2, false);
            ResourceManager.LoadResource <ITextureAtlas, FontLoadingParameters>($"font_Consolas_16", new FontLoadingParameters(new FontFamily("Consolas"), 16), 0, true);

            if (!ResourceManager.TryGetResource("res_tex_test_0", out ITexture tex0, true))
            {
                Log.WriteLine("Could not get resource 'res_tex_test_0'", LogType.Message);
            }

            if (!ResourceManager.TryGetResource("res_tex_test_1", out ITexture tex1, true))
            {
                Log.WriteLine("Could not get resource 'res_tex_test_1'", LogType.Message);
            }

            if (!ResourceManager.TryGetResource("res_tex_test_2", out ITexture tex2, true))
            {
                Log.WriteLine("Could not get resource 'res_tex_test_2'", LogType.Message);
            }

            IGameObject go_viewport = Scene.CreateGameObject("go_viewport");
            Viewport    viewport    = go_viewport.AddComponent <Viewport>();

            //viewport.Transform.Position = new Vector2(1, 0);
            Scene.MainViewport = viewport;
            viewport.Zoom      = 1;
            //viewport.Width *= 10f;
            //viewport.Height *= 10f;
            //viewport.Transform.Position.x += 1;
            GUIHandler guiHandler = go_viewport.AddComponent <GUIHandler>();

            ResourceManager.TryGetResource("internal_circleShader", out IShader shader, true);

            //IGameObject go_sprite = Scene.CreateGameObject("go_sprite");
            //go_sprite.Transform.Z = 0.65f;
            //Sprite sprite = go_sprite.AddComponent<Sprite>();
            //sprite.Transform.Scale = new Vector2(0.95f, 0.95f);
            //sprite.Color = new Color(255, 0, 255, 63);

            IGameObject go_cSprite = Scene.CreateGameObject("go_cSprite");

            go_cSprite.Transform.Z = 0.65f;

            // uniforms
            Color cSpriteColor = Color.WHITE;
            float innerRadius  = 0.1f;
            float startAngle   = 0.0f;
            float sweepAngle   = 1f;

            // vertex attributes
            (VertexAttribute va, float[][] data)[] vertexAttributes =
Пример #3
0
        public override void Initialize()
        {
            this.text             = "<TEXT>";
            this.textureHeight    = 128;
            this.font             = new FontFamily("Consolas");
            this.color            = Color.WHITE;
            this.bounds           = new Rectangle(0, 0, 1, 1);
            this.bounds.OnChange += rectangle => RebuildMesh();
            this.dock             = GUIDock.Centered;

            this.noText = false;

            LoadFontAtlas();

            CreateRenderable(ResolveAttributes, AssignUniforms, GraphicsHandler.CreateDefaultShader(1), BuildMesh());
        }
Пример #4
0
        public override void Initialize(object[] parameters)
        {
            base.Initialize();

            string text = "";

            if (parameters.Length >= 1 && parameters[0] is string txt)
            {
                text = txt;
            }

            FontFamily font = new FontFamily("Consolas");

            if (parameters.Length >= 2 && parameters[1] is FontFamily fnt)
            {
                font = fnt;
            }

            Color color = Color.BLACK;

            if (parameters.Length >= 3 && parameters[2] is Color c)
            {
                color = c;
            }

            ITexture tex;

            if (parameters.Length >= 4 && parameters[3] is ITexture t)
            {
                tex = t;
            }
            else
            {
                tex = GraphicsHandler.CreateDefaultTexture(1, 1, Color.WHITE);
            }

            this.sprite          = GameObject.AddComponent <Sprite>(Color.WHITE, tex);
            this.textSprite      = GameObject.AddComponent <TextSprite>(text, 16, font, color, (Width, Height));
            this.textSprite.Dock = GUIDock.LeftCenter;

            this.blinkTime = -CURSOR_BLINK_TIME;

            this.text     = text;
            MaxTextLength = 10;

            OnSizeChanged += UpdateMesh;

            InputHandler.AddKeyPressEventHandler(keyChar => {
                if (!HasFocus)
                {
                    return;
                }

                if (keyChar == '\0' || Text.Length == MaxTextLength)
                {
                    return;
                }

                Text += keyChar;
            });

            InputHandler.AddKeyDownEventHandler((key, modifiers) => {
                if (!HasFocus)
                {
                    return;
                }

                if (key == Key.Back && Text.Length > 0)
                {
                    Text = Text.Substring(0, Text.Length - 1);
                }

                if (key == Key.Enter)
                {
                    OnTextApplied?.Invoke(this);
                }
            });
        }
Пример #5
0
 public static ITexture CreateDefaultTexture(int width, int height, Color color)
 => ModBase.GraphicsHandler.CreateDefaultTexture(width, height, color);
Пример #6
0
        //protected override void Update() {
        //    if (InputHandler.IsKeyReleased(Key.Keypad7))
        //        Dock = GUIDock.TopLeft;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad8))
        //        Dock = GUIDock.TopCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad9))
        //        Dock = GUIDock.TopRight;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad4))
        //        Dock = GUIDock.LeftCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad5))
        //        Dock = GUIDock.Centered;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad6))
        //        Dock = GUIDock.RightCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad1))
        //        Dock = GUIDock.BottomLeft;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad2))
        //        Dock = GUIDock.BottomCenter;
        //    else if (InputHandler.IsKeyReleased(Key.Keypad3))
        //        Dock = GUIDock.BottomRight;
        //    else if (InputHandler.IsKeyReleased(Key.Space))
        //        Log.WriteLine("tS" + bounds.ToString(), LogType.Debug);
        //}

        public override void Initialize(object[] parameters)
        {
            if (parameters.Length >= 1 && parameters[0] is string txt)
            {
                this.text = txt;
            }
            else
            {
                this.text = "<TEXT>";
            }

            if (this.text.Length == 0)
            {
                this.text   = " ";
                this.noText = true;
            }

            if (parameters.Length >= 2 && parameters[1] is ushort texHeight)
            {
                this.textureHeight = texHeight;
            }
            else
            {
                this.textureHeight = 128;
            }

            if (parameters.Length >= 3 && parameters[2] is FontFamily fnt)
            {
                this.font = fnt;
            }
            else
            {
                this.font = new FontFamily("Consolas");
            }

            if (parameters.Length >= 4 && parameters[3] is Color c)
            {
                this.color = c;
            }
            else
            {
                this.color = Color.WHITE;
            }

            if (parameters.Length >= 5 && parameters[4] is Rectangle r)
            {
                this.bounds = new Rectangle(r);
            }
            else
            {
                this.bounds = new Rectangle(0, 0, 1, 1);
            }
            this.bounds.OnChange += rectangle => RebuildMesh();

            IShader s;

            if (parameters.Length >= 6 && parameters[5] is IShader sh)
            {
                s = sh;
            }
            else
            {
                s = GraphicsHandler.CreateDefaultShader(1);
            }

            LoadFontAtlas();

            CreateRenderable(ResolveAttributes, AssignUniforms, s, BuildMesh());
        }