Improvements to save and loading
Improvements to Chinthe animation logic Fix broken Godot Tool system and just use a more manual approach to setting map nodes Remove ItemDatabase from individual room scenes
This commit is contained in:
@@ -3,6 +3,7 @@ using Chickensoft.Collections;
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.SaveFileBuilder;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Zennysoft.Ma.Adapter;
|
||||
@@ -23,18 +24,9 @@ public partial class Map : Node3D, IMap
|
||||
[Node]
|
||||
public Node MapOrder { get; set; } = default!;
|
||||
|
||||
#region Save
|
||||
public ISaveChunk<MapInfo> MapChunk { get; set; } = default!;
|
||||
|
||||
ISaveChunk<MapInfo> IProvide<ISaveChunk<MapInfo>>.Value() => MapChunk;
|
||||
|
||||
[Node]
|
||||
public AnimationPlayer AnimationPlayer { get; set; } = default!;
|
||||
|
||||
[Dependency]
|
||||
public ISaveChunk<GameData> GameChunk => this.DependOn<ISaveChunk<GameData>>();
|
||||
#endregion
|
||||
|
||||
public IDungeonFloor CurrentFloor { get; private set; }
|
||||
|
||||
public AutoProp<int> CurrentFloorNumber { get; private set; } = new AutoProp<int>(0);
|
||||
@@ -43,8 +35,6 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public void OnResolved()
|
||||
{
|
||||
GameChunk.AddChunk(MapChunk);
|
||||
|
||||
this.Provide();
|
||||
|
||||
InitializeMapData();
|
||||
@@ -66,11 +56,11 @@ public partial class Map : Node3D, IMap
|
||||
|
||||
public async Task LoadFloor()
|
||||
{
|
||||
var floor = MapOrder.GetChildren().OfType<LayoutType>().ElementAt(CurrentFloorNumber.Value);
|
||||
var floor = MapOrder.GetChildren().OfType<FloorNode>().ElementAt(CurrentFloorNumber.Value);
|
||||
var sceneToLoad = LayoutToScenePathConverter.Convert(floor);
|
||||
await LoadFloor(sceneToLoad);
|
||||
if (CurrentFloor is DungeonFloor dungeonFloor && floor is DungeonFloorLayout dungeonFloorLayout)
|
||||
dungeonFloor.SpawnEnemies(dungeonFloorLayout.EnemySpawnRates);
|
||||
if (CurrentFloor is DungeonFloor dungeonFloor && floor is DungeonFloorNode dungeonFloorNode)
|
||||
dungeonFloor.SpawnEnemies(dungeonFloorNode);
|
||||
}
|
||||
|
||||
public async Task LoadFloor(string sceneName)
|
||||
|
||||
Reference in New Issue
Block a user