Restructure loading of game

This commit is contained in:
2025-09-25 02:50:55 -07:00
parent e7f5da5b1a
commit 84f0f8338f
266 changed files with 696 additions and 675 deletions

Binary file not shown.

View File

@@ -11,6 +11,7 @@ public partial class AppLogic
public readonly record struct LoadGameFinished; public readonly record struct LoadGameFinished;
public readonly record struct FadeInFinished; public readonly record struct FadeInFinished;
public readonly record struct FadeOutFinished; public readonly record struct FadeOutFinished;
public readonly record struct QuitGame; public readonly record struct QuitGame;
@@ -20,5 +21,9 @@ public partial class AppLogic
public readonly record struct ShowLoadingScreen; public readonly record struct ShowLoadingScreen;
public readonly record struct SaveFileLoaded; public readonly record struct SaveFileLoaded;
public readonly record struct EnemyViewerOpened;
public readonly record struct GalleryOpened;
} }
} }

View File

@@ -29,5 +29,9 @@ public partial class AppLogic
public readonly record struct GameOver; public readonly record struct GameOver;
public readonly record struct StartLoadingSaveFile; public readonly record struct StartLoadingSaveFile;
public readonly record struct EnemyViewerOpened;
public readonly record struct GalleryOpened;
} }
} }

View File

@@ -9,5 +9,5 @@ public interface IAppLogic : ILogicBlock<AppLogic.State>;
[LogicBlock(typeof(State), Diagram = true)] [LogicBlock(typeof(State), Diagram = true)]
public partial class AppLogic : LogicBlock<AppLogic.State>, IAppLogic public partial class AppLogic : LogicBlock<AppLogic.State>, IAppLogic
{ {
public override Transition GetInitialState() => To<State.GameStarted>(); public override Transition GetInitialState() => To<State.MainMenu>();
} }

View File

@@ -0,0 +1,24 @@
using Chickensoft.Introspection;
using Chickensoft.LogicBlocks;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Ma.Adapter;
public partial class AppLogic
{
public partial record State
{
[Meta]
public partial record EnemyViewer : State
{
public EnemyViewer()
{
this.OnEnter(() =>
{
Output(new Output.EnemyViewerOpened());
});
}
}
}
}

View File

@@ -0,0 +1,20 @@
using Chickensoft.Introspection;
namespace Zennysoft.Ma.Adapter;
public partial class AppLogic
{
public partial record State
{
[Meta]
public partial record MainMenu : State, IGet<Input.NewGame>, IGet<Input.EnemyViewerOpened>
{
public MainMenu()
{
}
public Transition On(in Input.NewGame input) => To<GameStarted>();
public Transition On(in Input.EnemyViewerOpened input) => To<EnemyViewer>();
}
}
}

View File

@@ -1,6 +1,5 @@
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Chickensoft.LogicBlocks; using Chickensoft.LogicBlocks;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Ma.Adapter; namespace Zennysoft.Ma.Adapter;

View File

@@ -0,0 +1,37 @@
using Chickensoft.Introspection;
using Chickensoft.Serialization;
namespace Zennysoft.Game.Ma;
[Meta, Id("player_stats")]
public partial record PlayerInitialState
{
[Save("currentHP")]
public int CurrentHP { get; init; }
[Save("maximumHP")]
public int MaximumHP { get; init; }
[Save("currentVT")]
public int CurrentVT { get; init; }
[Save("maximumVT")]
public int MaximumVT { get; init; }
[Save("currentExp")]
public double CurrentExp { get; init; }
[Save("currentLevel")]
public int CurrentLevel { get; init; }
[Save("currentAttack")]
public int CurrentAttack { get; init; }
[Save("bonusAttack")]
public int BonusAttack { get; init; }
[Save("maxAttack")]
public int MaxAttack { get; init; }
[Save("currentDefense")]
public int CurrentDefense { get; init; }
[Save("bonusDefense")]
public int BonusDefense { get; init; }
[Save("maxDefense")]
public int MaxDefense { get; init; }
[Save("expToNextLevel")]
public int ExpToNextLevel { get; init; }
[Save("luck")]
public double Luck { get; init; }
}

View File

@@ -1,37 +1,115 @@
using Chickensoft.Introspection; namespace Zennysoft.Ma.Adapter;
using Chickensoft.Serialization;
namespace Zennysoft.Game.Ma; using Chickensoft.Collections;
using Godot;
[Meta, Id("player_stats")] public class PlayerStats
public partial record PlayerInitialState
{ {
[Save("currentHP")] public PlayerStats(AutoProp<int> currentHP,
public int CurrentHP { get; init; } AutoProp<int> maximumHP,
[Save("maximumHP")] AutoProp<int> currentVT,
public int MaximumHP { get; init; } AutoProp<int> maximumVT,
[Save("currentVT")] AutoProp<int> currentAttack,
public int CurrentVT { get; init; } AutoProp<int> maxAttack,
[Save("maximumVT")] AutoProp<int> bonusAttack,
public int MaximumVT { get; init; } AutoProp<int> currentDefense,
[Save("currentExp")] AutoProp<int> maxDefense,
public double CurrentExp { get; init; } AutoProp<int> bonusDefense,
[Save("currentLevel")] AutoProp<double> currentExp,
public int CurrentLevel { get; init; } AutoProp<int> expToNextLevel,
[Save("currentAttack")] AutoProp<int> currentLevel,
public int CurrentAttack { get; init; } AutoProp<double> luck)
[Save("bonusAttack")] {
public int BonusAttack { get; init; } CurrentHP = currentHP;
[Save("maxAttack")] MaximumHP = maximumHP;
public int MaxAttack { get; init; } CurrentVT = currentVT;
[Save("currentDefense")] MaximumVT = maximumVT;
public int CurrentDefense { get; init; } CurrentAttack = currentAttack;
[Save("bonusDefense")] MaxAttack = maxAttack;
public int BonusDefense { get; init; } BonusAttack = bonusAttack;
[Save("maxDefense")] CurrentDefense = currentDefense;
public int MaxDefense { get; init; } MaxDefense = maxDefense;
[Save("expToNextLevel")] BonusDefense = bonusDefense;
public int ExpToNextLevel { get; init; } CurrentExp = currentExp;
[Save("luck")] ExpToNextLevel = expToNextLevel;
public double Luck { get; init; } CurrentLevel = currentLevel;
} Luck = luck;
}
public AutoProp<int> CurrentHP { get; init; }
public AutoProp<int> MaximumHP { get; init; }
public AutoProp<int> CurrentVT { get; init; }
public AutoProp<int> MaximumVT { get; init; }
public AutoProp<int> CurrentAttack { get; init; }
public AutoProp<int> MaxAttack { get; init; }
public AutoProp<int> BonusAttack { get; init; }
public AutoProp<int> CurrentDefense { get; init; }
public AutoProp<int> MaxDefense { get; init; }
public AutoProp<int> BonusDefense { get; init; }
public AutoProp<double> CurrentExp { get; init; }
public AutoProp<int> ExpToNextLevel { get; init; }
public AutoProp<int> CurrentLevel { get; init; }
public AutoProp<double> Luck { get; init; }
public void SetCurrentHP(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaximumHP.Value);
CurrentHP.OnNext(clampedValue);
}
public void SetMaximumHP(int newValue)
{
MaximumHP.OnNext(newValue);
}
public void SetCurrentVT(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaximumVT.Value);
CurrentVT.OnNext(clampedValue);
}
public void SetMaximumVT(int newValue)
{
MaximumVT.OnNext(newValue);
}
public void SetCurrentExp(double newValue)
{
CurrentExp.OnNext(newValue);
}
public void SetCurrentLevel(int newValue)
{
CurrentLevel.OnNext(newValue);
}
public void SetCurrentAttack(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaxAttack.Value);
CurrentAttack.OnNext(clampedValue);
}
public void SetBonusAttack(int newValue)
{
BonusAttack.OnNext(newValue);
}
public void SetMaxAttack(int newValue)
{
MaxAttack.OnNext(newValue);
}
public void SetCurrentDefense(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaxDefense.Value);
CurrentDefense.OnNext(clampedValue);
}
public void SetBonusDefense(int newValue)
{
BonusDefense.OnNext(newValue);
}
public void SetMaxDefense(int newValue)
{
MaxDefense.OnNext(newValue);
}
public void SetExpToNextLevel(int newValue)
{
ExpToNextLevel.OnNext(newValue);
}
public void SetLuck(double newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, 1.0);
Luck.OnNext(clampedValue);
}
}

