feature: working on save load logic

This commit is contained in:
Dane Miller 2024-07-23 18:02:16 -05:00
parent ba2ba98896
commit 772c8356e7
40 changed files with 138575 additions and 152847 deletions

View File

@ -5,75 +5,59 @@
</component>
<component name="ChangeListManager">
<list default="true" id="47606719-2968-4305-803e-946819e5b507" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h07m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h07m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h12m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h12m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h17m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h17m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h22m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h22m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h27m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h27m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h33m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h33m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h38m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h38m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h43m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h43m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h48m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h48m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h53m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h53m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/DraggableUIPanel.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/DraggableUIPanel.cs.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/EnvironmentManager.prefab" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/EnvironmentManager.prefab.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Scripts/UI/GameTimeUIManager.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Scripts/UI/GameTimeUIManager.cs.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Scripts/UI/LoadingScreenUIController.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Scripts/UI/LoadingScreenUIController.cs.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h13m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h13m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h18m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h18m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h21m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h21m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h26m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h26m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h31m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h31m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h36m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h36m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h41m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h41m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h46m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h46m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h51m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h51m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h56m.unity" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 17h56m.unity.meta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/UI/LoadingCanvas.prefab" afterDir="false" />
<change afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/UI/LoadingCanvas.prefab.meta" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.evershade/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.evershade/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 08h51m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 08h51m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 08h56m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 08h56m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h02m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h02m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h07m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h07m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h12m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h12m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h19m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h19m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h59m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 09h59m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h26m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h26m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h31m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h31m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h36m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h36m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/DefaultPrefabObjects.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/DefaultPrefabObjects.asset" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Prefabs/GameManager.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/GameManager.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Prefabs/Main Camera.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/Main Camera.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Prefabs/NetworkManager.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/NetworkManager.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Prefabs/Player.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/Player.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h12m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h12m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h17m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h17m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h22m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h22m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h27m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h27m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h33m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h33m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h38m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h38m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h43m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h43m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h48m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h48m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h53m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 10h53m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 11h00m.unity" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/AutoSave/AutoSave [StartMenu.unity] 11h00m.unity.meta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Prefabs/SimpleGameManager.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/SimpleGameManager.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Resources/Prefabs/UI/UICanvas.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Prefabs/UI/UICanvas.prefab" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/FarmMap.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/FarmMap.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scenes/StartMenu.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/StartMenu.unity" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Components/Grid/BoxInteractiveComponent.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Components/Grid/BoxInteractiveComponent.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/GameInit.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/GameInit.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Managers/GameManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Managers/GameManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Managers/GameTimeManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Managers/GameTimeManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Managers/PlayerManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Managers/PlayerManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Managers/UIManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Managers/UIManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Managers/SaveManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Managers/SaveManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/SceneLoader.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/SceneLoader.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/EquipmentUIController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/EquipmentUIController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/InventoryUIController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/InventoryUIController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/ToolbarUIController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/ToolbarUIController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/SideBarUIController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/SideBarUIController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/Types/GameState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/Types/GameState.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/GameTimeUIManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/GameTimeUIManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Assets/Scripts/UI/LoadMenuUIController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scripts/UI/LoadMenuUIController.cs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -86,17 +70,22 @@
<component name="HighlightingSettingsPerFile">
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/0cb224eb538e444dafbd4350240431dcc5200/7b/5da1809e/LocalConnectionState.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/d44b17e136d09081da1e8fd0e8c83fde60e11818b9f2442d7ed8cb733fae895e/System.Collections.Generic.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Generated/Component/Spawning/PlayerSpawner.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Managing/Client/ClientManager.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Managing/Logging/LevelLoggingConfiguration.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Managing/Server/Object/ServerObjects.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Managing/Server/ServerManager.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Object/NetworkBehaviour.Callbacks.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Object/NetworkBehaviour.QOL.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Object/Synchronizing/SyncVar.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Transporting/EventStructures.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.firstgeargames.fishnet@c0fc71e014/Runtime/Utility/Performance/DefaultObjectPool.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.render-pipelines.core@14.0.10/Runtime/PostProcessing/Shaders/ffx/ffx_fsr1.hlsl" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.textmeshpro@3.0.6/Scripts/Runtime/TMP_Text.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.ugui@1.0.0/Editor/UI/SpriteDrawUtility.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Layout/LayoutGroup.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../evershade_clone_0/Assets/Scripts/Managers/GameManager.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../evershade_clone_0/Assets/Scripts/Managers/PlayerManager.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../evershade_clone_0/Assets/Scripts/PlayerController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../evershade_clone_0/Assets/Scripts/UI/NetworkChatUIController.cs" root0="SKIP_HIGHLIGHTING" />
</component>
@ -195,7 +184,9 @@
<workItem from="1721057198749" duration="9227000" />
<workItem from="1721137952964" duration="671000" />
<workItem from="1721138629015" duration="3638000" />
<workItem from="1721142580942" duration="86839000" />
<workItem from="1721142580942" duration="107349000" />
<workItem from="1721655966357" duration="12591000" />
<workItem from="1721672428730" duration="12332000" />
</task>
<servers />
</component>

