diff --git a/Asset Store/AssetStore.Database/AssetStore.Database.csproj b/Asset Store/AssetStore.Database/AssetStore.Database.csproj
new file mode 100644
index 0000000..247bc9d
--- /dev/null
+++ b/Asset Store/AssetStore.Database/AssetStore.Database.csproj
@@ -0,0 +1,26 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
diff --git a/Asset Store/AssetStore.Database/DatabaseContext.cs b/Asset Store/AssetStore.Database/DatabaseContext.cs
new file mode 100644
index 0000000..344ae80
--- /dev/null
+++ b/Asset Store/AssetStore.Database/DatabaseContext.cs
@@ -0,0 +1,44 @@
+using AssetStore.Database.Models;
+using Microsoft.EntityFrameworkCore;
+using SharpEngine.Shared.Dto.Primitives;
+
+namespace AssetStore.Database;
+
+public class DatabaseContext : DbContext
+{
+ public DbSet Assets { get; set; }
+ public DbSet Comments { get; set; }
+
+ public DatabaseContext()
+ {
+ }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder options)
+ {
+ options.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFCoreExampleDB;Trusted_Connection=True;");
+ }
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ base.OnModelCreating(modelBuilder);
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasMany(asset => asset.Comments);
+
+ entity.Property(u => u.Id)
+ .HasConversion(
+ id => id.Value,
+ value => new AssetId(value));
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.Property(u => u.Id)
+ .HasConversion(
+ id => id.Value,
+ value => new CommentId(value));
+
+ });
+ }
+}
\ No newline at end of file
diff --git a/Asset Store/AssetStore.Database/Models/Asset.cs b/Asset Store/AssetStore.Database/Models/Asset.cs
new file mode 100644
index 0000000..0ae9119
--- /dev/null
+++ b/Asset Store/AssetStore.Database/Models/Asset.cs
@@ -0,0 +1,36 @@
+using SharpEngine.Shared.Dto.AssetStore;
+using SharpEngine.Shared.Dto.Primitives;
+
+namespace AssetStore.Database.Models;
+
+public class Asset
+{
+ public AssetId Id { get; set; }
+ public required string Name { get; set; }
+ public string Description { get; set; } = string.Empty;
+ public decimal Price { get; set; }
+ public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
+ public DateTime LastUpdatedAt { get; set; } = DateTime.UtcNow;
+ public IReadOnlyList KeyWords { get; set; } = [];
+ public IReadOnlyList Comments { get; set; } = [];
+ public UserId AuthorId { get; set; }
+ public bool Tombstoned { get; set; } = false;
+ public Version Version { get; set; }
+ // (e.g., model, texture, sound, etc.)
+ // public AssetType
+
+ public required string BlobUri { get; set; }
+ public required string FileSize { get; set; }
+
+ public required string Checksum { get; set; }
+
+ public static explicit operator Asset(AssetDto dto)
+ {
+ throw new NotImplementedException();
+ }
+
+ public static explicit operator AssetDto(Asset? model)
+ {
+ throw new NotImplementedException();
+ }
+}
\ No newline at end of file
diff --git a/Asset Store/AssetStore.Database/Models/Comment.cs b/Asset Store/AssetStore.Database/Models/Comment.cs
new file mode 100644
index 0000000..ef189ca
--- /dev/null
+++ b/Asset Store/AssetStore.Database/Models/Comment.cs
@@ -0,0 +1,14 @@
+using SharpEngine.Shared.Dto.Primitives;
+
+namespace AssetStore.Database.Models;
+
+public class Comment
+{
+ public CommentId Id { get; set; }
+ public AssetId AssetId { get; set; }
+ public UserId UserId { get; set; }
+ public required string Content { get; set; }
+ public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
+ public Comment? ParentComment { get; set; }
+ public IReadOnlyList Replies { get; set; } = [];
+}
diff --git a/Asset Store/AssetStore.slnx b/Asset Store/AssetStore.slnx
new file mode 100644
index 0000000..268f27a
--- /dev/null
+++ b/Asset Store/AssetStore.slnx
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Asset Store/AssetStore/AssetStore.Api.csproj b/Asset Store/AssetStore/AssetStore.Api.csproj
new file mode 100644
index 0000000..5fa94a2
--- /dev/null
+++ b/Asset Store/AssetStore/AssetStore.Api.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Asset Store/AssetStore/AssetStore.http b/Asset Store/AssetStore/AssetStore.http
new file mode 100644
index 0000000..2e4293e
--- /dev/null
+++ b/Asset Store/AssetStore/AssetStore.http
@@ -0,0 +1,6 @@
+@AssetStore_HostAddress = http://localhost:5274
+
+GET {{AssetStore_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Asset Store/AssetStore/Controllers/AssetController.cs b/Asset Store/AssetStore/Controllers/AssetController.cs
new file mode 100644
index 0000000..4ea29c8
--- /dev/null
+++ b/Asset Store/AssetStore/Controllers/AssetController.cs
@@ -0,0 +1,112 @@
+using AssetStore.Database.Models;
+using AssetStore.Services.Asset;
+using Microsoft.AspNetCore.Mvc;
+using SharpEngine.Shared.Dto.AssetStore;
+
+namespace AssetStore.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class AssetController : ControllerBase
+ {
+ private readonly ILogger _logger;
+ private readonly IAssetService _service;
+
+ public AssetController(ILogger logger, IAssetService service)
+ {
+ _logger = logger;
+ _service = service;
+ }
+
+ [HttpGet]
+ public ActionResult> GetAllAssets()
+ {
+ _logger.LogDebug("Retrieving assets.");
+
+ var assets = _service.GetAssets();
+ _logger.LogDebug("Found {Count} assets.", assets.Count());
+
+ return StatusCode(StatusCodes.Status200OK, assets);
+ }
+
+ [HttpGet("{assetId}")]
+ public ActionResult GetById(Guid assetId)
+ {
+ _logger.LogDebug("Retrieving asset with id '{assetId}'.", assetId);
+ var asset = _service.GetAsset(assetId);
+
+ if (asset is null)
+ return StatusCode(StatusCodes.Status204NoContent, "Unable to find asset.");
+
+ return StatusCode(StatusCodes.Status200OK, asset);
+ }
+
+ [HttpGet("/keyword")]
+ public ActionResult> GetAllAssetsByKeyWord([FromBody] IReadOnlyList keywords)
+ {
+ var joinedKeyWords = string.Join(", ", keywords);
+ _logger.LogDebug("Retrieving assets for the given keywords: {KeyWords}.", joinedKeyWords);
+
+ var assets = _service.GetAssets(keywords);
+ _logger.LogDebug("Found {Count} assets for the given keywords: {KeyWords}.", assets.Count(), joinedKeyWords);
+
+ if (!assets.Any())
+ return StatusCode(StatusCodes.Status204NoContent, $"Unable to find assets with keywords '{joinedKeyWords}'.");
+
+ return StatusCode(StatusCodes.Status200OK, assets);
+ }
+
+ [HttpGet("/author/{author}")]
+ public ActionResult> GetAllAssetsByAuthor(Guid authorId)
+ {
+ _logger.LogDebug("Retrieving assets for author with id: '{Author}'.", authorId);
+
+ var assets = _service.GetAssets(authorId);
+ _logger.LogDebug("Found {Count} assets for the given author: '{AuthorId}'.", assets.Count(), authorId);
+
+ if (!assets.Any())
+ return StatusCode(StatusCodes.Status204NoContent, $"Unable to find assets by author with id '{authorId}'.");
+
+ return StatusCode(StatusCodes.Status200OK, assets);
+ }
+
+ [HttpPost]
+ public async Task> CreateAsset([FromBody] AssetDto asset)
+ {
+ _logger.LogDebug("Checking if asset already exists.");
+ if (asset.Id.Value != Guid.Empty)
+ {
+ _logger.LogDebug("Asset already exists.");
+ return ReviseAsset(asset);
+ }
+
+ _logger.LogDebug("Creating asset '{Asset}'. Published by '{Author}'.", asset.Name, asset.AuthorId);
+ var result = await _service.CreateAsset(asset);
+
+ _logger.LogDebug("Successfully created asset '{Asset}'. Published by '{Author}'.", asset.Name, asset.AuthorId);
+ return result;
+ }
+
+ [HttpPut]
+ public AssetDto ReviseAsset([FromBody] AssetDto asset)
+ {
+ // TODO: versioning logic
+
+ // TODO: Replace existing with revised asset
+ var result = _service.ReviseAsset(asset);
+
+ _logger.LogDebug("Successfully revised asset '{Asset}'. Published by '{Author}'.", asset.Name, asset.AuthorId);
+ return asset;
+ }
+
+ [HttpDelete]
+ public async Task DeleteAsset(Guid assetId)
+ {
+ bool removed = await _service.DeleteAsset(assetId);
+ if (!removed)
+ return StatusCode(StatusCodes.Status404NotFound);
+
+ return StatusCode(StatusCodes.Status200OK, "Asset successfully deleted.");
+ }
+ }
+}
diff --git a/Asset Store/AssetStore/Controllers/CommentController.cs b/Asset Store/AssetStore/Controllers/CommentController.cs
new file mode 100644
index 0000000..ca4235c
--- /dev/null
+++ b/Asset Store/AssetStore/Controllers/CommentController.cs
@@ -0,0 +1,30 @@
+using AssetStore.Database.Models;
+using Microsoft.AspNetCore.Mvc;
+using SharpEngine.Shared.Dto.AssetStore;
+
+namespace AssetStore.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class CommentController : ControllerBase
+ {
+ private readonly ILogger _logger;
+
+ public CommentController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet]
+ public IEnumerable GetAssetComments(Guid assetId)
+ {
+ return new List();
+ }
+
+ [HttpPost]
+ public CommentDto PostComment(Guid assetId, CommentDto comment)
+ {
+ return new CommentDto();
+ }
+ }
+}
diff --git a/Asset Store/AssetStore/Program.cs b/Asset Store/AssetStore/Program.cs
new file mode 100644
index 0000000..666a9c5
--- /dev/null
+++ b/Asset Store/AssetStore/Program.cs
@@ -0,0 +1,23 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+builder.Services.AddOpenApi();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.MapOpenApi();
+}
+
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Asset Store/AssetStore/Properties/launchSettings.json b/Asset Store/AssetStore/Properties/launchSettings.json
new file mode 100644
index 0000000..4c87c24
--- /dev/null
+++ b/Asset Store/AssetStore/Properties/launchSettings.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "http://localhost:5274",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "https://localhost:7215;http://localhost:5274",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Asset Store/AssetStore/Services/Asset/AssetService.cs b/Asset Store/AssetStore/Services/Asset/AssetService.cs
new file mode 100644
index 0000000..a11c7e6
--- /dev/null
+++ b/Asset Store/AssetStore/Services/Asset/AssetService.cs
@@ -0,0 +1,88 @@
+using AssetStore.Database.Models;
+using Microsoft.EntityFrameworkCore;
+using SharpEngine.Shared.Dto.AssetStore;
+using SharpEngine.Shared.Dto.Primitives;
+
+namespace AssetStore.Services.Asset;
+
+public class AssetService : IAssetService
+{
+ private readonly ILogger _logger;
+ private readonly Database.DatabaseContext _db;
+
+ public AssetService(ILogger _logger, Database.DatabaseContext db)
+ {
+ _db = db;
+ }
+
+ ///
+ ///
+ public async Task CreateAsset(AssetDto asset)
+ {
+ _logger.LogDebug("Creating asset.");
+
+ var model = (Asset)asset;
+ await _db.Assets.AddAsync(model);
+ await _db.SaveChangesAsync();
+
+ return asset;
+ }
+
+ ///
+ public async Task DeleteAsset(AssetId assetId)
+ {
+ var asset = await _db.Assets.FirstOrDefaultAsync(asset => asset.Id.Value == assetId.Value);
+ if (asset is null)
+ return false;
+
+ _db.Assets.Remove(asset);
+ await _db.SaveChangesAsync();
+
+ return true;
+ }
+
+ ///
+ public async Task GetAsset(AssetId assetId)
+ {
+ var asset = await _db.Assets.FirstOrDefaultAsync(asset => asset.Id.Value == assetId.Value);
+ return (AssetDto?)asset;
+ }
+
+ ///
+ public IEnumerable GetAssets()
+ {
+ var assets = _db.Assets.AsNoTracking().Select(asset => (AssetDto)asset);
+ return assets;
+ }
+
+ ///
+ public IEnumerable GetAssets(IReadOnlyList keywords)
+ {
+ var assets = _db.Assets.AsNoTracking()
+ .Where(asset => asset.KeyWords.Any(keyword => keywords.Contains(keyword)))
+ .Select(asset => (AssetDto)asset);
+
+ return assets;
+ }
+
+ ///
+ public IEnumerable GetAssets(UserId authorId)
+ {
+ var assets = _db.Assets.AsNoTracking()
+ .Where(asset => asset.AuthorId.Value == authorId.Value)
+ .Select(asset => (AssetDto)asset);
+
+ return assets;
+ }
+
+ ///
+ public AssetDto GetByChecksum(string checksum) => throw new NotImplementedException();
+
+ ///
+ public AssetDto ReviseAsset(AssetDto asset)
+ {
+ asset.Version = new Version(asset.Version.Major, asset.Version.Minor + 1);
+
+ throw new NotImplementedException();
+ }
+}
diff --git a/Asset Store/AssetStore/Services/Asset/IAssetService.cs b/Asset Store/AssetStore/Services/Asset/IAssetService.cs
new file mode 100644
index 0000000..ad4df4c
--- /dev/null
+++ b/Asset Store/AssetStore/Services/Asset/IAssetService.cs
@@ -0,0 +1,17 @@
+using AssetStore.Database.Models;
+using SharpEngine.Shared.Dto.AssetStore;
+using SharpEngine.Shared.Dto.Primitives;
+
+namespace AssetStore.Services.Asset;
+
+public interface IAssetService
+{
+ Task CreateAsset(AssetDto asset);
+ Task DeleteAsset(AssetId assetId);
+ Task GetAsset(AssetId assetId);
+ IEnumerable GetAssets();
+ IEnumerable GetAssets(IReadOnlyList keywords);
+ IEnumerable GetAssets(UserId authorId);
+ AssetDto GetByChecksum(string checksum);
+ AssetDto ReviseAsset(AssetDto asset);
+}
\ No newline at end of file
diff --git a/Asset Store/AssetStore/appsettings.Development.json b/Asset Store/AssetStore/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Asset Store/AssetStore/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Asset Store/AssetStore/appsettings.json b/Asset Store/AssetStore/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Asset Store/AssetStore/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Asset Store/Directory.Build.props b/Asset Store/Directory.Build.props
new file mode 100644
index 0000000..e69de29
diff --git a/Asset Store/Readme.md b/Asset Store/Readme.md
new file mode 100644
index 0000000..e69de29
diff --git a/Asset Store/Tests/AssetStore.API.Tests/AssetStore.Api.Tests.csproj b/Asset Store/Tests/AssetStore.API.Tests/AssetStore.Api.Tests.csproj
new file mode 100644
index 0000000..b760144
--- /dev/null
+++ b/Asset Store/Tests/AssetStore.API.Tests/AssetStore.Api.Tests.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
diff --git a/Asset Store/Tests/AssetStore.API.Tests/Controllers/AssetControllerTests.cs b/Asset Store/Tests/AssetStore.API.Tests/Controllers/AssetControllerTests.cs
new file mode 100644
index 0000000..48fe198
--- /dev/null
+++ b/Asset Store/Tests/AssetStore.API.Tests/Controllers/AssetControllerTests.cs
@@ -0,0 +1,9 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace AssetStore.Api.Tests.Controllers;
+
+internal class AssetControllerTests
+{
+}
diff --git a/Asset Store/Tests/AssetStore.API.Tests/Controllers/CommentControllerTests.cs b/Asset Store/Tests/AssetStore.API.Tests/Controllers/CommentControllerTests.cs
new file mode 100644
index 0000000..1180378
--- /dev/null
+++ b/Asset Store/Tests/AssetStore.API.Tests/Controllers/CommentControllerTests.cs
@@ -0,0 +1,9 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace AssetStore.Api.Tests.Controllers;
+
+internal class CommentControllerTests
+{
+}
diff --git a/Asset Store/Tests/AssetStore.API.Tests/Services/AssetServiceTests.cs b/Asset Store/Tests/AssetStore.API.Tests/Services/AssetServiceTests.cs
new file mode 100644
index 0000000..44d8123
--- /dev/null
+++ b/Asset Store/Tests/AssetStore.API.Tests/Services/AssetServiceTests.cs
@@ -0,0 +1,9 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace AssetStore.Api.Tests.Services;
+
+internal class AssetServiceTests
+{
+}
diff --git a/Asset Store/Tests/AssetStore.API.Tests/Services/CommentServiceTests.cs b/Asset Store/Tests/AssetStore.API.Tests/Services/CommentServiceTests.cs
new file mode 100644
index 0000000..93698f0
--- /dev/null
+++ b/Asset Store/Tests/AssetStore.API.Tests/Services/CommentServiceTests.cs
@@ -0,0 +1,9 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace AssetStore.Api.Tests.Services;
+
+internal class CommentServiceTests
+{
+}
diff --git a/Asset Store/Tests/Directory.Build.props b/Asset Store/Tests/Directory.Build.props
new file mode 100644
index 0000000..e69de29
diff --git a/.editorconfig b/Engine/.editorconfig
similarity index 100%
rename from .editorconfig
rename to Engine/.editorconfig
diff --git a/Directory.Build.props b/Engine/Directory.Build.props
similarity index 100%
rename from Directory.Build.props
rename to Engine/Directory.Build.props
diff --git a/Editor/EditorSettings.cs b/Engine/Editor/EditorSettings.cs
similarity index 100%
rename from Editor/EditorSettings.cs
rename to Engine/Editor/EditorSettings.cs
diff --git a/Editor/EditorWindow.cs b/Engine/Editor/EditorWindow.cs
similarity index 100%
rename from Editor/EditorWindow.cs
rename to Engine/Editor/EditorWindow.cs
diff --git a/Editor/Program.cs b/Engine/Editor/Program.cs
similarity index 100%
rename from Editor/Program.cs
rename to Engine/Editor/Program.cs
diff --git a/Editor/SharpEngine.Editor.csproj b/Engine/Editor/SharpEngine.Editor.csproj
similarity index 100%
rename from Editor/SharpEngine.Editor.csproj
rename to Engine/Editor/SharpEngine.Editor.csproj
diff --git a/Editor/SharpEngine.Editor.sln b/Engine/Editor/SharpEngine.Editor.sln
similarity index 100%
rename from Editor/SharpEngine.Editor.sln
rename to Engine/Editor/SharpEngine.Editor.sln
diff --git a/Editor/Windows/ActionsMenuWindow.cs b/Engine/Editor/Windows/ActionsMenuWindow.cs
similarity index 100%
rename from Editor/Windows/ActionsMenuWindow.cs
rename to Engine/Editor/Windows/ActionsMenuWindow.cs
diff --git a/Editor/Windows/AssetsWindow.cs b/Engine/Editor/Windows/AssetsWindow.cs
similarity index 100%
rename from Editor/Windows/AssetsWindow.cs
rename to Engine/Editor/Windows/AssetsWindow.cs
diff --git a/Editor/Windows/ContextMenuWindow.cs b/Engine/Editor/Windows/ContextMenuWindow.cs
similarity index 100%
rename from Editor/Windows/ContextMenuWindow.cs
rename to Engine/Editor/Windows/ContextMenuWindow.cs
diff --git a/Editor/Windows/ImGuiWindowBase.cs b/Engine/Editor/Windows/ImGuiWindowBase.cs
similarity index 100%
rename from Editor/Windows/ImGuiWindowBase.cs
rename to Engine/Editor/Windows/ImGuiWindowBase.cs
diff --git a/Editor/Windows/PropertiesWindow.cs b/Engine/Editor/Windows/PropertiesWindow.cs
similarity index 100%
rename from Editor/Windows/PropertiesWindow.cs
rename to Engine/Editor/Windows/PropertiesWindow.cs
diff --git a/Editor/Windows/SceneWindow.cs b/Engine/Editor/Windows/SceneWindow.cs
similarity index 100%
rename from Editor/Windows/SceneWindow.cs
rename to Engine/Editor/Windows/SceneWindow.cs
diff --git a/Examples/MinecraftClone/Block/BlockBase.cs b/Engine/Examples/MinecraftClone/Block/BlockBase.cs
similarity index 100%
rename from Examples/MinecraftClone/Block/BlockBase.cs
rename to Engine/Examples/MinecraftClone/Block/BlockBase.cs
diff --git a/Examples/MinecraftClone/Block/Dirt.cs b/Engine/Examples/MinecraftClone/Block/Dirt.cs
similarity index 100%
rename from Examples/MinecraftClone/Block/Dirt.cs
rename to Engine/Examples/MinecraftClone/Block/Dirt.cs
diff --git a/Examples/MinecraftClone/Block/Stone.cs b/Engine/Examples/MinecraftClone/Block/Stone.cs
similarity index 100%
rename from Examples/MinecraftClone/Block/Stone.cs
rename to Engine/Examples/MinecraftClone/Block/Stone.cs
diff --git a/Examples/MinecraftClone/BlockFactory.cs b/Engine/Examples/MinecraftClone/BlockFactory.cs
similarity index 100%
rename from Examples/MinecraftClone/BlockFactory.cs
rename to Engine/Examples/MinecraftClone/BlockFactory.cs
diff --git a/Examples/MinecraftClone/Input.cs b/Engine/Examples/MinecraftClone/Input.cs
similarity index 100%
rename from Examples/MinecraftClone/Input.cs
rename to Engine/Examples/MinecraftClone/Input.cs
diff --git a/Examples/MinecraftClone/Inventory.cs b/Engine/Examples/MinecraftClone/Inventory.cs
similarity index 100%
rename from Examples/MinecraftClone/Inventory.cs
rename to Engine/Examples/MinecraftClone/Inventory.cs
diff --git a/Examples/MinecraftClone/Minecraft.cs b/Engine/Examples/MinecraftClone/Minecraft.cs
similarity index 100%
rename from Examples/MinecraftClone/Minecraft.cs
rename to Engine/Examples/MinecraftClone/Minecraft.cs
diff --git a/Examples/MinecraftClone/Minecraft.csproj b/Engine/Examples/MinecraftClone/Minecraft.csproj
similarity index 100%
rename from Examples/MinecraftClone/Minecraft.csproj
rename to Engine/Examples/MinecraftClone/Minecraft.csproj
diff --git a/Examples/MinecraftClone/Minecraft.sln b/Engine/Examples/MinecraftClone/Minecraft.sln
similarity index 100%
rename from Examples/MinecraftClone/Minecraft.sln
rename to Engine/Examples/MinecraftClone/Minecraft.sln
diff --git a/Examples/MinecraftClone/Program.cs b/Engine/Examples/MinecraftClone/Program.cs
similarity index 100%
rename from Examples/MinecraftClone/Program.cs
rename to Engine/Examples/MinecraftClone/Program.cs
diff --git a/Examples/MinecraftClone/Resources/container2.png b/Engine/Examples/MinecraftClone/Resources/container2.png
similarity index 100%
rename from Examples/MinecraftClone/Resources/container2.png
rename to Engine/Examples/MinecraftClone/Resources/container2.png
diff --git a/Examples/MinecraftClone/Resources/container2_specular.png b/Engine/Examples/MinecraftClone/Resources/container2_specular.png
similarity index 100%
rename from Examples/MinecraftClone/Resources/container2_specular.png
rename to Engine/Examples/MinecraftClone/Resources/container2_specular.png
diff --git a/Examples/MinecraftClone/Resources/grass.jpg b/Engine/Examples/MinecraftClone/Resources/grass.jpg
similarity index 100%
rename from Examples/MinecraftClone/Resources/grass.jpg
rename to Engine/Examples/MinecraftClone/Resources/grass.jpg
diff --git a/Examples/Minimal/Minimal.csproj b/Engine/Examples/Minimal/Minimal.csproj
similarity index 100%
rename from Examples/Minimal/Minimal.csproj
rename to Engine/Examples/Minimal/Minimal.csproj
diff --git a/Examples/Minimal/Minimal.sln b/Engine/Examples/Minimal/Minimal.sln
similarity index 100%
rename from Examples/Minimal/Minimal.sln
rename to Engine/Examples/Minimal/Minimal.sln
diff --git a/Examples/Minimal/Program.cs b/Engine/Examples/Minimal/Program.cs
similarity index 100%
rename from Examples/Minimal/Program.cs
rename to Engine/Examples/Minimal/Program.cs
diff --git a/Examples/MultipleWindows/MultipleWindows.csproj b/Engine/Examples/MultipleWindows/MultipleWindows.csproj
similarity index 100%
rename from Examples/MultipleWindows/MultipleWindows.csproj
rename to Engine/Examples/MultipleWindows/MultipleWindows.csproj
diff --git a/Examples/MultipleWindows/Program.cs b/Engine/Examples/MultipleWindows/Program.cs
similarity index 100%
rename from Examples/MultipleWindows/Program.cs
rename to Engine/Examples/MultipleWindows/Program.cs
diff --git a/Examples/Tutorial 4.1 - Model Loading/Program.cs b/Engine/Examples/Tutorial 4.1 - Model Loading/Program.cs
similarity index 100%
rename from Examples/Tutorial 4.1 - Model Loading/Program.cs
rename to Engine/Examples/Tutorial 4.1 - Model Loading/Program.cs
diff --git a/Examples/Tutorial 4.1 - Model Loading/Tutorial 4.1 - Model Loading.csproj b/Engine/Examples/Tutorial 4.1 - Model Loading/Tutorial 4.1 - Model Loading.csproj
similarity index 100%
rename from Examples/Tutorial 4.1 - Model Loading/Tutorial 4.1 - Model Loading.csproj
rename to Engine/Examples/Tutorial 4.1 - Model Loading/Tutorial 4.1 - Model Loading.csproj
diff --git a/Examples/Tutorial 4.1 - Model Loading/shader2.vert b/Engine/Examples/Tutorial 4.1 - Model Loading/shader2.vert
similarity index 100%
rename from Examples/Tutorial 4.1 - Model Loading/shader2.vert
rename to Engine/Examples/Tutorial 4.1 - Model Loading/shader2.vert
diff --git a/Examples/Tutorial 4.1 - Model Loading/silk.png b/Engine/Examples/Tutorial 4.1 - Model Loading/silk.png
similarity index 100%
rename from Examples/Tutorial 4.1 - Model Loading/silk.png
rename to Engine/Examples/Tutorial 4.1 - Model Loading/silk.png
diff --git a/Launcher/App.xaml b/Engine/Launcher/App.xaml
similarity index 100%
rename from Launcher/App.xaml
rename to Engine/Launcher/App.xaml
diff --git a/Launcher/App.xaml.cs b/Engine/Launcher/App.xaml.cs
similarity index 100%
rename from Launcher/App.xaml.cs
rename to Engine/Launcher/App.xaml.cs
diff --git a/Launcher/Attributes/FileAttribute.cs b/Engine/Launcher/Attributes/FileAttribute.cs
similarity index 100%
rename from Launcher/Attributes/FileAttribute.cs
rename to Engine/Launcher/Attributes/FileAttribute.cs
diff --git a/Launcher/Enums/SvgIcon.cs b/Engine/Launcher/Enums/SvgIcon.cs
similarity index 100%
rename from Launcher/Enums/SvgIcon.cs
rename to Engine/Launcher/Enums/SvgIcon.cs
diff --git a/Launcher/Launcher.csproj b/Engine/Launcher/Launcher.csproj
similarity index 100%
rename from Launcher/Launcher.csproj
rename to Engine/Launcher/Launcher.csproj
diff --git a/Launcher/Launcher.sln b/Engine/Launcher/Launcher.sln
similarity index 100%
rename from Launcher/Launcher.sln
rename to Engine/Launcher/Launcher.sln
diff --git a/Launcher/MainPage.xaml b/Engine/Launcher/MainPage.xaml
similarity index 100%
rename from Launcher/MainPage.xaml
rename to Engine/Launcher/MainPage.xaml
diff --git a/Launcher/MainPage.xaml.cs b/Engine/Launcher/MainPage.xaml.cs
similarity index 100%
rename from Launcher/MainPage.xaml.cs
rename to Engine/Launcher/MainPage.xaml.cs
diff --git a/Launcher/MauiProgram.cs b/Engine/Launcher/MauiProgram.cs
similarity index 100%
rename from Launcher/MauiProgram.cs
rename to Engine/Launcher/MauiProgram.cs
diff --git a/Launcher/Platforms/Android/AndroidManifest.xml b/Engine/Launcher/Platforms/Android/AndroidManifest.xml
similarity index 100%
rename from Launcher/Platforms/Android/AndroidManifest.xml
rename to Engine/Launcher/Platforms/Android/AndroidManifest.xml
diff --git a/Launcher/Platforms/Android/MainActivity.cs b/Engine/Launcher/Platforms/Android/MainActivity.cs
similarity index 100%
rename from Launcher/Platforms/Android/MainActivity.cs
rename to Engine/Launcher/Platforms/Android/MainActivity.cs
diff --git a/Launcher/Platforms/Android/MainApplication.cs b/Engine/Launcher/Platforms/Android/MainApplication.cs
similarity index 100%
rename from Launcher/Platforms/Android/MainApplication.cs
rename to Engine/Launcher/Platforms/Android/MainApplication.cs
diff --git a/Launcher/Platforms/Android/Resources/values/colors.xml b/Engine/Launcher/Platforms/Android/Resources/values/colors.xml
similarity index 100%
rename from Launcher/Platforms/Android/Resources/values/colors.xml
rename to Engine/Launcher/Platforms/Android/Resources/values/colors.xml
diff --git a/Launcher/Platforms/MacCatalyst/AppDelegate.cs b/Engine/Launcher/Platforms/MacCatalyst/AppDelegate.cs
similarity index 100%
rename from Launcher/Platforms/MacCatalyst/AppDelegate.cs
rename to Engine/Launcher/Platforms/MacCatalyst/AppDelegate.cs
diff --git a/Launcher/Platforms/MacCatalyst/Entitlements.plist b/Engine/Launcher/Platforms/MacCatalyst/Entitlements.plist
similarity index 100%
rename from Launcher/Platforms/MacCatalyst/Entitlements.plist
rename to Engine/Launcher/Platforms/MacCatalyst/Entitlements.plist
diff --git a/Launcher/Platforms/MacCatalyst/Info.plist b/Engine/Launcher/Platforms/MacCatalyst/Info.plist
similarity index 100%
rename from Launcher/Platforms/MacCatalyst/Info.plist
rename to Engine/Launcher/Platforms/MacCatalyst/Info.plist
diff --git a/Launcher/Platforms/MacCatalyst/Program.cs b/Engine/Launcher/Platforms/MacCatalyst/Program.cs
similarity index 100%
rename from Launcher/Platforms/MacCatalyst/Program.cs
rename to Engine/Launcher/Platforms/MacCatalyst/Program.cs
diff --git a/Launcher/Platforms/Tizen/Main.cs b/Engine/Launcher/Platforms/Tizen/Main.cs
similarity index 100%
rename from Launcher/Platforms/Tizen/Main.cs
rename to Engine/Launcher/Platforms/Tizen/Main.cs
diff --git a/Launcher/Platforms/Tizen/tizen-manifest.xml b/Engine/Launcher/Platforms/Tizen/tizen-manifest.xml
similarity index 100%
rename from Launcher/Platforms/Tizen/tizen-manifest.xml
rename to Engine/Launcher/Platforms/Tizen/tizen-manifest.xml
diff --git a/Launcher/Platforms/Windows/App.xaml b/Engine/Launcher/Platforms/Windows/App.xaml
similarity index 100%
rename from Launcher/Platforms/Windows/App.xaml
rename to Engine/Launcher/Platforms/Windows/App.xaml
diff --git a/Launcher/Platforms/Windows/App.xaml.cs b/Engine/Launcher/Platforms/Windows/App.xaml.cs
similarity index 100%
rename from Launcher/Platforms/Windows/App.xaml.cs
rename to Engine/Launcher/Platforms/Windows/App.xaml.cs
diff --git a/Launcher/Platforms/Windows/Package.appxmanifest b/Engine/Launcher/Platforms/Windows/Package.appxmanifest
similarity index 100%
rename from Launcher/Platforms/Windows/Package.appxmanifest
rename to Engine/Launcher/Platforms/Windows/Package.appxmanifest
diff --git a/Launcher/Platforms/Windows/app.manifest b/Engine/Launcher/Platforms/Windows/app.manifest
similarity index 100%
rename from Launcher/Platforms/Windows/app.manifest
rename to Engine/Launcher/Platforms/Windows/app.manifest
diff --git a/Launcher/Platforms/iOS/AppDelegate.cs b/Engine/Launcher/Platforms/iOS/AppDelegate.cs
similarity index 100%
rename from Launcher/Platforms/iOS/AppDelegate.cs
rename to Engine/Launcher/Platforms/iOS/AppDelegate.cs
diff --git a/Launcher/Platforms/iOS/Info.plist b/Engine/Launcher/Platforms/iOS/Info.plist
similarity index 100%
rename from Launcher/Platforms/iOS/Info.plist
rename to Engine/Launcher/Platforms/iOS/Info.plist
diff --git a/Launcher/Platforms/iOS/Program.cs b/Engine/Launcher/Platforms/iOS/Program.cs
similarity index 100%
rename from Launcher/Platforms/iOS/Program.cs
rename to Engine/Launcher/Platforms/iOS/Program.cs
diff --git a/Launcher/Platforms/iOS/Resources/PrivacyInfo.xcprivacy b/Engine/Launcher/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
similarity index 100%
rename from Launcher/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
rename to Engine/Launcher/Platforms/iOS/Resources/PrivacyInfo.xcprivacy
diff --git a/Launcher/Properties/launchSettings.json b/Engine/Launcher/Properties/launchSettings.json
similarity index 100%
rename from Launcher/Properties/launchSettings.json
rename to Engine/Launcher/Properties/launchSettings.json
diff --git a/Launcher/Resources/AppIcon/appicon.svg b/Engine/Launcher/Resources/AppIcon/appicon.svg
similarity index 100%
rename from Launcher/Resources/AppIcon/appicon.svg
rename to Engine/Launcher/Resources/AppIcon/appicon.svg
diff --git a/Launcher/Resources/AppIcon/appiconfg.svg b/Engine/Launcher/Resources/AppIcon/appiconfg.svg
similarity index 100%
rename from Launcher/Resources/AppIcon/appiconfg.svg
rename to Engine/Launcher/Resources/AppIcon/appiconfg.svg
diff --git a/Launcher/Resources/AppIcon/icon.ico b/Engine/Launcher/Resources/AppIcon/icon.ico
similarity index 100%
rename from Launcher/Resources/AppIcon/icon.ico
rename to Engine/Launcher/Resources/AppIcon/icon.ico
diff --git a/Launcher/Resources/AppIcon/icon.png b/Engine/Launcher/Resources/AppIcon/icon.png
similarity index 100%
rename from Launcher/Resources/AppIcon/icon.png
rename to Engine/Launcher/Resources/AppIcon/icon.png
diff --git a/Launcher/Resources/AppIcon/icon.svg b/Engine/Launcher/Resources/AppIcon/icon.svg
similarity index 100%
rename from Launcher/Resources/AppIcon/icon.svg
rename to Engine/Launcher/Resources/AppIcon/icon.svg
diff --git a/Launcher/Resources/Fonts/OpenSans-Regular.ttf b/Engine/Launcher/Resources/Fonts/OpenSans-Regular.ttf
similarity index 100%
rename from Launcher/Resources/Fonts/OpenSans-Regular.ttf
rename to Engine/Launcher/Resources/Fonts/OpenSans-Regular.ttf
diff --git a/Launcher/Resources/Images/dotnet_bot.svg b/Engine/Launcher/Resources/Images/dotnet_bot.svg
similarity index 100%
rename from Launcher/Resources/Images/dotnet_bot.svg
rename to Engine/Launcher/Resources/Images/dotnet_bot.svg
diff --git a/Launcher/Resources/Raw/AboutAssets.txt b/Engine/Launcher/Resources/Raw/AboutAssets.txt
similarity index 100%
rename from Launcher/Resources/Raw/AboutAssets.txt
rename to Engine/Launcher/Resources/Raw/AboutAssets.txt
diff --git a/Launcher/Resources/Splash/splash.svg b/Engine/Launcher/Resources/Splash/splash.svg
similarity index 100%
rename from Launcher/Resources/Splash/splash.svg
rename to Engine/Launcher/Resources/Splash/splash.svg
diff --git a/Launcher/Services/EditorService.cs b/Engine/Launcher/Services/EditorService.cs
similarity index 100%
rename from Launcher/Services/EditorService.cs
rename to Engine/Launcher/Services/EditorService.cs
diff --git a/Launcher/Services/NotificationService.cs b/Engine/Launcher/Services/NotificationService.cs
similarity index 100%
rename from Launcher/Services/NotificationService.cs
rename to Engine/Launcher/Services/NotificationService.cs
diff --git a/Launcher/TestData/TestData.cs b/Engine/Launcher/TestData/TestData.cs
similarity index 100%
rename from Launcher/TestData/TestData.cs
rename to Engine/Launcher/TestData/TestData.cs
diff --git a/Launcher/UI/Components/ContextMenu.razor b/Engine/Launcher/UI/Components/ContextMenu.razor
similarity index 100%
rename from Launcher/UI/Components/ContextMenu.razor
rename to Engine/Launcher/UI/Components/ContextMenu.razor
diff --git a/Launcher/UI/Components/ContextMenu.razor.css b/Engine/Launcher/UI/Components/ContextMenu.razor.css
similarity index 100%
rename from Launcher/UI/Components/ContextMenu.razor.css
rename to Engine/Launcher/UI/Components/ContextMenu.razor.css
diff --git a/Launcher/UI/Components/ContextMenu.razor.min.css b/Engine/Launcher/UI/Components/ContextMenu.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/ContextMenu.razor.min.css
rename to Engine/Launcher/UI/Components/ContextMenu.razor.min.css
diff --git a/Launcher/UI/Components/ContextMenu.razor.scss b/Engine/Launcher/UI/Components/ContextMenu.razor.scss
similarity index 100%
rename from Launcher/UI/Components/ContextMenu.razor.scss
rename to Engine/Launcher/UI/Components/ContextMenu.razor.scss
diff --git a/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor b/Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor
similarity index 100%
rename from Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor
rename to Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor
diff --git a/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.css b/Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.css
similarity index 100%
rename from Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.css
rename to Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.css
diff --git a/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.min.css b/Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.min.css
rename to Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.min.css
diff --git a/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.scss b/Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.scss
rename to Engine/Launcher/UI/Components/Dialogs/ConfirmDeleteDialog.razor.scss
diff --git a/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor b/Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor
similarity index 100%
rename from Launcher/UI/Components/Dialogs/CreateProjectDialog.razor
rename to Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor
diff --git a/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.cs b/Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.cs
similarity index 100%
rename from Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.cs
rename to Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.cs
diff --git a/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.css b/Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.css
similarity index 100%
rename from Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.css
rename to Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.css
diff --git a/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.min.css b/Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.min.css
rename to Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.min.css
diff --git a/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.scss b/Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.scss
rename to Engine/Launcher/UI/Components/Dialogs/CreateProjectDialog.razor.scss
diff --git a/Launcher/UI/Components/Dialogs/DialogBase.cs b/Engine/Launcher/UI/Components/Dialogs/DialogBase.cs
similarity index 100%
rename from Launcher/UI/Components/Dialogs/DialogBase.cs
rename to Engine/Launcher/UI/Components/Dialogs/DialogBase.cs
diff --git a/Launcher/UI/Components/Flyouts/Flyout.razor b/Engine/Launcher/UI/Components/Flyouts/Flyout.razor
similarity index 100%
rename from Launcher/UI/Components/Flyouts/Flyout.razor
rename to Engine/Launcher/UI/Components/Flyouts/Flyout.razor
diff --git a/Launcher/UI/Components/Flyouts/Flyout.razor.css b/Engine/Launcher/UI/Components/Flyouts/Flyout.razor.css
similarity index 100%
rename from Launcher/UI/Components/Flyouts/Flyout.razor.css
rename to Engine/Launcher/UI/Components/Flyouts/Flyout.razor.css
diff --git a/Launcher/UI/Components/Flyouts/Flyout.razor.min.css b/Engine/Launcher/UI/Components/Flyouts/Flyout.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Flyouts/Flyout.razor.min.css
rename to Engine/Launcher/UI/Components/Flyouts/Flyout.razor.min.css
diff --git a/Launcher/UI/Components/Flyouts/Flyout.razor.scss b/Engine/Launcher/UI/Components/Flyouts/Flyout.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Flyouts/Flyout.razor.scss
rename to Engine/Launcher/UI/Components/Flyouts/Flyout.razor.scss
diff --git a/Launcher/UI/Components/Flyouts/FlyoutBase.cs b/Engine/Launcher/UI/Components/Flyouts/FlyoutBase.cs
similarity index 100%
rename from Launcher/UI/Components/Flyouts/FlyoutBase.cs
rename to Engine/Launcher/UI/Components/Flyouts/FlyoutBase.cs
diff --git a/Launcher/UI/Components/Flyouts/SettingsFlyout.razor b/Engine/Launcher/UI/Components/Flyouts/SettingsFlyout.razor
similarity index 100%
rename from Launcher/UI/Components/Flyouts/SettingsFlyout.razor
rename to Engine/Launcher/UI/Components/Flyouts/SettingsFlyout.razor
diff --git a/Launcher/UI/Components/Grid/Grid.razor b/Engine/Launcher/UI/Components/Grid/Grid.razor
similarity index 100%
rename from Launcher/UI/Components/Grid/Grid.razor
rename to Engine/Launcher/UI/Components/Grid/Grid.razor
diff --git a/Launcher/UI/Components/Grid/Grid.razor.css b/Engine/Launcher/UI/Components/Grid/Grid.razor.css
similarity index 100%
rename from Launcher/UI/Components/Grid/Grid.razor.css
rename to Engine/Launcher/UI/Components/Grid/Grid.razor.css
diff --git a/Launcher/UI/Components/Grid/Grid.razor.min.css b/Engine/Launcher/UI/Components/Grid/Grid.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Grid/Grid.razor.min.css
rename to Engine/Launcher/UI/Components/Grid/Grid.razor.min.css
diff --git a/Launcher/UI/Components/Grid/Grid.razor.scss b/Engine/Launcher/UI/Components/Grid/Grid.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Grid/Grid.razor.scss
rename to Engine/Launcher/UI/Components/Grid/Grid.razor.scss
diff --git a/Launcher/UI/Components/Grid/GridHeader.cs b/Engine/Launcher/UI/Components/Grid/GridHeader.cs
similarity index 100%
rename from Launcher/UI/Components/Grid/GridHeader.cs
rename to Engine/Launcher/UI/Components/Grid/GridHeader.cs
diff --git a/Launcher/UI/Components/Grid/GridHeader.razor b/Engine/Launcher/UI/Components/Grid/GridHeader.razor
similarity index 100%
rename from Launcher/UI/Components/Grid/GridHeader.razor
rename to Engine/Launcher/UI/Components/Grid/GridHeader.razor
diff --git a/Launcher/UI/Components/Grid/GridHeader.razor.css b/Engine/Launcher/UI/Components/Grid/GridHeader.razor.css
similarity index 100%
rename from Launcher/UI/Components/Grid/GridHeader.razor.css
rename to Engine/Launcher/UI/Components/Grid/GridHeader.razor.css
diff --git a/Launcher/UI/Components/Grid/GridHeader.razor.min.css b/Engine/Launcher/UI/Components/Grid/GridHeader.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Grid/GridHeader.razor.min.css
rename to Engine/Launcher/UI/Components/Grid/GridHeader.razor.min.css
diff --git a/Launcher/UI/Components/Grid/GridHeader.razor.scss b/Engine/Launcher/UI/Components/Grid/GridHeader.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Grid/GridHeader.razor.scss
rename to Engine/Launcher/UI/Components/Grid/GridHeader.razor.scss
diff --git a/Launcher/UI/Components/Grid/GridRow.razor b/Engine/Launcher/UI/Components/Grid/GridRow.razor
similarity index 100%
rename from Launcher/UI/Components/Grid/GridRow.razor
rename to Engine/Launcher/UI/Components/Grid/GridRow.razor
diff --git a/Launcher/UI/Components/Icons/DiscardIcon.razor b/Engine/Launcher/UI/Components/Icons/DiscardIcon.razor
similarity index 100%
rename from Launcher/UI/Components/Icons/DiscardIcon.razor
rename to Engine/Launcher/UI/Components/Icons/DiscardIcon.razor
diff --git a/Launcher/UI/Components/Icons/Icon.razor b/Engine/Launcher/UI/Components/Icons/Icon.razor
similarity index 100%
rename from Launcher/UI/Components/Icons/Icon.razor
rename to Engine/Launcher/UI/Components/Icons/Icon.razor
diff --git a/Launcher/UI/Components/Layout.razor b/Engine/Launcher/UI/Components/Layout.razor
similarity index 100%
rename from Launcher/UI/Components/Layout.razor
rename to Engine/Launcher/UI/Components/Layout.razor
diff --git a/Launcher/UI/Components/Layout.razor.css b/Engine/Launcher/UI/Components/Layout.razor.css
similarity index 100%
rename from Launcher/UI/Components/Layout.razor.css
rename to Engine/Launcher/UI/Components/Layout.razor.css
diff --git a/Launcher/UI/Components/Layout.razor.min.css b/Engine/Launcher/UI/Components/Layout.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Layout.razor.min.css
rename to Engine/Launcher/UI/Components/Layout.razor.min.css
diff --git a/Launcher/UI/Components/Layout.razor.scss b/Engine/Launcher/UI/Components/Layout.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Layout.razor.scss
rename to Engine/Launcher/UI/Components/Layout.razor.scss
diff --git a/Launcher/UI/Components/Navigation/SideBarItem.razor b/Engine/Launcher/UI/Components/Navigation/SideBarItem.razor
similarity index 100%
rename from Launcher/UI/Components/Navigation/SideBarItem.razor
rename to Engine/Launcher/UI/Components/Navigation/SideBarItem.razor
diff --git a/Launcher/UI/Components/Navigation/SideBarItem.razor.css b/Engine/Launcher/UI/Components/Navigation/SideBarItem.razor.css
similarity index 100%
rename from Launcher/UI/Components/Navigation/SideBarItem.razor.css
rename to Engine/Launcher/UI/Components/Navigation/SideBarItem.razor.css
diff --git a/Launcher/UI/Components/Navigation/SideBarItem.razor.min.css b/Engine/Launcher/UI/Components/Navigation/SideBarItem.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Navigation/SideBarItem.razor.min.css
rename to Engine/Launcher/UI/Components/Navigation/SideBarItem.razor.min.css
diff --git a/Launcher/UI/Components/Navigation/SideBarItem.razor.scss b/Engine/Launcher/UI/Components/Navigation/SideBarItem.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Navigation/SideBarItem.razor.scss
rename to Engine/Launcher/UI/Components/Navigation/SideBarItem.razor.scss
diff --git a/Launcher/UI/Components/Navigation/Sidebar.razor b/Engine/Launcher/UI/Components/Navigation/Sidebar.razor
similarity index 100%
rename from Launcher/UI/Components/Navigation/Sidebar.razor
rename to Engine/Launcher/UI/Components/Navigation/Sidebar.razor
diff --git a/Launcher/UI/Components/Navigation/Sidebar.razor.css b/Engine/Launcher/UI/Components/Navigation/Sidebar.razor.css
similarity index 100%
rename from Launcher/UI/Components/Navigation/Sidebar.razor.css
rename to Engine/Launcher/UI/Components/Navigation/Sidebar.razor.css
diff --git a/Launcher/UI/Components/Navigation/Sidebar.razor.min.css b/Engine/Launcher/UI/Components/Navigation/Sidebar.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Navigation/Sidebar.razor.min.css
rename to Engine/Launcher/UI/Components/Navigation/Sidebar.razor.min.css
diff --git a/Launcher/UI/Components/Navigation/Sidebar.razor.scss b/Engine/Launcher/UI/Components/Navigation/Sidebar.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Navigation/Sidebar.razor.scss
rename to Engine/Launcher/UI/Components/Navigation/Sidebar.razor.scss
diff --git a/Launcher/UI/Components/Notification/Notification.razor b/Engine/Launcher/UI/Components/Notification/Notification.razor
similarity index 100%
rename from Launcher/UI/Components/Notification/Notification.razor
rename to Engine/Launcher/UI/Components/Notification/Notification.razor
diff --git a/Launcher/UI/Components/Notification/Notification.razor.css b/Engine/Launcher/UI/Components/Notification/Notification.razor.css
similarity index 100%
rename from Launcher/UI/Components/Notification/Notification.razor.css
rename to Engine/Launcher/UI/Components/Notification/Notification.razor.css
diff --git a/Launcher/UI/Components/Notification/Notification.razor.min.css b/Engine/Launcher/UI/Components/Notification/Notification.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Notification/Notification.razor.min.css
rename to Engine/Launcher/UI/Components/Notification/Notification.razor.min.css
diff --git a/Launcher/UI/Components/Notification/Notification.razor.scss b/Engine/Launcher/UI/Components/Notification/Notification.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Notification/Notification.razor.scss
rename to Engine/Launcher/UI/Components/Notification/Notification.razor.scss
diff --git a/Launcher/UI/Components/Notification/NotificationType.cs b/Engine/Launcher/UI/Components/Notification/NotificationType.cs
similarity index 100%
rename from Launcher/UI/Components/Notification/NotificationType.cs
rename to Engine/Launcher/UI/Components/Notification/NotificationType.cs
diff --git a/Launcher/UI/Components/Notification/NotificationTypeExtensions.cs b/Engine/Launcher/UI/Components/Notification/NotificationTypeExtensions.cs
similarity index 100%
rename from Launcher/UI/Components/Notification/NotificationTypeExtensions.cs
rename to Engine/Launcher/UI/Components/Notification/NotificationTypeExtensions.cs
diff --git a/Launcher/UI/Components/Searchbox.razor b/Engine/Launcher/UI/Components/Searchbox.razor
similarity index 100%
rename from Launcher/UI/Components/Searchbox.razor
rename to Engine/Launcher/UI/Components/Searchbox.razor
diff --git a/Launcher/UI/Components/Searchbox.razor.css b/Engine/Launcher/UI/Components/Searchbox.razor.css
similarity index 100%
rename from Launcher/UI/Components/Searchbox.razor.css
rename to Engine/Launcher/UI/Components/Searchbox.razor.css
diff --git a/Launcher/UI/Components/Searchbox.razor.min.css b/Engine/Launcher/UI/Components/Searchbox.razor.min.css
similarity index 100%
rename from Launcher/UI/Components/Searchbox.razor.min.css
rename to Engine/Launcher/UI/Components/Searchbox.razor.min.css
diff --git a/Launcher/UI/Components/Searchbox.razor.scss b/Engine/Launcher/UI/Components/Searchbox.razor.scss
similarity index 100%
rename from Launcher/UI/Components/Searchbox.razor.scss
rename to Engine/Launcher/UI/Components/Searchbox.razor.scss
diff --git a/Launcher/UI/Home.razor b/Engine/Launcher/UI/Home.razor
similarity index 100%
rename from Launcher/UI/Home.razor
rename to Engine/Launcher/UI/Home.razor
diff --git a/Launcher/UI/Home.razor.cs b/Engine/Launcher/UI/Home.razor.cs
similarity index 100%
rename from Launcher/UI/Home.razor.cs
rename to Engine/Launcher/UI/Home.razor.cs
diff --git a/Launcher/UI/Home.razor.css b/Engine/Launcher/UI/Home.razor.css
similarity index 100%
rename from Launcher/UI/Home.razor.css
rename to Engine/Launcher/UI/Home.razor.css
diff --git a/Launcher/UI/Home.razor.min.css b/Engine/Launcher/UI/Home.razor.min.css
similarity index 100%
rename from Launcher/UI/Home.razor.min.css
rename to Engine/Launcher/UI/Home.razor.min.css
diff --git a/Launcher/UI/Home.razor.scss b/Engine/Launcher/UI/Home.razor.scss
similarity index 100%
rename from Launcher/UI/Home.razor.scss
rename to Engine/Launcher/UI/Home.razor.scss
diff --git a/Launcher/UI/Routes.razor b/Engine/Launcher/UI/Routes.razor
similarity index 100%
rename from Launcher/UI/Routes.razor
rename to Engine/Launcher/UI/Routes.razor
diff --git a/Launcher/UI/_Imports.razor b/Engine/Launcher/UI/_Imports.razor
similarity index 100%
rename from Launcher/UI/_Imports.razor
rename to Engine/Launcher/UI/_Imports.razor
diff --git a/Launcher/compilerconfig.json b/Engine/Launcher/compilerconfig.json
similarity index 100%
rename from Launcher/compilerconfig.json
rename to Engine/Launcher/compilerconfig.json
diff --git a/Launcher/compilerconfig.json.defaults b/Engine/Launcher/compilerconfig.json.defaults
similarity index 100%
rename from Launcher/compilerconfig.json.defaults
rename to Engine/Launcher/compilerconfig.json.defaults
diff --git a/Launcher/wwwroot/css/additional.css b/Engine/Launcher/wwwroot/css/additional.css
similarity index 100%
rename from Launcher/wwwroot/css/additional.css
rename to Engine/Launcher/wwwroot/css/additional.css
diff --git a/Launcher/wwwroot/css/additional.min.css b/Engine/Launcher/wwwroot/css/additional.min.css
similarity index 100%
rename from Launcher/wwwroot/css/additional.min.css
rename to Engine/Launcher/wwwroot/css/additional.min.css
diff --git a/Launcher/wwwroot/css/additional.scss b/Engine/Launcher/wwwroot/css/additional.scss
similarity index 100%
rename from Launcher/wwwroot/css/additional.scss
rename to Engine/Launcher/wwwroot/css/additional.scss
diff --git a/Launcher/wwwroot/css/app.css b/Engine/Launcher/wwwroot/css/app.css
similarity index 100%
rename from Launcher/wwwroot/css/app.css
rename to Engine/Launcher/wwwroot/css/app.css
diff --git a/Launcher/wwwroot/css/bootstrap/bootstrap.min.css b/Engine/Launcher/wwwroot/css/bootstrap/bootstrap.min.css
similarity index 100%
rename from Launcher/wwwroot/css/bootstrap/bootstrap.min.css
rename to Engine/Launcher/wwwroot/css/bootstrap/bootstrap.min.css
diff --git a/Launcher/wwwroot/css/bootstrap/bootstrap.min.css.map b/Engine/Launcher/wwwroot/css/bootstrap/bootstrap.min.css.map
similarity index 100%
rename from Launcher/wwwroot/css/bootstrap/bootstrap.min.css.map
rename to Engine/Launcher/wwwroot/css/bootstrap/bootstrap.min.css.map
diff --git a/Launcher/wwwroot/favicon.png b/Engine/Launcher/wwwroot/favicon.png
similarity index 100%
rename from Launcher/wwwroot/favicon.png
rename to Engine/Launcher/wwwroot/favicon.png
diff --git a/Launcher/wwwroot/index.html b/Engine/Launcher/wwwroot/index.html
similarity index 100%
rename from Launcher/wwwroot/index.html
rename to Engine/Launcher/wwwroot/index.html
diff --git a/ObjLoader/DataStore.cs b/Engine/ObjLoader/DataStore.cs
similarity index 100%
rename from ObjLoader/DataStore.cs
rename to Engine/ObjLoader/DataStore.cs
diff --git a/ObjLoader/Loaders/LoaderBase.cs b/Engine/ObjLoader/Loaders/LoaderBase.cs
similarity index 100%
rename from ObjLoader/Loaders/LoaderBase.cs
rename to Engine/ObjLoader/Loaders/LoaderBase.cs
diff --git a/ObjLoader/Loaders/MaterialLoader/IMaterialLibraryLoaderFacade.cs b/Engine/ObjLoader/Loaders/MaterialLoader/IMaterialLibraryLoaderFacade.cs
similarity index 100%
rename from ObjLoader/Loaders/MaterialLoader/IMaterialLibraryLoaderFacade.cs
rename to Engine/ObjLoader/Loaders/MaterialLoader/IMaterialLibraryLoaderFacade.cs
diff --git a/ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoader.cs b/Engine/ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoader.cs
similarity index 100%
rename from ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoader.cs
rename to Engine/ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoader.cs
diff --git a/ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoaderFacade.cs b/Engine/ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoaderFacade.cs
similarity index 100%
rename from ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoaderFacade.cs
rename to Engine/ObjLoader/Loaders/MaterialLoader/MaterialLibraryLoaderFacade.cs
diff --git a/ObjLoader/Loaders/ObjLoader/ObjLoader.cs b/Engine/ObjLoader/Loaders/ObjLoader/ObjLoader.cs
similarity index 100%
rename from ObjLoader/Loaders/ObjLoader/ObjLoader.cs
rename to Engine/ObjLoader/Loaders/ObjLoader/ObjLoader.cs
diff --git a/ObjLoader/Loaders/ObjLoader/ObjLoaderFactory.cs b/Engine/ObjLoader/Loaders/ObjLoader/ObjLoaderFactory.cs
similarity index 100%
rename from ObjLoader/Loaders/ObjLoader/ObjLoaderFactory.cs
rename to Engine/ObjLoader/Loaders/ObjLoader/ObjLoaderFactory.cs
diff --git a/ObjLoader/SharpEngine.Core.ObjLoader.csproj b/Engine/ObjLoader/SharpEngine.Core.ObjLoader.csproj
similarity index 100%
rename from ObjLoader/SharpEngine.Core.ObjLoader.csproj
rename to Engine/ObjLoader/SharpEngine.Core.ObjLoader.csproj
diff --git a/ObjLoader/TypeParsers/FaceParser.cs b/Engine/ObjLoader/TypeParsers/FaceParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/FaceParser.cs
rename to Engine/ObjLoader/TypeParsers/FaceParser.cs
diff --git a/ObjLoader/TypeParsers/GroupParser.cs b/Engine/ObjLoader/TypeParsers/GroupParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/GroupParser.cs
rename to Engine/ObjLoader/TypeParsers/GroupParser.cs
diff --git a/ObjLoader/TypeParsers/ITypeParser.cs b/Engine/ObjLoader/TypeParsers/ITypeParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/ITypeParser.cs
rename to Engine/ObjLoader/TypeParsers/ITypeParser.cs
diff --git a/ObjLoader/TypeParsers/MaterialLibraryParser.cs b/Engine/ObjLoader/TypeParsers/MaterialLibraryParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/MaterialLibraryParser.cs
rename to Engine/ObjLoader/TypeParsers/MaterialLibraryParser.cs
diff --git a/ObjLoader/TypeParsers/NormalParser.cs b/Engine/ObjLoader/TypeParsers/NormalParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/NormalParser.cs
rename to Engine/ObjLoader/TypeParsers/NormalParser.cs
diff --git a/ObjLoader/TypeParsers/TextureParser.cs b/Engine/ObjLoader/TypeParsers/TextureParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/TextureParser.cs
rename to Engine/ObjLoader/TypeParsers/TextureParser.cs
diff --git a/ObjLoader/TypeParsers/TypeParserBase.cs b/Engine/ObjLoader/TypeParsers/TypeParserBase.cs
similarity index 100%
rename from ObjLoader/TypeParsers/TypeParserBase.cs
rename to Engine/ObjLoader/TypeParsers/TypeParserBase.cs
diff --git a/ObjLoader/TypeParsers/UseMaterialParser.cs b/Engine/ObjLoader/TypeParsers/UseMaterialParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/UseMaterialParser.cs
rename to Engine/ObjLoader/TypeParsers/UseMaterialParser.cs
diff --git a/ObjLoader/TypeParsers/VertexParser.cs b/Engine/ObjLoader/TypeParsers/VertexParser.cs
similarity index 100%
rename from ObjLoader/TypeParsers/VertexParser.cs
rename to Engine/ObjLoader/TypeParsers/VertexParser.cs
diff --git a/Resources/Screenshots/editor.png b/Engine/Resources/Screenshots/editor.png
similarity index 100%
rename from Resources/Screenshots/editor.png
rename to Engine/Resources/Screenshots/editor.png
diff --git a/Resources/Screenshots/launcher.png b/Engine/Resources/Screenshots/launcher.png
similarity index 100%
rename from Resources/Screenshots/launcher.png
rename to Engine/Resources/Screenshots/launcher.png
diff --git a/Resources/icon.ico b/Engine/Resources/icon.ico
similarity index 100%
rename from Resources/icon.ico
rename to Engine/Resources/icon.ico
diff --git a/Resources/icon.png b/Engine/Resources/icon.png
similarity index 100%
rename from Resources/icon.png
rename to Engine/Resources/icon.png
diff --git a/Resources/icon.svg b/Engine/Resources/icon.svg
similarity index 100%
rename from Resources/icon.svg
rename to Engine/Resources/icon.svg
diff --git a/Resources/icon.xcf b/Engine/Resources/icon.xcf
similarity index 100%
rename from Resources/icon.xcf
rename to Engine/Resources/icon.xcf
diff --git a/SharpEngine.Core.Components/IComponent.cs b/Engine/SharpEngine.Core.Components/IComponent.cs
similarity index 100%
rename from SharpEngine.Core.Components/IComponent.cs
rename to Engine/SharpEngine.Core.Components/IComponent.cs
diff --git a/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IFaceGroup.cs b/Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IFaceGroup.cs
similarity index 100%
rename from SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IFaceGroup.cs
rename to Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IFaceGroup.cs
diff --git a/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IGroupDataStore.cs b/Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IGroupDataStore.cs
similarity index 100%
rename from SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IGroupDataStore.cs
rename to Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IGroupDataStore.cs
diff --git a/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IMaterialLibrary.cs b/Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IMaterialLibrary.cs
similarity index 100%
rename from SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IMaterialLibrary.cs
rename to Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IMaterialLibrary.cs
diff --git a/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/INormalDataStore.cs b/Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/INormalDataStore.cs
similarity index 100%
rename from SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/INormalDataStore.cs
rename to Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/INormalDataStore.cs
diff --git a/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/ITextureDataStore.cs b/Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/ITextureDataStore.cs
similarity index 100%
rename from SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/ITextureDataStore.cs
rename to Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/ITextureDataStore.cs
diff --git a/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IVertexDataStore.cs b/Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IVertexDataStore.cs
similarity index 100%
rename from SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IVertexDataStore.cs
rename to Engine/SharpEngine.Core.Components/Obsolete/ObjLoader/DataStore/IVertexDataStore.cs
diff --git a/SharpEngine.Core.Components/Properties/BoundingBox.cs b/Engine/SharpEngine.Core.Components/Properties/BoundingBox.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/BoundingBox.cs
rename to Engine/SharpEngine.Core.Components/Properties/BoundingBox.cs
diff --git a/SharpEngine.Core.Components/Properties/ITransform.cs b/Engine/SharpEngine.Core.Components/Properties/ITransform.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/ITransform.cs
rename to Engine/SharpEngine.Core.Components/Properties/ITransform.cs
diff --git a/SharpEngine.Core.Components/Properties/Material.cs b/Engine/SharpEngine.Core.Components/Properties/Material.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Material.cs
rename to Engine/SharpEngine.Core.Components/Properties/Material.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/BufferObject.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/BufferObject.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/BufferObject.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/BufferObject.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/Mesh.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/Mesh.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/Mesh.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/Mesh.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/MeshData/Face.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Face.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/MeshData/Face.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Face.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/MeshData/Group.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Group.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/MeshData/Group.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Group.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/MeshData/Normal.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Normal.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/MeshData/Normal.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Normal.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/MeshData/TextureCoordinate.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/TextureCoordinate.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/MeshData/TextureCoordinate.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/TextureCoordinate.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/MeshData/Vertex.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Vertex.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/MeshData/Vertex.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/MeshData/Vertex.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/MeshExtensions.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/MeshExtensions.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/MeshExtensions.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/MeshExtensions.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/Model.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/Model.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/Model.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/Model.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/Model_Old.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/Model_Old.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/Model_Old.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/Model_Old.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/ObjMeshData.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/ObjMeshData.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/ObjMeshData.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/ObjMeshData.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/VertexArrayObject.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/VertexArrayObject.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/VertexArrayObject.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/VertexArrayObject.cs
diff --git a/SharpEngine.Core.Components/Properties/Meshes/VertexData.cs b/Engine/SharpEngine.Core.Components/Properties/Meshes/VertexData.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Meshes/VertexData.cs
rename to Engine/SharpEngine.Core.Components/Properties/Meshes/VertexData.cs
diff --git a/SharpEngine.Core.Components/Properties/Quaternion.cs b/Engine/SharpEngine.Core.Components/Properties/Quaternion.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Quaternion.cs
rename to Engine/SharpEngine.Core.Components/Properties/Quaternion.cs
diff --git a/SharpEngine.Core.Components/Properties/Shaders/Shader.cs b/Engine/SharpEngine.Core.Components/Properties/Shaders/Shader.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Shaders/Shader.cs
rename to Engine/SharpEngine.Core.Components/Properties/Shaders/Shader.cs
diff --git a/SharpEngine.Core.Components/Properties/Shaders/ShaderAttributes.cs b/Engine/SharpEngine.Core.Components/Properties/Shaders/ShaderAttributes.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Shaders/ShaderAttributes.cs
rename to Engine/SharpEngine.Core.Components/Properties/Shaders/ShaderAttributes.cs
diff --git a/SharpEngine.Core.Components/Properties/Shaders/ShaderExtensions.cs b/Engine/SharpEngine.Core.Components/Properties/Shaders/ShaderExtensions.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Shaders/ShaderExtensions.cs
rename to Engine/SharpEngine.Core.Components/Properties/Shaders/ShaderExtensions.cs
diff --git a/SharpEngine.Core.Components/Properties/Textures/Texture.cs b/Engine/SharpEngine.Core.Components/Properties/Textures/Texture.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Textures/Texture.cs
rename to Engine/SharpEngine.Core.Components/Properties/Textures/Texture.cs
diff --git a/SharpEngine.Core.Components/Properties/Textures/TextureExtensions.cs b/Engine/SharpEngine.Core.Components/Properties/Textures/TextureExtensions.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Textures/TextureExtensions.cs
rename to Engine/SharpEngine.Core.Components/Properties/Textures/TextureExtensions.cs
diff --git a/SharpEngine.Core.Components/Properties/Transform.cs b/Engine/SharpEngine.Core.Components/Properties/Transform.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Transform.cs
rename to Engine/SharpEngine.Core.Components/Properties/Transform.cs
diff --git a/SharpEngine.Core.Components/Properties/Transform2D.cs b/Engine/SharpEngine.Core.Components/Properties/Transform2D.cs
similarity index 100%
rename from SharpEngine.Core.Components/Properties/Transform2D.cs
rename to Engine/SharpEngine.Core.Components/Properties/Transform2D.cs
diff --git a/SharpEngine.Core.Components/SharpEngine.Core.Components.csproj b/Engine/SharpEngine.Core.Components/SharpEngine.Core.Components.csproj
similarity index 100%
rename from SharpEngine.Core.Components/SharpEngine.Core.Components.csproj
rename to Engine/SharpEngine.Core.Components/SharpEngine.Core.Components.csproj
diff --git a/SharpEngine.Core.Numerics/Float.cs b/Engine/SharpEngine.Core.Numerics/Float.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/Float.cs
rename to Engine/SharpEngine.Core.Numerics/Float.cs
diff --git a/SharpEngine.Core.Numerics/HashCodeHelper.cs b/Engine/SharpEngine.Core.Numerics/HashCodeHelper.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/HashCodeHelper.cs
rename to Engine/SharpEngine.Core.Numerics/HashCodeHelper.cs
diff --git a/SharpEngine.Core.Numerics/IVector.cs b/Engine/SharpEngine.Core.Numerics/IVector.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/IVector.cs
rename to Engine/SharpEngine.Core.Numerics/IVector.cs
diff --git a/SharpEngine.Core.Numerics/JitIntrinsicAttribute.cs b/Engine/SharpEngine.Core.Numerics/JitIntrinsicAttribute.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/JitIntrinsicAttribute.cs
rename to Engine/SharpEngine.Core.Numerics/JitIntrinsicAttribute.cs
diff --git a/SharpEngine.Core.Numerics/SharpEngine.Core.Numerics.csproj b/Engine/SharpEngine.Core.Numerics/SharpEngine.Core.Numerics.csproj
similarity index 100%
rename from SharpEngine.Core.Numerics/SharpEngine.Core.Numerics.csproj
rename to Engine/SharpEngine.Core.Numerics/SharpEngine.Core.Numerics.csproj
diff --git a/SharpEngine.Core.Numerics/Vector2.cs b/Engine/SharpEngine.Core.Numerics/Vector2.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/Vector2.cs
rename to Engine/SharpEngine.Core.Numerics/Vector2.cs
diff --git a/SharpEngine.Core.Numerics/Vector2_Intrinsics.cs b/Engine/SharpEngine.Core.Numerics/Vector2_Intrinsics.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/Vector2_Intrinsics.cs
rename to Engine/SharpEngine.Core.Numerics/Vector2_Intrinsics.cs
diff --git a/SharpEngine.Core.Numerics/Vector3.cs b/Engine/SharpEngine.Core.Numerics/Vector3.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/Vector3.cs
rename to Engine/SharpEngine.Core.Numerics/Vector3.cs
diff --git a/SharpEngine.Core.Numerics/Vector3_Intrinsics.cs b/Engine/SharpEngine.Core.Numerics/Vector3_Intrinsics.cs
similarity index 100%
rename from SharpEngine.Core.Numerics/Vector3_Intrinsics.cs
rename to Engine/SharpEngine.Core.Numerics/Vector3_Intrinsics.cs
diff --git a/SharpEngine.Core/Abstractions/IGame.cs b/Engine/SharpEngine.Core/Abstractions/IGame.cs
similarity index 100%
rename from SharpEngine.Core/Abstractions/IGame.cs
rename to Engine/SharpEngine.Core/Abstractions/IGame.cs
diff --git a/SharpEngine.Core/Abstractions/IRenderable.cs b/Engine/SharpEngine.Core/Abstractions/IRenderable.cs
similarity index 100%
rename from SharpEngine.Core/Abstractions/IRenderable.cs
rename to Engine/SharpEngine.Core/Abstractions/IRenderable.cs
diff --git a/SharpEngine.Core/Abstractions/ISettings.cs b/Engine/SharpEngine.Core/Abstractions/ISettings.cs
similarity index 100%
rename from SharpEngine.Core/Abstractions/ISettings.cs
rename to Engine/SharpEngine.Core/Abstractions/ISettings.cs
diff --git a/SharpEngine.Core/Audio/Audio.cs b/Engine/SharpEngine.Core/Audio/Audio.cs
similarity index 100%
rename from SharpEngine.Core/Audio/Audio.cs
rename to Engine/SharpEngine.Core/Audio/Audio.cs
diff --git a/SharpEngine.Core/Audio/AudioBuffer.cs b/Engine/SharpEngine.Core/Audio/AudioBuffer.cs
similarity index 100%
rename from SharpEngine.Core/Audio/AudioBuffer.cs
rename to Engine/SharpEngine.Core/Audio/AudioBuffer.cs
diff --git a/SharpEngine.Core/Audio/AudioDevice.cs b/Engine/SharpEngine.Core/Audio/AudioDevice.cs
similarity index 100%
rename from SharpEngine.Core/Audio/AudioDevice.cs
rename to Engine/SharpEngine.Core/Audio/AudioDevice.cs
diff --git a/SharpEngine.Core/Audio/AudioFileExtensions.cs b/Engine/SharpEngine.Core/Audio/AudioFileExtensions.cs
similarity index 100%
rename from SharpEngine.Core/Audio/AudioFileExtensions.cs
rename to Engine/SharpEngine.Core/Audio/AudioFileExtensions.cs
diff --git a/SharpEngine.Core/Audio/AudioPlayerBase.cs b/Engine/SharpEngine.Core/Audio/AudioPlayerBase.cs
similarity index 100%
rename from SharpEngine.Core/Audio/AudioPlayerBase.cs
rename to Engine/SharpEngine.Core/Audio/AudioPlayerBase.cs
diff --git a/SharpEngine.Core/Audio/AudioProperties.cs b/Engine/SharpEngine.Core/Audio/AudioProperties.cs
similarity index 100%
rename from SharpEngine.Core/Audio/AudioProperties.cs
rename to Engine/SharpEngine.Core/Audio/AudioProperties.cs
diff --git a/SharpEngine.Core/Audio/AudioSource.cs b/Engine/SharpEngine.Core/Audio/AudioSource.cs
similarity index 100%
rename from SharpEngine.Core/Audio/AudioSource.cs
rename to Engine/SharpEngine.Core/Audio/AudioSource.cs
diff --git a/SharpEngine.Core/Audio/WavData.cs b/Engine/SharpEngine.Core/Audio/WavData.cs
similarity index 100%
rename from SharpEngine.Core/Audio/WavData.cs
rename to Engine/SharpEngine.Core/Audio/WavData.cs
diff --git a/SharpEngine.Core/Audio/WavPlayer.cs b/Engine/SharpEngine.Core/Audio/WavPlayer.cs
similarity index 100%
rename from SharpEngine.Core/Audio/WavPlayer.cs
rename to Engine/SharpEngine.Core/Audio/WavPlayer.cs
diff --git a/SharpEngine.Core/Entities/BezierCurve.cs b/Engine/SharpEngine.Core/Entities/BezierCurve.cs
similarity index 100%
rename from SharpEngine.Core/Entities/BezierCurve.cs
rename to Engine/SharpEngine.Core/Entities/BezierCurve.cs
diff --git a/SharpEngine.Core/Entities/GameObject.cs b/Engine/SharpEngine.Core/Entities/GameObject.cs
similarity index 100%
rename from SharpEngine.Core/Entities/GameObject.cs
rename to Engine/SharpEngine.Core/Entities/GameObject.cs
diff --git a/SharpEngine.Core/Entities/Lights/DirectionalLight.cs b/Engine/SharpEngine.Core/Entities/Lights/DirectionalLight.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Lights/DirectionalLight.cs
rename to Engine/SharpEngine.Core/Entities/Lights/DirectionalLight.cs
diff --git a/SharpEngine.Core/Entities/Lights/Light.cs b/Engine/SharpEngine.Core/Entities/Lights/Light.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Lights/Light.cs
rename to Engine/SharpEngine.Core/Entities/Lights/Light.cs
diff --git a/SharpEngine.Core/Entities/Lights/PointLight.cs b/Engine/SharpEngine.Core/Entities/Lights/PointLight.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Lights/PointLight.cs
rename to Engine/SharpEngine.Core/Entities/Lights/PointLight.cs
diff --git a/SharpEngine.Core/Entities/Lights/SpotLight.cs b/Engine/SharpEngine.Core/Entities/Lights/SpotLight.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Lights/SpotLight.cs
rename to Engine/SharpEngine.Core/Entities/Lights/SpotLight.cs
diff --git a/SharpEngine.Core/Entities/MeshService.cs b/Engine/SharpEngine.Core/Entities/MeshService.cs
similarity index 100%
rename from SharpEngine.Core/Entities/MeshService.cs
rename to Engine/SharpEngine.Core/Entities/MeshService.cs
diff --git a/SharpEngine.Core/Entities/UI/Layouts/FlexLayout.cs b/Engine/SharpEngine.Core/Entities/UI/Layouts/FlexLayout.cs
similarity index 100%
rename from SharpEngine.Core/Entities/UI/Layouts/FlexLayout.cs
rename to Engine/SharpEngine.Core/Entities/UI/Layouts/FlexLayout.cs
diff --git a/SharpEngine.Core/Entities/UI/Layouts/GridLayout.cs b/Engine/SharpEngine.Core/Entities/UI/Layouts/GridLayout.cs
similarity index 100%
rename from SharpEngine.Core/Entities/UI/Layouts/GridLayout.cs
rename to Engine/SharpEngine.Core/Entities/UI/Layouts/GridLayout.cs
diff --git a/SharpEngine.Core/Entities/UI/Layouts/LayoutBase.cs b/Engine/SharpEngine.Core/Entities/UI/Layouts/LayoutBase.cs
similarity index 100%
rename from SharpEngine.Core/Entities/UI/Layouts/LayoutBase.cs
rename to Engine/SharpEngine.Core/Entities/UI/Layouts/LayoutBase.cs
diff --git a/SharpEngine.Core/Entities/UI/UIElement.cs b/Engine/SharpEngine.Core/Entities/UI/UIElement.cs
similarity index 100%
rename from SharpEngine.Core/Entities/UI/UIElement.cs
rename to Engine/SharpEngine.Core/Entities/UI/UIElement.cs
diff --git a/SharpEngine.Core/Entities/Views/CameraView.cs b/Engine/SharpEngine.Core/Entities/Views/CameraView.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Views/CameraView.cs
rename to Engine/SharpEngine.Core/Entities/Views/CameraView.cs
diff --git a/SharpEngine.Core/Entities/Views/Settings/DefaultViewSettings.cs b/Engine/SharpEngine.Core/Entities/Views/Settings/DefaultViewSettings.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Views/Settings/DefaultViewSettings.cs
rename to Engine/SharpEngine.Core/Entities/Views/Settings/DefaultViewSettings.cs
diff --git a/SharpEngine.Core/Entities/Views/Settings/IViewSettings.cs b/Engine/SharpEngine.Core/Entities/Views/Settings/IViewSettings.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Views/Settings/IViewSettings.cs
rename to Engine/SharpEngine.Core/Entities/Views/Settings/IViewSettings.cs
diff --git a/SharpEngine.Core/Entities/Views/Settings/ViewSettings.cs b/Engine/SharpEngine.Core/Entities/Views/Settings/ViewSettings.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Views/Settings/ViewSettings.cs
rename to Engine/SharpEngine.Core/Entities/Views/Settings/ViewSettings.cs
diff --git a/SharpEngine.Core/Entities/Views/View.cs b/Engine/SharpEngine.Core/Entities/Views/View.cs
similarity index 100%
rename from SharpEngine.Core/Entities/Views/View.cs
rename to Engine/SharpEngine.Core/Entities/Views/View.cs
diff --git a/SharpEngine.Core/Enums/MouseWheelScrollDirection.cs b/Engine/SharpEngine.Core/Enums/MouseWheelScrollDirection.cs
similarity index 100%
rename from SharpEngine.Core/Enums/MouseWheelScrollDirection.cs
rename to Engine/SharpEngine.Core/Enums/MouseWheelScrollDirection.cs
diff --git a/SharpEngine.Core/Extensions/CollectionExtensions.cs b/Engine/SharpEngine.Core/Extensions/CollectionExtensions.cs
similarity index 100%
rename from SharpEngine.Core/Extensions/CollectionExtensions.cs
rename to Engine/SharpEngine.Core/Extensions/CollectionExtensions.cs
diff --git a/SharpEngine.Core/Extensions/PathExtensions.cs b/Engine/SharpEngine.Core/Extensions/PathExtensions.cs
similarity index 100%
rename from SharpEngine.Core/Extensions/PathExtensions.cs
rename to Engine/SharpEngine.Core/Extensions/PathExtensions.cs
diff --git a/SharpEngine.Core/Primitives/Cube.cs b/Engine/SharpEngine.Core/Primitives/Cube.cs
similarity index 100%
rename from SharpEngine.Core/Primitives/Cube.cs
rename to Engine/SharpEngine.Core/Primitives/Cube.cs
diff --git a/SharpEngine.Core/Primitives/Plane.cs b/Engine/SharpEngine.Core/Primitives/Plane.cs
similarity index 100%
rename from SharpEngine.Core/Primitives/Plane.cs
rename to Engine/SharpEngine.Core/Primitives/Plane.cs
diff --git a/SharpEngine.Core/Primitives/PrimitiveFactory.cs b/Engine/SharpEngine.Core/Primitives/PrimitiveFactory.cs
similarity index 100%
rename from SharpEngine.Core/Primitives/PrimitiveFactory.cs
rename to Engine/SharpEngine.Core/Primitives/PrimitiveFactory.cs
diff --git a/SharpEngine.Core/Primitives/PrimitiveType.cs b/Engine/SharpEngine.Core/Primitives/PrimitiveType.cs
similarity index 100%
rename from SharpEngine.Core/Primitives/PrimitiveType.cs
rename to Engine/SharpEngine.Core/Primitives/PrimitiveType.cs
diff --git a/SharpEngine.Core/Ray.cs b/Engine/SharpEngine.Core/Ray.cs
similarity index 100%
rename from SharpEngine.Core/Ray.cs
rename to Engine/SharpEngine.Core/Ray.cs
diff --git a/SharpEngine.Core/Renderers/RenderFlags.cs b/Engine/SharpEngine.Core/Renderers/RenderFlags.cs
similarity index 100%
rename from SharpEngine.Core/Renderers/RenderFlags.cs
rename to Engine/SharpEngine.Core/Renderers/RenderFlags.cs
diff --git a/SharpEngine.Core/Renderers/Renderer.cs b/Engine/SharpEngine.Core/Renderers/Renderer.cs
similarity index 100%
rename from SharpEngine.Core/Renderers/Renderer.cs
rename to Engine/SharpEngine.Core/Renderers/Renderer.cs
diff --git a/SharpEngine.Core/Renderers/RendererBase.cs b/Engine/SharpEngine.Core/Renderers/RendererBase.cs
similarity index 100%
rename from SharpEngine.Core/Renderers/RendererBase.cs
rename to Engine/SharpEngine.Core/Renderers/RendererBase.cs
diff --git a/SharpEngine.Core/Renderers/TextRenderer.cs b/Engine/SharpEngine.Core/Renderers/TextRenderer.cs
similarity index 100%
rename from SharpEngine.Core/Renderers/TextRenderer.cs
rename to Engine/SharpEngine.Core/Renderers/TextRenderer.cs
diff --git a/SharpEngine.Core/Renderers/UIRenderer.cs b/Engine/SharpEngine.Core/Renderers/UIRenderer.cs
similarity index 100%
rename from SharpEngine.Core/Renderers/UIRenderer.cs
rename to Engine/SharpEngine.Core/Renderers/UIRenderer.cs
diff --git a/SharpEngine.Core/Scenes/Scene.cs b/Engine/SharpEngine.Core/Scenes/Scene.cs
similarity index 100%
rename from SharpEngine.Core/Scenes/Scene.cs
rename to Engine/SharpEngine.Core/Scenes/Scene.cs
diff --git a/SharpEngine.Core/Scenes/SceneNode.cs b/Engine/SharpEngine.Core/Scenes/SceneNode.cs
similarity index 100%
rename from SharpEngine.Core/Scenes/SceneNode.cs
rename to Engine/SharpEngine.Core/Scenes/SceneNode.cs
diff --git a/SharpEngine.Core/Shaders/LampShader.cs b/Engine/SharpEngine.Core/Shaders/LampShader.cs
similarity index 100%
rename from SharpEngine.Core/Shaders/LampShader.cs
rename to Engine/SharpEngine.Core/Shaders/LampShader.cs
diff --git a/SharpEngine.Core/Shaders/LightingShader.cs b/Engine/SharpEngine.Core/Shaders/LightingShader.cs
similarity index 100%
rename from SharpEngine.Core/Shaders/LightingShader.cs
rename to Engine/SharpEngine.Core/Shaders/LightingShader.cs
diff --git a/SharpEngine.Core/Shaders/ShaderBase.cs b/Engine/SharpEngine.Core/Shaders/ShaderBase.cs
similarity index 100%
rename from SharpEngine.Core/Shaders/ShaderBase.cs
rename to Engine/SharpEngine.Core/Shaders/ShaderBase.cs
diff --git a/SharpEngine.Core/Shaders/ShaderService.cs b/Engine/SharpEngine.Core/Shaders/ShaderService.cs
similarity index 100%
rename from SharpEngine.Core/Shaders/ShaderService.cs
rename to Engine/SharpEngine.Core/Shaders/ShaderService.cs
diff --git a/SharpEngine.Core/Shaders/UIShader.cs b/Engine/SharpEngine.Core/Shaders/UIShader.cs
similarity index 100%
rename from SharpEngine.Core/Shaders/UIShader.cs
rename to Engine/SharpEngine.Core/Shaders/UIShader.cs
diff --git a/SharpEngine.Core/SharpEngine.Core.csproj b/Engine/SharpEngine.Core/SharpEngine.Core.csproj
similarity index 100%
rename from SharpEngine.Core/SharpEngine.Core.csproj
rename to Engine/SharpEngine.Core/SharpEngine.Core.csproj
diff --git a/SharpEngine.Core/Textures/TextureService.cs b/Engine/SharpEngine.Core/Textures/TextureService.cs
similarity index 100%
rename from SharpEngine.Core/Textures/TextureService.cs
rename to Engine/SharpEngine.Core/Textures/TextureService.cs
diff --git a/SharpEngine.Core/Windowing/Frame.cs b/Engine/SharpEngine.Core/Windowing/Frame.cs
similarity index 100%
rename from SharpEngine.Core/Windowing/Frame.cs
rename to Engine/SharpEngine.Core/Windowing/Frame.cs
diff --git a/SharpEngine.Core/Windowing/SilkWindow.cs b/Engine/SharpEngine.Core/Windowing/SilkWindow.cs
similarity index 100%
rename from SharpEngine.Core/Windowing/SilkWindow.cs
rename to Engine/SharpEngine.Core/Windowing/SilkWindow.cs
diff --git a/SharpEngine.Core/Windowing/Window.cs b/Engine/SharpEngine.Core/Windowing/Window.cs
similarity index 100%
rename from SharpEngine.Core/Windowing/Window.cs
rename to Engine/SharpEngine.Core/Windowing/Window.cs
diff --git a/SharpEngine.Core/_Resources/Default.cs b/Engine/SharpEngine.Core/_Resources/Default.cs
similarity index 100%
rename from SharpEngine.Core/_Resources/Default.cs
rename to Engine/SharpEngine.Core/_Resources/Default.cs
diff --git a/SharpEngine.Core/_Resources/Shaders/Light/DirectionalLight.glsl b/Engine/SharpEngine.Core/_Resources/Shaders/Light/DirectionalLight.glsl
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/Light/DirectionalLight.glsl
rename to Engine/SharpEngine.Core/_Resources/Shaders/Light/DirectionalLight.glsl
diff --git a/SharpEngine.Core/_Resources/Shaders/Light/PointLight.glsl b/Engine/SharpEngine.Core/_Resources/Shaders/Light/PointLight.glsl
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/Light/PointLight.glsl
rename to Engine/SharpEngine.Core/_Resources/Shaders/Light/PointLight.glsl
diff --git a/SharpEngine.Core/_Resources/Shaders/Light/SpotLight.glsl b/Engine/SharpEngine.Core/_Resources/Shaders/Light/SpotLight.glsl
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/Light/SpotLight.glsl
rename to Engine/SharpEngine.Core/_Resources/Shaders/Light/SpotLight.glsl
diff --git a/SharpEngine.Core/_Resources/Shaders/Material.glsl b/Engine/SharpEngine.Core/_Resources/Shaders/Material.glsl
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/Material.glsl
rename to Engine/SharpEngine.Core/_Resources/Shaders/Material.glsl
diff --git a/SharpEngine.Core/_Resources/Shaders/lighting.frag b/Engine/SharpEngine.Core/_Resources/Shaders/lighting.frag
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/lighting.frag
rename to Engine/SharpEngine.Core/_Resources/Shaders/lighting.frag
diff --git a/SharpEngine.Core/_Resources/Shaders/shader.frag b/Engine/SharpEngine.Core/_Resources/Shaders/shader.frag
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/shader.frag
rename to Engine/SharpEngine.Core/_Resources/Shaders/shader.frag
diff --git a/SharpEngine.Core/_Resources/Shaders/shader.vert b/Engine/SharpEngine.Core/_Resources/Shaders/shader.vert
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/shader.vert
rename to Engine/SharpEngine.Core/_Resources/Shaders/shader.vert
diff --git a/SharpEngine.Core/_Resources/Shaders/shader2.vert b/Engine/SharpEngine.Core/_Resources/Shaders/shader2.vert
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/shader2.vert
rename to Engine/SharpEngine.Core/_Resources/Shaders/shader2.vert
diff --git a/SharpEngine.Core/_Resources/Shaders/uiShader.frag b/Engine/SharpEngine.Core/_Resources/Shaders/uiShader.frag
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/uiShader.frag
rename to Engine/SharpEngine.Core/_Resources/Shaders/uiShader.frag
diff --git a/SharpEngine.Core/_Resources/Shaders/uiShader.vert b/Engine/SharpEngine.Core/_Resources/Shaders/uiShader.vert
similarity index 100%
rename from SharpEngine.Core/_Resources/Shaders/uiShader.vert
rename to Engine/SharpEngine.Core/_Resources/Shaders/uiShader.vert
diff --git a/SharpEngine.Core/_Resources/Textures/debug.jpg b/Engine/SharpEngine.Core/_Resources/Textures/debug.jpg
similarity index 100%
rename from SharpEngine.Core/_Resources/Textures/debug.jpg
rename to Engine/SharpEngine.Core/_Resources/Textures/debug.jpg
diff --git a/SharpEngine.Core/_Resources/icon.png b/Engine/SharpEngine.Core/_Resources/icon.png
similarity index 100%
rename from SharpEngine.Core/_Resources/icon.png
rename to Engine/SharpEngine.Core/_Resources/icon.png
diff --git a/Engine/SharpEngine.Rest/Clients/AssetStoreClient.cs b/Engine/SharpEngine.Rest/Clients/AssetStoreClient.cs
new file mode 100644
index 0000000..e209d12
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Clients/AssetStoreClient.cs
@@ -0,0 +1,12 @@
+using SharpEngine.Rest.Urls;
+using SharpEngine.Shared.Dto.AssetStore;
+
+namespace SharpEngine.Rest.Clients;
+
+public class AssetStoreClient : RestClient, IAssetStoreClient
+{
+ public AssetStoreClient(HttpClient httpClient) : base(httpClient) { }
+
+ public async Task GetAssetAsync(Guid assetId)
+ => await GetAsync(AssetStore.GetById(assetId));
+}
diff --git a/Engine/SharpEngine.Rest/Clients/IAssetStoreClient.cs b/Engine/SharpEngine.Rest/Clients/IAssetStoreClient.cs
new file mode 100644
index 0000000..b99147a
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Clients/IAssetStoreClient.cs
@@ -0,0 +1,8 @@
+using SharpEngine.Shared.Dto.AssetStore;
+
+namespace SharpEngine.Rest.Clients;
+
+public interface IAssetStoreClient
+{
+ Task GetAssetAsync(Guid assetId);
+}
diff --git a/Engine/SharpEngine.Rest/Clients/IPortalClient.cs b/Engine/SharpEngine.Rest/Clients/IPortalClient.cs
new file mode 100644
index 0000000..55de6a5
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Clients/IPortalClient.cs
@@ -0,0 +1,5 @@
+namespace SharpEngine.Rest.Clients;
+
+internal interface IPortalClient
+{
+}
\ No newline at end of file
diff --git a/Engine/SharpEngine.Rest/Clients/PortalClient.cs b/Engine/SharpEngine.Rest/Clients/PortalClient.cs
new file mode 100644
index 0000000..f8213f6
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Clients/PortalClient.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SharpEngine.Rest.Clients;
+
+internal class PortalClient : RestClient, IPortalClient
+{
+ public PortalClient(HttpClient httpClient) : base(httpClient) { }
+}
diff --git a/Engine/SharpEngine.Rest/Clients/RestClient.cs b/Engine/SharpEngine.Rest/Clients/RestClient.cs
new file mode 100644
index 0000000..3e96916
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Clients/RestClient.cs
@@ -0,0 +1,28 @@
+using SharpEngine.Rest.Urls;
+using System.Diagnostics;
+using System.Text.Json;
+
+namespace SharpEngine.Rest.Clients;
+
+public abstract class RestClient
+{
+ private readonly HttpClient _httpClient;
+ public RestClient(HttpClient httpClient)
+ {
+ _httpClient = httpClient;
+ _httpClient.BaseAddress = new Uri(AssetStore.BaseUrl);
+ }
+
+ public async Task GetAsync(string url)
+ {
+ var response = await _httpClient.GetAsync(url);
+ response.EnsureSuccessStatusCode();
+
+ var json = await response.Content.ReadAsStringAsync();
+
+ var result = JsonSerializer.Deserialize(json);
+ Debug.Assert(result is not null, "Deserialized result is null.");
+
+ return result;
+ }
+}
diff --git a/Engine/SharpEngine.Rest/SharpEngine.Rest.csproj b/Engine/SharpEngine.Rest/SharpEngine.Rest.csproj
new file mode 100644
index 0000000..d6ab7f9
--- /dev/null
+++ b/Engine/SharpEngine.Rest/SharpEngine.Rest.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/Engine/SharpEngine.Rest/Urls/AssetStore.cs b/Engine/SharpEngine.Rest/Urls/AssetStore.cs
new file mode 100644
index 0000000..e369a96
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Urls/AssetStore.cs
@@ -0,0 +1,7 @@
+namespace SharpEngine.Rest.Urls;
+
+public static class AssetStore
+{
+ public const string BaseUrl = "https://assetstore.sharpengine.com/";
+ public static string GetById(Guid assetId) => $"assets/{assetId}";
+}
diff --git a/Engine/SharpEngine.Rest/Urls/Portal.cs b/Engine/SharpEngine.Rest/Urls/Portal.cs
new file mode 100644
index 0000000..749348f
--- /dev/null
+++ b/Engine/SharpEngine.Rest/Urls/Portal.cs
@@ -0,0 +1,6 @@
+namespace SharpEngine.Rest.Urls;
+
+public static class Portal
+{
+ public const string BaseUrl = "https://portal.sharpengine.com/";
+}
diff --git a/Engine/SharpEngine.Shared/AssetType.cs b/Engine/SharpEngine.Shared/AssetType.cs
new file mode 100644
index 0000000..e460210
--- /dev/null
+++ b/Engine/SharpEngine.Shared/AssetType.cs
@@ -0,0 +1,8 @@
+namespace SharpEngine.Shared;
+
+public enum AssetType
+{
+ Shader,
+ Model,
+ Texture,
+}
diff --git a/SharpEngine.Shared/Attributes/FilterAttribute.cs b/Engine/SharpEngine.Shared/Attributes/FilterAttribute.cs
similarity index 100%
rename from SharpEngine.Shared/Attributes/FilterAttribute.cs
rename to Engine/SharpEngine.Shared/Attributes/FilterAttribute.cs
diff --git a/SharpEngine.Shared/Attributes/InspectorAttribute.cs b/Engine/SharpEngine.Shared/Attributes/InspectorAttribute.cs
similarity index 100%
rename from SharpEngine.Shared/Attributes/InspectorAttribute.cs
rename to Engine/SharpEngine.Shared/Attributes/InspectorAttribute.cs
diff --git a/SharpEngine.Shared/Debug.cs b/Engine/SharpEngine.Shared/Debug.cs
similarity index 100%
rename from SharpEngine.Shared/Debug.cs
rename to Engine/SharpEngine.Shared/Debug.cs
diff --git a/Engine/SharpEngine.Shared/Dto/AssetStore/AssetDto.cs b/Engine/SharpEngine.Shared/Dto/AssetStore/AssetDto.cs
new file mode 100644
index 0000000..1acf076
--- /dev/null
+++ b/Engine/SharpEngine.Shared/Dto/AssetStore/AssetDto.cs
@@ -0,0 +1,33 @@
+using SharpEngine.Shared.Dto.Primitives;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+
+namespace SharpEngine.Shared.Dto.AssetStore;
+
+public class AssetDto
+{
+ public AssetId Id { get; init; }
+ public string Name { get; set; } = string.Empty;
+ public string Description { get; set; } = string.Empty;
+ public decimal Price { get; set; }
+ public DateTime CreatedAt { get; init; }
+ public DateTime LastUpdatedAt { get; init; }
+ public IReadOnlyList Tags { get; set; } = [];
+ public IReadOnlyList Comments { get; set; } = [];
+ public UserId AuthorId { get; init; }
+ public bool Tombstoned { get; set; }
+ public Version Version { get; set; }
+
+
+ // (e.g., model, texture, sound, etc.)
+ // public AssetType
+
+ public required string BlobUri { get; set; }
+ public required string FileSize { get; set; }
+
+ public required string Checksum { get; set; }
+}
diff --git a/Engine/SharpEngine.Shared/Dto/AssetStore/CommentDto.cs b/Engine/SharpEngine.Shared/Dto/AssetStore/CommentDto.cs
new file mode 100644
index 0000000..053abeb
--- /dev/null
+++ b/Engine/SharpEngine.Shared/Dto/AssetStore/CommentDto.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SharpEngine.Shared.Dto.AssetStore;
+
+public class CommentDto
+{
+}
diff --git a/Engine/SharpEngine.Shared/Dto/Primitives/AssetId.cs b/Engine/SharpEngine.Shared/Dto/Primitives/AssetId.cs
new file mode 100644
index 0000000..eada9db
--- /dev/null
+++ b/Engine/SharpEngine.Shared/Dto/Primitives/AssetId.cs
@@ -0,0 +1,8 @@
+namespace SharpEngine.Shared.Dto.Primitives;
+
+public readonly record struct AssetId(Guid Value)
+{
+ public static AssetId New() => new(Guid.NewGuid());
+ public static implicit operator Guid(AssetId id) => id.Value;
+ public static implicit operator AssetId(Guid value) => new(value);
+}
diff --git a/Engine/SharpEngine.Shared/Dto/Primitives/CommentId.cs b/Engine/SharpEngine.Shared/Dto/Primitives/CommentId.cs
new file mode 100644
index 0000000..1ec8ef4
--- /dev/null
+++ b/Engine/SharpEngine.Shared/Dto/Primitives/CommentId.cs
@@ -0,0 +1,8 @@
+namespace SharpEngine.Shared.Dto.Primitives;
+
+public readonly record struct CommentId(Guid Value)
+{
+ public static CommentId New() => new(Guid.NewGuid());
+ public static implicit operator Guid(CommentId id) => id.Value;
+ public static implicit operator CommentId(Guid value) => new(value);
+}
diff --git a/Engine/SharpEngine.Shared/Dto/Primitives/UserId.cs b/Engine/SharpEngine.Shared/Dto/Primitives/UserId.cs
new file mode 100644
index 0000000..d0fb0c2
--- /dev/null
+++ b/Engine/SharpEngine.Shared/Dto/Primitives/UserId.cs
@@ -0,0 +1,8 @@
+namespace SharpEngine.Shared.Dto.Primitives;
+
+public readonly record struct UserId(Guid Value)
+{
+ public static UserId New() => new(Guid.NewGuid());
+ public static implicit operator Guid(UserId id) => id.Value;
+ public static implicit operator UserId(Guid value) => new(value);
+}
diff --git a/SharpEngine.Shared/Dto/Project.cs b/Engine/SharpEngine.Shared/Dto/Project.cs
similarity index 100%
rename from SharpEngine.Shared/Dto/Project.cs
rename to Engine/SharpEngine.Shared/Dto/Project.cs
diff --git a/SharpEngine.Shared/Dto/UserProfile.cs b/Engine/SharpEngine.Shared/Dto/UserProfile.cs
similarity index 100%
rename from SharpEngine.Shared/Dto/UserProfile.cs
rename to Engine/SharpEngine.Shared/Dto/UserProfile.cs
diff --git a/SharpEngine.Shared/Enums/FilterMode.cs b/Engine/SharpEngine.Shared/Enums/FilterMode.cs
similarity index 100%
rename from SharpEngine.Shared/Enums/FilterMode.cs
rename to Engine/SharpEngine.Shared/Enums/FilterMode.cs
diff --git a/SharpEngine.Shared/EnvironmentVariables.cs b/Engine/SharpEngine.Shared/EnvironmentVariables.cs
similarity index 100%
rename from SharpEngine.Shared/EnvironmentVariables.cs
rename to Engine/SharpEngine.Shared/EnvironmentVariables.cs
diff --git a/SharpEngine.Shared/Extensions/OrderedEnumerableExtensions.cs b/Engine/SharpEngine.Shared/Extensions/OrderedEnumerableExtensions.cs
similarity index 100%
rename from SharpEngine.Shared/Extensions/OrderedEnumerableExtensions.cs
rename to Engine/SharpEngine.Shared/Extensions/OrderedEnumerableExtensions.cs
diff --git a/SharpEngine.Shared/Extensions/ProcessExtensions.cs b/Engine/SharpEngine.Shared/Extensions/ProcessExtensions.cs
similarity index 100%
rename from SharpEngine.Shared/Extensions/ProcessExtensions.cs
rename to Engine/SharpEngine.Shared/Extensions/ProcessExtensions.cs
diff --git a/SharpEngine.Shared/Extensions/ReflectionExtensions.cs b/Engine/SharpEngine.Shared/Extensions/ReflectionExtensions.cs
similarity index 100%
rename from SharpEngine.Shared/Extensions/ReflectionExtensions.cs
rename to Engine/SharpEngine.Shared/Extensions/ReflectionExtensions.cs
diff --git a/SharpEngine.Shared/Extensions/StringExtensions.cs b/Engine/SharpEngine.Shared/Extensions/StringExtensions.cs
similarity index 100%
rename from SharpEngine.Shared/Extensions/StringExtensions.cs
rename to Engine/SharpEngine.Shared/Extensions/StringExtensions.cs
diff --git a/SharpEngine.Shared/Math.cs b/Engine/SharpEngine.Shared/Math.cs
similarity index 100%
rename from SharpEngine.Shared/Math.cs
rename to Engine/SharpEngine.Shared/Math.cs
diff --git a/SharpEngine.Shared/NaturalStringComparer.cs b/Engine/SharpEngine.Shared/NaturalStringComparer.cs
similarity index 100%
rename from SharpEngine.Shared/NaturalStringComparer.cs
rename to Engine/SharpEngine.Shared/NaturalStringComparer.cs
diff --git a/SharpEngine.Shared/SharpEngine.Shared.csproj b/Engine/SharpEngine.Shared/SharpEngine.Shared.csproj
similarity index 100%
rename from SharpEngine.Shared/SharpEngine.Shared.csproj
rename to Engine/SharpEngine.Shared/SharpEngine.Shared.csproj
diff --git a/SharpEngine.sln b/Engine/SharpEngine.sln
similarity index 94%
rename from SharpEngine.sln
rename to Engine/SharpEngine.sln
index 1d5f3a5..c51bee3 100644
--- a/SharpEngine.sln
+++ b/Engine/SharpEngine.sln
@@ -47,6 +47,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjLoader.Tests", "Tests\Ob
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tutorial 4.1 - Model Loading", "Examples\Tutorial 4.1 - Model Loading\Tutorial 4.1 - Model Loading.csproj", "{17243B7C-E72B-6C26-FCFC-3D194F29B0AF}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpEngine.Rest", "SharpEngine.Rest\SharpEngine.Rest.csproj", "{FE7C7460-6599-4BF8-A756-0C04315D3144}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -147,6 +149,12 @@ Global
{17243B7C-E72B-6C26-FCFC-3D194F29B0AF}.LauncherNonWindows|Any CPU.Build.0 = Release|Any CPU
{17243B7C-E72B-6C26-FCFC-3D194F29B0AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17243B7C-E72B-6C26-FCFC-3D194F29B0AF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FE7C7460-6599-4BF8-A756-0C04315D3144}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE7C7460-6599-4BF8-A756-0C04315D3144}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FE7C7460-6599-4BF8-A756-0C04315D3144}.LauncherNonWindows|Any CPU.ActiveCfg = Release|Any CPU
+ {FE7C7460-6599-4BF8-A756-0C04315D3144}.LauncherNonWindows|Any CPU.Build.0 = Release|Any CPU
+ {FE7C7460-6599-4BF8-A756-0C04315D3144}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FE7C7460-6599-4BF8-A756-0C04315D3144}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/SharpEngine.slnx b/Engine/SharpEngine.slnx
similarity index 100%
rename from SharpEngine.slnx
rename to Engine/SharpEngine.slnx
diff --git a/Tests/ObjLoader.Test/Loaders/MaterialLibraryLoaderTests.cs b/Engine/Tests/ObjLoader.Test/Loaders/MaterialLibraryLoaderTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/Loaders/MaterialLibraryLoaderTests.cs
rename to Engine/Tests/ObjLoader.Test/Loaders/MaterialLibraryLoaderTests.cs
diff --git a/Tests/ObjLoader.Test/Loaders/ObjLoaderTests.cs b/Engine/Tests/ObjLoader.Test/Loaders/ObjLoaderTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/Loaders/ObjLoaderTests.cs
rename to Engine/Tests/ObjLoader.Test/Loaders/ObjLoaderTests.cs
diff --git a/Tests/ObjLoader.Test/ObjLoader.Tests.csproj b/Engine/Tests/ObjLoader.Test/ObjLoader.Tests.csproj
similarity index 100%
rename from Tests/ObjLoader.Test/ObjLoader.Tests.csproj
rename to Engine/Tests/ObjLoader.Test/ObjLoader.Tests.csproj
diff --git a/Tests/ObjLoader.Test/TypeParsers/FaceParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/FaceParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/FaceParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/FaceParserTests.cs
diff --git a/Tests/ObjLoader.Test/TypeParsers/GroupParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/GroupParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/GroupParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/GroupParserTests.cs
diff --git a/Tests/ObjLoader.Test/TypeParsers/MaterialLibraryParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/MaterialLibraryParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/MaterialLibraryParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/MaterialLibraryParserTests.cs
diff --git a/Tests/ObjLoader.Test/TypeParsers/NormalParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/NormalParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/NormalParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/NormalParserTests.cs
diff --git a/Tests/ObjLoader.Test/TypeParsers/TextureParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/TextureParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/TextureParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/TextureParserTests.cs
diff --git a/Tests/ObjLoader.Test/TypeParsers/UseMaterialParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/UseMaterialParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/UseMaterialParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/UseMaterialParserTests.cs
diff --git a/Tests/ObjLoader.Test/TypeParsers/VertexParserTests.cs b/Engine/Tests/ObjLoader.Test/TypeParsers/VertexParserTests.cs
similarity index 100%
rename from Tests/ObjLoader.Test/TypeParsers/VertexParserTests.cs
rename to Engine/Tests/ObjLoader.Test/TypeParsers/VertexParserTests.cs
diff --git a/Tests/SharpEngine.Core.Tests/Class1.cs b/Engine/Tests/SharpEngine.Core.Tests/Class1.cs
similarity index 100%
rename from Tests/SharpEngine.Core.Tests/Class1.cs
rename to Engine/Tests/SharpEngine.Core.Tests/Class1.cs
diff --git a/Tests/SharpEngine.Core.Tests/SharpEngine.Core.Tests.csproj b/Engine/Tests/SharpEngine.Core.Tests/SharpEngine.Core.Tests.csproj
similarity index 100%
rename from Tests/SharpEngine.Core.Tests/SharpEngine.Core.Tests.csproj
rename to Engine/Tests/SharpEngine.Core.Tests/SharpEngine.Core.Tests.csproj
diff --git a/Tests/SharpEngine.Editor.Tests/Class1.cs b/Engine/Tests/SharpEngine.Editor.Tests/Class1.cs
similarity index 100%
rename from Tests/SharpEngine.Editor.Tests/Class1.cs
rename to Engine/Tests/SharpEngine.Editor.Tests/Class1.cs
diff --git a/Tests/SharpEngine.Editor.Tests/SharpEngine.Editor.Tests.csproj b/Engine/Tests/SharpEngine.Editor.Tests/SharpEngine.Editor.Tests.csproj
similarity index 100%
rename from Tests/SharpEngine.Editor.Tests/SharpEngine.Editor.Tests.csproj
rename to Engine/Tests/SharpEngine.Editor.Tests/SharpEngine.Editor.Tests.csproj
diff --git a/Tests/SharpEngine.Shared.Net8/Class1.cs b/Engine/Tests/SharpEngine.Shared.Net8/Class1.cs
similarity index 100%
rename from Tests/SharpEngine.Shared.Net8/Class1.cs
rename to Engine/Tests/SharpEngine.Shared.Net8/Class1.cs
diff --git a/Tests/SharpEngine.Shared.Net8/SharpEngine.Shared.Net8.csproj b/Engine/Tests/SharpEngine.Shared.Net8/SharpEngine.Shared.Net8.csproj
similarity index 100%
rename from Tests/SharpEngine.Shared.Net8/SharpEngine.Shared.Net8.csproj
rename to Engine/Tests/SharpEngine.Shared.Net8/SharpEngine.Shared.Net8.csproj
diff --git a/Tests/SharpEngine.Shared.Tests/Class1.cs b/Engine/Tests/SharpEngine.Shared.Tests/Class1.cs
similarity index 100%
rename from Tests/SharpEngine.Shared.Tests/Class1.cs
rename to Engine/Tests/SharpEngine.Shared.Tests/Class1.cs
diff --git a/Tests/SharpEngine.Shared.Tests/SharpEngine.Shared.Tests.csproj b/Engine/Tests/SharpEngine.Shared.Tests/SharpEngine.Shared.Tests.csproj
similarity index 100%
rename from Tests/SharpEngine.Shared.Tests/SharpEngine.Shared.Tests.csproj
rename to Engine/Tests/SharpEngine.Shared.Tests/SharpEngine.Shared.Tests.csproj
diff --git a/Tests/Test.Directory.Build.props b/Engine/Tests/Test.Directory.Build.props
similarity index 100%
rename from Tests/Test.Directory.Build.props
rename to Engine/Tests/Test.Directory.Build.props
diff --git a/docs/CODE_OF_CONDUCT.md b/Engine/docs/CODE_OF_CONDUCT.md
similarity index 100%
rename from docs/CODE_OF_CONDUCT.md
rename to Engine/docs/CODE_OF_CONDUCT.md
diff --git a/docs/CONTRIBUTING.md b/Engine/docs/CONTRIBUTING.md
similarity index 100%
rename from docs/CONTRIBUTING.md
rename to Engine/docs/CONTRIBUTING.md
diff --git a/docs/SECURITY.md b/Engine/docs/SECURITY.md
similarity index 100%
rename from docs/SECURITY.md
rename to Engine/docs/SECURITY.md
diff --git a/docs/materials_and_inspiration.md b/Engine/docs/materials_and_inspiration.md
similarity index 100%
rename from docs/materials_and_inspiration.md
rename to Engine/docs/materials_and_inspiration.md
diff --git a/docs/pull_request_template.md b/Engine/docs/pull_request_template.md
similarity index 100%
rename from docs/pull_request_template.md
rename to Engine/docs/pull_request_template.md
diff --git a/Portal/Portal.Backend/Controllers/AchievementController.cs b/Portal/Portal.Backend/Controllers/AchievementController.cs
new file mode 100644
index 0000000..40157d1
--- /dev/null
+++ b/Portal/Portal.Backend/Controllers/AchievementController.cs
@@ -0,0 +1,23 @@
+using Microsoft.AspNetCore.Mvc;
+using Portal.Database.Models;
+
+namespace Database.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class AchievementController : ControllerBase
+ {
+ private readonly ILogger _logger;
+
+ public AchievementController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet]
+ public UserAchievements GetUserAchievements()
+ {
+ return new();
+ }
+ }
+}
diff --git a/Portal/Portal.Backend/Controllers/UserController.cs b/Portal/Portal.Backend/Controllers/UserController.cs
new file mode 100644
index 0000000..0e0be3f
--- /dev/null
+++ b/Portal/Portal.Backend/Controllers/UserController.cs
@@ -0,0 +1,23 @@
+using Microsoft.AspNetCore.Mvc;
+using Portal.Database.Models;
+
+namespace Database.Controllers
+{
+ [ApiController]
+ [Route("[controller]")]
+ public class UserController : ControllerBase
+ {
+ private readonly ILogger _logger;
+
+ public UserController(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ [HttpGet]
+ public User Get()
+ {
+ return new();
+ }
+ }
+}
diff --git a/Portal/Portal.Backend/Database.http b/Portal/Portal.Backend/Database.http
new file mode 100644
index 0000000..7a874e2
--- /dev/null
+++ b/Portal/Portal.Backend/Database.http
@@ -0,0 +1,6 @@
+@Database_HostAddress = http://localhost:5088
+
+GET {{Database_HostAddress}}/weatherforecast/
+Accept: application/json
+
+###
diff --git a/Portal/Portal.Backend/Portal.Backend.csproj b/Portal/Portal.Backend/Portal.Backend.csproj
new file mode 100644
index 0000000..cde64ec
--- /dev/null
+++ b/Portal/Portal.Backend/Portal.Backend.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Portal/Portal.Backend/Program.cs b/Portal/Portal.Backend/Program.cs
new file mode 100644
index 0000000..666a9c5
--- /dev/null
+++ b/Portal/Portal.Backend/Program.cs
@@ -0,0 +1,23 @@
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+builder.Services.AddOpenApi();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.MapOpenApi();
+}
+
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
diff --git a/Portal/Portal.Backend/Properties/launchSettings.json b/Portal/Portal.Backend/Properties/launchSettings.json
new file mode 100644
index 0000000..20fd58f
--- /dev/null
+++ b/Portal/Portal.Backend/Properties/launchSettings.json
@@ -0,0 +1,23 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "http://localhost:5088",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": false,
+ "applicationUrl": "https://localhost:7063;http://localhost:5088",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Portal/Portal.Backend/Services/AchievementService.cs b/Portal/Portal.Backend/Services/AchievementService.cs
new file mode 100644
index 0000000..37a7309
--- /dev/null
+++ b/Portal/Portal.Backend/Services/AchievementService.cs
@@ -0,0 +1,5 @@
+namespace Portal.Backend.Services;
+
+public class AchievementService
+{
+}
diff --git a/Portal/Portal.Backend/appsettings.Development.json b/Portal/Portal.Backend/appsettings.Development.json
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ b/Portal/Portal.Backend/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ }
+}
diff --git a/Portal/Portal.Backend/appsettings.json b/Portal/Portal.Backend/appsettings.json
new file mode 100644
index 0000000..10f68b8
--- /dev/null
+++ b/Portal/Portal.Backend/appsettings.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*"
+}
diff --git a/Portal/Portal.Database/DatabaseContext.cs b/Portal/Portal.Database/DatabaseContext.cs
new file mode 100644
index 0000000..75bbecd
--- /dev/null
+++ b/Portal/Portal.Database/DatabaseContext.cs
@@ -0,0 +1,18 @@
+using Microsoft.EntityFrameworkCore;
+using Portal.Database.Models;
+
+public class BloggingContext : DbContext
+{
+ public DbSet User { get; set; }
+ public DbSet Achievements { get; set; }
+ public DbSet UserAchievements { get; set; }
+
+ public BloggingContext()
+ {
+ }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder options)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Portal/Portal.Database/Models/Achievement.cs b/Portal/Portal.Database/Models/Achievement.cs
new file mode 100644
index 0000000..b9aa35c
--- /dev/null
+++ b/Portal/Portal.Database/Models/Achievement.cs
@@ -0,0 +1,9 @@
+namespace Portal.Database.Models;
+
+public class Achievement
+{
+ public Guid Id { get; set; }
+ public string Title { get; set; }
+ public string Description { get; set; }
+ public string IconUrl { get; set; }
+}
diff --git a/Portal/Portal.Database/Models/User.cs b/Portal/Portal.Database/Models/User.cs
new file mode 100644
index 0000000..58e7876
--- /dev/null
+++ b/Portal/Portal.Database/Models/User.cs
@@ -0,0 +1,10 @@
+namespace Portal.Database.Models;
+
+public class User
+{
+ public Guid Id { get; set; }
+ public string Username { get; set; }
+ public string Email { get; set; }
+ public string PasswordHash { get; set; }
+ public IReadOnlyList Achievements { get; set; } = [];
+}
diff --git a/Portal/Portal.Database/Models/UserAchievements.cs b/Portal/Portal.Database/Models/UserAchievements.cs
new file mode 100644
index 0000000..160f939
--- /dev/null
+++ b/Portal/Portal.Database/Models/UserAchievements.cs
@@ -0,0 +1,9 @@
+namespace Portal.Database.Models;
+
+public class UserAchievements
+{
+ public User User { get; set; }
+ public Achievement Achievement { get; set; }
+ public DateTime UnlockedAt { get; set; }
+ public int Progress { get; set; }
+}
diff --git a/Portal/Portal.Database/Portal.Database.csproj b/Portal/Portal.Database/Portal.Database.csproj
new file mode 100644
index 0000000..1fbe411
--- /dev/null
+++ b/Portal/Portal.Database/Portal.Database.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
diff --git a/Portal/Portal.Dto/Class1.cs b/Portal/Portal.Dto/Class1.cs
new file mode 100644
index 0000000..b3f360e
--- /dev/null
+++ b/Portal/Portal.Dto/Class1.cs
@@ -0,0 +1,6 @@
+namespace Portal.Dto;
+
+public class Class1
+{
+
+}
diff --git a/Portal/Portal.Dto/Portal.Dto.csproj b/Portal/Portal.Dto/Portal.Dto.csproj
new file mode 100644
index 0000000..b760144
--- /dev/null
+++ b/Portal/Portal.Dto/Portal.Dto.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net10.0
+ enable
+ enable
+
+
+
diff --git a/Portal/Portal.slnx b/Portal/Portal.slnx
new file mode 100644
index 0000000..48b5f58
--- /dev/null
+++ b/Portal/Portal.slnx
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+