View File

@@ -1,115 +0,0 @@
namespace Zennysoft.Ma.Adapter;
using Chickensoft.Collections;
using Godot;
public class PlayerStats
{
public PlayerStats(AutoProp<int> currentHP,
AutoProp<int> maximumHP,
AutoProp<int> currentVT,
AutoProp<int> maximumVT,
AutoProp<int> currentAttack,
AutoProp<int> maxAttack,
AutoProp<int> bonusAttack,
AutoProp<int> currentDefense,
AutoProp<int> maxDefense,
AutoProp<int> bonusDefense,
AutoProp<double> currentExp,
AutoProp<int> expToNextLevel,
AutoProp<int> currentLevel,
AutoProp<double> luck)
{
CurrentHP = currentHP;
MaximumHP = maximumHP;
CurrentVT = currentVT;
MaximumVT = maximumVT;
CurrentAttack = currentAttack;
MaxAttack = maxAttack;
BonusAttack = bonusAttack;
CurrentDefense = currentDefense;
MaxDefense = maxDefense;
BonusDefense = bonusDefense;
CurrentExp = currentExp;
ExpToNextLevel = expToNextLevel;
CurrentLevel = currentLevel;
Luck = luck;
}
public AutoProp<int> CurrentHP { get; init; }
public AutoProp<int> MaximumHP { get; init; }
public AutoProp<int> CurrentVT { get; init; }
public AutoProp<int> MaximumVT { get; init; }
public AutoProp<int> CurrentAttack { get; init; }
public AutoProp<int> MaxAttack { get; init; }
public AutoProp<int> BonusAttack { get; init; }
public AutoProp<int> CurrentDefense { get; init; }
public AutoProp<int> MaxDefense { get; init; }
public AutoProp<int> BonusDefense { get; init; }
public AutoProp<double> CurrentExp { get; init; }
public AutoProp<int> ExpToNextLevel { get; init; }
public AutoProp<int> CurrentLevel { get; init; }
public AutoProp<double> Luck { get; init; }
public void SetCurrentHP(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaximumHP.Value);
CurrentHP.OnNext(clampedValue);
}
public void SetMaximumHP(int newValue)
{
MaximumHP.OnNext(newValue);
}
public void SetCurrentVT(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaximumVT.Value);
CurrentVT.OnNext(clampedValue);
}
public void SetMaximumVT(int newValue)
{
MaximumVT.OnNext(newValue);
}
public void SetCurrentExp(double newValue)
{
CurrentExp.OnNext(newValue);
}
public void SetCurrentLevel(int newValue)
{
CurrentLevel.OnNext(newValue);
}
public void SetCurrentAttack(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaxAttack.Value);
CurrentAttack.OnNext(clampedValue);
}
public void SetBonusAttack(int newValue)
{
BonusAttack.OnNext(newValue);
}
public void SetMaxAttack(int newValue)
{
MaxAttack.OnNext(newValue);
}
public void SetCurrentDefense(int newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, MaxDefense.Value);
CurrentDefense.OnNext(clampedValue);
}
public void SetBonusDefense(int newValue)
{
BonusDefense.OnNext(newValue);
}
public void SetMaxDefense(int newValue)
{
MaxDefense.OnNext(newValue);
}
public void SetExpToNextLevel(int newValue)
{
ExpToNextLevel.OnNext(newValue);
}
public void SetLuck(double newValue)
{
var clampedValue = Mathf.Clamp(newValue, 0, 1.0);
Luck.OnNext(clampedValue);
}
}

View File

@@ -68,7 +68,7 @@ script_export_mode=2
custom_template/debug="" custom_template/debug=""
custom_template/release="" custom_template/release=""
debug/export_console_wrapper=2 debug/export_console_wrapper=0
binary_format/embed_pck=true binary_format/embed_pck=true
texture_format/s3tc_bptc=true texture_format/s3tc_bptc=true
texture_format/etc2_astc=false texture_format/etc2_astc=false

View File