BIN
Assets/Art/.DS_Store vendored

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 96f4b62e43cdb47f6b4e00fc661f36f4
guid: cb967f40f2f644396ba5d8822b0a9b79
DefaultImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 26a198fb9765d4e0aadf250d6afb704c
guid: 15aad43a504e74cffbfe0cd2582f54a0
DefaultImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8d25f3d2673a2422e8cbf6ce5daac96f
guid: ce13fc4c6a2e744ea96a5a79653fcdd4
DefaultImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 1878198276469643664}
- component: {fileID: 99402216570785473}
- component: {fileID: 8718437389722714938}
- component: {fileID: 1155193144633609695}
m_Layer: 5
m_Name: SimpleGameManager
@ -58,6 +59,23 @@ MonoBehaviour:
uiManager: {fileID: 0}
ownerPlayerManager: {fileID: 0}
itemDatabase: {fileID: 0}
--- !u!114 &8718437389722714938
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099441969732328810}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6f2c9a43837d45a9b0a1b0ad3194b4d9, type: 3}
m_Name:
m_EditorClassIdentifier:
_componentIndexCache: 255
_addedNetworkObject: {fileID: 1155193144633609695}
_networkObjectCache: {fileID: 0}
isPaused: 1
isFirstDay: 1
--- !u!114 &1155193144633609695
MonoBehaviour:
m_ObjectHideFlags: 0
@ -75,7 +93,6 @@ MonoBehaviour:
<PredictedSpawn>k__BackingField: {fileID: 0}
_networkBehaviours:
- {fileID: 99402216570785473}
- {fileID: 0}
<SerializedRootNetworkBehaviour>k__BackingField: {fileID: 0}
<NestedRootNetworkBehaviours>k__BackingField: []
SerializedTransformProperties:

View File

@ -0,0 +1,330 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2136231376285500718
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2707764709200619885}
- component: {fileID: 3311989122529550314}
- component: {fileID: 1634997300653873243}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2707764709200619885
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2136231376285500718}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7084278225531049234}
m_Father: {fileID: 2421568510429724281}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3311989122529550314
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2136231376285500718}
m_CullTransparentMesh: 1
--- !u!114 &1634997300653873243
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2136231376285500718}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4266674212497729599
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2421568510429724281}
- component: {fileID: 7420952515531974350}
- component: {fileID: 5741321435958572631}
- component: {fileID: 6484289190954007054}
- component: {fileID: 5950468659942235251}
m_Layer: 5
m_Name: LoadingCanvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2421568510429724281
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4266674212497729599}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2707764709200619885}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &7420952515531974350
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4266674212497729599}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 32767
m_TargetDisplay: 0
--- !u!114 &5741321435958572631
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4266674212497729599}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &6484289190954007054
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4266674212497729599}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &5950468659942235251
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4266674212497729599}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58ca7b6ea3244ddab0ff99e48049f190, type: 3}
m_Name:
m_EditorClassIdentifier:
loadingScreen: {fileID: 4266674212497729599}
displayStartTime: 0
minTimeToShow: 2
--- !u!1 &8879165965864536420
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7084278225531049234}
- component: {fileID: 2326161144716870008}
- component: {fileID: 8131036577376619810}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7084278225531049234
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8879165965864536420}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2707764709200619885}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0.0000061989, y: -0.0000019073}
m_SizeDelta: {x: 197.9196, y: 38.5602}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2326161144716870008
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8879165965864536420}
m_CullTransparentMesh: 1
--- !u!114 &8131036577376619810
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8879165965864536420}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Loading...
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 13cebca996ee5ef4eb2c9561d98bba55, type: 2}
m_sharedMaterial: {fileID: 4725839695304240861, guid: 13cebca996ee5ef4eb2c9561d98bba55, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 694b3c4677563481197ae69c6aa2041a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5808,82 +5808,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &479844561
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 479844562}
- component: {fileID: 479844564}
- component: {fileID: 479844563}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &479844562
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 479844561}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1454148435}
m_Father: {fileID: 981326692}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &479844563
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 479844561}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &479844564
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 479844561}
m_CullTransparentMesh: 1
--- !u!1 &495228922
GameObject:
m_ObjectHideFlags: 0
@ -6104,13 +6028,21 @@ PrefabInstance:
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4423685822788232243, guid: 71d12b53bfe275a42b91a98a3e6e2f66, type: 3}
propertyPath: m_LocalScale.x
value: 1.5392
objectReference: {fileID: 0}
- target: {fileID: 4423685822788232243, guid: 71d12b53bfe275a42b91a98a3e6e2f66, type: 3}
propertyPath: m_LocalScale.y
value: 1.5199
objectReference: {fileID: 0}
- target: {fileID: 4423685822788232243, guid: 71d12b53bfe275a42b91a98a3e6e2f66, type: 3}
propertyPath: m_LocalPosition.x
value: 4.56
value: 5.33
objectReference: {fileID: 0}
- target: {fileID: 4423685822788232243, guid: 71d12b53bfe275a42b91a98a3e6e2f66, type: 3}
propertyPath: m_LocalPosition.y
value: 0.94
value: 0.89
objectReference: {fileID: 0}
- target: {fileID: 4423685822788232243, guid: 71d12b53bfe275a42b91a98a3e6e2f66, type: 3}
propertyPath: m_LocalPosition.z
@ -12261,122 +12193,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 981293864}
m_CullTransparentMesh: 1
--- !u!1 &981326688
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 981326692}
- component: {fileID: 981326691}
- component: {fileID: 981326690}
- component: {fileID: 981326689}
- component: {fileID: 981326693}
m_Layer: 5
m_Name: LoadingCanvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &981326689
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 981326688}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &981326690
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 981326688}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!223 &981326691
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 981326688}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &981326692
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 981326688}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 479844562}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &981326693
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 981326688}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58ca7b6ea3244ddab0ff99e48049f190, type: 3}
m_Name:
m_EditorClassIdentifier:
loadingScreen: {fileID: 981326688}
--- !u!1 &992106323
GameObject:
m_ObjectHideFlags: 0
@ -16556,140 +16372,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1452552177}
m_CullTransparentMesh: 1
--- !u!1 &1454148434
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1454148435}
- component: {fileID: 1454148437}
- component: {fileID: 1454148436}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1454148435
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1454148434}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 479844562}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 15.9, y: 8.8642}
m_SizeDelta: {x: 231.3069, y: 52.4716}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1454148436
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1454148434}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Loading...
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 13cebca996ee5ef4eb2c9561d98bba55, type: 2}
m_sharedMaterial: {fileID: 4725839695304240861, guid: 13cebca996ee5ef4eb2c9561d98bba55, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 72
m_fontSizeBase: 72
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &1454148437
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1454148434}
m_CullTransparentMesh: 1
--- !u!1 &1461127836
GameObject:
m_ObjectHideFlags: 0
@ -22688,6 +22370,103 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1001 &608033921692789507
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2421568510429724281, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4266674212497729599, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
propertyPath: m_Name
value: LoadingCanvas
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 694b3c4677563481197ae69c6aa2041a, type: 3}
--- !u!1001 &3753706484008514787
PrefabInstance:
m_ObjectHideFlags: 0
@ -22793,7 +22572,7 @@ PrefabInstance:
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 981326692}
- {fileID: 608033921692789507}
- {fileID: 672375811}
- {fileID: 111811052}
- {fileID: 508924468}

