Small ResourceManager refactor, add ResourceSaver<T>.

This commit is contained in:
2024-01-21 20:24:53 +01:00
parent cfec5a59b1
commit 62e0e013f1
16 changed files with 215 additions and 54 deletions

View File

@@ -5,6 +5,8 @@ using DaggerFramework.Rendering;
using DaggerFramework.Audio;
using DaggerFramework.Resources;
using DaggerFramework.SceneGraph;
using System.Text.Json;
using System.Text.Json.Serialization;
public class TestGame : Game
@@ -17,6 +19,8 @@ public class TestGame : Game
_audioBackend = new FmodAudioBackend();
_inputHandler = new RaylibInputHandler();
_resourceManager.AddResourceSaverAssociation(new SerializedSceneSaver());
_renderer.CreateAndInitialize(new WindowSettings()
{
Title = "Test Game",
@@ -29,7 +33,13 @@ public class TestGame : Game
_audioBackend.Initialize();
_scene = new Scene(_renderer, _inputHandler, _audioBackend, _resourceManager);
_scene = new Scene(new SceneSettings()
{
Renderer = _renderer,
AudioBackend = _audioBackend,
InputHandler = _inputHandler,
ResourceManager = _resourceManager
});
_uiLayer = new UiLayer();
_worldLayer = new EntityLayer();
@@ -71,6 +81,13 @@ public class TestGame : Game
_scene.AddLayer("UI", _uiLayer!);
SerializedScene serializedScene;
if (_scene!.TrySerialize(out serializedScene))
{
_resourceManager.TrySave(Path.Combine(_resourceManager.ResourceRoot, "main.scene"), in serializedScene);
}
_scene.Start();
}

View File

@@ -5,6 +5,7 @@ using DaggerFramework.Utils;
public class TestPlayer : RectangleShape2d
{
public float SprintSpeed { get; set; } = 400f;
protected override void OnStart()
{
base.OnStart();
@@ -26,7 +27,7 @@ public class TestPlayer : RectangleShape2d
base.OnUpdate(dt);
var sprinting = Input.IsActionDown("sprint");
_speed = sprinting ? 400f : 200f;
_speed = sprinting ? SprintSpeed : 200f;
var velocity = Input.GetInputDirection("left", "right", "up", "down") * _speed;
Position += velocity * (float)dt;