@@ -1,8 +1,11 @@
using Chickensoft.AutoInject; using Chickensoft.AutoInject;
using Chickensoft.Collections;
using Chickensoft.GodotNodeInterfaces; using Chickensoft.GodotNodeInterfaces;
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Godot; using Godot;
using Godot.Collections;
using SimpleInjector.Lifestyles; using SimpleInjector.Lifestyles;
using System.Linq;
using Zennysoft.Game.Abstractions; using Zennysoft.Game.Abstractions;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
@@ -17,7 +20,11 @@ public partial class App : Node, IApp
public const string GAME_SCENE_PATH = "res://src/game/Game.tscn"; public const string GAME_SCENE_PATH = "res://src/game/Game.tscn";
public IGame Game { get; set; } = default!; public const string ENEMY_VIEWER_PATH = "res://src/data_viewer/DataViewer.tscn";
[Node] private MainMenu MainMenu { get; set; } = default!;
[Node] private Control Loading { get; set; } = default!;
public IInstantiator Instantiator { get; set; } = default!; public IInstantiator Instantiator { get; set; } = default!;
@@ -27,6 +34,10 @@ public partial class App : Node, IApp
public IAppLogic AppLogic { get; set; } = default!; public IAppLogic AppLogic { get; set; } = default!;
public AppLogic.IBinding AppBinding { get; set; } = default!; public AppLogic.IBinding AppBinding { get; set; } = default!;
private Array _progress;
private AutoProp<bool> _loaded = new(false);
public void Initialize() public void Initialize()
{ {
var container = new SimpleInjector.Container(); var container = new SimpleInjector.Container();
@@ -34,6 +45,11 @@ public partial class App : Node, IApp
container.RegisterSingleton<IAppRepo, AppRepo>(); container.RegisterSingleton<IAppRepo, AppRepo>();
container.RegisterSingleton<IAppLogic, AppLogic>(); container.RegisterSingleton<IAppLogic, AppLogic>();
MainMenu.NewGame += OnNewGame;
MainMenu.LoadGame += OnLoadGame;
MainMenu.Quit += OnQuit;
_loaded.Sync += OnGameLoaded;
Instantiator = new Instantiator(GetTree()); Instantiator = new Instantiator(GetTree());
AppRepo = container.GetInstance<IAppRepo>(); AppRepo = container.GetInstance<IAppRepo>();
@@ -43,9 +59,22 @@ public partial class App : Node, IApp
AppLogic.Set(new AppLogic.Data()); AppLogic.Set(new AppLogic.Data());
Input.MouseMode = Input.MouseModeEnum.Visible; Input.MouseMode = Input.MouseModeEnum.Visible;
_progress = [];
this.Provide(); this.Provide();
} }
private void OnGameLoaded(bool gameLoaded)
{
if (gameLoaded)
{
Loading.Hide();
var gameScene = (PackedScene)ResourceLoader.LoadThreadedGet(GAME_SCENE_PATH);
var game = gameScene.Instantiate();
AddChild(game);
Instantiator.SceneTree.Paused = false;
}
}
public void OnReady() public void OnReady()
{ {
AppBinding = AppLogic.Bind(); AppBinding = AppLogic.Bind();
@@ -59,7 +88,8 @@ public partial class App : Node, IApp
}) })
.Handle((in AppLogic.Output.SetupGameScene _) => .Handle((in AppLogic.Output.SetupGameScene _) =>
{ {
Instantiator.SceneTree.Paused = false; ResourceLoader.LoadThreadedRequest(GAME_SCENE_PATH, useSubThreads: true, cacheMode: ResourceLoader.CacheMode.Ignore);
MainMenu.Hide();
}) })
.Handle((in AppLogic.Output.ShowMainMenu _) => .Handle((in AppLogic.Output.ShowMainMenu _) =>
{ {
@@ -69,16 +99,28 @@ public partial class App : Node, IApp
}) })
.Handle((in AppLogic.Output.StartLoadingSaveFile _) => .Handle((in AppLogic.Output.StartLoadingSaveFile _) =>
{ {
Game.SaveFileLoaded += OnSaveFileLoaded;
Game.LoadExistingGame();
}) })
.Handle((in AppLogic.Output.EnemyViewerOpened _) =>
{
Instantiator.LoadAndInstantiate<Node>(ENEMY_VIEWER_PATH);
})
.Handle((in AppLogic.Output.ExitGame _) => .Handle((in AppLogic.Output.ExitGame _) =>
{ {
GetTree().Quit(); GetTree().Quit();
}); });
AppLogic.Start(); AppLogic.Start();
MainMenu.Show();
}
public override void _Process(double delta)
{
if (!_loaded.Value)
{
ResourceLoader.LoadThreadedGetStatus(GAME_SCENE_PATH, _progress);
if ((double)_progress.Single() == 1)
_loaded.OnNext(true);
}
} }
public void OnNewGame() => AppLogic.Input(new AppLogic.Input.NewGame()); public void OnNewGame() => AppLogic.Input(new AppLogic.Input.NewGame());
@@ -89,7 +131,6 @@ public partial class App : Node, IApp
public void OnSaveFileLoaded() public void OnSaveFileLoaded()
{ {
Game.SaveFileLoaded -= OnSaveFileLoaded;
AppLogic.Input(new AppLogic.Input.SaveFileLoaded()); AppLogic.Input(new AppLogic.Input.SaveFileLoaded());
} }

View File

@@ -1,10 +1,49 @@
[gd_scene load_steps=3 format=3 uid="uid://cagfc5ridmteu"] [gd_scene load_steps=5 format=3 uid="uid://cagfc5ridmteu"]
[ext_resource type="Script" uid="uid://d1f8blk5ucqvq" path="res://src/app/App.cs" id="1_rt73h"] [ext_resource type="Script" uid="uid://d1f8blk5ucqvq" path="res://src/app/App.cs" id="1_rt73h"]
[ext_resource type="PackedScene" uid="uid://33ek675mfb5n" path="res://src/game/Game.tscn" id="2_1uiag"] [ext_resource type="PackedScene" uid="uid://rfvnddfqufho" path="res://src/menu/MainMenu.tscn" id="2_1uiag"]
[ext_resource type="FontFile" uid="uid://cm8j5vcdop5x0" path="res://src/ui/fonts/Mrs-Eaves-OT-Roman_31443.ttf" id="2_3st5l"]
[sub_resource type="LabelSettings" id="LabelSettings_v0mgf"]
font = ExtResource("2_3st5l")
font_size = 100
font_color = Color(0.737255, 0.705882, 0.690196, 1)
[node name="App" type="Node"] [node name="App" type="Node"]
process_mode = 3 process_mode = 3
script = ExtResource("1_rt73h") script = ExtResource("1_rt73h")
[node name="Game" parent="." instance=ExtResource("2_1uiag")] [node name="Loading" type="Control" parent="."]
unique_name_in_owner = true
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="Loading"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.137255, 0.121569, 0.12549, 1)
[node name="CenterContainer" type="CenterContainer" parent="Loading"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Label" type="Label" parent="Loading/CenterContainer"]
layout_mode = 2
text = "Loading..."
label_settings = SubResource("LabelSettings_v0mgf")
[node name="MainMenu" parent="." instance=ExtResource("2_1uiag")]
unique_name_in_owner = true
visible = false

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "2eac29ac83a3513994dee3a00e7200d5" "md5": "e338159bb24b816e533ad760605453b6"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "0d8f5c44c82788efddd95c2ebca59f89" "md5": "5ae8776c2c4d3f1a1474d731b8c3c958"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "bca55d4e576c6f96ef2ce44187761309" "md5": "c887e8428ade4b351942da4003d1076d"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "fdf7a11f3a6a7bcb56f1a28e40154087" "md5": "a736e2bfd0819e969c4fbfc879bc7b02"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "16e1f22dd808b6f6447293d3fa3e8b89" "md5": "ebbb46c4f552a8b17e6801dc6b95714a"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "fdf7a11f3a6a7bcb56f1a28e40154087" "md5": "a736e2bfd0819e969c4fbfc879bc7b02"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "16e1f22dd808b6f6447293d3fa3e8b89" "md5": "ebbb46c4f552a8b17e6801dc6b95714a"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "fdf7a11f3a6a7bcb56f1a28e40154087" "md5": "a736e2bfd0819e969c4fbfc879bc7b02"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "16e1f22dd808b6f6447293d3fa3e8b89" "md5": "ebbb46c4f552a8b17e6801dc6b95714a"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "913cb2aec78c9ea846a046882fd28970" "md5": "585f2a4c17e3fbeb9a34c0c9c519e1e3"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "913cb2aec78c9ea846a046882fd28970" "md5": "585f2a4c17e3fbeb9a34c0c9c519e1e3"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "b982ed806a4b60688b11f983332207fd" "md5": "0d4093ab628707833e7cad158b16204c"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "0d6765ccb95e61a866c2850bb4f01d24" "md5": "f280b1532a0419eb2c045449bd6c39a2"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "913cb2aec78c9ea846a046882fd28970" "md5": "585f2a4c17e3fbeb9a34c0c9c519e1e3"
} }
[deps] [deps]