View File

@ -17,6 +17,8 @@ namespace Managers
[SerializeField] private AudioManager audioManager;
[SerializeField] private UIManager uiManager;
[SerializeField] private SyncVar<bool> isPaused;
// person who's running the game, owner.
[FormerlySerializedAs("playerManager")] [SerializeField]
private PlayerManager ownerPlayerManager;
@ -65,7 +67,8 @@ namespace Managers
// TimeSettings = new GameTimeSettings(),
// GameStatus = GameStatus.WaitingForPlayers,
// Weather = WeatherConditions.Sunny,
// Initialize _syncGameTimeSettings with a default value
_syncGameTimeSettings.Value = new GameTimeSettings();
_syncPlayers.OnChange += SyncPlayersChange;
_syncGameTimeSettings.OnChange += SyncGameTimeSettingsChange;
@ -90,6 +93,28 @@ namespace Managers
Debug.Log("GameManager destroyed");
}
// set default server variable value
public override void OnStartServer()
{
base.OnStartServer();
Debug.Log("GameManager.OnStartServer() triggered");
if (IsServerInitialized) InitializeServerData();
// create a new instance of GameTimeManager and instantiate it on the server
if (GameTimeManager.Instance == null)
{
Debug.Log("GameTimeManager not found, creating new one");
gameObject.AddComponent<GameTimeManager>();
// base.Spawn(GameTimeManager.Instance);
// spawn on server
}
}
private void InitializeServerData()
{
if (_syncGameTimeSettings.Value == null) _syncGameTimeSettings.SetInitialValues(new GameTimeSettings());
}
private void SyncWeatherChange(WeatherConditions prev, WeatherConditions next, bool asserver)
{
throw new NotImplementedException();
@ -102,7 +127,9 @@ namespace Managers
private void SyncGameTimeSettingsChange(GameTimeSettings prev, GameTimeSettings next, bool asserver)
{
throw new NotImplementedException();
Debug.Log("SyncGameTimeSettingsChange Triggered");
Debug.Log("Prev: " + prev.CurrentTime);
Debug.Log("Next: " + next.CurrentTime);
}
private void SyncPlayersChange(SyncDictionaryOperation op, int key, GamePlayer value, bool asServer)
@ -297,8 +324,11 @@ namespace Managers
StartGameObserversRpc();
}
public GameTimeSettings GetTimeSettings()
{
Debug.Log("GameManager.GetTimeSettings()");
Debug.Log("GameTimeSettings: " + _syncGameTimeSettings.Value);
return _syncGameTimeSettings.Value;
}
@ -364,6 +394,8 @@ namespace Managers
[ServerRpc(RequireOwnership = false)]
public void RequestUpdateTimeSettingsServerRpc(GameTimeSettings timeSettings)
{
Debug.Log("RequestUpdateTimeSettingsServerRpc Triggered");
Debug.Log("CurrentTime: " + timeSettings.CurrentTime);
// You might want to add validation here
UpdateTimeSettings(timeSettings);
}
@ -402,5 +434,15 @@ namespace Managers
Debug.LogError("Player not found for clientId: " + clientId);
return null;
}
public void PauseGame()
{
isPaused.Value = true;
}
public void ResumeGame()
{
isPaused.Value = false;
}
}
}

