Skip to content

Commit a195c45

Browse files
committed
refactor(project): recréation du projet à 0
1 parent 080cbc4 commit a195c45

24 files changed

Lines changed: 9 additions & 879 deletions

SharpEngine.Editor/Build/Generator/ColorConstructorGenerator.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

SharpEngine.Editor/Build/Generator/FileGenerator.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

SharpEngine.Editor/Build/Generator/Generators.cs

Lines changed: 0 additions & 7 deletions
This file was deleted.

SharpEngine.Editor/Build/Generator/ProgramGenerator.cs

Lines changed: 0 additions & 28 deletions
This file was deleted.

SharpEngine.Editor/Build/ProjectBuilder.cs

Lines changed: 0 additions & 65 deletions
This file was deleted.

SharpEngine.Editor/Editor.cs

Lines changed: 8 additions & 162 deletions
Original file line numberDiff line numberDiff line change
@@ -6,190 +6,36 @@
66
using SharpEngine.Core.Math;
77
using SharpEngine.Core.Renderer;
88
using SharpEngine.Core.Utils;
9-
using SharpEngine.Editor.Build;
10-
using SharpEngine.Editor.GUI;
11-
using SharpEngine.Editor.Project.Data;
12-
using SharpEngine.Editor.Scene;
139

1410
namespace SharpEngine.Editor;
1511

