using FOU.Scripts; using Godot; public partial class Main : Node2D { [Export] public int BrushSize = 5; [Export] public float TextureResolution = 0.5f; private TextureRect mLevelDrawer; private Level mLevel; public override void _Ready() { mLevel = new Level((int)(GetViewportRect().Size.X * TextureResolution), (int)(GetViewportRect().Size.Y * TextureResolution) ); mLevelDrawer = GetNode("CanvasLayer/LevelDrawer"); } public override void _Process(double delta) { mLevel.Update(); mLevelDrawer.Texture = ImageTexture.CreateFromImage(mLevel.DrawLevel()); } public override void _Input(InputEvent @event) { if (@event is InputEventMouseButton eventMouseButton) { Vector2 mouse = GetViewport().GetMousePosition(); float mappedX = mouse.X / GetViewportRect().Size.X * mLevel.SizeX; float mappedY = mouse.Y / GetViewportRect().Size.Y * mLevel.SizeY; mLevel.WritePixel((int)mappedX, (int)mappedY, BrushSize); } } }