View File

@ -26,75 +26,125 @@ namespace Managers
{
public class GameTimeManager : NetworkBehaviour
{
public Gradient lightColorGradient;
public Gradient lightIntensityGradient;
public static GameTimeManager Instance;
[SerializeField] private bool isPaused = true;
[SerializeField] private bool isFirstDay = true;
private readonly int _daysPerMonth = 28;
private readonly SyncVar<string> _dayText = new(new SyncTypeSettings
{
WritePermission = WritePermission.ServerOnly,
ReadPermission = ReadPermission.Observers
});
private readonly int _monthsPerYear = 4;
public readonly SyncVar<string> dayText;
public readonly SyncVar<string> seasonText;
// public Light2D globalLight;
private readonly SyncVar<string> _seasonText = new(new SyncTypeSettings
{
WritePermission = WritePermission.ServerOnly,
ReadPermission = ReadPermission.Observers
});
public readonly SyncVar<string> timeText;
private bool _isFirstDay = true;
private readonly SyncVar<string> _timeText = new(new SyncTypeSettings
{
WritePermission = WritePermission.ServerOnly,
ReadPermission = ReadPermission.Observers
});
private void Awake()
{
if (Instance != null && Instance != this)
{
Destroy(gameObject);
return;
}
Instance = this;
}
private void Start()
/*private void Start()
{
if (IsServerInitialized)
/*if (IsServerInitialized)
{
dayText.Value = GetCurrentDayOfMonth().ToString();
StartCoroutine(ServerDayNightCycleCoroutine());
_isFirstDay = false;
}
}#1#
}*/
private void Start()
{
// if (IsServerInitialized) InitializeServerData();
}
private void Update()
{
if (isPaused) return;
if (GameManager.Instance == null)
Debug.LogError("GameManager.Instance is null in GameTimeManager.Update()");
// var timeSettings = GameManager.Instance.GetTimeSettings();
// if (timeSettings == null) return;
// timeSettings.CurrentTime = CalculateCurrentTime();
// GameManager.Instance.RequestUpdateTimeSettingsServerRpc(timeSettings);
}
private void InitializeServerData()
{
if (GameManager.Instance == null)
{
Debug.LogError("GameManager.Instance is null in GameTimeManager.Update()");
Debug.LogError("GameManager.Instance is null in GameTimeManager.InitializeServerData()");
return;
}
timeText.Value = GetCurrentTime();
//todo: optimize to only update on day change
dayText.Value = GetCurrentDayOfMonth().ToString();
seasonText.Value = GetCurrentSeason().ToString();
var timeSettings = GameManager.Instance.GetTimeSettings();
timeSettings.CurrentTime = timeSettings.DayStartTimeInHours / 24 *
timeSettings.DayLengthInMinutes * 60;
if (timeSettings == null)
{
Debug.LogError("TimeSettings is null in GameTimeManager.InitializeServerData()");
return;
}
GameManager.Instance.RequestUpdateTimeSettingsServerRpc(timeSettings);
_dayText.Value = GetCurrentDayOfMonth().ToString();
StartCoroutine(ServerDayNightCycleCoroutine());
isFirstDay = false;
}
public override void OnStartClient()
{
base.OnStartClient();
UpdateUIDisplay();
/*UpdateUIDisplay();*/
}
private void UpdateUIDisplay()
/*private void UpdateUIDisplay()
{
timeText.Value = GetCurrentTime();
_timeText.Value = GetCurrentTimeFormatted();
//todo: optimize to only update on day change
dayText.Value = GetCurrentDayOfMonth().ToString();
seasonText.Value = GetCurrentSeason().ToString();
}
_dayText.Value = GetCurrentDayOfMonth().ToString();
_seasonText.Value = GetCurrentSeason().ToString();
}*/
public override void OnStartServer()
{
base.OnStartServer();
StartCoroutine(ServerDayNightCycleCoroutine());
/*// StartCoroutine(ServerDayNightCycleCoroutine());
Debug.Log("GameTimeManager.OnStartServer() triggered");
*/
if (IsServerInitialized)
{
Debug.Log("GameTimeManager.OnStartServer() triggered, initializing server data");
InitializeServerData();
}
}
public static event Action OnDayChange;
@ -134,7 +184,32 @@ namespace Managers
return daysPassed / _daysPerMonth % _monthsPerYear;
}
private string GetCurrentTime()
public GameTime GetGameTime()
{
if (GameManager.Instance == null)
{
Debug.LogError("GameManager not found");
return new GameTime();
}
var timeSettings = GameManager.Instance.GetTimeSettings();
if (timeSettings == null) return new GameTime();
// Calculate the current hour and minute based on the time of day
var timeOfDay = timeSettings.CurrentTime / (timeSettings.DayLengthInMinutes * 60);
var hours = Mathf.FloorToInt(timeOfDay * 24);
var minutes = Mathf.FloorToInt((timeOfDay * 24 - hours) * 60);
var seconds = Mathf.FloorToInt((timeOfDay * 24 - hours) * 60 * 60);
return new GameTime
{
hour = hours,
minute = minutes,
second = seconds
};
}
public string GetCurrentTimeFormatted()
{
if (GameManager.Instance == null)
{
@ -142,25 +217,42 @@ namespace Managers
return "00:00";
}
var timeSettings = GameManager.Instance.GetTimeSettings();
Debug.Log("Current settings start time: " + timeSettings.DayStartTimeInHours);
Debug.Log("Current settings day length: " + timeSettings.DayLengthInMinutes);
if (timeSettings == null) return "00:00";
// Calculate the current hour and minute based on the time of day
var timeOfDay = timeSettings.CurrentTime / (timeSettings.DayLengthInMinutes * 60);
var hours = Mathf.FloorToInt(timeOfDay * 24);
var minutes = Mathf.FloorToInt((timeOfDay * 24 - hours) * 60);
var gameTime = GetGameTime();
Debug.Log("Current time: " + gameTime.hour + ":" + gameTime.minute);
var hours = gameTime.hour;
var minutes = gameTime.minute;
// Convert to 12-hour format and add AM/PM
var hours12 = hours % 12;
if (hours12 == 0) hours12 = 12;
var amPm = hours < 12 ? "AM" : "PM";
Debug.Log("Hours: " + hours + " AM/PM: " + amPm);
return $"{hours12:D2}:{minutes:D2} {amPm}";
return $"{(int)hours12:D2}:{(int)minutes:D2} {amPm}";
}
public int GetDaysPassed()
{
var timeSettings = GameManager.Instance.GetTimeSettings();
return timeSettings.DaysPassed;
return timeSettings?.DaysPassed ?? 0;
}
public void Pause()
{
Debug.Log("GameTimeManager.Pause()");
isPaused = true;
}
public void Resume()
{
Debug.Log("GameTimeManager.Resume()");
isPaused = false;
}
@ -170,7 +262,22 @@ namespace Managers
// var previousSeason = GetCurrentSeason();
while (true)
{
if (isPaused) yield return new WaitForSeconds(0.5f);
if (GameManager.Instance == null)
{
Debug.LogWarning("GameManager.Instance is null in GameTimeManager.ServerDayNightCycleCoroutine()");
yield return new WaitForSeconds(0.5f);
continue;
}
var timeSettings = GameManager.Instance.GetTimeSettings();
if (timeSettings == null)
{
Debug.LogWarning("TimeSettings is null in GameTimeManager.ServerDayNightCycleCoroutine()");
yield return new WaitForSeconds(0.5f);
continue;
}
// Calculate the current time of day between 0 (midnight) and 1 (next midnight)
var timeOfDay = timeSettings.CurrentTime / (timeSettings.DayLengthInMinutes * 60);
@ -188,7 +295,7 @@ namespace Managers
timeSettings.DaysPassed++;
Debug.Log("Day " + timeSettings.DaysPassed + " has passed");
timeSettings.CurrentTime = 0;
_isFirstDay = false;
isFirstDay = false;
OnDayChange?.Invoke();
@ -215,7 +322,7 @@ namespace Managers
// globalLight.color = lightColorGradient.Evaluate(timeOfDay);
// globalLight.intensity = lightIntensityGradient.Evaluate(timeOfDay).a;
UpdateUIDisplay();
// UpdateUIDisplay();
}
}
}