View File

@@ -19,26 +19,20 @@ public partial class Game : Node3D, IGame
IGameRepo IProvide<IGameRepo>.Value() => GameRepo; 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; private static SimpleInjector.Container _container;
public IInstantiator Instantiator { get; set; } = default!;
public IGameState GameState { get; set; } = default!; public IGameState GameState { get; set; } = default!;
public IGameRepo GameRepo { get; set; } = default!; public IGameRepo GameRepo { get; set; } = default!;
public GameState.IBinding GameBinding { get; set; } = default!; public GameState.IBinding GameBinding { get; set; } = default!;
[Dependency] public IAppRepo AppRepo => this.DependOn<IAppRepo>();
#region Nodes #region Nodes
[Node] private IMap Map { get; set; } = default!; [Node] private Node PauseContainer { get; set; } = default!;
[Node] private InGameUI InGameUI { 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 IPauseMenu PauseMenu { get; set; } = default!;
[Node] private Timer DoubleEXPTimer { 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 #endregion
#region Save #region Save
@@ -72,19 +62,28 @@ public partial class Game : Node3D, IGame
private EffectService _effectService; private EffectService _effectService;
private IInstantiator _instantiator;
private Player _player;
private Map _map;
public void Setup() public void Setup()
{ {
_container = new SimpleInjector.Container(); _container = new SimpleInjector.Container();
Module.Bootstrap(_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>(); GameRepo = _container.GetInstance<IGameRepo>();
GameState = _container.GetInstance<IGameState>(); GameState = _container.GetInstance<IGameState>();
GameState.Set(GameRepo); GameState.Set(GameRepo);
GameState.Set(AppRepo); GameState.Set(_player);
GameState.Set(Player); GameState.Set(_map);
GameState.Set(Map);
GameState.Set(InGameUI); GameState.Set(InGameUI);
Instantiator = new Instantiator(GetTree());
RescuedItems = new RescuedItemDatabase(); RescuedItems = new RescuedItemDatabase();
GameChunk = new SaveChunk<GameData>( GameChunk = new SaveChunk<GameData>(
@@ -95,12 +94,12 @@ public partial class Game : Node3D, IGame
PlayerData = new PlayerData() PlayerData = new PlayerData()
{ {
PlayerStats = Player.Stats, PlayerStats = _player.Stats,
Inventory = Player.Inventory Inventory = _player.Inventory
}, },
MapData = new MapData() MapData = new MapData()
{ {
FloorScenes = Map.FloorScenes FloorScenes = _map.FloorScenes
}, },
RescuedItems = new RescuedItemDatabase() RescuedItems = new RescuedItemDatabase()
{ {
@@ -145,13 +144,6 @@ public partial class Game : Node3D, IGame
GameBinding GameBinding
.Handle((in GameState.Output.InitializeGame _) => .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 _) => .Handle((in GameState.Output.LoadGameFromFile _) =>
{ {
@@ -209,24 +201,24 @@ public partial class Game : Node3D, IGame
.Handle((in GameState.Output.LoadNextFloor _) => .Handle((in GameState.Output.LoadNextFloor _) =>
{ {
FloorClearMenu.FadeOut(); FloorClearMenu.FadeOut();
Map.SpawnNextFloor(); _map.SpawnNextFloor();
if (Player.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnChange) if (_player.EquippedWeapon.Value.ItemTag == ItemTag.BreaksOnChange)
{ {
var itemToDestroy = Player.EquippedWeapon.Value; var itemToDestroy = _player.EquippedWeapon.Value;
Player.Unequip(itemToDestroy); _player.Unequip(itemToDestroy);
Player.Inventory.Remove(itemToDestroy); _player.Inventory.Remove(itemToDestroy);
} }
if (Player.EquippedArmor.Value.ItemTag == ItemTag.BreaksOnChange) if (_player.EquippedArmor.Value.ItemTag == ItemTag.BreaksOnChange)
{ {
var itemToDestroy = Player.EquippedArmor.Value; var itemToDestroy = _player.EquippedArmor.Value;
Player.Unequip(itemToDestroy); _player.Unequip(itemToDestroy);
Player.Inventory.Remove(itemToDestroy); _player.Inventory.Remove(itemToDestroy);
} }
if (Player.EquippedAccessory.Value.ItemTag == ItemTag.BreaksOnChange) if (_player.EquippedAccessory.Value.ItemTag == ItemTag.BreaksOnChange)
{ {
var itemToDestroy = Player.EquippedAccessory.Value; var itemToDestroy = _player.EquippedAccessory.Value;
Player.Unequip(itemToDestroy); _player.Unequip(itemToDestroy);
Player.Inventory.Remove(itemToDestroy); _player.Inventory.Remove(itemToDestroy);
} }
FloorClearMenu.FadeOut(); FloorClearMenu.FadeOut();
}) })
@@ -248,27 +240,31 @@ public partial class Game : Node3D, IGame
DoubleEXPTimer.Timeout += DoubleEXPTimer_Timeout; DoubleEXPTimer.Timeout += DoubleEXPTimer_Timeout;
MainMenu.NewGame += OnNewGame;
MainMenu.LoadGame += OnLoadGame;
MainMenu.Quit += OnQuit;
DeathMenu.NewGame += OnContinueGame; DeathMenu.NewGame += OnContinueGame;
DeathMenu.QuitGame += OnQuit; DeathMenu.QuitGame += OnQuit;
GameRepo.IsPaused.Sync += IsPaused_Sync; 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() private void FloorClearMenu_SaveAndExit()
{ {
//SaveFile.Save(); //SaveFile.Save();
Player.Deactivate(); _player.Deactivate();
GameState.Input(new GameState.Input.ReturnToMainMenu()); GameState.Input(new GameState.Input.ReturnToMainMenu());
InGameUI.Hide(); InGameUI.Hide();
MainMenu.FadeIn();
} }
private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor()); private void FloorClearMenu_GoToNextFloor() => GameState.Input(new GameState.Input.LoadNextFloor());
@@ -276,8 +272,8 @@ public partial class Game : Node3D, IGame
public void InitializeGame() public void InitializeGame()
{ {
Map.InitializeMapData(); _map.InitializeMapData();
Player.InitializePlayerState(); _player.InitializePlayerState();
} }
public void FloorExitReached() public void FloorExitReached()
@@ -327,11 +323,11 @@ public partial class Game : Node3D, IGame
thrown.Throw(_effectService); thrown.Throw(_effectService);
} }
public IDungeonFloor CurrentFloor => Map.CurrentFloor; public IDungeonFloor CurrentFloor => _map.CurrentFloor;
public void EnemyDefeated(Vector3 defeatedLocation, EnemyStatResource resource) public void EnemyDefeated(Vector3 defeatedLocation, EnemyStatResource resource)
{ {
Player.GainExp(resource.ExpFromDefeat * GameRepo.ExpRate); _player.GainExp(resource.ExpFromDefeat * GameRepo.ExpRate);
DropRestorative(defeatedLocation); DropRestorative(defeatedLocation);
} }
@@ -339,10 +335,10 @@ public partial class Game : Node3D, IGame
{ {
var itemDb = new ItemDatabase(); var itemDb = new ItemDatabase();
var currentIndex = Player.Inventory.Items.IndexOf(itemToReroll); var currentIndex = _player.Inventory.Items.IndexOf(itemToReroll);
if (insertIntoInventory) if (insertIntoInventory)
Player.Inventory.Remove(itemToReroll); _player.Inventory.Remove(itemToReroll);
InventoryItem rolledItem = null; InventoryItem rolledItem = null;
@@ -360,7 +356,7 @@ public partial class Game : Node3D, IGame
rolledItem = itemDb.PickItem(consumableItem); rolledItem = itemDb.PickItem(consumableItem);
if (insertIntoInventory) if (insertIntoInventory)
Player.Inventory.TryInsert(rolledItem, currentIndex); _player.Inventory.TryInsert(rolledItem, currentIndex);
return rolledItem; return rolledItem;
} }
@@ -398,7 +394,7 @@ public partial class Game : Node3D, IGame
GameRepo.Resume(); 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; private void IsPaused_Sync(bool isPaused) => GetTree().Paused = isPaused;
@@ -408,15 +404,15 @@ public partial class Game : Node3D, IGame
private void EnactConsumableItemEffects(ConsumableItem consumableItem) private void EnactConsumableItemEffects(ConsumableItem consumableItem)
{ {
if (Player.Stats.CurrentHP == Player.Stats.MaximumHP && consumableItem.RaiseHPAmount > 0) if (_player.Stats.CurrentHP == _player.Stats.MaximumHP && consumableItem.RaiseHPAmount > 0)
Player.RaiseHP(consumableItem.RaiseHPAmount); _player.RaiseHP(consumableItem.RaiseHPAmount);
if (Player.Stats.CurrentVT == Player.Stats.MaximumVT && consumableItem.RaiseVTAmount > 0) if (_player.Stats.CurrentVT == _player.Stats.MaximumVT && consumableItem.RaiseVTAmount > 0)
Player.RaiseVT(consumableItem.RaiseVTAmount); _player.RaiseVT(consumableItem.RaiseVTAmount);
if (consumableItem.HealHPAmount > 0 && Player.Stats.CurrentHP != Player.Stats.MaximumHP) if (consumableItem.HealHPAmount > 0 && _player.Stats.CurrentHP != _player.Stats.MaximumHP)
Player.HealHP(consumableItem.HealHPAmount); _player.HealHP(consumableItem.HealHPAmount);
if (consumableItem.HealVTAmount > 0 && Player.Stats.CurrentVT != Player.Stats.MaximumVT) if (consumableItem.HealVTAmount > 0 && _player.Stats.CurrentVT != _player.Stats.MaximumVT)
Player.HealVT(consumableItem.HealVTAmount); _player.HealVT(consumableItem.HealVTAmount);
} }
private void EnactEffectItemEffects(EffectItem effectItem) private void EnactEffectItemEffects(EffectItem effectItem)
@@ -475,22 +471,22 @@ public partial class Game : Node3D, IGame
GameRepo.CloseInventory(); GameRepo.CloseInventory();
break; break;
case ThrowableItemTag.TeleportToRandomLocation: case ThrowableItemTag.TeleportToRandomLocation:
_effectService.TeleportToRandomRoom(Player); _effectService.TeleportToRandomRoom(_player);
GameRepo.CloseInventory(); GameRepo.CloseInventory();
break; break;
case ThrowableItemTag.CanChangeAffinity: case ThrowableItemTag.CanChangeAffinity:
_effectService.ChangeAffinity(throwableItem); _effectService.ChangeAffinity(throwableItem);
break; break;
case ThrowableItemTag.WarpToExitIfFound: case ThrowableItemTag.WarpToExitIfFound:
_effectService.WarpToExit(Player); _effectService.WarpToExit(_player);
GameRepo.CloseInventory(); GameRepo.CloseInventory();
break; break;
} }
if (throwableItem.HealHPAmount > 0) if (throwableItem.HealHPAmount > 0)
Player.HealHP(throwableItem.HealHPAmount); _player.HealHP(throwableItem.HealHPAmount);
if (throwableItem.HealVTAmount > 0) if (throwableItem.HealVTAmount > 0)
Player.HealVT(throwableItem.HealVTAmount); _player.HealVT(throwableItem.HealVTAmount);
} }
private void RemoveItemOrSubtractFromItemCount(InventoryItem item) private void RemoveItemOrSubtractFromItemCount(InventoryItem item)
@@ -504,7 +500,6 @@ public partial class Game : Node3D, IGame
private void OnNewGame() private void OnNewGame()
{ {
GameState.Input(new GameState.Input.NewGame()); GameState.Input(new GameState.Input.NewGame());
MainMenu.Hide();
} }
private void OnContinueGame() private void OnContinueGame()
@@ -515,11 +510,9 @@ public partial class Game : Node3D, IGame
private void OnLoadGame() private void OnLoadGame()
{ {
GameState.Input(new GameState.Input.LoadGame()); GameState.Input(new GameState.Input.LoadGame());
MainMenu.Hide();
} }
private void OnQuit() private void OnQuit()
{ {
MainMenu.Hide();
} }
} }

View File

@@ -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="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://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="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="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://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://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://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"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_e75a2"]
shader = ExtResource("2_6ifxs") shader = ExtResource("2_6ifxs")
@@ -24,71 +17,6 @@ shader_parameter/scale_resolution = false
shader_parameter/target_resolution_scale = 4 shader_parameter/target_resolution_scale = 4
shader_parameter/enable_recolor = false 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"] [node name="Game" type="Node3D"]
process_mode = 3 process_mode = 3
script = ExtResource("1_ytcii") script = ExtResource("1_ytcii")
@@ -110,32 +38,10 @@ audio_listener_enable_3d = true
size = Vector2i(1440, 1080) size = Vector2i(1440, 1080)
render_target_update_mode = 4 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"] [node name="PauseContainer" type="Node3D" parent="SubViewportContainer/SubViewport"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 1 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="StatusEffectTimers" type="Node" parent="SubViewportContainer/SubViewport/PauseContainer"]
[node name="DoubleEXPTimer" type="Timer" parent="SubViewportContainer/SubViewport/PauseContainer/StatusEffectTimers"] [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")] [node name="InGameUI" parent="." instance=ExtResource("5_lxtnp")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(1280, 720) 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")] [node name="DeathMenu" parent="." instance=ExtResource("11_wypid")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
@@ -164,36 +64,3 @@ visible = false
unique_name_in_owner = true unique_name_in_owner = true
visible = false visible = false
script = ExtResource("11_5ng8c") 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")
}

View File

@@ -8,7 +8,7 @@ using Godot;
using System.Threading.Tasks; using System.Threading.Tasks;
using Zennysoft.Ma.Adapter; 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(); void LoadExistingGame();

View File

@@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://ih6xt2wjs22w" uid="uid://ih6xt2wjs22w"
path="res://.godot/imported/BELL ANIMATIONS.glb-e339c195371836b17623d58979ddf791.scn" path="res://.godot/imported/BELL ANIMATIONS.glb-0bec0c0ee8654ea8cd1a14cae7cf4a4e.scn"
[deps] [deps]
source_file="res://src/map/assetts/BELL ANIMATIONS.glb" source_file="res://src/map/assets/BELL ANIMATIONS.glb"
dest_files=["res://.godot/imported/BELL ANIMATIONS.glb-e339c195371836b17623d58979ddf791.scn"] dest_files=["res://.godot/imported/BELL ANIMATIONS.glb-0bec0c0ee8654ea8cd1a14cae7cf4a4e.scn"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://d1xdvf8awh4bi" uid="uid://d1xdvf8awh4bi"
path="res://.godot/imported/BELL ANIMATIONS_CHAIN_TEX.png-c0293f7e6bd3882002ca4e7b4bb76dc8.ctex" path="res://.godot/imported/BELL ANIMATIONS_CHAIN_TEX.png-f6d6e12787d4cb393b8bf628f5aacde9.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/BELL ANIMATIONS_CHAIN_TEX.png" source_file="res://src/map/assets/BELL ANIMATIONS_CHAIN_TEX.png"
dest_files=["res://.godot/imported/BELL ANIMATIONS_CHAIN_TEX.png-c0293f7e6bd3882002ca4e7b4bb76dc8.ctex"] dest_files=["res://.godot/imported/BELL ANIMATIONS_CHAIN_TEX.png-f6d6e12787d4cb393b8bf628f5aacde9.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dipyrtjclqae1"
path="res://.godot/imported/BELL ANIMATIONS_COLUMN.jpg-01d15a833979f0881ad7174c180ba722.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/map/assets/BELL ANIMATIONS_COLUMN.jpg"
dest_files=["res://.godot/imported/BELL ANIMATIONS_COLUMN.jpg-01d15a833979f0881ad7174c180ba722.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://clc5f6yyc7sdw" uid="uid://clc5f6yyc7sdw"
path="res://.godot/imported/BELL ANIMATIONS_concrete_0003_color_1k.png-16a1b77c0e2f86f254b3d5bcece947d5.ctex" path="res://.godot/imported/BELL ANIMATIONS_concrete_0003_color_1k.png-d46440123e8f57f4657af15790fe8312.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/BELL ANIMATIONS_concrete_0003_color_1k.png" source_file="res://src/map/assets/BELL ANIMATIONS_concrete_0003_color_1k.png"
dest_files=["res://.godot/imported/BELL ANIMATIONS_concrete_0003_color_1k.png-16a1b77c0e2f86f254b3d5bcece947d5.ctex"] dest_files=["res://.godot/imported/BELL ANIMATIONS_concrete_0003_color_1k.png-d46440123e8f57f4657af15790fe8312.ctex"]
[params] [params]

View File

@@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://by0ljkdhkhylv" uid="uid://by0ljkdhkhylv"
path="res://.godot/imported/Overworld - Upper Water Higher Subdiv.glb-10a66ede2edfc078ad779378beb24dd4.scn" path="res://.godot/imported/Overworld - Upper Water Higher Subdiv.glb-519365517bb8bf171cba7230277a7979.scn"
[deps] [deps]
source_file="res://src/map/assetts/Overworld - Upper Water Higher Subdiv.glb" source_file="res://src/map/assets/Overworld - Upper Water Higher Subdiv.glb"
dest_files=["res://.godot/imported/Overworld - Upper Water Higher Subdiv.glb-10a66ede2edfc078ad779378beb24dd4.scn"] dest_files=["res://.godot/imported/Overworld - Upper Water Higher Subdiv.glb-519365517bb8bf171cba7230277a7979.scn"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bnra3afje8dbs" uid="uid://bnra3afje8dbs"
path="res://.godot/imported/Overworld - Upper Water Higher Subdiv_OCEAN.png-0f2962925e054556cc5e00c0c807074e.ctex" path="res://.godot/imported/Overworld - Upper Water Higher Subdiv_OCEAN.png-a010ea67bb936d12ca516018cb07c214.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/Overworld - Upper Water Higher Subdiv_OCEAN.png" source_file="res://src/map/assets/Overworld - Upper Water Higher Subdiv_OCEAN.png"
dest_files=["res://.godot/imported/Overworld - Upper Water Higher Subdiv_OCEAN.png-0f2962925e054556cc5e00c0c807074e.ctex"] dest_files=["res://.godot/imported/Overworld - Upper Water Higher Subdiv_OCEAN.png-a010ea67bb936d12ca516018cb07c214.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 520 KiB

After

Width:  |  Height:  |  Size: 520 KiB

View File

@@ -3,15 +3,15 @@
importer="2d_array_texture" importer="2d_array_texture"
type="CompressedTexture2DArray" type="CompressedTexture2DArray"
uid="uid://c0kjnbpgaa6bs" uid="uid://c0kjnbpgaa6bs"
path="res://.godot/imported/caustics.png-8a821557e1a2b2aa602fc4053dd6e85f.ctexarray" path="res://.godot/imported/caustics.png-dd5a6037044192cbe4a0f6a688baa011.ctexarray"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://src/map/assetts/caustics.png" source_file="res://src/map/assets/caustics.png"
dest_files=["res://.godot/imported/caustics.png-8a821557e1a2b2aa602fc4053dd6e85f.ctexarray"] dest_files=["res://.godot/imported/caustics.png-dd5a6037044192cbe4a0f6a688baa011.ctexarray"]
[params] [params]

View File

@@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://dc5drhhc8xbh8" uid="uid://dc5drhhc8xbh8"
path="res://.godot/imported/gossip.glb-65c388f45926ed1fb1a90f3e29269140.scn" path="res://.godot/imported/gossip.glb-49ea8a6b8548ccf350a93ece57d0094c.scn"
[deps] [deps]
source_file="res://src/map/assetts/gossip.glb" source_file="res://src/map/assets/gossip.glb"
dest_files=["res://.godot/imported/gossip.glb-65c388f45926ed1fb1a90f3e29269140.scn"] dest_files=["res://.godot/imported/gossip.glb-49ea8a6b8548ccf350a93ece57d0094c.scn"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bkxbgimxamjjn" uid="uid://bkxbgimxamjjn"
path="res://.godot/imported/gossip_stele.png-c802320a159021f24fba4c8648b864a4.ctex" path="res://.godot/imported/gossip_stele.png-ed5ae96280085586f545cfcd8b22a0ec.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/gossip_stele.png" source_file="res://src/map/assets/gossip_stele.png"
dest_files=["res://.godot/imported/gossip_stele.png-c802320a159021f24fba4c8648b864a4.ctex"] dest_files=["res://.godot/imported/gossip_stele.png-ed5ae96280085586f545cfcd8b22a0ec.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dtdjtk7ksssmb" uid="uid://dtdjtk7ksssmb"
path="res://.godot/imported/sarapa2.png-2bca4a2593a46f4dfa251001a576d7d6.ctex" path="res://.godot/imported/sarapa2.png-8aa12551f14e1f70cfeb16e759f13b8a.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://src/map/assetts/sarapa2.png" source_file="res://src/map/assets/sarapa2.png"
dest_files=["res://.godot/imported/sarapa2.png-2bca4a2593a46f4dfa251001a576d7d6.ctex"] dest_files=["res://.godot/imported/sarapa2.png-8aa12551f14e1f70cfeb16e759f13b8a.ctex"]
[params] [params]

View File

@@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://bfvy34lj7lns" uid="uid://bfvy34lj7lns"
path="res://.godot/imported/sarco altar.glb-f2fef42d76f149e4f1a0ed0622b3011c.scn" path="res://.godot/imported/sarco altar.glb-0870a2474fb1139a80bcc1820fb72b06.scn"
[deps] [deps]
source_file="res://src/map/assetts/sarco altar.glb" source_file="res://src/map/assets/sarco altar.glb"
dest_files=["res://.godot/imported/sarco altar.glb-f2fef42d76f149e4f1a0ed0622b3011c.scn"] dest_files=["res://.godot/imported/sarco altar.glb-0870a2474fb1139a80bcc1820fb72b06.scn"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://iwcftnraw2k0" uid="uid://iwcftnraw2k0"
path="res://.godot/imported/sarco altar_greeen2.png-bdcddf5bed91a0dc25604f476c96baaa.ctex" path="res://.godot/imported/sarco altar_greeen2.png-9b2d6a1484644ba85d6196caa94a63de.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco altar_greeen2.png" source_file="res://src/map/assets/sarco altar_greeen2.png"
dest_files=["res://.godot/imported/sarco altar_greeen2.png-bdcddf5bed91a0dc25604f476c96baaa.ctex"] dest_files=["res://.godot/imported/sarco altar_greeen2.png-9b2d6a1484644ba85d6196caa94a63de.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dctj24v8kldv5" uid="uid://dctj24v8kldv5"
path="res://.godot/imported/sarco altar_trim4.png-38b4f7dc3505aef715601092c15d3da5.ctex" path="res://.godot/imported/sarco altar_trim4.png-d17c69c63225ba7054691fa2fc30c803.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco altar_trim4.png" source_file="res://src/map/assets/sarco altar_trim4.png"
dest_files=["res://.godot/imported/sarco altar_trim4.png-38b4f7dc3505aef715601092c15d3da5.ctex"] dest_files=["res://.godot/imported/sarco altar_trim4.png-d17c69c63225ba7054691fa2fc30c803.ctex"]
[params] [params]

View File

@@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://d2rje5p3a0xdg" uid="uid://d2rje5p3a0xdg"
path="res://.godot/imported/sarco.glb-237afeeeb0448c0d6bc85a2383d2101e.scn" path="res://.godot/imported/sarco.glb-239d8c1e1d08241802f4cb5833d54814.scn"
[deps] [deps]
source_file="res://src/map/assetts/sarco.glb" source_file="res://src/map/assets/sarco.glb"
dest_files=["res://.godot/imported/sarco.glb-237afeeeb0448c0d6bc85a2383d2101e.scn"] dest_files=["res://.godot/imported/sarco.glb-239d8c1e1d08241802f4cb5833d54814.scn"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dsii6umo5k0bt" uid="uid://dsii6umo5k0bt"
path="res://.godot/imported/sarco_coffin_edge.png-d7528f79cb1f20d407d62b9cb04cbd70.ctex" path="res://.godot/imported/sarco_coffin_edge.png-a94073ed85728e4cb627bb2de5f36c07.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_coffin_edge.png" source_file="res://src/map/assets/sarco_coffin_edge.png"
dest_files=["res://.godot/imported/sarco_coffin_edge.png-d7528f79cb1f20d407d62b9cb04cbd70.ctex"] dest_files=["res://.godot/imported/sarco_coffin_edge.png-a94073ed85728e4cb627bb2de5f36c07.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 205 KiB

After

Width:  |  Height:  |  Size: 205 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://chg3loytbjh1e" uid="uid://chg3loytbjh1e"
path="res://.godot/imported/sarco_coffinrelief.png-61ccdd770f893ce0bc188d6b707cb503.ctex" path="res://.godot/imported/sarco_coffinrelief.png-cc20b7aae5992cbc4f870767f7ce1f13.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_coffinrelief.png" source_file="res://src/map/assets/sarco_coffinrelief.png"
dest_files=["res://.godot/imported/sarco_coffinrelief.png-61ccdd770f893ce0bc188d6b707cb503.ctex"] dest_files=["res://.godot/imported/sarco_coffinrelief.png-cc20b7aae5992cbc4f870767f7ce1f13.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cxm2y2u7pti2u" uid="uid://cxm2y2u7pti2u"
path="res://.godot/imported/sarco_eyeblockgrave.png-47b8733fab15e6a8836219429f087d6e.ctex" path="res://.godot/imported/sarco_eyeblockgrave.png-9ab59d561c8c26b6fe51f60dc8d83870.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_eyeblockgrave.png" source_file="res://src/map/assets/sarco_eyeblockgrave.png"
dest_files=["res://.godot/imported/sarco_eyeblockgrave.png-47b8733fab15e6a8836219429f087d6e.ctex"] dest_files=["res://.godot/imported/sarco_eyeblockgrave.png-9ab59d561c8c26b6fe51f60dc8d83870.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b14rnmiwrqt2x" uid="uid://b14rnmiwrqt2x"
path="res://.godot/imported/sarco_greeen2.png-5194405a020a902681f479e644caa65f.ctex" path="res://.godot/imported/sarco_greeen2.png-cc3b666f603ddf787e88ad7983eead6e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_greeen2.png" source_file="res://src/map/assets/sarco_greeen2.png"
dest_files=["res://.godot/imported/sarco_greeen2.png-5194405a020a902681f479e644caa65f.ctex"] dest_files=["res://.godot/imported/sarco_greeen2.png-cc3b666f603ddf787e88ad7983eead6e.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bnt460wbrqk3s" uid="uid://bnt460wbrqk3s"
path="res://.godot/imported/sarco_green_Worked-Stone-Outside.png-1a7d8766c973694514717db4f2e77cc6.ctex" path="res://.godot/imported/sarco_green_Worked-Stone-Outside.png-ab98852fa5a79f0eddda252c798b828e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_green_Worked-Stone-Outside.png" source_file="res://src/map/assets/sarco_green_Worked-Stone-Outside.png"
dest_files=["res://.godot/imported/sarco_green_Worked-Stone-Outside.png-1a7d8766c973694514717db4f2e77cc6.ctex"] dest_files=["res://.godot/imported/sarco_green_Worked-Stone-Outside.png-ab98852fa5a79f0eddda252c798b828e.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c3s7hs4btatjt" uid="uid://c3s7hs4btatjt"
path="res://.godot/imported/sarco_greenstatue.png-9230bfe532d420d9e72c92580a77c790.ctex" path="res://.godot/imported/sarco_greenstatue.png-737b0835d9797fa9fc4a3a2888b386ea.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_greenstatue.png" source_file="res://src/map/assets/sarco_greenstatue.png"
dest_files=["res://.godot/imported/sarco_greenstatue.png-9230bfe532d420d9e72c92580a77c790.ctex"] dest_files=["res://.godot/imported/sarco_greenstatue.png-737b0835d9797fa9fc4a3a2888b386ea.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://vpes3rk2p4t7" uid="uid://vpes3rk2p4t7"
path="res://.godot/imported/sarco_inner_rock2.png-15730bc9d545253503736f8a719c9b48.ctex" path="res://.godot/imported/sarco_inner_rock2.png-23d5e9ccf7d5674b2e45bf74eb6c9326.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/assetts/sarco_inner_rock2.png" source_file="res://src/map/assets/sarco_inner_rock2.png"
dest_files=["res://.godot/imported/sarco_inner_rock2.png-15730bc9d545253503736f8a719c9b48.ctex"] dest_files=["res://.godot/imported/sarco_inner_rock2.png-23d5e9ccf7d5674b2e45bf74eb6c9326.ctex"]
[params] [params]

View File

@@ -4,12 +4,12 @@ importer="scene"
importer_version=1 importer_version=1
type="PackedScene" type="PackedScene"
uid="uid://2bf4hr7abrws" uid="uid://2bf4hr7abrws"
path="res://.godot/imported/spacestairs.glb-8bcea712473b20e5d337a5e25b12eef7.scn" path="res://.godot/imported/spacestairs.glb-ff8740808bd68bd7693641231b717f84.scn"
[deps] [deps]
source_file="res://src/map/assetts/spacestairs.glb" source_file="res://src/map/assets/spacestairs.glb"
dest_files=["res://.godot/imported/spacestairs.glb-8bcea712473b20e5d337a5e25b12eef7.scn"] dest_files=["res://.godot/imported/spacestairs.glb-ff8740808bd68bd7693641231b717f84.scn"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 327 KiB

After

Width:  |  Height:  |  Size: 327 KiB

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b53gm6277ng4e" uid="uid://b53gm6277ng4e"
path="res://.godot/imported/waternormal.jpeg-a8bd6eba2dd79a043f9623ef45373053.ctex" path="res://.godot/imported/waternormal.jpeg-65c4588efc29e46babc60da5ba887e3b.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://src/map/assetts/waternormal.jpeg" source_file="res://src/map/assets/waternormal.jpeg"
dest_files=["res://.godot/imported/waternormal.jpeg-a8bd6eba2dd79a043f9623ef45373053.ctex"] dest_files=["res://.godot/imported/waternormal.jpeg-65c4588efc29e46babc60da5ba887e3b.ctex"]
[params] [params]

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cbsdc4uthojov" uid="uid://cbsdc4uthojov"
path="res://.godot/imported/waternormal2.jpg-e41fb88701a1fa9c0ea7440b8477795e.ctex" path="res://.godot/imported/waternormal2.jpg-5c20c190b0c190f2fefce4df9f44e0bf.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://src/map/assetts/waternormal2.jpg" source_file="res://src/map/assets/waternormal2.jpg"
dest_files=["res://.godot/imported/waternormal2.jpg-e41fb88701a1fa9c0ea7440b8477795e.ctex"] dest_files=["res://.godot/imported/waternormal2.jpg-5c20c190b0c190f2fefce4df9f44e0bf.ctex"]
[params] [params]

View File

@@ -1,37 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cn2d3icdlegns"
path="res://.godot/imported/BELL ANIMATIONS_COLUMN.jpg-b8c4c5d2b52189ae0ce00d435fad6812.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "518ea1608e2e69166064a6a6ab06fb8c"
}
[deps]
source_file="res://src/map/assetts/BELL ANIMATIONS_COLUMN.jpg"
dest_files=["res://.godot/imported/BELL ANIMATIONS_COLUMN.jpg-b8c4c5d2b52189ae0ce00d435fad6812.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "518ea1608e2e69166064a6a6ab06fb8c" "md5": "b534d6c15a62da0430767b1a0f3b687f"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "4789848294a3d273e1d0a4d60603ca4f" "md5": "809c24d6617d0a8e1dca7e497df918c6"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "f3d93511bb57451d08f6041ff9714409" "md5": "4a83a4136d01a2625c3a3229636a9cde"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "1914c186663ef7293a3272dbbbf2c9a9" "md5": "3d6e3a1f727e4ba346b1f8bd49a76e28"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "43a59abea6f9e92960392fa8ce88e381" "md5": "3f97927b9fe1bfcc3a23e1438895a16f"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "a7ec976005a855d80a6a33be8d83ccee" "md5": "e23dd1b477467088dbb6f6690c77ad73"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "27d6199d6a16de95ddd2d4506d6a97e4" "md5": "c591bfa502b4a13cdf376c08035fb58d"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "1914c186663ef7293a3272dbbbf2c9a9" "md5": "3d6e3a1f727e4ba346b1f8bd49a76e28"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "a7ec976005a855d80a6a33be8d83ccee" "md5": "e23dd1b477467088dbb6f6690c77ad73"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "27d6199d6a16de95ddd2d4506d6a97e4" "md5": "c591bfa502b4a13cdf376c08035fb58d"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "790ee8a63314fc7cb2e142cf1f82440a" "md5": "4e8b06efe4d828bfe7982e6ab43d053a"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "9b43cb65e5ee2fa1143c83aa0ec589cb" "md5": "f898f2d5d45561b486ec94d473fbefce"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "43a59abea6f9e92960392fa8ce88e381" "md5": "3f97927b9fe1bfcc3a23e1438895a16f"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "904264dfeee82588f692c5a033291746" "md5": "103b893019b9db866163e6816f845611"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "27d6199d6a16de95ddd2d4506d6a97e4" "md5": "c591bfa502b4a13cdf376c08035fb58d"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "9b43cb65e5ee2fa1143c83aa0ec589cb" "md5": "f898f2d5d45561b486ec94d473fbefce"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "43a59abea6f9e92960392fa8ce88e381" "md5": "3f97927b9fe1bfcc3a23e1438895a16f"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "a7ec976005a855d80a6a33be8d83ccee" "md5": "e23dd1b477467088dbb6f6690c77ad73"
} }
[deps] [deps]

View File

@@ -8,7 +8,7 @@ metadata={
"vram_texture": false "vram_texture": false
} }
generator_parameters={ generator_parameters={
"md5": "904264dfeee82588f692c5a033291746" "md5": "103b893019b9db866163e6816f845611"
} }
[deps] [deps]

Some files were not shown because too many files have changed in this diff Show More