-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove unused 2D and 3D gaming primitive classes, update Simulator
Removed over 20 unused classes related to 2D and 3D gaming primitives from both 'Frank.Libraries.Gaming.Core' and 'Frank.Libraries.Gaming.Primitives' libraries. This helps to reduce bloat and improve focus on currently used functionality. Updated Simulator in 'Frank.Libraries.Gaming.Testing' to include a getter for total running time and methods to run the simulation for a specified time. `SimulationSpeed` is also included to control the speed of the simulation. Added comments for better understanding of methods. Added new class 'Viewport' in 'Frank.Libraries.Gaming.Rendering' to manage the visual representation of the game in console with functionalities like setting pixel, clearing viewport, creating border and getting String representation of the viewport. Removal of unused classes will not affect the existing functionality as there were no dependencies on these classes. Changes in Simulator make it more flexible in handling time bound simulations. The newly added Viewport class brings in a way to visually render the game state in console.
- Loading branch information
1 parent
a8000b2
commit c0a4f52
Showing
176 changed files
with
3,010 additions
and
630 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
using Frank.Libraries.Gaming.Core.FileProviders; | ||
using Frank.Libraries.Gaming.Core.Parsers.ObjParsing; | ||
using Frank.Libraries.Gaming.Primitives; | ||
|
||
namespace Frank.Libraries.Gaming.Core.Assets; | ||
|
||
public static class PolygonAssetProvider | ||
{ | ||
public static Polygon GetTeapot() | ||
{ | ||
var provider = new ManifestFileProvider(); | ||
var parser = new ObjPolygonParser(); | ||
var bytes = provider.GetFile("teapot.obj"); | ||
var polygon = parser.GetPolygon(bytes); | ||
return polygon; | ||
} | ||
} |
This file was deleted.
Oops, something went wrong.
6 changes: 6 additions & 0 deletions
6
src/Frank.Libraries.Gaming.Core/FileProviders/I3DFileProvider.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
namespace Frank.Libraries.Gaming.Core.FileProviders; | ||
|
||
public interface I3DFileProvider | ||
{ | ||
public Memory<byte> GetFile(string fileName); | ||
} |
16 changes: 16 additions & 0 deletions
16
src/Frank.Libraries.Gaming.Core/FileProviders/ManifestFileProvider.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
namespace Frank.Libraries.Gaming.Core.FileProviders; | ||
|
||
public class ManifestFileProvider : I3DFileProvider | ||
{ | ||
public Memory<byte> GetFile(string fileName) | ||
{ | ||
var assembly = GetType().Assembly; | ||
var manifestResourceNames = assembly.GetManifestResourceNames(); | ||
var existingResourceName = manifestResourceNames.FirstOrDefault(x => x.EndsWith("teapot.obj", StringComparison.InvariantCultureIgnoreCase)); | ||
using var existingResource = assembly.GetManifestResourceStream(existingResourceName!); | ||
var memoryStream = new MemoryStream(); | ||
existingResource!.CopyTo(memoryStream); | ||
var bytes = memoryStream.ToArray(); | ||
return bytes; | ||
} | ||
} |
13 changes: 10 additions & 3 deletions
13
src/Frank.Libraries.Gaming.Core/Frank.Libraries.Gaming.Core.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,16 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net7.0</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
</PropertyGroup> | ||
|
||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\Frank.Libraries.Gaming.Physics\Frank.Libraries.Gaming.Physics.csproj" /> | ||
<ProjectReference Include="..\Frank.Libraries.Gaming.Primitives\Frank.Libraries.Gaming.Primitives\Frank.Libraries.Gaming.Primitives.csproj" /> | ||
<ProjectReference Include="..\Frank.Libraries.Gaming.Rendering\Frank.Libraries.Gaming.Rendering.csproj" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<EmbeddedResource Include="Assets\*" CopyToOutputDirectory="PreserveNewest" /> | ||
</ItemGroup> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
using Frank.Libraries.Gaming.Primitives; | ||
using Frank.Libraries.Gaming.Rendering; | ||
|
||
namespace Frank.Libraries.Gaming.Core; | ||
|
||
public class GameEngine | ||
{ | ||
private IRenderer _renderer; | ||
|
||
public bool IsInitialized { get; private set; } = false; | ||
|
||
public SceneManager SceneManager { get; } = new(); | ||
|
||
public Scene? CurrentScene => SceneManager.CurrentScene; | ||
|
||
public void Initialize(IRenderer renderer) | ||
{ | ||
if (CurrentScene is null) | ||
throw new Exception("No scene has been set."); | ||
|
||
_renderer = renderer; | ||
|
||
IsInitialized = true; | ||
} | ||
|
||
public void Update(UpdateArgs args) | ||
{ | ||
|
||
} | ||
|
||
public void Draw() | ||
{ | ||
if (CurrentScene is null) | ||
return; | ||
_renderer.Render(CurrentScene); | ||
} | ||
} | ||
|
||
public readonly record struct UpdateArgs(TimeSpan ElapsedTime, TimeSpan TotalTime); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
using Frank.Libraries.Gaming.Primitives; | ||
|
||
namespace Frank.Libraries.Gaming.Core.Parsers; | ||
|
||
public interface IPolygonParser | ||
{ | ||
Polygon GetPolygon(Memory<byte> bytes); | ||
} |
25 changes: 25 additions & 0 deletions
25
src/Frank.Libraries.Gaming.Core/Parsers/ObjParsing/ObjHelper.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
using System.Numerics; | ||
using System.Text; | ||
|
||
namespace Frank.Libraries.Gaming.Core.Parsers.ObjParsing; | ||
|
||
internal static class ObjHelper | ||
{ | ||
public static ObjPolygon GetPolygon(Memory<byte> bytes) | ||
{ | ||
var polygon = new ObjPolygon(); | ||
var lines = Encoding.UTF8.GetString(bytes.ToArray()).Split('\n'); | ||
foreach (var line in lines) | ||
{ | ||
var parts = line.Split(' '); | ||
switch (parts[0]) | ||
{ | ||
case "v": | ||
polygon.Vertices.Add(new Vector3(float.Parse(parts[1]), float.Parse(parts[2]), float.Parse(parts[3]))); | ||
break; | ||
} | ||
} | ||
|
||
return polygon; | ||
} | ||
} |
12 changes: 12 additions & 0 deletions
12
src/Frank.Libraries.Gaming.Core/Parsers/ObjParsing/ObjPolygon.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
using System.Numerics; | ||
using Frank.Libraries.Gaming.Primitives; | ||
|
||
namespace Frank.Libraries.Gaming.Core.Parsers.ObjParsing; | ||
|
||
internal class ObjPolygon | ||
{ | ||
public List<Vector3> Vertices { get; } = new(); | ||
public List<Vector2> Uvs { get; } = new(); | ||
public List<Vector3> Normals { get; } = new(); | ||
public List<Face> Faces { get; } = new(); | ||
} |
13 changes: 13 additions & 0 deletions
13
src/Frank.Libraries.Gaming.Core/Parsers/ObjParsing/ObjPolygonParser.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
using Frank.Libraries.Gaming.Primitives; | ||
|
||
namespace Frank.Libraries.Gaming.Core.Parsers.ObjParsing; | ||
|
||
public class ObjPolygonParser : IPolygonParser | ||
{ | ||
public Polygon GetPolygon(Memory<byte> bytes) | ||
{ | ||
var objPolygon = ObjHelper.GetPolygon(bytes); | ||
var polygon = new Polygon(objPolygon.Vertices.ToArray()); | ||
return polygon; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
using Frank.Libraries.Gaming.Primitives; | ||
|
||
namespace Frank.Libraries.Gaming.Core; | ||
|
||
public class SceneManager | ||
{ | ||
public List<Scene> MenuScenes { get; } = new(); | ||
public List<Scene> GameScenes { get; } = new(); | ||
|
||
public Scene? CurrentScene { get; private set; } | ||
|
||
public void SelectScene(Guid id) | ||
{ | ||
CurrentScene = MenuScenes.FirstOrDefault(x => x.Id == id) ?? GameScenes.FirstOrDefault(x => x.Id == id); | ||
} | ||
} | ||
|
||
public enum SceneType | ||
{ | ||
Menu, | ||
Game | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Collisions/GameObjectCollider.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Collisions/ICollidable.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Collisions/IRaycastable.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/CameraExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/EdgeExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/GameObjectExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/GraphicsDeviceExtensions.Draw.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/GraphicsDeviceExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/NumericExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/PolygonExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/PrimitiveTypeExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/QuaternionConverter.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/RectangleExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/ShapeExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/Vector2Extensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/Vector3Extensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
src/Frank.Libraries.Gaming.Engines.MonoEngine/Extensions/ViewportExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.