View File

@ -63,14 +63,16 @@ namespace Managers
base.OnStartServer();
// reset player managers
_playerManagers.Clear();
// _playerManagers.Clear();
if (IsServerInitialized)
Debug.Log("Server initialized");
if (GameManager.Instance == null)
{
Debug.Log("GameManager not found, creating new one");
GameInit.Instance.InitializeGameManager();
Debug.Log("Server initialized");
if (GameManager.Instance == null)
{
Debug.Log("GameManager not found, creating new one");
GameInit.Instance.InitializeGameManager();
}
}
if (IsClientInitialized)
@ -96,7 +98,7 @@ namespace Managers
private IEnumerator WaitForConnectionAndRegister()
{
Debug.Log("Waiting for connection to server...");
while (!IsServerInitialized) yield return new WaitForSeconds(0.5f);
while (!IsClientInitialized) yield return new WaitForSeconds(0.5f);
Debug.Log("Connected to server. Registering player...");
RegisterPlayer();
@ -123,8 +125,9 @@ namespace Managers
}
catch (Exception e)
{
Debug.LogError(e);
Debug.LogError("Failed to add player manager");
// replace the player manager with the new one
_playerManagers[Owner.ClientId] = this;
isRegistered = true;
}
}
@ -143,9 +146,21 @@ namespace Managers
public static PlayerManager GetPlayerManager(int clientId)
{
PrintPlayerMAnagers();
return _playerManagers[clientId];
}
public static void PrintPlayerMAnagers()
{
foreach (var playerManager in _playerManagers)
{
Debug.Log("PlayerManager: " + playerManager.Key);
Debug.Log("PlayerManager.IsOwner: " + playerManager.Value.IsOwner);
Debug.Log("PlayerManager.IsClientInitialized: " + playerManager.Value.IsClientInitialized);
Debug.Log("PlayerManager.IsServerInitialized: " + playerManager.Value.IsServerInitialized);
}
}
public Camera GetPlayerCamera()
{
return playerCamera;

View File

@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.IO;
using Data.ScriptableObjects;
using Types;
using UnityEngine;
using UnityEngine.Serialization;
using Random = UnityEngine.Random;
namespace Managers
@ -14,10 +14,12 @@ namespace Managers
public static SaveManager Instance;
public ItemDatabase itemDatabase;
[FormerlySerializedAs("DefaultPlayerData")]
public GamePlayerSo defaultPlayerData;
public string currentSaveID;
public GameState GameState;
public List<Save> Saves = new();
private void Awake()
{
@ -31,20 +33,30 @@ namespace Managers
{
Destroy(gameObject);
}
Saves = GetSaves();
}
public void SaveGame(PlayerManager playerManager)
public void SaveGame()
{
GameState.Players[0].CurrentMap = MapManager.Instance.currentMapSo.name;
// gameState.playerData.currentPosition = playerManager.transform.position;
var json = JsonUtility.ToJson(GameState);
File.WriteAllText(Application.persistentDataPath + "/gameState.json", json);
var save = new Save
{
GameState = GameState,
ID = currentSaveID,
Name = GameState.Players[0].PlayerName
};
var json = JsonUtility.ToJson(save);
File.WriteAllText(Application.persistentDataPath + "/save/" + save.ID + ".json", json);
}
public void LoadGame(GameState gs)
public void LoadGame(Save save)
{
GameState = gs;
currentSaveID = save.ID;
GameState = save.GameState;
// playerManager.Initialize(gameState.playerData);
// todo: enable map
// MapManager.Instance.GetMap(gameState.playerData.currentMap);
@ -81,7 +93,7 @@ namespace Managers
{
Debug.LogError("ItemDatabase is null");
//TODO: remove?
LoadGame(GameState);
LoadGame();
return;
}
@ -98,7 +110,36 @@ namespace Managers
GameState.Players[0].AddItemToInventory(item);
}
LoadGame(GameState);
LoadGame();
}
public List<Save> GetSaves()
{
// if saves is not empty return it
if (Saves.Count > 0) return Saves;
var saves = new List<Save>();
var path = Application.persistentDataPath + "/saves";
if (Directory.Exists(path))
{
var files = Directory.GetFiles(path);
foreach (var file in files)
{
var save = JsonUtility.FromJson<Save>(File.ReadAllText(file));
saves.Add(save);
}
}
return saves;
}
public Save GetSave(string id)
{
var saves = GetSaves();
foreach (var save in saves)
if (save.ID == id)
return save;
return null;
}
}
}

