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); }; }
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 =
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()); }
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); } }); }
public static ITexture CreateDefaultTexture(int width, int height, Color color) => ModBase.GraphicsHandler.CreateDefaultTexture(width, height, color);
//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()); }