16-
public class Editor
12+
public class Editor: Window
1713
{
18-
internal static Editor? Instance { get; private set; }
19-
20-
internal static readonly Core.Scene CurrentScene = new GameScene();
21-
internal static string? ProjectFolder { get; set; } = null;
22-
internal static string ProjectName { get; set; } = "";
23-
internal static ProjectData ProjectData { get; set; } = new()
24-
{
25-
Title = "",
26-
Scenes = []
27-
};
28-
29-
private static bool _exists { get; set; } = false;
3014
private RenderTexture2D _renderTexture;
3115

32-
private int _windowSizeX;
33-
private int _windowSizeY;
34-
35-
private MainMenuBar? _mainMenuBar;
36-
private RenderWindow? _renderWindow;
37-
private Properties? _properties;
38-
private Objects? _sceneTree;
39-
private AssetsExplorer? _assetsExplorer;
40-
41-
public Editor()
16+
public Editor(): base(1800, 900, "SharpEngine Editor", Core.Utils.Color.Black, null, true, true, true)
4217
{
43-
Instance = this;
44-
4518
if (!Path.Exists("Projects"))
4619
Directory.CreateDirectory("Projects");
4720

4821
Raylib.SetConfigFlags(ConfigFlags.ResizableWindow);
49-
var window = new Window(900, 600, "SharpEngine Editor", debug: true, fileLog: true)
50-
{
51-
RenderImGui = RenderImGui
52-
};
53-
Raylib.MaximizeWindow();
5422
ImGui.GetIO().ConfigFlags |= ImGuiConfigFlags.DockingEnable;
5523

56-
_windowSizeX = 900;
57-
_windowSizeY = 600;
58-
window.AddScene(new EditorScene(this));
59-
60-
CurrentScene.Window = window;
61-
62-
window.Run();
63-
}
64-
65-
public void Load()
66-
{
6724
DebugManager.Log(LogLevel.LogInfo, "EDITOR: Loading...");
68-
CurrentScene.Load();
6925
_renderTexture = Raylib.LoadRenderTexture(900, 600);
70-
71-
_mainMenuBar = new MainMenuBar();
72-
_renderWindow = new RenderWindow(_renderTexture);
73-
_properties = new Properties();
74-
_sceneTree = new Objects();
75-
_assetsExplorer = new AssetsExplorer();
7626
DebugManager.Log(LogLevel.LogInfo, "EDITOR: Loaded !");
27+
28+
AddScene(new Scene());
29+
30+
Run();
31+
32+
Unload();
7733
}
7834

7935
public void Unload()
8036
{
8137
DebugManager.Log(LogLevel.LogInfo, "EDITOR: Unloading...");
8238
Raylib.UnloadRenderTexture(_renderTexture);
83-
CurrentScene.Unload();
8439
DebugManager.Log(LogLevel.LogInfo, "EDITOR: Unloaded !");
8540
}
86-
87-
public void UpdateRenderSize()
88-
{
89-
_renderTexture.Texture.Width = ProjectData.Width;
90-
_renderTexture.Texture.Height = ProjectData.Height;
91-
}
92-
93-
private void RenderCurrentScene(Window window)
94-
{
95-
CurrentScene.Draw();
96-
97-
Raylib.BeginTextureMode(_renderTexture);
98-
Raylib.ClearBackground(ProjectData.BackgroundColor);
99-
SERender.Draw(window);
100-
Raylib.EndTextureMode();
101-
}
102-
103-
private void RenderImGui(Window window)
104-
{
105-
// Resize if necessary
106-
if (Raylib.GetScreenWidth() != _windowSizeX || Raylib.GetScreenHeight() != _windowSizeY)
107-
{
108-
_windowSizeX = Raylib.GetScreenWidth();
109-
_windowSizeY = Raylib.GetScreenHeight();
110-
window.SeImGui.Resize(_windowSizeX, _windowSizeY);
111-
}
112-
113-
// Render Current Scene
114-
RenderCurrentScene(window);
115-
116-
// Create ImGui
117-
if (ProjectFolder != null)
118-
{
119-
_mainMenuBar?.Render();
120-
121-
ImGui.DockSpaceOverViewport(
122-
0,
123-
ImGui.GetMainViewport()
124-
);
125-
_renderWindow?.Render();
126-
_sceneTree?.Render();
127-
_assetsExplorer?.Render();
128-
_properties?.Render();
129-
}
130-
else
131-
{
132-
var io = ImGui.GetIO();
133-
ImGui.SetNextWindowSize(new Vec2(io.DisplaySize.X / 2f, io.DisplaySize.Y / 2f));
134-
ImGui.SetWindowPos(new Vec2(io.DisplaySize.X / 2f, io.DisplaySize.Y / 2f));
135-
136-
if (
137-
ImGui.Begin(
138-
"Projects List",
139-
ImGuiWindowFlags.NoMove
140-
| ImGuiWindowFlags.NoResize
141-
| ImGuiWindowFlags.NoCollapse
142-
)
143-
)
144-
RenderProjectsList();
145-
}
146-
}
147-
148-
private void RenderProjectsList()
149-
{
150-
foreach (var directory in Directory.GetDirectories("Projects").Where(x => ImGui.Button(Path.GetFileName(x))))
151-
{
152-
ProjectName = Path.GetFileName(directory);
153-
ProjectFolder = directory;
154-
AssetsExplorer.CurrentPath = ProjectFolder;
155-
ProjectData = JsonSerializer.Deserialize<ProjectData>(
156-
File.ReadAllText($"Projects/{ProjectName}/project.json")
157-
) ?? throw new JsonException("Cannot deserialize project");
158-
UpdateRenderSize();
159-
}
160-
ImGui.Separator();
161-
if (_exists)
162-
ImGui.TextColored(Core.Utils.Color.Red.ToVec4(), "Project already exists !");
163-
164-
var project = ProjectName;
165-
ImGui.InputText("Project Name", ref project, 90);
166-
ProjectName = project;
167-
168-
if (ImGui.Button("Create"))
169-
{
170-
if (Directory.Exists($"Projects/{ProjectName}"))
171-
_exists = true;
172-
else
173-
{
174-
ProjectData = new ProjectData
175-
{
176-
Width = 900,
177-
Height = 600,
178-
Title = ProjectName,
179-
BackgroundColor = Core.Utils.Color.Black,
180-
CurrentScene = 0,
181-
Scenes = []
182-
};
183-
Directory.CreateDirectory($"Projects/{ProjectName}");
184-
File.WriteAllText(
185-
$"Projects/{ProjectName}/project.json",
186-
JsonSerializer.Serialize(ProjectData)
187-
);
188-
ProjectBuilder.CreateSolution(ProjectName);
189-
ProjectFolder = $"Projects/{ProjectName}";
190-
AssetsExplorer.CurrentPath = ProjectFolder;
191-
}
192-
}
193-
ImGui.End();
194-
}
19541
}

SharpEngine.Editor/GUI/AssetsExplorer.cs

Lines changed: 0 additions & 58 deletions
This file was deleted.

SharpEngine.Editor/GUI/GuiObject.cs

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)