View File

@ -42,18 +42,70 @@ public class SceneLoader : NetworkBehaviour, IPointerClickHandler
private void OnTriggerEnter2D(Collider2D other)
{
Debug.Log("OnTriggerEnter triggered");
if (!IsServerInitialized) return;
if (!IsClientInitialized) return;
GameTimeManager.Instance.Pause();
LoadingScreenUIController.Instance.TriggerLoadingScreen();
Debug.Log("On Trigger ENTEREED");
var nob = other.gameObject.GetComponent<NetworkObject>();
// Debug.Log("Player with clientID " + other.gameObject.GetInstanceID() + " entered trigger");
var otherConnection = other.GetComponent<NetworkObject>().Owner;
Debug.Log("Player with clientID " + otherConnection.ClientId + " entered trigger");
if (nob != null) LoadScene(InstanceFinder.ClientManager.Connection.ClientId);
// if (nob != null) LoadScene(InstanceFinder.ClientManager.Connection.ClientId);
RequestSceneLoadServerRpc(otherConnection.ClientId);
GameTimeManager.Instance.Resume();
}
[ServerRpc(RequireOwnership = false)]
private void RequestSceneLoadServerRpc(int clientId)
{
Debug.Log($"Received scene load request for client {clientId}");
LoadSceneForClient(clientId);
}
[Server]
private void LoadSceneForClient(int clientId)
{
Debug.Log($"Loading scene for client {clientId}");
NetworkConnection connection = InstanceFinder.ServerManager.Clients[clientId];
if (connection == null)
{
Debug.LogError($"No connection found for client {clientId}");
return;
}
var sceneLoadData = new SceneLoadData(SceneLookupData.CreateData(sceneName));
sceneLoadData.ReplaceScenes = ReplaceOption.All;
sceneLoadData.Options.AllowStacking = true; // Allow multiple scene instances
InstanceFinder.SceneManager.LoadConnectionScenes(connection, sceneLoadData);
// Unload the previous scene for this client
if (playerScenes.TryGetValue(clientId, out string previousScene))
{
InstanceFinder.SceneManager.UnloadConnectionScenes(connection, new SceneUnloadData(previousScene));
}
// Update the player's current scene
playerScenes[clientId] = sceneName;
// Move the player to the spawn position
var playerManager = PlayerManager.GetPlayerManager(clientId);
if (playerManager != null)
{
var player = playerManager.GetPlayerGo();
if (player != null)
{
player.transform.position = spawnPosition;
UpdatePlayerPositionObserversRpc(clientId, spawnPosition);
}
}
}
public void OnPointerClick(PointerEventData eventData)
{
@ -98,7 +150,7 @@ public class SceneLoader : NetworkBehaviour, IPointerClickHandler
{
Debug.Log("Loading scene");
var sceneLoadData = new SceneLoadData(SceneLookupData.CreateData(sceneName));
sceneLoadData.ReplaceScenes = ReplaceOption.All;
sceneLoadData.ReplaceScenes = ReplaceOption.None;
sceneLoadData.Options.AllowStacking = false;
InstanceFinder.SceneManager.LoadConnectionScenes(InstanceFinder.ClientManager.Connection, sceneLoadData);
@ -126,12 +178,13 @@ public class SceneLoader : NetworkBehaviour, IPointerClickHandler
// playerCamera.gameObject.SetActive(true);
UpdatePlayerPositionObserversRpc(player.gameObject.GetInstanceID(), spawnPosition);
// SetupPlayerCameraObserversRpc(clientId);
SetupPlayerCameraObserversRpc(clientId);
}
[ObserversRpc]
private void SetupPlayerCameraObserversRpc(int clientId)
{
Debug.Log("SetupPlayerCameraObserversRpc triggered for clientId: " + clientId);
var playerManager = PlayerManager.GetPlayerManager(clientId);
if (playerManager == null) return;
var playerGo = playerManager.GetPlayerGo();
@ -140,17 +193,10 @@ public class SceneLoader : NetworkBehaviour, IPointerClickHandler
var camera = playerGo.GetComponentInChildren<Camera>();
if (camera == null) return;
// enable camera only for the local playerf
if (playerManager.IsOwner)
{
// enable camera only for the local player
camera.enabled = true;
Camera.main.gameObject.SetActive(false);
camera.tag = "MainCamera";
}
else
{
camera.enabled = false;
}
playerManager.SetupCamera();
}
@ -218,7 +264,6 @@ public class SceneLoader : NetworkBehaviour, IPointerClickHandler
[ObserversRpc]
private void UpdatePlayerPositionObserversRpc(int playerObjectId, Vector3 position)
{
// var player = InstanceFinder.ClientManager.Objects.Spawned[playerObjectId];
if (InstanceFinder.ClientManager.Objects.Spawned.TryGetValue(playerObjectId, out var playerObject))
playerObject.transform.position = position;
else

View File

@ -12,6 +12,13 @@ namespace Types
public WeatherConditions Weather;
}
public class GameTime
{
public float hour = 0;
public float minute = 0;
public float second = 0;
}
public enum WeatherConditions
{
Sunny,
@ -30,6 +37,11 @@ namespace Types
public GameTimeSettings()
{
CurrentTime = 0;
DayLengthInMinutes = 15f;
DaysPassed = 0;
DayStartTimeInHours = 6f; // Start time in hours
Season = Season.Spring;
}
public GameTimeSettings(GameTimeSettings gameTimeSettings)
@ -58,6 +70,13 @@ namespace Types
GameOver
}
public class Save
{
public GameState GameState;
public string ID;
public string Name;
}
public class GameStateChange
{
public Dictionary<int, GamePlayer> PlayerChanges { get; set; } = new();

View File

@ -1,9 +1,9 @@
using System;
using System.Collections;
using FishNet;
using FishNet.Transporting;
using Managers;
using TMPro;
using Types;
using UnityEngine;
// possible future additions
@ -33,7 +33,6 @@ namespace UI
private readonly int _daysPerMonth = 28;
private readonly int _monthsPerYear = 4;
private bool _isClientInitialized;
// private Season _currentSeason;
// private float _currentTime;
@ -41,7 +40,6 @@ namespace UI
private bool _isFirstDay = true;
private bool _isServerInitialized;
private void Awake()
{
@ -75,35 +73,28 @@ namespace UI
private void Update()
{
if (!_isClientInitialized || !_isServerInitialized)
if (!InstanceFinder.IsClientStarted)
{
Debug.LogWarning("Client or server not initialized");
Debug.LogWarning("Client not initialized");
return;
}
// need to make sure the _networkManager is initialized first
// if (globalLight == null) FindLights();
timeText.text = GetCurrentTime();
timeText.text = GameTimeManager.Instance.GetCurrentTimeFormatted();
//todo: optimize to only update on day change
dayText.text = GetCurrentDayOfMonth().ToString();
seasonText.text = GetCurrentSeason().ToString();
var timeSettings = GameManager.Instance.GetTimeSettings();
timeSettings.CurrentTime = timeSettings.DayStartTimeInHours / 24 *
timeSettings.DayLengthInMinutes * 60;
GameManager.Instance.RequestUpdateTimeSettingsServerRpc(timeSettings);
dayText.text = GameTimeManager.Instance.GetCurrentDayOfMonth().ToString();
seasonText.text = GameTimeManager.Instance.GetCurrentSeason().ToString().ToUpper();
}
private void OnClientConnectionStateChange(ClientConnectionStateArgs obj)
{
_isClientInitialized = true;
Debug.Log("OnClientConnectionStateChange Triggered");
}
private void OnServerConnectionStateChange(ServerConnectionStateArgs obj)
{
_isServerInitialized = true;
Debug.Log("OnServerConnectionStateChange Triggered");
}
private void FindLights()
@ -119,18 +110,13 @@ namespace UI
}
}
/*public override void OnStartClient()
{
base.OnStartClient();
UpdateUIDisplay();
}*/
private void UpdateUIDisplay()
{
timeText.text = GetCurrentTime();
timeText.text = GameTimeManager.Instance.GetCurrentTimeFormatted();
//Todo: optimize to only update on day change
dayText.text = GetCurrentDayOfMonth().ToString();
seasonText.text = GetCurrentSeason().ToString();
dayText.text = GameTimeManager.Instance.GetCurrentDayOfMonth().ToString();
seasonText.text = GameTimeManager.Instance.GetCurrentSeason().ToString();
}
/*public override void OnStartServer()
@ -143,69 +129,6 @@ namespace UI
public static event Action OnSeasonChange;
public Season GetCurrentSeason()
{
return GetCurrentSeason(GetDaysPassed());
}
public Season GetCurrentSeason(int daysPassed)
{
var month = GetCurrentMonth(daysPassed);
return month switch
{
0 => Season.Spring,
1 => Season.Summer,
2 => Season.Fall,
3 => Season.Winter,
_ => Season.Spring
};
}
public int GetCurrentDayOfMonth()
{
return GameManager.Instance.GetTimeSettings().DaysPassed % _daysPerMonth;
}
public int GetCurrentMonth()
{
return GetDaysPassed() / _daysPerMonth % _monthsPerYear;
}
public int GetCurrentMonth(int daysPassed)
{
return daysPassed / _daysPerMonth % _monthsPerYear;
}
private string GetCurrentTime()
{
if (GameManager.Instance == null)
{
Debug.LogError("GameManager not found");
return "00:00";
}
var timeSettings = GameManager.Instance.GetTimeSettings();
// Calculate the current hour and minute based on the time of day
var timeOfDay = timeSettings.CurrentTime / (timeSettings.DayLengthInMinutes * 60);
var hours = Mathf.FloorToInt(timeOfDay * 24);
var minutes = Mathf.FloorToInt((timeOfDay * 24 - hours) * 60);
// Convert to 12-hour format and add AM/PM
var hours12 = hours % 12;
if (hours12 == 0) hours12 = 12;
var amPm = hours < 12 ? "AM" : "PM";
return $"{hours12:D2}:{minutes:D2} {amPm}";
}
public int GetDaysPassed()
{
var timeSettings = GameManager.Instance.GetTimeSettings();
return timeSettings.DaysPassed;
}
// [Server]
private IEnumerator ServerDayNightCycleCoroutine()
{
@ -234,7 +157,7 @@ namespace UI
OnDayChange?.Invoke();
var newSeason = GetCurrentSeason(timeSettings.DaysPassed);
var newSeason = GameTimeManager.Instance.GetCurrentSeason(timeSettings.DaysPassed);
if (newSeason != timeSettings.Season)
{
Debug.Log("Season changed from " + timeSettings.Season + " to " + newSeason);

View File

@ -1,13 +1,47 @@
using Managers;
using UnityEngine;
namespace UI
{
public class LoadMenuUIController : MonoBehaviour
{
// Start is called before the first frame update
public GameObject SaveList;
public GameObject DeleteSaveButton;
private void Start()
{
// get all the saves from the save manager
// and display them in the list of saves
var saveManager = FindObjectOfType<SaveManager>();
if (saveManager != null)
{
var saves = saveManager.GetSaves();
foreach (var save in saves) Debug.Log(save.Name);
}
}
// Update is called once per frame
private void Update()
{
}
public void OnClick_CloseButton()
{
Debug.Log("Load menu close button");
gameObject.SetActive(false);
}
public void OnClick_DeleteSaveButton()
{
Debug.Log("Delete save button");
}
public void OnClick_Save()
{
Debug.Log("Save button");
}
}
}