Restructure loading of game
This commit is contained in:
@@ -19,26 +19,20 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
IGameRepo IProvide<IGameRepo>.Value() => GameRepo;
|
||||
|
||||
IGame IProvide<IGame>.Value() => this;
|
||||
IPlayer IProvide<IPlayer>.Value() => _player;
|
||||
|
||||
IPlayer IProvide<IPlayer>.Value() => Player;
|
||||
|
||||
IMap IProvide<IMap>.Value() => Map;
|
||||
IMap IProvide<IMap>.Value() => _map;
|
||||
|
||||
private static SimpleInjector.Container _container;
|
||||
|
||||
public IInstantiator Instantiator { get; set; } = default!;
|
||||
|
||||
public IGameState GameState { get; set; } = default!;
|
||||
|
||||
public IGameRepo GameRepo { get; set; } = default!;
|
||||
|
||||
public GameState.IBinding GameBinding { get; set; } = default!;
|
||||
|
||||
[Dependency] public IAppRepo AppRepo => this.DependOn<IAppRepo>();
|
||||
|
||||
#region Nodes
|
||||
[Node] private IMap Map { get; set; } = default!;
|
||||
[Node] private Node PauseContainer { get; set; } = default!;
|
||||
|
||||
[Node] private InGameUI InGameUI { get; set; } = default!;
|
||||
|
||||
@@ -49,10 +43,6 @@ public partial class Game : Node3D, IGame
|
||||
[Node] private IPauseMenu PauseMenu { get; set; } = default!;
|
||||
|
||||
[Node] private Timer DoubleEXPTimer { get; set; } = default!;
|
||||
|
||||
[Node] private IPlayer Player { get; set; } = default!;
|
||||
|
||||
[Node] private MainMenu MainMenu { get; set; } = default!;
|
||||
#endregion
|
||||
|
||||
#region Save
|
||||
@@ -72,19 +62,28 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
private EffectService _effectService;
|
||||
|
||||
private IInstantiator _instantiator;
|
||||
private Player _player;
|
||||
private Map _map;
|
||||
|
||||
public void Setup()
|
||||
{
|
||||
_container = new SimpleInjector.Container();
|
||||
Module.Bootstrap(_container);
|
||||
|
||||
_instantiator = new Instantiator(GetTree());
|
||||
_player = _instantiator.LoadAndInstantiate<Player>("res://src/player/Player.tscn");
|
||||
PauseContainer.AddChild(_player);
|
||||
|
||||
_map = _instantiator.LoadAndInstantiate<Map>("res://src/map/Map.tscn");
|
||||
PauseContainer.AddChild(_map);
|
||||
|
||||
GameRepo = _container.GetInstance<IGameRepo>();
|
||||
GameState = _container.GetInstance<IGameState>();
|
||||
GameState.Set(GameRepo);
|
||||
GameState.Set(AppRepo);
|
||||
GameState.Set(Player);
|
||||
GameState.Set(Map);
|
||||
GameState.Set(_player);
|
||||
GameState.Set(_map);
|
||||
GameState.Set(InGameUI);
|
||||
Instantiator = new Instantiator(GetTree());
|
||||
RescuedItems = new RescuedItemDatabase();
|
||||
|
||||
GameChunk = new SaveChunk<GameData>(
|
||||
@@ -95,12 +94,12 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
PlayerData = new PlayerData()
|
||||
{
|
||||
PlayerStats = Player.Stats,
|
||||
Inventory = Player.Inventory
|
||||
PlayerStats = _player.Stats,
|
||||
Inventory = _player.Inventory
|
||||
},
|
||||
MapData = new MapData()
|
||||
{
|
||||
FloorScenes = Map.FloorScenes
|
||||
FloorScenes = _map.FloorScenes
|
||||
},
|
||||
RescuedItems = new RescuedItemDatabase()
|
||||
{
|
||||
@@ -145,13 +144,6 @@ public partial class Game : Node3D, IGame
|
||||
GameBinding
|
||||
.Handle((in GameState.Output.InitializeGame _) =>
|
||||
{
|
||||
InitializeGame();
|
||||
Map.LoadMap();
|
||||
GameRepo.Resume();
|
||||
InGameUI.Show();
|
||||
InGameUI.PlayerInfoUI.Activate();
|
||||
Player.TeleportPlayer(Map.CurrentFloor.GetPlayerSpawnPoint());
|
||||
Player.Activate();
|
||||
})
|
||||
.Handle((in GameState.Output.LoadGameFromFile _) =>
|
||||
{
|
||||
@@ -209,24 +201,24 @@ public partial class Game : Node3D, IGame
|
||||
.Handle((in GameState.Output.LoadNextFloor _) =>
|
||||
{
|
||||
FloorClearMenu.FadeOut();
|
||||
Map.SpawnNextFloor();
|
||||
if (Player.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
_map.SpawnNextFloor();
|
||||
if (_player.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
{
|
||||
var itemToDestroy = Player.EquippedWeapon.Value;
|
||||
Player.Unequip(itemToDestroy);
|
||||
Player.Inventory.Remove(itemToDestroy);
|
||||
var itemToDestroy = _player.EquippedWeapon.Value;
|
||||
_player.Unequip(itemToDestroy);
|
||||
_player.Inventory.Remove(itemToDestroy);
|
||||
}
|
||||
if (Player.EquippedArmor.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
if (_player.EquippedArmor.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
{
|
||||
var itemToDestroy = Player.EquippedArmor.Value;
|
||||
Player.Unequip(itemToDestroy);
|
||||
Player.Inventory.Remove(itemToDestroy);
|
||||
var itemToDestroy = _player.EquippedArmor.Value;
|
||||
_player.Unequip(itemToDestroy);
|
||||
_player.Inventory.Remove(itemToDestroy);
|
||||
}
|
||||
if (Player.EquippedAccessory.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
if (_player.EquippedAccessory.Value.ItemTag == ItemTag.BreaksOnChange)
|
||||
{
|
||||
var itemToDestroy = Player.EquippedAccessory.Value;
|
||||
Player.Unequip(itemToDestroy);
|
||||
Player.Inventory.Remove(itemToDestroy);
|
||||
var itemToDestroy = _player.EquippedAccessory.Value;
|
||||
_player.Unequip(itemToDestroy);
|
||||
_player.Inventory.Remove(itemToDestroy);
|
||||
}
|
||||
FloorClearMenu.FadeOut();
|
||||
})
|
||||
@@ -248,27 +240,31 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
DoubleEXPTimer.Timeout += DoubleEXPTimer_Timeout;
|
||||
|
||||
MainMenu.NewGame += OnNewGame;
|
||||
MainMenu.LoadGame += OnLoadGame;
|
||||
MainMenu.Quit += OnQuit;
|
||||
|
||||
DeathMenu.NewGame += OnContinueGame;
|
||||
DeathMenu.QuitGame += OnQuit;
|
||||
|
||||
GameRepo.IsPaused.Sync += IsPaused_Sync;
|
||||
|
||||
_effectService = new EffectService(this, Player, Map);
|
||||
_effectService = new EffectService(this, _player, _map);
|
||||
}
|
||||
|
||||
MainMenu.Show();
|
||||
public void OnReady()
|
||||
{
|
||||
InitializeGame();
|
||||
_map.LoadMap();
|
||||
GameRepo.Resume();
|
||||
InGameUI.Show();
|
||||
InGameUI.PlayerInfoUI.Activate();
|
||||
_player.TeleportPlayer(_map.CurrentFloor.GetPlayerSpawnPoint());
|
||||
_player.Activate();
|
||||
}
|
||||
|
||||
private void FloorClearMenu_SaveAndExit()
|
||||
{
|
||||
//SaveFile.Save();
|
||||
Player.Deactivate();
|
||||
_player.Deactivate();
|
||||
GameState.Input(new GameState.Input.ReturnToMainMenu());
|
||||
InGameUI.Hide();
|
||||
MainMenu.FadeIn();
|
||||
}
|
||||
|
||||
private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor());
|
||||
@@ -276,8 +272,8 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
public void InitializeGame()
|
||||
{
|
||||
Map.InitializeMapData();
|
||||
Player.InitializePlayerState();
|
||||
_map.InitializeMapData();
|
||||
_player.InitializePlayerState();
|
||||
}
|
||||
|
||||
public void FloorExitReached()
|
||||
@@ -327,11 +323,11 @@ public partial class Game : Node3D, IGame
|
||||
thrown.Throw(_effectService);
|
||||
}
|
||||
|
||||
public IDungeonFloor CurrentFloor => Map.CurrentFloor;
|
||||
public IDungeonFloor CurrentFloor => _map.CurrentFloor;
|
||||
|
||||
public void EnemyDefeated(Vector3 defeatedLocation, EnemyStatResource resource)
|
||||
{
|
||||
Player.GainExp(resource.ExpFromDefeat * GameRepo.ExpRate);
|
||||
_player.GainExp(resource.ExpFromDefeat * GameRepo.ExpRate);
|
||||
DropRestorative(defeatedLocation);
|
||||
}
|
||||
|
||||
@@ -339,10 +335,10 @@ public partial class Game : Node3D, IGame
|
||||
{
|
||||
var itemDb = new ItemDatabase();
|
||||
|
||||
var currentIndex = Player.Inventory.Items.IndexOf(itemToReroll);
|
||||
var currentIndex = _player.Inventory.Items.IndexOf(itemToReroll);
|
||||
|
||||
if (insertIntoInventory)
|
||||
Player.Inventory.Remove(itemToReroll);
|
||||
_player.Inventory.Remove(itemToReroll);
|
||||
|
||||
InventoryItem rolledItem = null;
|
||||
|
||||
@@ -360,7 +356,7 @@ public partial class Game : Node3D, IGame
|
||||
rolledItem = itemDb.PickItem(consumableItem);
|
||||
|
||||
if (insertIntoInventory)
|
||||
Player.Inventory.TryInsert(rolledItem, currentIndex);
|
||||
_player.Inventory.TryInsert(rolledItem, currentIndex);
|
||||
|
||||
return rolledItem;
|
||||
}
|
||||
@@ -398,7 +394,7 @@ public partial class Game : Node3D, IGame
|
||||
GameRepo.Resume();
|
||||
}
|
||||
|
||||
private void GameEventDepot_RestorativePickedUp(IHealthPack obj) => Player.Stats.SetCurrentVT(Player.Stats.CurrentVT.Value + (int)obj.RestoreAmount);
|
||||
private void GameEventDepot_RestorativePickedUp(IHealthPack obj) => _player.Stats.SetCurrentVT(_player.Stats.CurrentVT.Value + (int)obj.RestoreAmount);
|
||||
|
||||
private void IsPaused_Sync(bool isPaused) => GetTree().Paused = isPaused;
|
||||
|
||||
@@ -408,15 +404,15 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
private void EnactConsumableItemEffects(ConsumableItem consumableItem)
|
||||
{
|
||||
if (Player.Stats.CurrentHP == Player.Stats.MaximumHP && consumableItem.RaiseHPAmount > 0)
|
||||
Player.RaiseHP(consumableItem.RaiseHPAmount);
|
||||
if (Player.Stats.CurrentVT == Player.Stats.MaximumVT && consumableItem.RaiseVTAmount > 0)
|
||||
Player.RaiseVT(consumableItem.RaiseVTAmount);
|
||||
if (_player.Stats.CurrentHP == _player.Stats.MaximumHP && consumableItem.RaiseHPAmount > 0)
|
||||
_player.RaiseHP(consumableItem.RaiseHPAmount);
|
||||
if (_player.Stats.CurrentVT == _player.Stats.MaximumVT && consumableItem.RaiseVTAmount > 0)
|
||||
_player.RaiseVT(consumableItem.RaiseVTAmount);
|
||||
|
||||
if (consumableItem.HealHPAmount > 0 && Player.Stats.CurrentHP != Player.Stats.MaximumHP)
|
||||
Player.HealHP(consumableItem.HealHPAmount);
|
||||
if (consumableItem.HealVTAmount > 0 && Player.Stats.CurrentVT != Player.Stats.MaximumVT)
|
||||
Player.HealVT(consumableItem.HealVTAmount);
|
||||
if (consumableItem.HealHPAmount > 0 && _player.Stats.CurrentHP != _player.Stats.MaximumHP)
|
||||
_player.HealHP(consumableItem.HealHPAmount);
|
||||
if (consumableItem.HealVTAmount > 0 && _player.Stats.CurrentVT != _player.Stats.MaximumVT)
|
||||
_player.HealVT(consumableItem.HealVTAmount);
|
||||
}
|
||||
|
||||
private void EnactEffectItemEffects(EffectItem effectItem)
|
||||
@@ -475,22 +471,22 @@ public partial class Game : Node3D, IGame
|
||||
GameRepo.CloseInventory();
|
||||
break;
|
||||
case ThrowableItemTag.TeleportToRandomLocation:
|
||||
_effectService.TeleportToRandomRoom(Player);
|
||||
_effectService.TeleportToRandomRoom(_player);
|
||||
GameRepo.CloseInventory();
|
||||
break;
|
||||
case ThrowableItemTag.CanChangeAffinity:
|
||||
_effectService.ChangeAffinity(throwableItem);
|
||||
break;
|
||||
case ThrowableItemTag.WarpToExitIfFound:
|
||||
_effectService.WarpToExit(Player);
|
||||
_effectService.WarpToExit(_player);
|
||||
GameRepo.CloseInventory();
|
||||
break;
|
||||
}
|
||||
|
||||
if (throwableItem.HealHPAmount > 0)
|
||||
Player.HealHP(throwableItem.HealHPAmount);
|
||||
_player.HealHP(throwableItem.HealHPAmount);
|
||||
if (throwableItem.HealVTAmount > 0)
|
||||
Player.HealVT(throwableItem.HealVTAmount);
|
||||
_player.HealVT(throwableItem.HealVTAmount);
|
||||
}
|
||||
|
||||
private void RemoveItemOrSubtractFromItemCount(InventoryItem item)
|
||||
@@ -504,7 +500,6 @@ public partial class Game : Node3D, IGame
|
||||
private void OnNewGame()
|
||||
{
|
||||
GameState.Input(new GameState.Input.NewGame());
|
||||
MainMenu.Hide();
|
||||
}
|
||||
|
||||
private void OnContinueGame()
|
||||
@@ -515,11 +510,9 @@ public partial class Game : Node3D, IGame
|
||||
private void OnLoadGame()
|
||||
{
|
||||
GameState.Input(new GameState.Input.LoadGame());
|
||||
MainMenu.Hide();
|
||||
}
|
||||
|
||||
private void OnQuit()
|
||||
{
|
||||
MainMenu.Hide();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,12 @@
|
||||
[gd_scene load_steps=22 format=3 uid="uid://33ek675mfb5n"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://33ek675mfb5n"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://chftlu4proh3d" path="res://src/game/Game.cs" id="1_ytcii"]
|
||||
[ext_resource type="Shader" uid="uid://dmjxo4k2rx1an" path="res://src/app/App.gdshader" id="2_6ifxs"]
|
||||
[ext_resource type="Shader" uid="uid://d0gs1s20khrwv" path="res://src/vfx/shaders/n64_1.gdshader" id="3_2d5qb"]
|
||||
[ext_resource type="PackedScene" uid="uid://by67pn7fdsg1m" path="res://src/map/Map.tscn" id="3_d8awv"]
|
||||
[ext_resource type="PackedScene" uid="uid://cfecvvav8kkp6" path="res://src/player/Player.tscn" id="3_kk6ly"]
|
||||
[ext_resource type="Shader" uid="uid://cqnxipgknqhru" path="res://src/vfx/shaders/n64_2.gdshader" id="4_k6vbj"]
|
||||
[ext_resource type="PackedScene" uid="uid://b1muxus5qdbeu" path="res://src/ui/in_game_ui/InGameUI.tscn" id="5_lxtnp"]
|
||||
[ext_resource type="Script" uid="uid://daphxl6vvsbjm" path="res://src/game/DialogueController.cs" id="10_58pbt"]
|
||||
[ext_resource type="Script" uid="uid://cbal5oeaha4nx" path="res://src/ui/pause_menu/PauseMenu.cs" id="11_5ng8c"]
|
||||
[ext_resource type="PackedScene" uid="uid://pu6gp8de3ck4" path="res://src/ui/floor_clear/FloorClearMenu.tscn" id="11_rya1n"]
|
||||
[ext_resource type="PackedScene" uid="uid://dbtfgrtgpr4qg" path="res://src/ui/death_menu/DeathMenu.tscn" id="11_wypid"]
|
||||
[ext_resource type="PackedScene" uid="uid://rfvnddfqufho" path="res://src/menu/MainMenu.tscn" id="12_ejjr5"]
|
||||
[ext_resource type="PackedScene" uid="uid://blbqgw3wosc1w" path="res://src/ui/pause_menu/PauseMenu.tscn" id="12_yev8k"]
|
||||
[ext_resource type="PackedScene" uid="uid://bd0p761qakisw" path="res://src/menu/splash/Splash.tscn" id="13_8i5je"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_e75a2"]
|
||||
shader = ExtResource("2_6ifxs")
|
||||
@@ -24,71 +17,6 @@ shader_parameter/scale_resolution = false
|
||||
shader_parameter/target_resolution_scale = 4
|
||||
shader_parameter/enable_recolor = false
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ywcj3"]
|
||||
shader = ExtResource("3_2d5qb")
|
||||
shader_parameter/dither_mode = 0
|
||||
shader_parameter/enable_dither = true
|
||||
shader_parameter/random_dither_animate = true
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_t07yl"]
|
||||
shader = ExtResource("4_k6vbj")
|
||||
shader_parameter/enable_dither_filter = true
|
||||
shader_parameter/enable_horizontal_blur = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3st5l"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BlankScreenControl/BlankScreen:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_1uiag"]
|
||||
resource_name = "fade_in"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BlankScreenControl/BlankScreen:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 1), Color(0, 0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_v0mgf"]
|
||||
resource_name = "fade_out"
|
||||
length = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("BlankScreenControl/BlankScreen:color")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 0, 0, 0), Color(0, 0, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3st5l"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_3st5l"),
|
||||
&"fade_in": SubResource("Animation_1uiag"),
|
||||
&"fade_out": SubResource("Animation_v0mgf")
|
||||
}
|
||||
|
||||
[node name="Game" type="Node3D"]
|
||||
process_mode = 3
|
||||
script = ExtResource("1_ytcii")
|
||||
@@ -110,32 +38,10 @@ audio_listener_enable_3d = true
|
||||
size = Vector2i(1440, 1080)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="BackBufferCopy" type="BackBufferCopy" parent="SubViewportContainer/SubViewport"]
|
||||
material = SubResource("ShaderMaterial_ywcj3")
|
||||
position = Vector2(959.5, 540)
|
||||
scale = Vector2(9.605, 5.35)
|
||||
copy_mode = 2
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="SubViewportContainer/SubViewport/BackBufferCopy"]
|
||||
material = SubResource("ShaderMaterial_t07yl")
|
||||
offset_left = 99.0
|
||||
offset_top = 90.0
|
||||
offset_right = 2016.0
|
||||
offset_bottom = 1172.0
|
||||
|
||||
[node name="PauseContainer" type="Node3D" parent="SubViewportContainer/SubViewport"]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 1
|
||||
|
||||
[node name="Player" parent="SubViewportContainer/SubViewport/PauseContainer" instance=ExtResource("3_kk6ly")]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 1
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, -3, 0)
|
||||
|
||||
[node name="Map" parent="SubViewportContainer/SubViewport/PauseContainer" instance=ExtResource("3_d8awv")]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 1
|
||||
|
||||
[node name="StatusEffectTimers" type="Node" parent="SubViewportContainer/SubViewport/PauseContainer"]
|
||||
|
||||
[node name="DoubleEXPTimer" type="Timer" parent="SubViewportContainer/SubViewport/PauseContainer/StatusEffectTimers"]
|
||||
@@ -144,14 +50,8 @@ wait_time = 30.0
|
||||
|
||||
[node name="InGameUI" parent="." instance=ExtResource("5_lxtnp")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(1280, 720)
|
||||
|
||||
[node name="DialogueController" type="Node" parent="."]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 3
|
||||
script = ExtResource("10_58pbt")
|
||||
|
||||
[node name="DeathMenu" parent="." instance=ExtResource("11_wypid")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
@@ -164,36 +64,3 @@ visible = false
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
script = ExtResource("11_5ng8c")
|
||||
|
||||
[node name="MainMenu" parent="." instance=ExtResource("12_ejjr5")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Splash" parent="." instance=ExtResource("13_8i5je")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
||||
[node name="BlankScreenControl" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="BlankScreen" type="ColorRect" parent="BlankScreenControl"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_3st5l")
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ using Godot;
|
||||
using System.Threading.Tasks;
|
||||
using Zennysoft.Ma.Adapter;
|
||||
|
||||
public interface IGame : IProvide<IGameRepo>, IProvide<IGame>, IProvide<IPlayer>, IProvide<IMap>, IProvide<ISaveChunk<GameData>>, INode3D
|
||||
public interface IGame : IProvide<IGameRepo>, IProvide<IPlayer>, IProvide<IMap>, IProvide<ISaveChunk<GameData>>, INode3D
|
||||
{
|
||||
void LoadExistingGame();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user