From 9675b7b31d163709552533ffd2b416af05e280ae Mon Sep 17 00:00:00 2001 From: Konstantin Dyachenko Date: Tue, 7 Apr 2026 03:10:03 +0700 Subject: [PATCH] Move Files, remove 2D world gen --- Assets/Data/ChunkTemplate.asset | 533 ----- Assets/Data/ChunkTemplate.asset.meta | 8 - Assets/Data/DefaultPrefabObjects.asset | 27 - Assets/Data/DefaultPrefabObjects.asset.meta | 8 - Assets/Data/WorldAutotileProfile.asset | 33 - Assets/Data/WorldAutotileProfile.asset.meta | 8 - Assets/Editor/Generated.meta | 8 - .../Generated/WorldAutotileAuthoring.meta | 8 - ...orldAutotileProfile_AuthoringLayout.prefab | 1967 ----------------- ...utotileProfile_AuthoringLayout.prefab.meta | 7 - Assets/Editor/Tasks/TaskBoardModels.cs.meta | 2 - .../Tasks/TaskBoardOwnersConfig.cs.meta | 2 - Assets/Editor/Tasks/TaskBoardService.cs.meta | 2 - Assets/Editor/Tasks/TaskBoardWindow.cs.meta | 2 - Assets/Editor/WorldAutotileEditorLabels.cs | 75 - .../Editor/WorldAutotileEditorLabels.cs.meta | 2 - Assets/Editor/WorldAutotileProfilePipeline.cs | 642 ------ .../WorldAutotileProfilePipeline.cs.meta | 2 - Assets/Editor/WorldGeneratorEditorWindow.cs | 281 --- .../Editor/WorldGeneratorEditorWindow.cs.meta | 2 - Assets/{Scripts.meta => Features.meta} | 0 Assets/{Editor => Features}/Tasks.meta | 0 Assets/{ => Features/Tasks}/Editor.meta | 0 .../Tasks/Editor}/TaskBoardModels.cs | 0 .../Tasks/Editor/TaskBoardModels.cs.meta | 2 + .../Tasks/Editor}/TaskBoardOwners.asset | 0 .../Tasks/Editor}/TaskBoardOwners.asset.meta | 0 .../Tasks/Editor}/TaskBoardOwnersConfig.cs | 0 .../Editor/TaskBoardOwnersConfig.cs.meta | 2 + .../Tasks/Editor}/TaskBoardService.cs | 2 +- .../Tasks/Editor/TaskBoardService.cs.meta | 2 + .../Tasks/Editor}/TaskBoardWindow.cs | 0 .../Tasks/Editor/TaskBoardWindow.cs.meta | 2 + Assets/{Scripts => Features}/VoxelWorld.meta | 0 Assets/{ => Features/VoxelWorld}/Data.meta | 0 .../Data/VoxelBiomeProfile 1.asset | 0 .../Data/VoxelBiomeProfile 1.asset.meta | 0 .../Data/VoxelBiomeProfile 2.asset | 0 .../Data/VoxelBiomeProfile 2.asset.meta | 0 .../VoxelWorld}/Data/VoxelBiomeProfile.asset | 0 .../Data/VoxelBiomeProfile.asset.meta | 0 .../VoxelWorld}/Data/VoxelWorldConfig.asset | 0 .../Data/VoxelWorldConfig.asset.meta | 0 .../VoxelWorld/Runtime.meta | 0 .../Runtime/VoxelWorld.Runtime.asmdef | 0 .../Runtime/VoxelWorld.Runtime.asmdef.meta | 0 .../VoxelWorld/Runtime/VoxelWorldAtlas.cs | 0 .../Runtime/VoxelWorldAtlas.cs.meta | 2 + .../VoxelWorld/Runtime/VoxelWorldConfig.cs | 0 .../Runtime/VoxelWorldConfig.cs.meta | 2 + .../Runtime/VoxelWorldGenerator.Generation.cs | 0 .../VoxelWorldGenerator.Generation.cs.meta | 2 + .../Runtime/VoxelWorldGenerator.Mesh.cs | 0 .../Runtime/VoxelWorldGenerator.Mesh.cs.meta | 2 + .../Runtime/VoxelWorldGenerator.Types.cs | 0 .../Runtime/VoxelWorldGenerator.Types.cs.meta | 2 + .../VoxelWorld/Runtime/VoxelWorldGenerator.cs | 0 .../Runtime/VoxelWorldGenerator.cs.meta | 2 + Assets/{ => Features/VoxelWorld}/Scenes.meta | 0 .../Scenes/VoxelWorldTestScene.unity | 0 .../Scenes/VoxelWorldTestScene.unity.meta | 0 Assets/{ => Features/VoxelWorld}/Shaders.meta | 0 .../VoxelWorldTextureArrayUnlit.shader | 0 .../VoxelWorldTextureArrayUnlit.shader.meta | 0 Assets/Scenes/New Scene.unity | 218 -- Assets/Scenes/New Scene.unity.meta | 7 - Assets/Scenes/SampleScene.unity | 603 ----- Assets/Scenes/SampleScene.unity.meta | 7 - Assets/Scripts/Player.meta | 8 - Assets/Scripts/Player/CameraFollow2D.cs | 31 - Assets/Scripts/Player/CameraFollow2D.cs.meta | 2 - .../Scripts/Player/SimplePlayerInputMover.cs | 109 - .../Player/SimplePlayerInputMover.cs.meta | 2 - .../Runtime/VoxelWorldAtlas.cs.meta | 2 - .../Runtime/VoxelWorldConfig.cs.meta | 2 - .../VoxelWorldGenerator.Generation.cs.meta | 2 - .../Runtime/VoxelWorldGenerator.Mesh.cs.meta | 2 - .../Runtime/VoxelWorldGenerator.Types.cs.meta | 2 - .../Runtime/VoxelWorldGenerator.cs.meta | 2 - Assets/Scripts/WorldGen.meta | 8 - Assets/Scripts/WorldGen/ChunkTemplate.cs | 232 -- Assets/Scripts/WorldGen/ChunkTemplate.cs.meta | 2 - .../WorldGen/InfiniteWorldGenerator.cs | 1064 --------- .../WorldGen/InfiniteWorldGenerator.cs.meta | 2 - Assets/Scripts/WorldGen/ProceduralWorldArt.cs | 350 --- .../WorldGen/ProceduralWorldArt.cs.meta | 2 - .../WorldGen/RuntimeWorldProfileFactory.cs | 237 -- .../RuntimeWorldProfileFactory.cs.meta | 2 - .../WorldGen/WorldAutotileAuthoringRoot.cs | 10 - .../WorldAutotileAuthoringRoot.cs.meta | 2 - .../WorldGen/WorldAutotileAuthoringSection.cs | 18 - .../WorldAutotileAuthoringSection.cs.meta | 2 - .../Scripts/WorldGen/WorldAutotileProfile.cs | 161 -- .../WorldGen/WorldAutotileProfile.cs.meta | 2 - Packages/manifest.json | 13 - Packages/packages-lock.json | 138 -- ProjectSettings/EditorBuildSettings.asset | 4 +- docs/tasks/items/TASK-0001.md | 16 +- docs/tasks/items/TASK-0002.md | 10 +- docs/tasks/items/TASK-0003.md | 14 +- docs/tasks/items/TASK-0004.md | 6 +- docs/tasks/items/TASK-0005.md | 4 +- docs/tasks/items/TASK-0006.md | 4 +- docs/tasks/items/TASK-0007.md | 4 +- docs/tasks/items/TASK-0008.md | 2 +- docs/tasks/items/TASK-0009.md | 2 +- docs/tasks/items/TASK-0010.md | 2 +- docs/tasks/items/TASK-0011.md | 2 +- docs/tasks/items/TASK-0012.md | 6 +- docs/tasks/items/TASK-0013.md | 4 +- docs/tasks/items/TASK-0014.md | 2 +- docs/tasks/items/TASK-0015.md | 2 +- docs/tasks/items/TASK-0016.md | 2 +- docs/tasks/items/TASK-0017.md | 2 +- docs/tasks/items/TASK-0018.md | 2 +- docs/tasks/items/TASK-0019.md | 4 +- docs/tasks/items/TASK-0020.md | 2 +- docs/tasks/items/TASK-0021.md | 8 +- docs/tasks/items/TASK-0022.md | 4 +- docs/tasks/items/TASK-0023.md | 2 +- docs/tasks/items/TASK-0024.md | 4 +- 121 files changed, 77 insertions(+), 6922 deletions(-) delete mode 100644 Assets/Data/ChunkTemplate.asset delete mode 100644 Assets/Data/ChunkTemplate.asset.meta delete mode 100644 Assets/Data/DefaultPrefabObjects.asset delete mode 100644 Assets/Data/DefaultPrefabObjects.asset.meta delete mode 100644 Assets/Data/WorldAutotileProfile.asset delete mode 100644 Assets/Data/WorldAutotileProfile.asset.meta delete mode 100644 Assets/Editor/Generated.meta delete mode 100644 Assets/Editor/Generated/WorldAutotileAuthoring.meta delete mode 100644 Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab delete mode 100644 Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab.meta delete mode 100644 Assets/Editor/Tasks/TaskBoardModels.cs.meta delete mode 100644 Assets/Editor/Tasks/TaskBoardOwnersConfig.cs.meta delete mode 100644 Assets/Editor/Tasks/TaskBoardService.cs.meta delete mode 100644 Assets/Editor/Tasks/TaskBoardWindow.cs.meta delete mode 100644 Assets/Editor/WorldAutotileEditorLabels.cs delete mode 100644 Assets/Editor/WorldAutotileEditorLabels.cs.meta delete mode 100644 Assets/Editor/WorldAutotileProfilePipeline.cs delete mode 100644 Assets/Editor/WorldAutotileProfilePipeline.cs.meta delete mode 100644 Assets/Editor/WorldGeneratorEditorWindow.cs delete mode 100644 Assets/Editor/WorldGeneratorEditorWindow.cs.meta rename Assets/{Scripts.meta => Features.meta} (100%) rename Assets/{Editor => Features}/Tasks.meta (100%) rename Assets/{ => Features/Tasks}/Editor.meta (100%) rename Assets/{Editor/Tasks => Features/Tasks/Editor}/TaskBoardModels.cs (100%) create mode 100644 Assets/Features/Tasks/Editor/TaskBoardModels.cs.meta rename Assets/{Editor/Tasks => Features/Tasks/Editor}/TaskBoardOwners.asset (100%) rename Assets/{Editor/Tasks => Features/Tasks/Editor}/TaskBoardOwners.asset.meta (100%) rename Assets/{Editor/Tasks => Features/Tasks/Editor}/TaskBoardOwnersConfig.cs (100%) create mode 100644 Assets/Features/Tasks/Editor/TaskBoardOwnersConfig.cs.meta rename Assets/{Editor/Tasks => Features/Tasks/Editor}/TaskBoardService.cs (99%) create mode 100644 Assets/Features/Tasks/Editor/TaskBoardService.cs.meta rename Assets/{Editor/Tasks => Features/Tasks/Editor}/TaskBoardWindow.cs (100%) create mode 100644 Assets/Features/Tasks/Editor/TaskBoardWindow.cs.meta rename Assets/{Scripts => Features}/VoxelWorld.meta (100%) rename Assets/{ => Features/VoxelWorld}/Data.meta (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelBiomeProfile 1.asset (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelBiomeProfile 1.asset.meta (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelBiomeProfile 2.asset (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelBiomeProfile 2.asset.meta (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelBiomeProfile.asset (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelBiomeProfile.asset.meta (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelWorldConfig.asset (100%) rename Assets/{ => Features/VoxelWorld}/Data/VoxelWorldConfig.asset.meta (100%) rename Assets/{Scripts => Features}/VoxelWorld/Runtime.meta (100%) rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef (100%) rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef.meta (100%) rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorldAtlas.cs (100%) create mode 100644 Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorldConfig.cs (100%) create mode 100644 Assets/Features/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs (100%) create mode 100644 Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs (100%) create mode 100644 Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs (100%) create mode 100644 Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta rename Assets/{Scripts => Features}/VoxelWorld/Runtime/VoxelWorldGenerator.cs (100%) create mode 100644 Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta rename Assets/{ => Features/VoxelWorld}/Scenes.meta (100%) rename Assets/{ => Features/VoxelWorld}/Scenes/VoxelWorldTestScene.unity (100%) rename Assets/{ => Features/VoxelWorld}/Scenes/VoxelWorldTestScene.unity.meta (100%) rename Assets/{ => Features/VoxelWorld}/Shaders.meta (100%) rename Assets/{ => Features/VoxelWorld}/Shaders/VoxelWorldTextureArrayUnlit.shader (100%) rename Assets/{ => Features/VoxelWorld}/Shaders/VoxelWorldTextureArrayUnlit.shader.meta (100%) delete mode 100644 Assets/Scenes/New Scene.unity delete mode 100644 Assets/Scenes/New Scene.unity.meta delete mode 100644 Assets/Scenes/SampleScene.unity delete mode 100644 Assets/Scenes/SampleScene.unity.meta delete mode 100644 Assets/Scripts/Player.meta delete mode 100644 Assets/Scripts/Player/CameraFollow2D.cs delete mode 100644 Assets/Scripts/Player/CameraFollow2D.cs.meta delete mode 100644 Assets/Scripts/Player/SimplePlayerInputMover.cs delete mode 100644 Assets/Scripts/Player/SimplePlayerInputMover.cs.meta delete mode 100644 Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta delete mode 100644 Assets/Scripts/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta delete mode 100644 Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta delete mode 100644 Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta delete mode 100644 Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta delete mode 100644 Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta delete mode 100644 Assets/Scripts/WorldGen.meta delete mode 100644 Assets/Scripts/WorldGen/ChunkTemplate.cs delete mode 100644 Assets/Scripts/WorldGen/ChunkTemplate.cs.meta delete mode 100644 Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs delete mode 100644 Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs.meta delete mode 100644 Assets/Scripts/WorldGen/ProceduralWorldArt.cs delete mode 100644 Assets/Scripts/WorldGen/ProceduralWorldArt.cs.meta delete mode 100644 Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs delete mode 100644 Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs.meta delete mode 100644 Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs delete mode 100644 Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs.meta delete mode 100644 Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs delete mode 100644 Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs.meta delete mode 100644 Assets/Scripts/WorldGen/WorldAutotileProfile.cs delete mode 100644 Assets/Scripts/WorldGen/WorldAutotileProfile.cs.meta diff --git a/Assets/Data/ChunkTemplate.asset b/Assets/Data/ChunkTemplate.asset deleted file mode 100644 index 3f73234e..00000000 --- a/Assets/Data/ChunkTemplate.asset +++ /dev/null @@ -1,533 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bae8eeae2da7d3f4396883671b297a47, type: 3} - m_Name: ChunkTemplate - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.ChunkTemplate - width: 16 - height: 16 - exitTop: 1 - exitRight: 1 - exitBottom: 1 - exitLeft: 1 - cells: - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 1 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 1 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 - - wall: 0 - environment: 0 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 1 - - wall: 0 - environment: 0 diff --git a/Assets/Data/ChunkTemplate.asset.meta b/Assets/Data/ChunkTemplate.asset.meta deleted file mode 100644 index 6e107aa4..00000000 --- a/Assets/Data/ChunkTemplate.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7b81ed0cda0a7d4468d5d9eba5be92dd -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Data/DefaultPrefabObjects.asset b/Assets/Data/DefaultPrefabObjects.asset deleted file mode 100644 index ec9afc82..00000000 --- a/Assets/Data/DefaultPrefabObjects.asset +++ /dev/null @@ -1,27 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3ad70174b079c2f4ebc7931d3dd1af6f, type: 3} - m_Name: DefaultPrefabObjects - m_EditorClassIdentifier: FishNet.Runtime::FishNet.Managing.Object.DefaultPrefabObjects - _prefabs: - - {fileID: 4512293259955182956, guid: fe2b65b02f0484b41aa8cfa9fbbb0e1d, type: 3} - - {fileID: 4512293259955182956, guid: 35639798ad77fc145871588b25d66259, type: 3} - - {fileID: 4512293259955182956, guid: 0d6d0f48b03b17f49a6340103cd9b9d0, type: 3} - - {fileID: 8475222101369129519, guid: 8cf33e8e99a9b0c4c8f29ff725650de6, type: 3} - - {fileID: 4512293259955182956, guid: dafef736ca1ae384e9a19eb672843563, type: 3} - - {fileID: 201277550, guid: 5b712878ecece354ba4ffb026c0a221c, type: 3} - - {fileID: 4512293259955182956, guid: b8017cef39731ba439c70fecc09488e3, type: 3} - - {fileID: 201277550, guid: 26a567abbe21227428f5c3d309d1d73c, type: 3} - - {fileID: 4512293259955182956, guid: 44611030e61220d42ab7c37ba3c0ea92, type: 3} - - {fileID: 8192566354860284824, guid: 6331b3542e64a564c81bc39cedf70c8d, type: 3} - - {fileID: 4512293259955182956, guid: f32d4c19de900e64cb73cedcb8ba6f70, type: 3} - - {fileID: 611616139817875448, guid: bf5f023b4017a5e41a9815ec5745df3d, type: 3} diff --git a/Assets/Data/DefaultPrefabObjects.asset.meta b/Assets/Data/DefaultPrefabObjects.asset.meta deleted file mode 100644 index 0fc68651..00000000 --- a/Assets/Data/DefaultPrefabObjects.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 84148460c5f94a24282a444e7d59caa0 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Data/WorldAutotileProfile.asset b/Assets/Data/WorldAutotileProfile.asset deleted file mode 100644 index 82a8032a..00000000 --- a/Assets/Data/WorldAutotileProfile.asset +++ /dev/null @@ -1,33 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e36b055e81273a54c8e736e2ef74fa50, type: 3} - m_Name: WorldAutotileProfile - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.WorldAutotileProfile - autoUpdatePaletteLayout: 1 - autoRefreshGeneratedWorld: 1 - baseGroundTile: {fileID: 11400000, guid: 1b38591c96c9fe1438fea88645b98a41, type: 2} - wallTiles: - center: {fileID: 11400000, guid: 713ec8ff4a309784eba7ea88b7457669, type: 2} - top: {fileID: 11400000, guid: b5cfb771eb6101240b093999b99fc473, type: 2} - right: {fileID: 11400000, guid: 29b9363549c8cc4429d9fbb7213b8563, type: 2} - bottom: {fileID: 11400000, guid: b9f53c50a59c33f4fa7bab1a3920344b, type: 2} - left: {fileID: 11400000, guid: 4863e6e00f95f73488ef648695bd5e75, type: 2} - outerTopLeft: {fileID: 11400000, guid: a5a2cf14bb9c7f34caf4da6c64d63518, type: 2} - outerTopRight: {fileID: 11400000, guid: beb1a6a9bd16d164687f4385d17bfb40, type: 2} - outerBottomRight: {fileID: 11400000, guid: 9439ca77b1904fd4aa4db0998ae75789, type: 2} - outerBottomLeft: {fileID: 11400000, guid: e0f8319bee70c66408939faa15001dce, type: 2} - innerTopLeft: {fileID: 11400000, guid: 700ff9913ced0d44398098338434403d, type: 2} - innerTopRight: {fileID: 11400000, guid: 6012404f47cddfe4b8e59eb8e40cf637, type: 2} - innerBottomRight: {fileID: 11400000, guid: 6e660d46a0c887242a9a90495a954311, type: 2} - innerBottomLeft: {fileID: 11400000, guid: 96184d199569aea46bdb6e3d5a7fa1f6, type: 2} - environmentTiles: [] - randomPrefabs: [] diff --git a/Assets/Data/WorldAutotileProfile.asset.meta b/Assets/Data/WorldAutotileProfile.asset.meta deleted file mode 100644 index c822d4bb..00000000 --- a/Assets/Data/WorldAutotileProfile.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0f4446a72229fc343a954821a70fefac -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Editor/Generated.meta b/Assets/Editor/Generated.meta deleted file mode 100644 index 3575d21c..00000000 --- a/Assets/Editor/Generated.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 36d3f51da8e6a734797f93d32dd6a32a -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Editor/Generated/WorldAutotileAuthoring.meta b/Assets/Editor/Generated/WorldAutotileAuthoring.meta deleted file mode 100644 index c9f7da49..00000000 --- a/Assets/Editor/Generated/WorldAutotileAuthoring.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1fadae35d0dcad7478e9716ea65762b4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab b/Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab deleted file mode 100644 index cf691146..00000000 --- a/Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab +++ /dev/null @@ -1,1967 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &3332309345379035 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8100089831643032439} - m_Layer: 0 - m_Name: Inner Bottom Left Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8100089831643032439 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3332309345379035} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 0.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &219326184725191098 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5181898276991944506} - m_Layer: 0 - m_Name: Bottom Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5181898276991944506 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 219326184725191098} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.5, y: 2.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &324710913327436277 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7018656312044110051} - - component: {fileID: 4588688142870640948} - - component: {fileID: 1139454152307087554} - m_Layer: 0 - m_Name: Walls - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7018656312044110051 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324710913327436277} - serializedVersion: 2 - 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: 1782227342170738941} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1839735485 &4588688142870640948 -Tilemap: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324710913327436277} - m_Enabled: 1 - m_Tiles: - - first: {x: 0, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 11 - m_TileSpriteIndex: 11 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 12 - m_TileSpriteIndex: 12 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 9 - m_TileSpriteIndex: 9 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 10 - m_TileSpriteIndex: 10 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 6 - m_TileSpriteIndex: 6 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 7 - m_TileSpriteIndex: 7 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 8 - m_TileSpriteIndex: 8 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 3 - m_TileSpriteIndex: 3 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 4 - m_TileSpriteIndex: 4 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 5 - m_TileSpriteIndex: 5 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 1 - m_TileSpriteIndex: 1 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 2 - m_TileSpriteIndex: 2 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - m_AnimatedTiles: {} - m_TileAssetArray: - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: a5a2cf14bb9c7f34caf4da6c64d63518, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: b5cfb771eb6101240b093999b99fc473, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: beb1a6a9bd16d164687f4385d17bfb40, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 4863e6e00f95f73488ef648695bd5e75, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 713ec8ff4a309784eba7ea88b7457669, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 29b9363549c8cc4429d9fbb7213b8563, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: e0f8319bee70c66408939faa15001dce, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: b9f53c50a59c33f4fa7bab1a3920344b, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 9439ca77b1904fd4aa4db0998ae75789, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 700ff9913ced0d44398098338434403d, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 6012404f47cddfe4b8e59eb8e40cf637, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 96184d199569aea46bdb6e3d5a7fa1f6, type: 2} - - m_RefCount: 1 - m_Data: {fileID: 11400000, guid: 6e660d46a0c887242a9a90495a954311, type: 2} - m_TileSpriteArray: - - m_RefCount: 1 - m_Data: {fileID: -1231740306, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 1001527189, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: -1484408973, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: -1756135338, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 270238645, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 1593933930, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: -1960247213, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 1243668911, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: -2138651752, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 450459717, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 1526522659, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: -1906753570, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - - m_RefCount: 1 - m_Data: {fileID: 163678914, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - m_TileMatrixArray: - - m_RefCount: 13 - m_Data: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_TileColorArray: - - m_RefCount: 13 - m_Data: {r: 1, g: 1, b: 1, a: 1} - m_TileObjectToInstantiateArray: [] - m_AnimationFrameRate: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: 0, y: 0, z: 0} - m_Size: {x: 3, y: 5, z: 1} - m_TileAnchor: {x: 0.5, y: 0.5, z: 0} - m_TileOrientation: 0 - m_TileOrientationMatrix: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 ---- !u!483693784 &1139454152307087554 -TilemapRenderer: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 324710913327436277} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 1 - m_MaskInteraction: 0 - m_ChunkSize: {x: 32, y: 32, z: 32} - m_ChunkCullingBounds: {x: 0, y: 0, z: 0} - m_MaxChunkCount: 16 - m_MaxFrameAge: 16 - m_SortOrder: 0 - m_Mode: 0 - m_DetectChunkCullingBounds: 0 ---- !u!1 &447752926564727765 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5087627680074969317} - - component: {fileID: 6859545635720421065} - m_Layer: 0 - m_Name: EnvironmentPalette - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5087627680074969317 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 447752926564727765} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4210539462267077319} - - {fileID: 1353607844807658922} - m_Father: {fileID: 7209093492604446950} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6859545635720421065 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 447752926564727765} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fbfe986c83f0c96419c804643d142e37, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.WorldAutotileAuthoringSection - sectionType: 2 - size: {x: 1, y: 1} ---- !u!1 &554797565184661839 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1855118829367910686} - m_Layer: 0 - m_Name: Workflow Label - m_TagString: Untagged - m_Icon: {fileID: 7250588514170254948, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1855118829367910686 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 554797565184661839} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5, y: 6.6, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &575198401801317751 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8235457897465750037} - m_Layer: 0 - m_Name: Wall Shapes Label - m_TagString: Untagged - m_Icon: {fileID: 3936346786652291628, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8235457897465750037 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 575198401801317751} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1, y: 5.6, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &766066510213460095 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3185292672011473580} - - component: {fileID: 768625369070954193} - - component: {fileID: 7466615317797646911} - m_Layer: 0 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3185292672011473580 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 766066510213460095} - serializedVersion: 2 - 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: 1782227342170738941} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1839735485 &768625369070954193 -Tilemap: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 766066510213460095} - m_Enabled: 1 - m_Tiles: - - first: {x: 0, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 3, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 4, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - m_AnimatedTiles: {} - m_TileAssetArray: - - m_RefCount: 15 - m_Data: {fileID: 11400000, guid: 1b38591c96c9fe1438fea88645b98a41, type: 2} - m_TileSpriteArray: - - m_RefCount: 15 - m_Data: {fileID: 307931324, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - m_TileMatrixArray: - - m_RefCount: 15 - m_Data: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_TileColorArray: - - m_RefCount: 15 - m_Data: {r: 1, g: 1, b: 1, a: 1} - m_TileObjectToInstantiateArray: [] - m_AnimationFrameRate: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: 0, y: 0, z: 0} - m_Size: {x: 3, y: 5, z: 1} - m_TileAnchor: {x: 0.5, y: 0.5, z: 0} - m_TileOrientation: 0 - m_TileOrientationMatrix: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 ---- !u!483693784 &7466615317797646911 -TilemapRenderer: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 766066510213460095} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_ChunkSize: {x: 32, y: 32, z: 32} - m_ChunkCullingBounds: {x: 0, y: 0, z: 0} - m_MaxChunkCount: 16 - m_MaxFrameAge: 16 - m_SortOrder: 0 - m_Mode: 0 - m_DetectChunkCullingBounds: 0 ---- !u!1 &820400522355221716 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7209093492604446950} - - component: {fileID: 1555758023591534156} - - component: {fileID: 4202068897487987538} - m_Layer: 0 - m_Name: WorldAutotileProfile_AuthoringLayout - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7209093492604446950 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 820400522355221716} - serializedVersion: 2 - 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: 2294209043969633763} - - {fileID: 1782227342170738941} - - {fileID: 7696025724523552396} - - {fileID: 5087627680074969317} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!156049354 &1555758023591534156 -Grid: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 820400522355221716} - m_Enabled: 1 - m_CellSize: {x: 1, y: 1, z: 1} - m_CellGap: {x: 0, y: 0, z: 0} - m_CellLayout: 0 - m_CellSwizzle: 0 ---- !u!114 &4202068897487987538 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 820400522355221716} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bbd0bbbd74f81084bb8661f761798856, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.WorldAutotileAuthoringRoot - profile: {fileID: 11400000, guid: 0f4446a72229fc343a954821a70fefac, type: 2} ---- !u!1 &958857820118599074 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5186373880938110570} - m_Layer: 0 - m_Name: Inner Top Left Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5186373880938110570 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 958857820118599074} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 1.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1511372812710729208 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4801147550124020018} - m_Layer: 0 - m_Name: Inner Top Right Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4801147550124020018 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1511372812710729208} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.5, y: 1.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1741340744906481878 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4210539462267077319} - - component: {fileID: 7651969548103932483} - - component: {fileID: 6219455915503216007} - m_Layer: 0 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4210539462267077319 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1741340744906481878} - serializedVersion: 2 - 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: 5087627680074969317} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1839735485 &7651969548103932483 -Tilemap: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1741340744906481878} - m_Enabled: 1 - m_Tiles: {} - m_AnimatedTiles: {} - m_TileAssetArray: [] - m_TileSpriteArray: [] - m_TileMatrixArray: [] - m_TileColorArray: [] - m_TileObjectToInstantiateArray: [] - m_AnimationFrameRate: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: 0, y: 0, z: 0} - m_Size: {x: 0, y: 0, z: 1} - m_TileAnchor: {x: 0.5, y: 0.5, z: 0} - m_TileOrientation: 0 - m_TileOrientationMatrix: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 ---- !u!483693784 &6219455915503216007 -TilemapRenderer: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1741340744906481878} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_ChunkSize: {x: 32, y: 32, z: 32} - m_ChunkCullingBounds: {x: 0, y: 0, z: 0} - m_MaxChunkCount: 16 - m_MaxFrameAge: 16 - m_SortOrder: 0 - m_Mode: 0 - m_DetectChunkCullingBounds: 0 ---- !u!1 &1988933406548772887 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1353607844807658922} - - component: {fileID: 703433064964785786} - - component: {fileID: 2105764806734491647} - m_Layer: 0 - m_Name: Environment - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1353607844807658922 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1988933406548772887} - serializedVersion: 2 - 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: 5087627680074969317} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1839735485 &703433064964785786 -Tilemap: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1988933406548772887} - m_Enabled: 1 - m_Tiles: {} - m_AnimatedTiles: {} - m_TileAssetArray: [] - m_TileSpriteArray: [] - m_TileMatrixArray: [] - m_TileColorArray: [] - m_TileObjectToInstantiateArray: [] - m_AnimationFrameRate: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: 0, y: 0, z: 0} - m_Size: {x: 0, y: 0, z: 1} - m_TileAnchor: {x: 0.5, y: 0.5, z: 0} - m_TileOrientation: 0 - m_TileOrientationMatrix: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 ---- !u!483693784 &2105764806734491647 -TilemapRenderer: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1988933406548772887} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 1 - m_MaskInteraction: 0 - m_ChunkSize: {x: 32, y: 32, z: 32} - m_ChunkCullingBounds: {x: 0, y: 0, z: 0} - m_MaxChunkCount: 16 - m_MaxFrameAge: 16 - m_SortOrder: 0 - m_Mode: 0 - m_DetectChunkCullingBounds: 0 ---- !u!1 &2370952700093442544 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3629014313526158595} - m_Layer: 0 - m_Name: Background Sample Label - m_TagString: Untagged - m_Icon: {fileID: 5721338939258241955, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3629014313526158595 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2370952700093442544} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 7, y: 3.6, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2393414961111633631 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1946264371735470669} - m_Layer: 0 - m_Name: Top Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1946264371735470669 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2393414961111633631} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.5, y: 4.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &3354525787708759188 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 339697004475794500} - m_Layer: 0 - m_Name: Left Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &339697004475794500 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3354525787708759188} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 3.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4074528589708691977 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2294209043969633763} - m_Layer: 0 - m_Name: Guides - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2294209043969633763 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4074528589708691977} - serializedVersion: 2 - 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: 1855118829367910686} - - {fileID: 8235457897465750037} - - {fileID: 44693017376846620} - - {fileID: 1946264371735470669} - - {fileID: 5715275777750677092} - - {fileID: 339697004475794500} - - {fileID: 2924372286533610795} - - {fileID: 8974187262419820811} - - {fileID: 644485539281555970} - - {fileID: 5181898276991944506} - - {fileID: 6610814864451150029} - - {fileID: 5186373880938110570} - - {fileID: 4801147550124020018} - - {fileID: 8100089831643032439} - - {fileID: 8718634386249342524} - - {fileID: 3629014313526158595} - - {fileID: 1550572656415339219} - m_Father: {fileID: 7209093492604446950} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4755075231159621623 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2014204079833004361} - - component: {fileID: 8186604291242139729} - - component: {fileID: 8954740210973217527} - m_Layer: 0 - m_Name: Background - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2014204079833004361 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4755075231159621623} - serializedVersion: 2 - 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: 7696025724523552396} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1839735485 &8186604291242139729 -Tilemap: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4755075231159621623} - m_Enabled: 1 - m_Tiles: - - first: {x: 0, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: 0, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: 1, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 0, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 1, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 2, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 3, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - - first: {x: 4, y: 2, z: 0} - second: - serializedVersion: 2 - m_TileIndex: 0 - m_TileSpriteIndex: 0 - m_TileMatrixIndex: 0 - m_TileColorIndex: 0 - m_TileObjectToInstantiateIndex: 65535 - dummyAlignment: 0 - m_AllTileFlags: 1073741825 - m_AnimatedTiles: {} - m_TileAssetArray: - - m_RefCount: 15 - m_Data: {fileID: 11400000, guid: 1b38591c96c9fe1438fea88645b98a41, type: 2} - m_TileSpriteArray: - - m_RefCount: 15 - m_Data: {fileID: 307931324, guid: 577888f9a093e794584bfdcecb0bbc82, type: 3} - m_TileMatrixArray: - - m_RefCount: 15 - m_Data: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_TileColorArray: - - m_RefCount: 15 - m_Data: {r: 1, g: 1, b: 1, a: 1} - m_TileObjectToInstantiateArray: [] - m_AnimationFrameRate: 1 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Origin: {x: 0, y: 0, z: 0} - m_Size: {x: 5, y: 3, z: 1} - m_TileAnchor: {x: 0.5, y: 0.5, z: 0} - m_TileOrientation: 0 - m_TileOrientationMatrix: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 ---- !u!483693784 &8954740210973217527 -TilemapRenderer: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4755075231159621623} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 0 - m_ReflectionProbeUsage: 0 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_ChunkSize: {x: 32, y: 32, z: 32} - m_ChunkCullingBounds: {x: 0, y: 0, z: 0} - m_MaxChunkCount: 16 - m_MaxFrameAge: 16 - m_SortOrder: 0 - m_Mode: 0 - m_DetectChunkCullingBounds: 0 ---- !u!1 &4878832498902313110 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8974187262419820811} - m_Layer: 0 - m_Name: Right Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8974187262419820811 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4878832498902313110} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.5, y: 3.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6241695396418944405 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 44693017376846620} - m_Layer: 0 - m_Name: Outer Top Left Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &44693017376846620 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6241695396418944405} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 4.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6629864262852646551 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1782227342170738941} - - component: {fileID: 8885071201730161662} - m_Layer: 0 - m_Name: WallShapes - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1782227342170738941 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6629864262852646551} - serializedVersion: 2 - 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: 3185292672011473580} - - {fileID: 7018656312044110051} - m_Father: {fileID: 7209093492604446950} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &8885071201730161662 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6629864262852646551} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fbfe986c83f0c96419c804643d142e37, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.WorldAutotileAuthoringSection - sectionType: 0 - size: {x: 3, y: 5} ---- !u!1 &7562251523783572086 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1550572656415339219} - m_Layer: 0 - m_Name: Environment Palette Label - m_TagString: Untagged - m_Icon: {fileID: 419385456094870383, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1550572656415339219 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7562251523783572086} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -1.4, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8115011058903866667 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2924372286533610795} - m_Layer: 0 - m_Name: Center Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2924372286533610795 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8115011058903866667} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 1.5, y: 3.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8368213420049578931 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6610814864451150029} - m_Layer: 0 - m_Name: Outer Bottom Right Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6610814864451150029 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8368213420049578931} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.5, y: 2.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &8734449264694643795 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8718634386249342524} - m_Layer: 0 - m_Name: Inner Bottom Right Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8718634386249342524 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8734449264694643795} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.5, y: 0.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9049348121392585648 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5715275777750677092} - m_Layer: 0 - m_Name: Outer Top Right Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5715275777750677092 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9049348121392585648} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 2.5, y: 4.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &9161552199127341478 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7696025724523552396} - - component: {fileID: 6484730513025180859} - m_Layer: 0 - m_Name: BackgroundSample - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7696025724523552396 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9161552199127341478} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 2014204079833004361} - m_Father: {fileID: 7209093492604446950} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &6484730513025180859 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9161552199127341478} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fbfe986c83f0c96419c804643d142e37, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.WorldAutotileAuthoringSection - sectionType: 1 - size: {x: 5, y: 3} ---- !u!1 &9206040049079814992 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 644485539281555970} - m_Layer: 0 - m_Name: Outer Bottom Left Label - m_TagString: Untagged - m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &644485539281555970 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 9206040049079814992} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0.5, y: 2.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2294209043969633763} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab.meta b/Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab.meta deleted file mode 100644 index 806409fa..00000000 --- a/Assets/Editor/Generated/WorldAutotileAuthoring/WorldAutotileProfile_AuthoringLayout.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 41de4e97ebade7a4a8e018f68bde560e -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Editor/Tasks/TaskBoardModels.cs.meta b/Assets/Editor/Tasks/TaskBoardModels.cs.meta deleted file mode 100644 index 2773bf57..00000000 --- a/Assets/Editor/Tasks/TaskBoardModels.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 4716897eb71185742ad590f2a59df8e3 \ No newline at end of file diff --git a/Assets/Editor/Tasks/TaskBoardOwnersConfig.cs.meta b/Assets/Editor/Tasks/TaskBoardOwnersConfig.cs.meta deleted file mode 100644 index 6f5cf584..00000000 --- a/Assets/Editor/Tasks/TaskBoardOwnersConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: acfa62607cc78b8499e371559154647f \ No newline at end of file diff --git a/Assets/Editor/Tasks/TaskBoardService.cs.meta b/Assets/Editor/Tasks/TaskBoardService.cs.meta deleted file mode 100644 index 9d496550..00000000 --- a/Assets/Editor/Tasks/TaskBoardService.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: da90adbe6fa0acb429453d3550e18961 \ No newline at end of file diff --git a/Assets/Editor/Tasks/TaskBoardWindow.cs.meta b/Assets/Editor/Tasks/TaskBoardWindow.cs.meta deleted file mode 100644 index dcf38950..00000000 --- a/Assets/Editor/Tasks/TaskBoardWindow.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 5203f967846df5f43baaa0a3ba2e2d5b \ No newline at end of file diff --git a/Assets/Editor/WorldAutotileEditorLabels.cs b/Assets/Editor/WorldAutotileEditorLabels.cs deleted file mode 100644 index 3814ba32..00000000 --- a/Assets/Editor/WorldAutotileEditorLabels.cs +++ /dev/null @@ -1,75 +0,0 @@ -namespace InfiniteWorld.Editor -{ - internal static class WorldAutotileEditorLabels - { - public static string GetShapeLabel(AutoTileShape shape) - { - switch (shape) - { - case AutoTileShape.Center: - return "Center"; - case AutoTileShape.Top: - return "Top"; - case AutoTileShape.Right: - return "Right"; - case AutoTileShape.Bottom: - return "Bottom"; - case AutoTileShape.Left: - return "Left"; - case AutoTileShape.OuterTopLeft: - return "Outer Top Left"; - case AutoTileShape.OuterTopRight: - return "Outer Top Right"; - case AutoTileShape.OuterBottomRight: - return "Outer Bottom Right"; - case AutoTileShape.OuterBottomLeft: - return "Outer Bottom Left"; - case AutoTileShape.InnerTopLeft: - return "Inner Top Left"; - case AutoTileShape.InnerTopRight: - return "Inner Top Right"; - case AutoTileShape.InnerBottomRight: - return "Inner Bottom Right"; - case AutoTileShape.InnerBottomLeft: - return "Inner Bottom Left"; - default: - return shape.ToString(); - } - } - - public static string GetPropertyName(AutoTileShape shape) - { - switch (shape) - { - case AutoTileShape.Center: - return "center"; - case AutoTileShape.Top: - return "top"; - case AutoTileShape.Right: - return "right"; - case AutoTileShape.Bottom: - return "bottom"; - case AutoTileShape.Left: - return "left"; - case AutoTileShape.OuterTopLeft: - return "outerTopLeft"; - case AutoTileShape.OuterTopRight: - return "outerTopRight"; - case AutoTileShape.OuterBottomRight: - return "outerBottomRight"; - case AutoTileShape.OuterBottomLeft: - return "outerBottomLeft"; - case AutoTileShape.InnerTopLeft: - return "innerTopLeft"; - case AutoTileShape.InnerTopRight: - return "innerTopRight"; - case AutoTileShape.InnerBottomRight: - return "innerBottomRight"; - case AutoTileShape.InnerBottomLeft: - return "innerBottomLeft"; - default: - return string.Empty; - } - } - } -} diff --git a/Assets/Editor/WorldAutotileEditorLabels.cs.meta b/Assets/Editor/WorldAutotileEditorLabels.cs.meta deleted file mode 100644 index 781b676d..00000000 --- a/Assets/Editor/WorldAutotileEditorLabels.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 7f9b9a3347cfc82428971840cb651f99 \ No newline at end of file diff --git a/Assets/Editor/WorldAutotileProfilePipeline.cs b/Assets/Editor/WorldAutotileProfilePipeline.cs deleted file mode 100644 index 7ca9158f..00000000 --- a/Assets/Editor/WorldAutotileProfilePipeline.cs +++ /dev/null @@ -1,642 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using UnityEditor; -using UnityEngine; -using UnityEngine.Tilemaps; - -namespace InfiniteWorld.Editor -{ - [InitializeOnLoad] - public static class WorldAutotileProfilePipeline - { - private const string AuthoringLayoutFolder = "Assets/Editor/Generated/WorldAutotileAuthoring"; - - private static readonly AutoTileShape[] WallShapeOrder = - { - AutoTileShape.OuterTopLeft, - AutoTileShape.Top, - AutoTileShape.OuterTopRight, - AutoTileShape.Left, - AutoTileShape.Center, - AutoTileShape.Right, - AutoTileShape.OuterBottomLeft, - AutoTileShape.Bottom, - AutoTileShape.OuterBottomRight, - AutoTileShape.InnerTopLeft, - AutoTileShape.InnerTopRight, - AutoTileShape.InnerBottomLeft, - AutoTileShape.InnerBottomRight - }; - - private static readonly Vector3Int[] WallShapePositions = - { - new Vector3Int(0, 4, 0), - new Vector3Int(1, 4, 0), - new Vector3Int(2, 4, 0), - new Vector3Int(0, 3, 0), - new Vector3Int(1, 3, 0), - new Vector3Int(2, 3, 0), - new Vector3Int(0, 2, 0), - new Vector3Int(1, 2, 0), - new Vector3Int(2, 2, 0), - new Vector3Int(0, 1, 0), - new Vector3Int(2, 1, 0), - new Vector3Int(0, 0, 0), - new Vector3Int(2, 0, 0) - }; - - private static readonly HashSet PendingProfilePaths = new HashSet(); - private static readonly MethodInfo SetIconForObjectMethod = typeof(EditorGUIUtility).GetMethod("SetIconForObject", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public); - private static bool refreshQueued; - - static WorldAutotileProfilePipeline() - { - AssemblyReloadEvents.beforeAssemblyReload += ClearQueue; - EditorApplication.projectChanged += QueueAllProfilesRefresh; - } - - public static void QueueProfileRefresh(WorldAutotileProfile profile) - { - if (profile == null) - { - return; - } - - string path = AssetDatabase.GetAssetPath(profile); - if (string.IsNullOrEmpty(path)) - { - return; - } - - PendingProfilePaths.Add(path); - if (refreshQueued) - { - return; - } - - refreshQueued = true; - EditorApplication.delayCall += ProcessPendingProfiles; - } - - public static string GetAuthoringLayoutPath(WorldAutotileProfile profile) - { - return AuthoringLayoutFolder + "/" + profile.name + "_AuthoringLayout.prefab"; - } - - public static GameObject LoadAuthoringLayoutAsset(WorldAutotileProfile profile) - { - if (profile == null) - { - return null; - } - - return AssetDatabase.LoadAssetAtPath(GetAuthoringLayoutPath(profile)); - } - - public static void GenerateAuthoringLayout(WorldAutotileProfile profile, bool pingAsset = true) - { - if (profile == null) - { - return; - } - - EnsureFolderExists(AuthoringLayoutFolder); - string path = GetAuthoringLayoutPath(profile); - DeleteExistingAuthoringLayout(path); - - GameObject root = BuildAuthoringLayoutRoot(profile); - PrefabUtility.SaveAsPrefabAsset(root, path); - Object.DestroyImmediate(root); - - AssetDatabase.SaveAssets(); - AssetDatabase.Refresh(); - - if (!pingAsset) - { - return; - } - - GameObject layout = AssetDatabase.LoadAssetAtPath(path); - if (layout != null) - { - EditorGUIUtility.PingObject(layout); - Selection.activeObject = layout; - } - } - - public static bool BuildProfileFromAuthoringLayout(WorldAutotileProfile profile, bool pingProfile = true) - { - if (profile == null) - { - return false; - } - - string path = GetAuthoringLayoutPath(profile); - if (!System.IO.File.Exists(path)) - { - Debug.LogWarning($"Authoring layout was not found for profile '{profile.name}' at '{path}'."); - return false; - } - - GameObject prefabRoot = PrefabUtility.LoadPrefabContents(path); - try - { - Undo.RecordObject(profile, "Build World Autotile Profile From Layout"); - if (!TryBuildProfileFromLayout(prefabRoot, profile, out string error)) - { - Debug.LogError(error); - return false; - } - - EditorUtility.SetDirty(profile); - AssetDatabase.SaveAssets(); - - if (pingProfile) - { - EditorGUIUtility.PingObject(profile); - Selection.activeObject = profile; - } - - if (profile.autoRefreshGeneratedWorld && Application.isPlaying) - { - RefreshActiveGenerators(profile); - } - - return true; - } - finally - { - PrefabUtility.UnloadPrefabContents(prefabRoot); - } - } - - private static void ProcessPendingProfiles() - { - refreshQueued = false; - if (EditorApplication.isCompiling || EditorApplication.isUpdating) - { - if (PendingProfilePaths.Count > 0) - { - refreshQueued = true; - EditorApplication.delayCall += ProcessPendingProfiles; - } - - return; - } - - string[] paths = new string[PendingProfilePaths.Count]; - PendingProfilePaths.CopyTo(paths); - PendingProfilePaths.Clear(); - - for (int i = 0; i < paths.Length; i++) - { - WorldAutotileProfile profile = AssetDatabase.LoadAssetAtPath(paths[i]); - if (profile == null || !profile.autoUpdatePaletteLayout) - { - continue; - } - - if (LoadAuthoringLayoutAsset(profile) == null) - { - GenerateAuthoringLayout(profile, false); - } - } - } - - private static GameObject BuildAuthoringLayoutRoot(WorldAutotileProfile profile) - { - GameObject root = new GameObject(profile.name + "_AuthoringLayout", typeof(Grid), typeof(WorldAutotileAuthoringRoot)); - WorldAutotileAuthoringRoot rootMarker = root.GetComponent(); - rootMarker.profile = profile; - - Transform guidesRoot = new GameObject("Guides").transform; - guidesRoot.SetParent(root.transform, false); - CreateGuideLabel(guidesRoot, "Workflow Label", new Vector3(5f, 6.6f, 0f), "sv_label_0"); - - Transform wallSection = CreateSection(root.transform, "WallShapes", WorldAutotileAuthoringSectionType.WallShapes, new Vector3(0f, 0f, 0f), new Vector2Int(3, 5)); - Tilemap wallBackground = CreateTilemap(wallSection, "Background", 0); - Tilemap wallTiles = CreateTilemap(wallSection, "Walls", 1); - PopulateWallSection(profile, wallBackground, wallTiles); - CreateGuideLabel(guidesRoot, "Wall Shapes Label", wallSection.localPosition + new Vector3(1f, 5.6f, 0f), "sv_label_3"); - CreateWallShapeLabels(guidesRoot, wallSection.localPosition, "sv_label_6"); - - Transform backgroundSection = CreateSection(root.transform, "BackgroundSample", WorldAutotileAuthoringSectionType.BackgroundSample, new Vector3(5f, 0f, 0f), new Vector2Int(5, 3)); - Tilemap backgroundTilemap = CreateTilemap(backgroundSection, "Background", 0); - PopulateBackgroundSection(profile, backgroundTilemap); - CreateGuideLabel(guidesRoot, "Background Sample Label", backgroundSection.localPosition + new Vector3(2f, 3.6f, 0f), "sv_label_4"); - - int environmentWidth = Mathf.Max(1, CountAssignedEnvironmentTiles(profile)); - Transform environmentSection = CreateSection(root.transform, "EnvironmentPalette", WorldAutotileAuthoringSectionType.EnvironmentPalette, new Vector3(0f, -3f, 0f), new Vector2Int(environmentWidth, 1)); - Tilemap environmentBackground = CreateTilemap(environmentSection, "Background", 0); - Tilemap environmentTilemap = CreateTilemap(environmentSection, "Environment", 1); - PopulateEnvironmentSection(profile, environmentBackground, environmentTilemap); - float environmentCenterX = Mathf.Max(0f, (environmentWidth - 1) * 0.5f); - CreateGuideLabel(guidesRoot, "Environment Palette Label", environmentSection.localPosition + new Vector3(environmentCenterX, 1.6f, 0f), "sv_label_2"); - - return root; - } - - private static Transform CreateSection(Transform parent, string name, WorldAutotileAuthoringSectionType sectionType, Vector3 localPosition, Vector2Int size) - { - GameObject section = new GameObject(name, typeof(WorldAutotileAuthoringSection)); - section.transform.SetParent(parent, false); - section.transform.localPosition = localPosition; - - WorldAutotileAuthoringSection marker = section.GetComponent(); - marker.sectionType = sectionType; - marker.size = size; - return section.transform; - } - - private static void CreateGuideLabel(Transform parent, string labelName, Vector3 position, string iconName) - { - GameObject label = new GameObject(labelName); - label.transform.SetParent(parent, false); - label.transform.localPosition = position; - SetIconForObject(label, iconName); - } - - private static void CreateWallShapeLabels(Transform parent, Vector3 sectionPosition, string iconName) - { - for (int i = 0; i < WallShapeOrder.Length; i++) - { - Vector3Int cell = WallShapePositions[i]; - string label = WorldAutotileEditorLabels.GetShapeLabel(WallShapeOrder[i]) + " Label"; - Vector3 position = sectionPosition + new Vector3(cell.x + 0.5f, cell.y + 0.5f, 0f); - CreateGuideLabel(parent, label, position, iconName); - } - } - - private static void PopulateWallSection(WorldAutotileProfile profile, Tilemap backgroundTilemap, Tilemap wallsTilemap) - { - TileBase background = profile.baseGroundTile; - for (int i = 0; i < WallShapeOrder.Length; i++) - { - Vector3Int position = WallShapePositions[i]; - if (background != null) - { - backgroundTilemap.SetTile(position, background); - } - - TileBase wallTile = profile.wallTiles != null ? profile.wallTiles.GetAssignedTile(WallShapeOrder[i]) : null; - if (wallTile != null) - { - wallsTilemap.SetTile(position, wallTile); - } - } - - if (background != null) - { - backgroundTilemap.SetTile(new Vector3Int(1, 1, 0), background); - backgroundTilemap.SetTile(new Vector3Int(1, 0, 0), background); - } - } - - private static void PopulateBackgroundSection(WorldAutotileProfile profile, Tilemap backgroundTilemap) - { - if (profile.baseGroundTile == null) - { - return; - } - - for (int x = 0; x < 5; x++) - { - for (int y = 0; y < 3; y++) - { - backgroundTilemap.SetTile(new Vector3Int(x, y, 0), profile.baseGroundTile); - } - } - } - - private static void PopulateEnvironmentSection(WorldAutotileProfile profile, Tilemap backgroundTilemap, Tilemap environmentTilemap) - { - if (profile.environmentTiles == null) - { - return; - } - - int x = 0; - for (int i = 0; i < profile.environmentTiles.Count; i++) - { - EnvironmentTileEntry entry = profile.environmentTiles[i]; - if (entry == null || entry.tile == null) - { - continue; - } - - Vector3Int position = new Vector3Int(x, 0, 0); - if (profile.baseGroundTile != null) - { - backgroundTilemap.SetTile(position, profile.baseGroundTile); - } - - environmentTilemap.SetTile(position, entry.tile); - x++; - } - } - - private static Tilemap CreateTilemap(Transform parent, string name, int sortingOrder) - { - GameObject child = new GameObject(name, typeof(Tilemap), typeof(TilemapRenderer)); - child.transform.SetParent(parent, false); - TilemapRenderer renderer = child.GetComponent(); - renderer.sortingOrder = sortingOrder; - return child.GetComponent(); - } - - private static bool TryBuildProfileFromLayout(GameObject prefabRoot, WorldAutotileProfile profile, out string error) - { - error = null; - - if (prefabRoot == null) - { - error = "Could not load authoring layout prefab contents."; - return false; - } - - WorldAutotileAuthoringRoot rootMarker = prefabRoot.GetComponent(); - if (rootMarker == null) - { - error = $"Authoring layout '{prefabRoot.name}' is missing {nameof(WorldAutotileAuthoringRoot)}."; - return false; - } - - if (rootMarker.profile != null && rootMarker.profile != profile) - { - error = $"Authoring layout '{prefabRoot.name}' is linked to profile '{rootMarker.profile.name}', not '{profile.name}'."; - return false; - } - - WorldAutotileAuthoringSection wallSection = FindSection(prefabRoot, WorldAutotileAuthoringSectionType.WallShapes); - WorldAutotileAuthoringSection backgroundSection = FindSection(prefabRoot, WorldAutotileAuthoringSectionType.BackgroundSample); - WorldAutotileAuthoringSection environmentSection = FindSection(prefabRoot, WorldAutotileAuthoringSectionType.EnvironmentPalette); - - if (wallSection == null || backgroundSection == null || environmentSection == null) - { - error = $"Authoring layout '{prefabRoot.name}' is missing one or more required section markers."; - return false; - } - - Tilemap wallTilemap = FindTilemap(wallSection.transform, "Walls"); - Tilemap backgroundTilemap = FindTilemap(backgroundSection.transform, "Background"); - Tilemap environmentTilemap = FindTilemap(environmentSection.transform, "Environment"); - - if (wallTilemap == null || backgroundTilemap == null || environmentTilemap == null) - { - error = $"Authoring layout '{prefabRoot.name}' is missing one or more required tilemaps."; - return false; - } - - profile.baseGroundTile = FindFirstTile(backgroundTilemap, backgroundSection.size); - profile.wallTiles = ExtractWallTiles(wallTilemap); - profile.environmentTiles = ExtractEnvironmentTiles(environmentTilemap, environmentSection.size, profile.environmentTiles); - return true; - } - - private static WorldAutotileAuthoringSection FindSection(GameObject root, WorldAutotileAuthoringSectionType sectionType) - { - WorldAutotileAuthoringSection[] sections = root.GetComponentsInChildren(true); - for (int i = 0; i < sections.Length; i++) - { - if (sections[i].sectionType == sectionType) - { - return sections[i]; - } - } - - return null; - } - - private static Tilemap FindTilemap(Transform root, string name) - { - Transform child = root.Find(name); - return child != null ? child.GetComponent() : null; - } - - private static TileBase FindFirstTile(Tilemap tilemap, Vector2Int size) - { - for (int y = 0; y < Mathf.Max(1, size.y); y++) - { - for (int x = 0; x < Mathf.Max(1, size.x); x++) - { - TileBase tile = tilemap.GetTile(new Vector3Int(x, y, 0)); - if (tile != null) - { - return tile; - } - } - } - - return null; - } - - private static AutoTileDefinition ExtractWallTiles(Tilemap wallTilemap) - { - AutoTileDefinition definition = new AutoTileDefinition(); - for (int i = 0; i < WallShapeOrder.Length; i++) - { - AssignWallTile(definition, WallShapeOrder[i], wallTilemap.GetTile(WallShapePositions[i])); - } - - return definition; - } - - private static void AssignWallTile(AutoTileDefinition definition, AutoTileShape shape, TileBase tile) - { - switch (shape) - { - case AutoTileShape.Center: - definition.center = tile; - break; - case AutoTileShape.Top: - definition.top = tile; - break; - case AutoTileShape.Right: - definition.right = tile; - break; - case AutoTileShape.Bottom: - definition.bottom = tile; - break; - case AutoTileShape.Left: - definition.left = tile; - break; - case AutoTileShape.OuterTopLeft: - definition.outerTopLeft = tile; - break; - case AutoTileShape.OuterTopRight: - definition.outerTopRight = tile; - break; - case AutoTileShape.OuterBottomRight: - definition.outerBottomRight = tile; - break; - case AutoTileShape.OuterBottomLeft: - definition.outerBottomLeft = tile; - break; - case AutoTileShape.InnerTopLeft: - definition.innerTopLeft = tile; - break; - case AutoTileShape.InnerTopRight: - definition.innerTopRight = tile; - break; - case AutoTileShape.InnerBottomRight: - definition.innerBottomRight = tile; - break; - case AutoTileShape.InnerBottomLeft: - definition.innerBottomLeft = tile; - break; - } - } - - private static List ExtractEnvironmentTiles(Tilemap tilemap, Vector2Int size, List previousEntries) - { - List entries = new List(); - for (int y = 0; y < Mathf.Max(1, size.y); y++) - { - for (int x = 0; x < Mathf.Max(1, size.x); x++) - { - TileBase tile = tilemap.GetTile(new Vector3Int(x, y, 0)); - if (tile == null || ContainsEnvironmentTile(entries, tile)) - { - continue; - } - - EnvironmentTileEntry existing = FindEnvironmentEntry(previousEntries, tile); - entries.Add(new EnvironmentTileEntry - { - id = existing != null && !string.IsNullOrWhiteSpace(existing.id) ? existing.id : tile.name, - tile = tile, - weight = existing != null ? existing.weight : 1f - }); - } - } - - return entries; - } - - private static bool ContainsEnvironmentTile(List entries, TileBase tile) - { - for (int i = 0; i < entries.Count; i++) - { - if (entries[i] != null && entries[i].tile == tile) - { - return true; - } - } - - return false; - } - - private static EnvironmentTileEntry FindEnvironmentEntry(List entries, TileBase tile) - { - if (entries == null) - { - return null; - } - - for (int i = 0; i < entries.Count; i++) - { - if (entries[i] != null && entries[i].tile == tile) - { - return entries[i]; - } - } - - return null; - } - - private static int CountAssignedEnvironmentTiles(WorldAutotileProfile profile) - { - if (profile.environmentTiles == null) - { - return 0; - } - - int count = 0; - for (int i = 0; i < profile.environmentTiles.Count; i++) - { - if (profile.environmentTiles[i] != null && profile.environmentTiles[i].tile != null) - { - count++; - } - } - - return count; - } - - private static void DeleteExistingAuthoringLayout(string path) - { - if (!File.Exists(path)) - { - return; - } - - AssetDatabase.DeleteAsset(path); - } - - private static void SetIconForObject(GameObject gameObject, string iconName) - { - if (gameObject == null || SetIconForObjectMethod == null) - { - return; - } - - Texture2D icon = EditorGUIUtility.IconContent(iconName).image as Texture2D; - if (icon == null) - { - return; - } - - SetIconForObjectMethod.Invoke(null, new object[] { gameObject, icon }); - } - - private static void RefreshActiveGenerators(WorldAutotileProfile profile) - { - InfiniteWorldGenerator[] generators = Object.FindObjectsByType(FindObjectsSortMode.None); - for (int i = 0; i < generators.Length; i++) - { - InfiniteWorldGenerator generator = generators[i]; - if (generator != null && generator.UsesProfile(profile)) - { - generator.EditorRefreshFromProfile(); - } - } - } - - private static void EnsureFolderExists(string assetFolder) - { - string[] parts = assetFolder.Split('/'); - string current = parts[0]; - for (int i = 1; i < parts.Length; i++) - { - string next = current + "/" + parts[i]; - if (!AssetDatabase.IsValidFolder(next)) - { - AssetDatabase.CreateFolder(current, parts[i]); - } - - current = next; - } - } - - private static void ClearQueue() - { - PendingProfilePaths.Clear(); - refreshQueued = false; - } - - private static void QueueAllProfilesRefresh() - { - string[] guids = AssetDatabase.FindAssets("t:WorldAutotileProfile"); - for (int i = 0; i < guids.Length; i++) - { - string path = AssetDatabase.GUIDToAssetPath(guids[i]); - WorldAutotileProfile profile = AssetDatabase.LoadAssetAtPath(path); - if (profile != null) - { - QueueProfileRefresh(profile); - } - } - } - } -} diff --git a/Assets/Editor/WorldAutotileProfilePipeline.cs.meta b/Assets/Editor/WorldAutotileProfilePipeline.cs.meta deleted file mode 100644 index f7700fd0..00000000 --- a/Assets/Editor/WorldAutotileProfilePipeline.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 24d3fe24380362140ab8b0a89ecb61e4 \ No newline at end of file diff --git a/Assets/Editor/WorldGeneratorEditorWindow.cs b/Assets/Editor/WorldGeneratorEditorWindow.cs deleted file mode 100644 index dc641e10..00000000 --- a/Assets/Editor/WorldGeneratorEditorWindow.cs +++ /dev/null @@ -1,281 +0,0 @@ -using System.Collections.Generic; -using UnityEditor; -using UnityEngine; - -namespace InfiniteWorld.Editor -{ - public class WorldGeneratorEditorWindow : EditorWindow - { - private static readonly AutoTileShape[] WallShapeOrder = - { - AutoTileShape.OuterTopLeft, - AutoTileShape.Top, - AutoTileShape.OuterTopRight, - AutoTileShape.Left, - AutoTileShape.Center, - AutoTileShape.Right, - AutoTileShape.OuterBottomLeft, - AutoTileShape.Bottom, - AutoTileShape.OuterBottomRight, - AutoTileShape.InnerTopLeft, - AutoTileShape.InnerTopRight, - AutoTileShape.InnerBottomLeft, - AutoTileShape.InnerBottomRight - }; - - private WorldAutotileProfile profile; - private SerializedObject serializedProfile; - private Vector2 scroll; - - [MenuItem("Tools/Infinite World/World Builder")] - public static void Open() - { - GetWindow("World Builder"); - } - - private void OnGUI() - { - DrawToolbar(); - EditorGUILayout.Space(6f); - - if (profile == null) - { - EditorGUILayout.HelpBox("Assign or create a WorldAutotileProfile. The workflow is: create the authoring layout prefab, edit tiles inside that grid, then build the final profile back from the layout.", MessageType.Info); - return; - } - - if (serializedProfile == null || serializedProfile.targetObject != profile) - { - serializedProfile = new SerializedObject(profile); - } - - serializedProfile.Update(); - scroll = EditorGUILayout.BeginScrollView(scroll); - - DrawPaletteTools(); - EditorGUILayout.Space(8f); - DrawValidation(); - EditorGUILayout.Space(8f); - DrawProfileFields(); - - EditorGUILayout.EndScrollView(); - serializedProfile.ApplyModifiedProperties(); - - if (GUI.changed) - { - EditorUtility.SetDirty(profile); - WorldAutotileProfilePipeline.QueueProfileRefresh(profile); - } - } - - private void DrawToolbar() - { - EditorGUILayout.BeginHorizontal(EditorStyles.toolbar); - profile = (WorldAutotileProfile)EditorGUILayout.ObjectField(profile, typeof(WorldAutotileProfile), false, GUILayout.Width(position.width * 0.55f)); - - if (GUILayout.Button("New Profile", EditorStyles.toolbarButton, GUILayout.Width(90f))) - { - CreateProfileAsset(); - } - - using (new EditorGUI.DisabledScope(profile == null)) - { - if (GUILayout.Button("Create Authoring Layout", EditorStyles.toolbarButton, GUILayout.Width(155f))) - { - WorldAutotileProfilePipeline.GenerateAuthoringLayout(profile); - } - } - - EditorGUILayout.EndHorizontal(); - } - - private void DrawPaletteTools() - { - EditorGUILayout.LabelField("Palette Tools", EditorStyles.boldLabel); - EditorGUILayout.BeginVertical("box"); - - EditorGUILayout.HelpBox("Create Authoring Layout builds a temporary editor-only prefab with marked grid sections. Edit tiles there, then use Build Profile From Layout to write the final WorldAutotileProfile.", MessageType.None); - - EditorGUILayout.PropertyField(serializedProfile.FindProperty("autoUpdatePaletteLayout"), new GUIContent("Auto Update Authoring Layout")); - EditorGUILayout.PropertyField(serializedProfile.FindProperty("autoRefreshGeneratedWorld"), new GUIContent("Auto Refresh Generated World")); - - EditorGUILayout.BeginHorizontal(); - if (GUILayout.Button("Create / Update Layout")) - { - WorldAutotileProfilePipeline.GenerateAuthoringLayout(profile); - } - - using (new EditorGUI.DisabledScope(WorldAutotileProfilePipeline.LoadAuthoringLayoutAsset(profile) == null)) - { - if (GUILayout.Button("Build Profile From Layout")) - { - WorldAutotileProfilePipeline.BuildProfileFromAuthoringLayout(profile); - } - - if (GUILayout.Button("Open Layout Prefab")) - { - GameObject layout = WorldAutotileProfilePipeline.LoadAuthoringLayoutAsset(profile); - if (layout != null) - { - AssetDatabase.OpenAsset(layout); - } - } - } - EditorGUILayout.EndHorizontal(); - - using (new EditorGUI.DisabledScope(WorldAutotileProfilePipeline.LoadAuthoringLayoutAsset(profile) == null)) - { - if (GUILayout.Button("Ping Layout Prefab")) - { - GameObject layout = WorldAutotileProfilePipeline.LoadAuthoringLayoutAsset(profile); - if (layout != null) - { - EditorGUIUtility.PingObject(layout); - Selection.activeObject = layout; - } - } - } - - EditorGUILayout.LabelField("Layout Path", WorldAutotileProfilePipeline.GetAuthoringLayoutPath(profile)); - EditorGUILayout.EndVertical(); - } - - private void DrawValidation() - { - EditorGUILayout.LabelField("Profile Check", EditorStyles.boldLabel); - EditorGUILayout.BeginVertical("box"); - - List missingShapes = GetMissingWallShapes(); - if (missingShapes.Count == 0) - { - EditorGUILayout.HelpBox("All wall variants are assigned. The generated palette layout will include every corner, side, and center tile.", MessageType.Info); - } - else - { - EditorGUILayout.HelpBox("Missing wall variants: " + string.Join(", ", missingShapes), MessageType.Warning); - } - - int environmentCount = CountAssignedEnvironmentTiles(); - int prefabCount = CountAssignedRandomPrefabs(); - EditorGUILayout.LabelField("Background", profile.baseGroundTile != null ? profile.baseGroundTile.name : "Not assigned"); - EditorGUILayout.LabelField("Environment Tiles", environmentCount.ToString()); - EditorGUILayout.LabelField("Random Prefabs", prefabCount.ToString()); - EditorGUILayout.EndVertical(); - } - - private void DrawProfileFields() - { - EditorGUILayout.LabelField("Profile Assets", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(serializedProfile.FindProperty("baseGroundTile"), new GUIContent("Background Tile")); - - EditorGUILayout.Space(6f); - EditorGUILayout.LabelField("Wall Variants", EditorStyles.miniBoldLabel); - SerializedProperty walls = serializedProfile.FindProperty("wallTiles"); - DrawWallGrid(walls); - - EditorGUILayout.Space(6f); - EditorGUILayout.PropertyField(serializedProfile.FindProperty("environmentTiles"), true); - - EditorGUILayout.Space(6f); - EditorGUILayout.PropertyField(serializedProfile.FindProperty("randomPrefabs"), true); - } - - private void DrawWallGrid(SerializedProperty walls) - { - DrawLabeledRow(walls, AutoTileShape.OuterTopLeft, AutoTileShape.Top, AutoTileShape.OuterTopRight); - DrawLabeledRow(walls, AutoTileShape.Left, AutoTileShape.Center, AutoTileShape.Right); - DrawLabeledRow(walls, AutoTileShape.OuterBottomLeft, AutoTileShape.Bottom, AutoTileShape.OuterBottomRight); - DrawLabeledRow(walls, AutoTileShape.InnerTopLeft, AutoTileShape.InnerTopRight); - DrawLabeledRow(walls, AutoTileShape.InnerBottomLeft, AutoTileShape.InnerBottomRight); - } - - private static void DrawLabeledRow(SerializedProperty root, params AutoTileShape[] shapes) - { - EditorGUILayout.BeginHorizontal(); - for (int i = 0; i < shapes.Length; i++) - { - DrawLabeledCell(root, shapes[i]); - } - - EditorGUILayout.EndHorizontal(); - } - - private static void DrawLabeledCell(SerializedProperty root, AutoTileShape shape) - { - SerializedProperty property = root.FindPropertyRelative(WorldAutotileEditorLabels.GetPropertyName(shape)); - EditorGUILayout.BeginVertical(GUILayout.MaxWidth(150f)); - EditorGUILayout.LabelField(WorldAutotileEditorLabels.GetShapeLabel(shape), EditorStyles.miniLabel); - EditorGUILayout.PropertyField(property, GUIContent.none); - EditorGUILayout.EndVertical(); - } - - private List GetMissingWallShapes() - { - List missing = new List(); - for (int i = 0; i < WallShapeOrder.Length; i++) - { - AutoTileShape shape = WallShapeOrder[i]; - if (profile.wallTiles == null || profile.wallTiles.GetAssignedTile(shape) == null) - { - missing.Add(shape.ToString()); - } - } - - return missing; - } - - private int CountAssignedEnvironmentTiles() - { - if (profile.environmentTiles == null) - { - return 0; - } - - int count = 0; - for (int i = 0; i < profile.environmentTiles.Count; i++) - { - if (profile.environmentTiles[i] != null && profile.environmentTiles[i].tile != null) - { - count++; - } - } - - return count; - } - - private int CountAssignedRandomPrefabs() - { - if (profile.randomPrefabs == null) - { - return 0; - } - - int count = 0; - for (int i = 0; i < profile.randomPrefabs.Count; i++) - { - if (profile.randomPrefabs[i] != null && profile.randomPrefabs[i].prefab != null) - { - count++; - } - } - - return count; - } - - private void CreateProfileAsset() - { - string path = EditorUtility.SaveFilePanelInProject("Create World Profile", "WorldAutotileProfile", "asset", "Choose where to save the tile profile."); - if (string.IsNullOrEmpty(path)) - { - return; - } - - WorldAutotileProfile asset = CreateInstance(); - AssetDatabase.CreateAsset(asset, path); - AssetDatabase.SaveAssets(); - profile = asset; - serializedProfile = new SerializedObject(profile); - Selection.activeObject = asset; - } - } -} diff --git a/Assets/Editor/WorldGeneratorEditorWindow.cs.meta b/Assets/Editor/WorldGeneratorEditorWindow.cs.meta deleted file mode 100644 index f9479991..00000000 --- a/Assets/Editor/WorldGeneratorEditorWindow.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: ff365d4e73b85cc4987c7984d5f8c7cb \ No newline at end of file diff --git a/Assets/Scripts.meta b/Assets/Features.meta similarity index 100% rename from Assets/Scripts.meta rename to Assets/Features.meta diff --git a/Assets/Editor/Tasks.meta b/Assets/Features/Tasks.meta similarity index 100% rename from Assets/Editor/Tasks.meta rename to Assets/Features/Tasks.meta diff --git a/Assets/Editor.meta b/Assets/Features/Tasks/Editor.meta similarity index 100% rename from Assets/Editor.meta rename to Assets/Features/Tasks/Editor.meta diff --git a/Assets/Editor/Tasks/TaskBoardModels.cs b/Assets/Features/Tasks/Editor/TaskBoardModels.cs similarity index 100% rename from Assets/Editor/Tasks/TaskBoardModels.cs rename to Assets/Features/Tasks/Editor/TaskBoardModels.cs diff --git a/Assets/Features/Tasks/Editor/TaskBoardModels.cs.meta b/Assets/Features/Tasks/Editor/TaskBoardModels.cs.meta new file mode 100644 index 00000000..8f771802 --- /dev/null +++ b/Assets/Features/Tasks/Editor/TaskBoardModels.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4716897eb71185742ad590f2a59df8e3 diff --git a/Assets/Editor/Tasks/TaskBoardOwners.asset b/Assets/Features/Tasks/Editor/TaskBoardOwners.asset similarity index 100% rename from Assets/Editor/Tasks/TaskBoardOwners.asset rename to Assets/Features/Tasks/Editor/TaskBoardOwners.asset diff --git a/Assets/Editor/Tasks/TaskBoardOwners.asset.meta b/Assets/Features/Tasks/Editor/TaskBoardOwners.asset.meta similarity index 100% rename from Assets/Editor/Tasks/TaskBoardOwners.asset.meta rename to Assets/Features/Tasks/Editor/TaskBoardOwners.asset.meta diff --git a/Assets/Editor/Tasks/TaskBoardOwnersConfig.cs b/Assets/Features/Tasks/Editor/TaskBoardOwnersConfig.cs similarity index 100% rename from Assets/Editor/Tasks/TaskBoardOwnersConfig.cs rename to Assets/Features/Tasks/Editor/TaskBoardOwnersConfig.cs diff --git a/Assets/Features/Tasks/Editor/TaskBoardOwnersConfig.cs.meta b/Assets/Features/Tasks/Editor/TaskBoardOwnersConfig.cs.meta new file mode 100644 index 00000000..257a591f --- /dev/null +++ b/Assets/Features/Tasks/Editor/TaskBoardOwnersConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: acfa62607cc78b8499e371559154647f diff --git a/Assets/Editor/Tasks/TaskBoardService.cs b/Assets/Features/Tasks/Editor/TaskBoardService.cs similarity index 99% rename from Assets/Editor/Tasks/TaskBoardService.cs rename to Assets/Features/Tasks/Editor/TaskBoardService.cs index 23163002..25994d98 100644 --- a/Assets/Editor/Tasks/TaskBoardService.cs +++ b/Assets/Features/Tasks/Editor/TaskBoardService.cs @@ -118,7 +118,7 @@ namespace Project.Tasks.Editor data.ProjectRoot = GetProjectRoot(); data.TasksDirectory = NormalizePath(Path.Combine(data.ProjectRoot, "docs", "tasks")); data.IndexPath = NormalizePath(Path.Combine(data.TasksDirectory, "Index.md")); - data.OwnersConfigPath = "Assets/Editor/Tasks/TaskBoardOwners.asset"; + data.OwnersConfigPath = "Assets/Features/Tasks/Editor/TaskBoardOwners.asset"; LoadOwnerPresets(data); if (!Directory.Exists(data.TasksDirectory)) diff --git a/Assets/Features/Tasks/Editor/TaskBoardService.cs.meta b/Assets/Features/Tasks/Editor/TaskBoardService.cs.meta new file mode 100644 index 00000000..f40e25dd --- /dev/null +++ b/Assets/Features/Tasks/Editor/TaskBoardService.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: da90adbe6fa0acb429453d3550e18961 diff --git a/Assets/Editor/Tasks/TaskBoardWindow.cs b/Assets/Features/Tasks/Editor/TaskBoardWindow.cs similarity index 100% rename from Assets/Editor/Tasks/TaskBoardWindow.cs rename to Assets/Features/Tasks/Editor/TaskBoardWindow.cs diff --git a/Assets/Features/Tasks/Editor/TaskBoardWindow.cs.meta b/Assets/Features/Tasks/Editor/TaskBoardWindow.cs.meta new file mode 100644 index 00000000..c94cfb20 --- /dev/null +++ b/Assets/Features/Tasks/Editor/TaskBoardWindow.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5203f967846df5f43baaa0a3ba2e2d5b diff --git a/Assets/Scripts/VoxelWorld.meta b/Assets/Features/VoxelWorld.meta similarity index 100% rename from Assets/Scripts/VoxelWorld.meta rename to Assets/Features/VoxelWorld.meta diff --git a/Assets/Data.meta b/Assets/Features/VoxelWorld/Data.meta similarity index 100% rename from Assets/Data.meta rename to Assets/Features/VoxelWorld/Data.meta diff --git a/Assets/Data/VoxelBiomeProfile 1.asset b/Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 1.asset similarity index 100% rename from Assets/Data/VoxelBiomeProfile 1.asset rename to Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 1.asset diff --git a/Assets/Data/VoxelBiomeProfile 1.asset.meta b/Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 1.asset.meta similarity index 100% rename from Assets/Data/VoxelBiomeProfile 1.asset.meta rename to Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 1.asset.meta diff --git a/Assets/Data/VoxelBiomeProfile 2.asset b/Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 2.asset similarity index 100% rename from Assets/Data/VoxelBiomeProfile 2.asset rename to Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 2.asset diff --git a/Assets/Data/VoxelBiomeProfile 2.asset.meta b/Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 2.asset.meta similarity index 100% rename from Assets/Data/VoxelBiomeProfile 2.asset.meta rename to Assets/Features/VoxelWorld/Data/VoxelBiomeProfile 2.asset.meta diff --git a/Assets/Data/VoxelBiomeProfile.asset b/Assets/Features/VoxelWorld/Data/VoxelBiomeProfile.asset similarity index 100% rename from Assets/Data/VoxelBiomeProfile.asset rename to Assets/Features/VoxelWorld/Data/VoxelBiomeProfile.asset diff --git a/Assets/Data/VoxelBiomeProfile.asset.meta b/Assets/Features/VoxelWorld/Data/VoxelBiomeProfile.asset.meta similarity index 100% rename from Assets/Data/VoxelBiomeProfile.asset.meta rename to Assets/Features/VoxelWorld/Data/VoxelBiomeProfile.asset.meta diff --git a/Assets/Data/VoxelWorldConfig.asset b/Assets/Features/VoxelWorld/Data/VoxelWorldConfig.asset similarity index 100% rename from Assets/Data/VoxelWorldConfig.asset rename to Assets/Features/VoxelWorld/Data/VoxelWorldConfig.asset diff --git a/Assets/Data/VoxelWorldConfig.asset.meta b/Assets/Features/VoxelWorld/Data/VoxelWorldConfig.asset.meta similarity index 100% rename from Assets/Data/VoxelWorldConfig.asset.meta rename to Assets/Features/VoxelWorld/Data/VoxelWorldConfig.asset.meta diff --git a/Assets/Scripts/VoxelWorld/Runtime.meta b/Assets/Features/VoxelWorld/Runtime.meta similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime.meta rename to Assets/Features/VoxelWorld/Runtime.meta diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef b/Assets/Features/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef rename to Assets/Features/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef.meta similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef.meta rename to Assets/Features/VoxelWorld/Runtime/VoxelWorld.Runtime.asmdef.meta diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs b/Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs rename to Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs diff --git a/Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta new file mode 100644 index 00000000..577b5956 --- /dev/null +++ b/Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 981858f28439459429fa291e1f6cb935 diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldConfig.cs b/Assets/Features/VoxelWorld/Runtime/VoxelWorldConfig.cs similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorldConfig.cs rename to Assets/Features/VoxelWorld/Runtime/VoxelWorldConfig.cs diff --git a/Assets/Features/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta new file mode 100644 index 00000000..3f5e95ed --- /dev/null +++ b/Assets/Features/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0cac3da4969c2f94985de9f5fb30a682 diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs rename to Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs diff --git a/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta new file mode 100644 index 00000000..b63b5df9 --- /dev/null +++ b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9da608950686fb345b172db0a56bced5 diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs rename to Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs diff --git a/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta new file mode 100644 index 00000000..63963e30 --- /dev/null +++ b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 811ff92b4e36193499cad8631c9443a7 diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs rename to Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs diff --git a/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta new file mode 100644 index 00000000..1314aff1 --- /dev/null +++ b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 56e0b6ddd79410b40bdda73c4e20515d diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs similarity index 100% rename from Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs rename to Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs diff --git a/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta new file mode 100644 index 00000000..5b945388 --- /dev/null +++ b/Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 62cd563780165844caddc098f92ff23f diff --git a/Assets/Scenes.meta b/Assets/Features/VoxelWorld/Scenes.meta similarity index 100% rename from Assets/Scenes.meta rename to Assets/Features/VoxelWorld/Scenes.meta diff --git a/Assets/Scenes/VoxelWorldTestScene.unity b/Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity similarity index 100% rename from Assets/Scenes/VoxelWorldTestScene.unity rename to Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity diff --git a/Assets/Scenes/VoxelWorldTestScene.unity.meta b/Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity.meta similarity index 100% rename from Assets/Scenes/VoxelWorldTestScene.unity.meta rename to Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity.meta diff --git a/Assets/Shaders.meta b/Assets/Features/VoxelWorld/Shaders.meta similarity index 100% rename from Assets/Shaders.meta rename to Assets/Features/VoxelWorld/Shaders.meta diff --git a/Assets/Shaders/VoxelWorldTextureArrayUnlit.shader b/Assets/Features/VoxelWorld/Shaders/VoxelWorldTextureArrayUnlit.shader similarity index 100% rename from Assets/Shaders/VoxelWorldTextureArrayUnlit.shader rename to Assets/Features/VoxelWorld/Shaders/VoxelWorldTextureArrayUnlit.shader diff --git a/Assets/Shaders/VoxelWorldTextureArrayUnlit.shader.meta b/Assets/Features/VoxelWorld/Shaders/VoxelWorldTextureArrayUnlit.shader.meta similarity index 100% rename from Assets/Shaders/VoxelWorldTextureArrayUnlit.shader.meta rename to Assets/Features/VoxelWorld/Shaders/VoxelWorldTextureArrayUnlit.shader.meta diff --git a/Assets/Scenes/New Scene.unity b/Assets/Scenes/New Scene.unity deleted file mode 100644 index 2c52cf18..00000000 --- a/Assets/Scenes/New Scene.unity +++ /dev/null @@ -1,218 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 10 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 13 - m_BakeOnSceneLoad: 0 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 2 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 1 - m_PVRFilteringGaussRadiusAO: 1 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &344668594 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 344668597} - - component: {fileID: 344668596} - - component: {fileID: 344668595} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &344668595 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 344668594} - m_Enabled: 1 ---- !u!20 &344668596 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 344668594} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 60 - orthographic: 1 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &344668597 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 344668594} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 344668597} diff --git a/Assets/Scenes/New Scene.unity.meta b/Assets/Scenes/New Scene.unity.meta deleted file mode 100644 index 0abf5033..00000000 --- a/Assets/Scenes/New Scene.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 59087e33113ec8341b84efbb7d9d7f55 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity deleted file mode 100644 index 92085449..00000000 --- a/Assets/Scenes/SampleScene.unity +++ /dev/null @@ -1,603 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!29 &1 -OcclusionCullingSettings: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_OcclusionBakeSettings: - smallestOccluder: 5 - smallestHole: 0.25 - backfaceThreshold: 100 - m_SceneGUID: 00000000000000000000000000000000 - m_OcclusionCullingData: {fileID: 0} ---- !u!104 &2 -RenderSettings: - m_ObjectHideFlags: 0 - serializedVersion: 10 - m_Fog: 0 - m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} - m_FogMode: 3 - m_FogDensity: 0.01 - m_LinearFogStart: 0 - m_LinearFogEnd: 300 - m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} - m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} - m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} - m_AmbientIntensity: 1 - m_AmbientMode: 3 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 0} - m_HaloStrength: 0.5 - m_FlareStrength: 1 - m_FlareFadeSpeed: 3 - m_HaloTexture: {fileID: 0} - m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} - m_DefaultReflectionMode: 0 - m_DefaultReflectionResolution: 128 - m_ReflectionBounces: 1 - m_ReflectionIntensity: 1 - m_CustomReflection: {fileID: 0} - m_Sun: {fileID: 0} - m_UseRadianceAmbientProbe: 0 ---- !u!157 &3 -LightmapSettings: - m_ObjectHideFlags: 0 - serializedVersion: 13 - m_BakeOnSceneLoad: 0 - m_GISettings: - serializedVersion: 2 - m_BounceScale: 1 - m_IndirectOutputScale: 1 - m_AlbedoBoost: 1 - m_EnvironmentLightingMode: 0 - m_EnableBakedLightmaps: 0 - m_EnableRealtimeLightmaps: 0 - m_LightmapEditorSettings: - serializedVersion: 12 - m_Resolution: 2 - m_BakeResolution: 40 - m_AtlasSize: 1024 - m_AO: 0 - m_AOMaxDistance: 1 - m_CompAOExponent: 1 - m_CompAOExponentDirect: 0 - m_ExtractAmbientOcclusion: 0 - m_Padding: 2 - m_LightmapParameters: {fileID: 0} - m_LightmapsBakeMode: 1 - m_TextureCompression: 1 - m_ReflectionCompression: 2 - m_MixedBakeMode: 2 - m_BakeBackend: 1 - m_PVRSampling: 1 - m_PVRDirectSampleCount: 32 - m_PVRSampleCount: 512 - m_PVRBounces: 2 - m_PVREnvironmentSampleCount: 256 - m_PVREnvironmentReferencePointCount: 2048 - m_PVRFilteringMode: 1 - m_PVRDenoiserTypeDirect: 1 - m_PVRDenoiserTypeIndirect: 1 - m_PVRDenoiserTypeAO: 1 - m_PVRFilterTypeDirect: 0 - m_PVRFilterTypeIndirect: 0 - m_PVRFilterTypeAO: 0 - m_PVREnvironmentMIS: 1 - m_PVRCulling: 1 - m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 - m_PVRFilteringAtrousPositionSigmaDirect: 0.5 - m_PVRFilteringAtrousPositionSigmaIndirect: 2 - m_PVRFilteringAtrousPositionSigmaAO: 1 - m_ExportTrainingData: 0 - m_TrainingDataDestination: TrainingData - m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} - m_LightingSettings: {fileID: 0} ---- !u!196 &4 -NavMeshSettings: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_BuildSettings: - serializedVersion: 3 - agentTypeID: 0 - agentRadius: 0.5 - agentHeight: 2 - agentSlope: 45 - agentClimb: 0.4 - ledgeDropHeight: 0 - maxJumpAcrossDistance: 0 - minRegionArea: 2 - manualCellSize: 0 - cellSize: 0.16666667 - manualTileSize: 0 - tileSize: 256 - buildHeightMesh: 0 - maxJobWorkers: 0 - preserveTilesOutsideBounds: 0 - debug: - m_Flags: 0 - m_NavMeshData: {fileID: 0} ---- !u!1 &519420028 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 519420032} - - component: {fileID: 519420031} - - component: {fileID: 519420029} - - component: {fileID: 519420030} - - component: {fileID: 519420033} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &519420029 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 ---- !u!114 &519420030 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 0 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_AllowHDROutput: 1 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 - m_Version: 2 ---- !u!20 &519420031 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 2 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.3 - far clip plane: 1000 - field of view: 34 - orthographic: 1 - orthographic size: 5 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 0 - m_HDR: 1 - m_AllowMSAA: 0 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 0 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &519420032 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &519420033 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 519420028} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 98ee4fb5b3ebf80478e6e25afa8fd337, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.CameraFollow2D - target: {fileID: 0} - smoothTime: 0.18 - offset: {x: 0, y: 0, z: -10} ---- !u!1 &619394800 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 619394802} - - component: {fileID: 619394801} - m_Layer: 0 - m_Name: Global Light 2D - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &619394801 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 619394800} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ComponentVersion: 2 - m_LightType: 4 - m_BlendStyleIndex: 0 - m_FalloffIntensity: 0.5 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1 - m_LightVolumeIntensity: 1 - m_LightVolumeEnabled: 0 - m_ApplyToSortingLayers: 00000000 - m_LightCookieSprite: {fileID: 0} - m_DeprecatedPointLightCookieSprite: {fileID: 0} - m_LightOrder: 0 - m_AlphaBlendOnOverlap: 0 - m_OverlapOperation: 0 - m_NormalMapDistance: 3 - m_NormalMapQuality: 2 - m_UseNormalMap: 0 - m_ShadowsEnabled: 0 - m_ShadowIntensity: 0.75 - m_ShadowSoftness: 0 - m_ShadowSoftnessFalloffIntensity: 0.5 - m_ShadowVolumeIntensityEnabled: 0 - m_ShadowVolumeIntensity: 0.75 - m_LocalBounds: - m_Center: {x: 0, y: -0.00000011920929, z: 0} - m_Extent: {x: 0.9985302, y: 0.99853027, z: 0} - m_PointLightInnerAngle: 360 - m_PointLightOuterAngle: 360 - m_PointLightInnerRadius: 0 - m_PointLightOuterRadius: 1 - m_ShapeLightParametricSides: 5 - m_ShapeLightParametricAngleOffset: 0 - m_ShapeLightParametricRadius: 1 - m_ShapeLightFalloffSize: 0.5 - m_ShapeLightFalloffOffset: {x: 0, y: 0} - m_ShapePath: - - {x: -0.5, y: -0.5, z: 0} - - {x: 0.5, y: -0.5, z: 0} - - {x: 0.5, y: 0.5, z: 0} - - {x: -0.5, y: 0.5, z: 0} ---- !u!4 &619394802 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 619394800} - serializedVersion: 2 - 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: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &669282973 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 669282975} - - component: {fileID: 669282974} - - component: {fileID: 669282978} - - component: {fileID: 669282977} - - component: {fileID: 669282976} - m_Layer: 0 - m_Name: Player - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &669282974 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669282973} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c9187e81c6ec8da4599e04a1694ec18b, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.SimplePlayerInputMover - moveSpeed: 5 ---- !u!4 &669282975 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669282973} - serializedVersion: 2 - 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: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!70 &669282976 -CapsuleCollider2D: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669282973} - m_Enabled: 1 - serializedVersion: 3 - m_Density: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ForceSendLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ForceReceiveLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_ContactCaptureLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_CallbackLayers: - serializedVersion: 2 - m_Bits: 4294967295 - m_IsTrigger: 0 - m_UsedByEffector: 0 - m_CompositeOperation: 0 - m_CompositeOrder: 0 - m_Offset: {x: 0, y: 0} - m_Size: {x: 0.5, y: 1} - m_Direction: 0 ---- !u!212 &669282977 -SpriteRenderer: - serializedVersion: 2 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669282973} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 0 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_ForceMeshLod: -1 - m_MeshLodSelectionBias: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 0 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_GlobalIlluminationMeshLod: 0 - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_MaskInteraction: 0 - m_Sprite: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 1, y: 1} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 0 - m_SpriteSortPoint: 0 ---- !u!50 &669282978 -Rigidbody2D: - serializedVersion: 5 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 669282973} - m_BodyType: 0 - m_Simulated: 1 - m_UseFullKinematicContacts: 0 - m_UseAutoMass: 0 - m_Mass: 1 - m_LinearDamping: 0 - m_AngularDamping: 0.05 - m_GravityScale: 1 - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_Interpolate: 0 - m_SleepingMode: 1 - m_CollisionDetection: 0 - m_Constraints: 0 ---- !u!1 &947604398 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 947604400} - - component: {fileID: 947604399} - m_Layer: 0 - m_Name: World - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &947604399 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 947604398} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6bacd3a0ac13e6f4a94548426dd89ebb, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InfiniteWorld.InfiniteWorldGenerator - player: {fileID: 0} - profile: {fileID: 11400000, guid: 0f4446a72229fc343a954821a70fefac, type: 2} - chunkSize: 16 - generationRadius: 2 - seed: 12345 - macroNoiseScale: 0.05 - detailNoiseScale: 0.12 - ridgeNoiseScale: 0.18 - wallThreshold: 0.6 - rockBias: 0.04 - smoothingPasses: 2 - passNoiseScale: 0.018 - passDetailScale: 0.041 - passThreshold: 0.22 - passFeather: 0.12 - environmentNoiseScale: 0.19 - environmentThreshold: 0.7 - randomPrefabChance: 0.06 - randomPrefabZOffset: -0.1 - maxAsyncChunkJobs: 2 - maxChunkRendersPerFrame: 1 - blockingGenerationRadius: 0 ---- !u!4 &947604400 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 947604398} - serializedVersion: 2 - 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: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 519420032} - - {fileID: 619394802} - - {fileID: 947604400} - - {fileID: 669282975} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta deleted file mode 100644 index 963ff8e9..00000000 --- a/Assets/Scenes/SampleScene.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 8c9cfa26abfee488c85f1582747f6a02 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Player.meta b/Assets/Scripts/Player.meta deleted file mode 100644 index 71c3f357..00000000 --- a/Assets/Scripts/Player.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ff30f393052d2674e94fd1d887712090 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Player/CameraFollow2D.cs b/Assets/Scripts/Player/CameraFollow2D.cs deleted file mode 100644 index 57824659..00000000 --- a/Assets/Scripts/Player/CameraFollow2D.cs +++ /dev/null @@ -1,31 +0,0 @@ -using UnityEngine; - -namespace InfiniteWorld -{ - public class CameraFollow2D : MonoBehaviour - { - [SerializeField] private Transform target; - [SerializeField] private float smoothTime = 0.18f; - [SerializeField] private Vector3 offset = new Vector3(0f, 0f, -10f); - - private Vector3 velocity; - - private void LateUpdate() - { - if (target == null) - { - SimplePlayerInputMover player = FindFirstObjectByType(); - if (player == null) - { - return; - } - - target = player.transform; - } - - Vector3 desiredPosition = target.position + offset; - desiredPosition.z = offset.z; - transform.position = Vector3.SmoothDamp(transform.position, desiredPosition, ref velocity, smoothTime); - } - } -} diff --git a/Assets/Scripts/Player/CameraFollow2D.cs.meta b/Assets/Scripts/Player/CameraFollow2D.cs.meta deleted file mode 100644 index 154140ba..00000000 --- a/Assets/Scripts/Player/CameraFollow2D.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 98ee4fb5b3ebf80478e6e25afa8fd337 \ No newline at end of file diff --git a/Assets/Scripts/Player/SimplePlayerInputMover.cs b/Assets/Scripts/Player/SimplePlayerInputMover.cs deleted file mode 100644 index b638fb69..00000000 --- a/Assets/Scripts/Player/SimplePlayerInputMover.cs +++ /dev/null @@ -1,109 +0,0 @@ -using UnityEngine; -using UnityEngine.InputSystem; - -namespace InfiniteWorld -{ - public class SimplePlayerInputMover : MonoBehaviour - { - [SerializeField] private float moveSpeed = 5f; - - private InputAction moveAction; - private Rigidbody2D rb; - private Vector2 moveInput; - - private void Awake() - { - rb = GetComponent(); - if (rb == null) - { - rb = gameObject.AddComponent(); - } - - ConfigurePhysics(); - EnsureVisual(); - - moveAction = new InputAction("Move", InputActionType.Value); - moveAction.AddCompositeBinding("2DVector") - .With("Up", "/w") - .With("Down", "/s") - .With("Left", "/a") - .With("Right", "/d"); - moveAction.AddCompositeBinding("2DVector") - .With("Up", "/upArrow") - .With("Down", "/downArrow") - .With("Left", "/leftArrow") - .With("Right", "/rightArrow"); - moveAction.AddBinding("/leftStick"); - } - - private void OnEnable() - { - moveAction?.Enable(); - } - - private void OnDisable() - { - moveAction?.Disable(); - } - - private void OnDestroy() - { - moveAction?.Dispose(); - } - - private void Update() - { - if (moveAction == null) - { - return; - } - - moveInput = moveAction.ReadValue().normalized; - if (moveInput.x != 0f) - { - Vector3 scale = transform.localScale; - scale.x = Mathf.Abs(scale.x) * Mathf.Sign(moveInput.x); - transform.localScale = scale; - } - } - - private void FixedUpdate() - { - if (rb == null) - { - return; - } - - Vector2 target = rb.position + moveInput * (moveSpeed * Time.fixedDeltaTime); - rb.MovePosition(target); - } - - private void ConfigurePhysics() - { - rb.gravityScale = 0f; - rb.freezeRotation = true; - rb.interpolation = RigidbodyInterpolation2D.Interpolate; - rb.collisionDetectionMode = CollisionDetectionMode2D.Continuous; - - CapsuleCollider2D collider = GetComponent(); - if (collider == null) - { - collider = gameObject.AddComponent(); - } - collider.direction = CapsuleDirection2D.Vertical; - collider.size = new Vector2(0.55f, 0.8f); - collider.offset = new Vector2(0f, -0.05f); - } - - private void EnsureVisual() - { - SpriteRenderer renderer = GetComponent(); - if (renderer == null) - { - renderer = gameObject.AddComponent(); - } - renderer.sprite = ProceduralWorldArt.CreatePlayerSprite(); - renderer.sortingOrder = 10; - } - } -} diff --git a/Assets/Scripts/Player/SimplePlayerInputMover.cs.meta b/Assets/Scripts/Player/SimplePlayerInputMover.cs.meta deleted file mode 100644 index fcadd7da..00000000 --- a/Assets/Scripts/Player/SimplePlayerInputMover.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: c9187e81c6ec8da4599e04a1694ec18b \ No newline at end of file diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta b/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta deleted file mode 100644 index 90d8a9f3..00000000 --- a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 981858f28439459429fa291e1f6cb935 \ No newline at end of file diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta b/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta deleted file mode 100644 index ea97724f..00000000 --- a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldConfig.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 0cac3da4969c2f94985de9f5fb30a682 \ No newline at end of file diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta b/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta deleted file mode 100644 index 6067b513..00000000 --- a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Generation.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 9da608950686fb345b172db0a56bced5 \ No newline at end of file diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta b/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta deleted file mode 100644 index a7dc60d2..00000000 --- a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Mesh.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 811ff92b4e36193499cad8631c9443a7 \ No newline at end of file diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta b/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta deleted file mode 100644 index c07dce9d..00000000 --- a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.Types.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 56e0b6ddd79410b40bdda73c4e20515d \ No newline at end of file diff --git a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta b/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta deleted file mode 100644 index d6830846..00000000 --- a/Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 62cd563780165844caddc098f92ff23f \ No newline at end of file diff --git a/Assets/Scripts/WorldGen.meta b/Assets/Scripts/WorldGen.meta deleted file mode 100644 index 3360bd87..00000000 --- a/Assets/Scripts/WorldGen.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 96adefd3df6641c40b9624eb12185ea4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/WorldGen/ChunkTemplate.cs b/Assets/Scripts/WorldGen/ChunkTemplate.cs deleted file mode 100644 index b3fd162c..00000000 --- a/Assets/Scripts/WorldGen/ChunkTemplate.cs +++ /dev/null @@ -1,232 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace InfiniteWorld -{ - [CreateAssetMenu(menuName = "Infinite World/Chunk Template", fileName = "ChunkTemplate")] - public class ChunkTemplate : ScriptableObject - { - [Min(4)] public int width = 16; - [Min(4)] public int height = 16; - - [Header("Exits")] - public bool exitTop = true; - public bool exitRight = true; - public bool exitBottom = true; - public bool exitLeft = true; - - [SerializeField] private List cells = new List(); - - public int CellCount => width * height; - - public void EnsureCellData() - { - int target = Mathf.Max(1, width * height); - while (cells.Count < target) - { - cells.Add(new ChunkCellData()); - } - - while (cells.Count > target) - { - cells.RemoveAt(cells.Count - 1); - } - } - - public void Resize(int newWidth, int newHeight) - { - newWidth = Mathf.Max(4, newWidth); - newHeight = Mathf.Max(4, newHeight); - - List oldCells = new List(cells); - int oldWidth = width; - int oldHeight = height; - - width = newWidth; - height = newHeight; - cells = new List(newWidth * newHeight); - - for (int i = 0; i < newWidth * newHeight; i++) - { - cells.Add(new ChunkCellData()); - } - - for (int y = 0; y < Mathf.Min(oldHeight, newHeight); y++) - { - for (int x = 0; x < Mathf.Min(oldWidth, newWidth); x++) - { - int oldIndex = y * oldWidth + x; - if (oldIndex < oldCells.Count) - { - cells[Index(x, y)] = oldCells[oldIndex]; - } - } - } - } - - public void Clear() - { - EnsureCellData(); - for (int i = 0; i < cells.Count; i++) - { - cells[i] = new ChunkCellData(); - } - } - - public bool GetWall(int x, int y) - { - return IsInBounds(x, y) && cells[Index(x, y)].wall; - } - - public bool GetEnvironment(int x, int y) - { - return IsInBounds(x, y) && cells[Index(x, y)].environment; - } - - public void SetWall(int x, int y, bool value) - { - if (!IsInBounds(x, y)) - { - return; - } - - EnsureCellData(); - ChunkCellData data = cells[Index(x, y)]; - data.wall = value; - if (value) - { - data.environment = false; - } - cells[Index(x, y)] = data; - } - - public void SetEnvironment(int x, int y, bool value) - { - if (!IsInBounds(x, y)) - { - return; - } - - EnsureCellData(); - ChunkCellData data = cells[Index(x, y)]; - data.environment = value; - if (value) - { - data.wall = false; - } - cells[Index(x, y)] = data; - } - - public bool GetExit(ChunkExit exit) - { - return exit switch - { - ChunkExit.Top => exitTop, - ChunkExit.Right => exitRight, - ChunkExit.Bottom => exitBottom, - ChunkExit.Left => exitLeft, - _ => false - }; - } - - public int ExitCount() - { - int count = 0; - count += exitTop ? 1 : 0; - count += exitRight ? 1 : 0; - count += exitBottom ? 1 : 0; - count += exitLeft ? 1 : 0; - return count; - } - - public void ApplyBorderWallsFromExits(int openingWidth = 3) - { - EnsureCellData(); - Clear(); - - for (int x = 0; x < width; x++) - { - SetWall(x, 0, true); - SetWall(x, height - 1, true); - } - - for (int y = 0; y < height; y++) - { - SetWall(0, y, true); - SetWall(width - 1, y, true); - } - - CarveExit(ChunkExit.Top, openingWidth); - CarveExit(ChunkExit.Right, openingWidth); - CarveExit(ChunkExit.Bottom, openingWidth); - CarveExit(ChunkExit.Left, openingWidth); - } - - public void CarveExit(ChunkExit exit, int openingWidth = 3) - { - if (!GetExit(exit)) - { - return; - } - - int half = Mathf.Max(1, openingWidth) / 2; - switch (exit) - { - case ChunkExit.Top: - for (int x = width / 2 - half; x <= width / 2 + half; x++) - { - SetWall(x, height - 1, false); - SetWall(x, height - 2, false); - } - break; - case ChunkExit.Right: - for (int y = height / 2 - half; y <= height / 2 + half; y++) - { - SetWall(width - 1, y, false); - SetWall(width - 2, y, false); - } - break; - case ChunkExit.Bottom: - for (int x = width / 2 - half; x <= width / 2 + half; x++) - { - SetWall(x, 0, false); - SetWall(x, 1, false); - } - break; - case ChunkExit.Left: - for (int y = height / 2 - half; y <= height / 2 + half; y++) - { - SetWall(0, y, false); - SetWall(1, y, false); - } - break; - } - } - - private int Index(int x, int y) - { - return y * width + x; - } - - private bool IsInBounds(int x, int y) - { - return x >= 0 && y >= 0 && x < width && y < height; - } - } - - public enum ChunkExit - { - Top, - Right, - Bottom, - Left - } - - [Serializable] - public struct ChunkCellData - { - public bool wall; - public bool environment; - } -} diff --git a/Assets/Scripts/WorldGen/ChunkTemplate.cs.meta b/Assets/Scripts/WorldGen/ChunkTemplate.cs.meta deleted file mode 100644 index a7711bd3..00000000 --- a/Assets/Scripts/WorldGen/ChunkTemplate.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: bae8eeae2da7d3f4396883671b297a47 \ No newline at end of file diff --git a/Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs b/Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs deleted file mode 100644 index cf37fe8f..00000000 --- a/Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs +++ /dev/null @@ -1,1064 +0,0 @@ -using System; -using System.Collections.Generic; -using Cysharp.Threading.Tasks; -using UnityEngine; -using UnityEngine.Tilemaps; - -namespace InfiniteWorld -{ - public class InfiniteWorldGenerator : MonoBehaviour - { - [Header("References")] - [SerializeField] private Transform player; - [SerializeField] private WorldAutotileProfile profile; - - [Header("Chunk Settings")] - [SerializeField] private int chunkSize = 16; - [SerializeField] private int generationRadius = 2; - [SerializeField] private int seed = 12345; - - [Header("Rock Noise")] - [SerializeField] private float macroNoiseScale = 0.05f; - [SerializeField] private float detailNoiseScale = 0.12f; - [SerializeField] private float ridgeNoiseScale = 0.18f; - [SerializeField] private float wallThreshold = 0.6f; - [SerializeField] private float rockBias = 0.04f; - [SerializeField] private int smoothingPasses = 2; - - [Header("Global Passes")] - [SerializeField] private float passNoiseScale = 0.018f; - [SerializeField] private float passDetailScale = 0.041f; - [SerializeField] private float passThreshold = 0.22f; - [SerializeField] private float passFeather = 0.12f; - - [Header("Environment")] - [SerializeField] private float environmentNoiseScale = 0.19f; - [SerializeField] private float environmentThreshold = 0.7f; - - [Header("Random Objects")] - [SerializeField, Range(0f, 1f)] private float randomPrefabChance = 0.06f; - [SerializeField] private float randomPrefabZOffset = -0.1f; - - [Header("Streaming")] - [SerializeField, Min(1)] private int maxAsyncChunkJobs = 2; - [SerializeField, Min(1)] private int maxChunkRendersPerFrame = 1; - [SerializeField, Min(0)] private int blockingGenerationRadius = 0; - - private readonly Dictionary chunks = new Dictionary(); - private readonly Queue completedBuilds = new Queue(); - private readonly object generationLock = new object(); - private static readonly Vector2Int[] NeighborOffsets = - { - Vector2Int.up, - Vector2Int.right, - Vector2Int.down, - Vector2Int.left - }; - - private Grid grid; - private Transform chunkRoot; - private Vector2Int lastGeneratedCenter = new Vector2Int(int.MinValue, int.MinValue); - private WorldAutotileProfile runtimeFallbackProfile; - private int activeGenerationJobs; - private bool isLoadingPaused; - private float pausedTimeScale = 1f; - private TileBase cachedGroundTile; - private TileBase[] cachedGroundTiles; - - private void Awake() - { - EnsureSceneInfrastructure(); - EnsureRuntimeData(); - TryFindPlayer(); - } - - private void Update() - { - if (player == null && !TryFindPlayer()) - { - return; - } - - Vector2Int playerChunk = WorldToChunk(player.position); - if (playerChunk != lastGeneratedCenter) - { - lastGeneratedCenter = playerChunk; - UnloadDistantChunks(playerChunk); - } - - DrainCompletedBuilds(isLoadingPaused ? int.MaxValue : maxChunkRendersPerFrame); - ScheduleChunkGeneration(playerChunk); - EnsureBlockingChunksLoaded(playerChunk); - } - - private void OnDisable() - { - SetLoadingPaused(false); - } - - public bool UsesProfile(WorldAutotileProfile candidateProfile) - { - return profile == candidateProfile; - } - - public void EditorRefreshFromProfile() - { - EnsureSceneInfrastructure(); - EnsureRuntimeData(); - cachedGroundTile = null; - cachedGroundTiles = null; - - List coords = new List(chunks.Keys); - for (int i = 0; i < coords.Count; i++) - { - if (!chunks.TryGetValue(coords[i], out ChunkRuntime runtime) || !runtime.HasData) - { - continue; - } - - runtime.State = ChunkState.ReadyToRender; - RenderChunk(coords[i]); - } - - for (int i = 0; i < coords.Count; i++) - { - RefreshNeighborBorders(coords[i]); - } - } - - private void EnsureSceneInfrastructure() - { - grid = GetComponentInChildren(); - if (grid == null) - { - GameObject gridObject = new GameObject("Grid", typeof(Grid)); - gridObject.transform.SetParent(transform, false); - grid = gridObject.GetComponent(); - } - - Transform existingChunkRoot = grid.transform.Find("Chunks"); - if (existingChunkRoot == null) - { - GameObject root = new GameObject("Chunks"); - root.transform.SetParent(grid.transform, false); - chunkRoot = root.transform; - } - else - { - chunkRoot = existingChunkRoot; - } - } - - private void EnsureRuntimeData() - { - if (profile == null || !profile.HasAnyAssignedTiles()) - { - runtimeFallbackProfile = RuntimeWorldProfileFactory.CreateFallbackProfile(); - return; - } - - runtimeFallbackProfile = null; - } - - private bool TryFindPlayer() - { - if (player != null) - { - return true; - } - - SimplePlayerInputMover mover = FindFirstObjectByType(); - if (mover == null) - { - return false; - } - - player = mover.transform; - return true; - } - - private void ScheduleChunkGeneration(Vector2Int centerChunk) - { - List coords = GetCoordsByPriority(centerChunk, generationRadius); - for (int i = 0; i < coords.Count; i++) - { - Vector2Int coord = coords[i]; - ChunkRuntime runtime = GetOrCreateChunkRuntime(coord); - if (runtime.IsRendered || runtime.HasData || runtime.State == ChunkState.Generating) - { - continue; - } - - if (IsWithinRadius(coord, centerChunk, blockingGenerationRadius)) - { - continue; - } - - if (!TryReserveGenerationSlot()) - { - break; - } - - runtime.State = ChunkState.Generating; - runtime.Version++; - GenerateChunkDataAsync(coord, runtime.Version).Forget(); - } - } - - private void UnloadDistantChunks(Vector2Int centerChunk) - { - List coordsToRemove = new List(); - foreach (KeyValuePair pair in chunks) - { - if (IsWithinActiveRadius(pair.Key, centerChunk)) - { - continue; - } - - coordsToRemove.Add(pair.Key); - } - - for (int i = 0; i < coordsToRemove.Count; i++) - { - Vector2Int coord = coordsToRemove[i]; - if (!chunks.TryGetValue(coord, out ChunkRuntime chunk)) - { - continue; - } - - chunks.Remove(coord); - if (chunk.Chunk.Root != null) - { - Destroy(chunk.Chunk.Root.gameObject); - } - - RefreshNeighborBorders(coord); - } - } - - private bool IsWithinActiveRadius(Vector2Int coord, Vector2Int centerChunk) - { - int dx = Mathf.Abs(coord.x - centerChunk.x); - int dy = Mathf.Abs(coord.y - centerChunk.y); - return dx <= generationRadius && dy <= generationRadius; - } - - private GeneratedChunk CreateChunk(Vector2Int coord) - { - GameObject chunkObject = new GameObject($"Chunk_{coord.x}_{coord.y}"); - chunkObject.transform.SetParent(chunkRoot, false); - chunkObject.transform.localPosition = new Vector3(coord.x * chunkSize, coord.y * chunkSize, 0f); - - Tilemap ground = CreateTilemap("Ground", chunkObject.transform, 0, false); - Tilemap walls = CreateTilemap("Walls", chunkObject.transform, 1, true); - Tilemap environment = CreateTilemap("Environment", chunkObject.transform, 2, false); - Transform objectsRoot = new GameObject("Objects").transform; - objectsRoot.SetParent(chunkObject.transform, false); - - return new GeneratedChunk(chunkObject.transform, ground, walls, environment, objectsRoot); - } - - private Tilemap CreateTilemap(string name, Transform parent, int sortingOrder, bool addCollision) - { - GameObject tilemapObject = new GameObject(name, typeof(Tilemap), typeof(TilemapRenderer)); - tilemapObject.transform.SetParent(parent, false); - - TilemapRenderer renderer = tilemapObject.GetComponent(); - renderer.sortingOrder = sortingOrder; - - if (addCollision) - { - Rigidbody2D rb = tilemapObject.GetComponent(); - if (rb == null) - { - rb = tilemapObject.AddComponent(); - } - rb.bodyType = RigidbodyType2D.Static; - - CompositeCollider2D composite = tilemapObject.GetComponent(); - if (composite == null) - { - composite = tilemapObject.AddComponent(); - } - composite.geometryType = CompositeCollider2D.GeometryType.Polygons; - - TilemapCollider2D collider = tilemapObject.GetComponent(); - if (collider == null) - { - collider = tilemapObject.AddComponent(); - } - collider.compositeOperation = Collider2D.CompositeOperation.Merge; - } - - return tilemapObject.GetComponent(); - } - - private ChunkBuildResult GenerateChunkData(Vector2Int coord, int version) - { - int margin = Mathf.Max(2, smoothingPasses + 1); - int sampleSize = chunkSize + margin * 2; - bool[,] sampled = new bool[sampleSize, sampleSize]; - - for (int y = 0; y < sampleSize; y++) - { - for (int x = 0; x < sampleSize; x++) - { - int localX = x - margin; - int localY = y - margin; - Vector2Int worldCell = ChunkToWorldCell(coord, localX, localY); - sampled[x, y] = SampleRock(worldCell); - } - } - - for (int pass = 0; pass < smoothingPasses; pass++) - { - sampled = SmoothSampledMask(sampled); - } - - bool[,] wallMask = new bool[chunkSize, chunkSize]; - for (int y = 0; y < chunkSize; y++) - { - for (int x = 0; x < chunkSize; x++) - { - wallMask[x, y] = sampled[x + margin, y + margin]; - } - } - - bool[,] environmentMask = BuildEnvironment(coord, wallMask); - return new ChunkBuildResult(coord, wallMask, environmentMask, version); - } - - private bool[,] SmoothSampledMask(bool[,] source) - { - int width = source.GetLength(0); - int height = source.GetLength(1); - bool[,] result = new bool[width, height]; - - for (int y = 0; y < height; y++) - { - for (int x = 0; x < width; x++) - { - int solidNeighbors = CountSampledWallNeighbors(source, x, y); - if (solidNeighbors >= 5) - { - result[x, y] = true; - } - else if (solidNeighbors <= 2) - { - result[x, y] = false; - } - else - { - result[x, y] = source[x, y]; - } - } - } - - return result; - } - - private int CountSampledWallNeighbors(bool[,] sampled, int x, int y) - { - int width = sampled.GetLength(0); - int height = sampled.GetLength(1); - int count = 0; - - for (int oy = -1; oy <= 1; oy++) - { - for (int ox = -1; ox <= 1; ox++) - { - if (ox == 0 && oy == 0) - { - continue; - } - - int nx = x + ox; - int ny = y + oy; - if (nx < 0 || ny < 0 || nx >= width || ny >= height) - { - count++; - continue; - } - - if (sampled[nx, ny]) - { - count++; - } - } - } - - return count; - } - - private bool SampleRock(Vector2Int worldCell) - { - float macro = Mathf.PerlinNoise((worldCell.x + seed * 0.13f) * macroNoiseScale, (worldCell.y - seed * 0.17f) * macroNoiseScale); - float detail = Mathf.PerlinNoise((worldCell.x - seed * 0.23f) * detailNoiseScale, (worldCell.y + seed * 0.19f) * detailNoiseScale); - float ridge = 1f - Mathf.Abs(Mathf.PerlinNoise((worldCell.x + seed * 0.31f) * ridgeNoiseScale, (worldCell.y + seed * 0.29f) * ridgeNoiseScale) * 2f - 1f); - - float rockValue = macro * 0.62f + detail * 0.18f + ridge * 0.20f + rockBias; - if (IsInsideGlobalPass(worldCell)) - { - rockValue -= 0.45f; - } - - return rockValue >= wallThreshold; - } - - private bool IsInsideGlobalPass(Vector2Int worldCell) - { - float primary = Mathf.PerlinNoise((worldCell.x + seed * 0.41f) * passNoiseScale, (worldCell.y - seed * 0.43f) * passNoiseScale); - float detail = Mathf.PerlinNoise((worldCell.x - seed * 0.17f) * passDetailScale, (worldCell.y + seed * 0.23f) * passDetailScale); - float ridged = Mathf.Abs(primary * 2f - 1f); - float warped = Mathf.Lerp(ridged, Mathf.Abs(detail * 2f - 1f), 0.35f); - return warped <= passThreshold + passFeather * detail; - } - - private bool[,] BuildEnvironment(Vector2Int coord, bool[,] wallMask) - { - bool[,] environmentMask = new bool[chunkSize, chunkSize]; - for (int y = 0; y < chunkSize; y++) - { - for (int x = 0; x < chunkSize; x++) - { - if (wallMask[x, y]) - { - continue; - } - - if (HasAdjacentOpenTiles(wallMask, x, y, 1)) - { - continue; - } - - Vector2Int worldCell = ChunkToWorldCell(coord, x, y); - float noise = Mathf.PerlinNoise((worldCell.x + seed * 0.53f) * environmentNoiseScale, (worldCell.y - seed * 0.61f) * environmentNoiseScale); - environmentMask[x, y] = noise >= environmentThreshold; - } - } - - return environmentMask; - } - - private bool HasAdjacentOpenTiles(bool[,] wallMask, int x, int y, int radius) - { - for (int oy = -radius; oy <= radius; oy++) - { - for (int ox = -radius; ox <= radius; ox++) - { - int nx = x + ox; - int ny = y + oy; - if (nx < 0 || ny < 0 || nx >= chunkSize || ny >= chunkSize) - { - continue; - } - - if (!wallMask[nx, ny]) - { - return true; - } - } - } - - return false; - } - - private void RenderChunk(Vector2Int coord) - { - if (!chunks.TryGetValue(coord, out ChunkRuntime runtime) || !runtime.HasData) - { - return; - } - - WorldAutotileProfile activeProfile = profile != null && profile.HasAnyAssignedTiles() ? profile : runtimeFallbackProfile; - if (activeProfile == null) - { - return; - } - - if (runtime.Chunk.Root == null) - { - runtime.Chunk = CreateChunk(coord); - } - - GeneratedChunk chunk = runtime.Chunk; - int tileCount = chunkSize * chunkSize; - TileBase[] groundTiles = GetGroundTiles(activeProfile.baseGroundTile, tileCount); - TileBase[] wallTiles = new TileBase[tileCount]; - TileBase[] environmentTiles = new TileBase[tileCount]; - - int index = 0; - for (int y = 0; y < chunkSize; y++) - { - for (int x = 0; x < chunkSize; x++) - { - if (runtime.WallMask[x, y]) - { - Vector2Int worldCell = ChunkToWorldCell(coord, x, y); - AutoTileShape shape = ResolveWallShape(worldCell); - wallTiles[index] = activeProfile.GetWallTile(shape); - } - else if (runtime.EnvironmentMask[x, y]) - { - TileBase tile = PickEnvironmentTile(ChunkToWorldCell(coord, x, y), activeProfile); - environmentTiles[index] = tile; - } - - index++; - } - } - - BoundsInt bounds = new BoundsInt(0, 0, 0, chunkSize, chunkSize, 1); - chunk.Ground.SetTilesBlock(bounds, groundTiles); - chunk.Walls.SetTilesBlock(bounds, wallTiles); - chunk.Environment.SetTilesBlock(bounds, environmentTiles); - RenderRandomPrefabs(coord, runtime, activeProfile); - runtime.State = ChunkState.Rendered; - } - - private void RefreshNeighborBorders(Vector2Int coord) - { - for (int i = 0; i < NeighborOffsets.Length; i++) - { - RenderChunk(coord + NeighborOffsets[i]); - } - } - - private AutoTileShape ResolveWallShape(Vector2Int worldCell) - { - bool top = HasWallAt(worldCell + Vector2Int.up); - bool right = HasWallAt(worldCell + Vector2Int.right); - bool bottom = HasWallAt(worldCell + Vector2Int.down); - bool left = HasWallAt(worldCell + Vector2Int.left); - bool topLeft = HasWallAt(worldCell + new Vector2Int(-1, 1)); - bool topRight = HasWallAt(worldCell + new Vector2Int(1, 1)); - bool bottomRight = HasWallAt(worldCell + new Vector2Int(1, -1)); - bool bottomLeft = HasWallAt(worldCell + new Vector2Int(-1, -1)); - - if (!top && !left) - { - return AutoTileShape.OuterTopLeft; - } - - if (!top && !right) - { - return AutoTileShape.OuterTopRight; - } - - if (!bottom && !right) - { - return AutoTileShape.OuterBottomRight; - } - - if (!bottom && !left) - { - return AutoTileShape.OuterBottomLeft; - } - - if (top && left && !topLeft) - { - return AutoTileShape.InnerTopLeft; - } - - if (top && right && !topRight) - { - return AutoTileShape.InnerTopRight; - } - - if (bottom && right && !bottomRight) - { - return AutoTileShape.InnerBottomRight; - } - - if (bottom && left && !bottomLeft) - { - return AutoTileShape.InnerBottomLeft; - } - - if (!top) - { - return AutoTileShape.Top; - } - - if (!right) - { - return AutoTileShape.Right; - } - - if (!bottom) - { - return AutoTileShape.Bottom; - } - - if (!left) - { - return AutoTileShape.Left; - } - - return AutoTileShape.Center; - } - - private bool HasWallAt(Vector2Int worldCell) - { - Vector2Int coord = new Vector2Int(Mathf.FloorToInt(worldCell.x / (float)chunkSize), Mathf.FloorToInt(worldCell.y / (float)chunkSize)); - if (!chunks.TryGetValue(coord, out ChunkRuntime runtime) || !runtime.HasData) - { - return SampleRock(worldCell); - } - - int localX = worldCell.x - coord.x * chunkSize; - int localY = worldCell.y - coord.y * chunkSize; - if (localX < 0 || localY < 0 || localX >= chunkSize || localY >= chunkSize) - { - return SampleRock(worldCell); - } - - return runtime.WallMask[localX, localY]; - } - - private TileBase PickEnvironmentTile(Vector2Int worldCell, WorldAutotileProfile activeProfile) - { - if (activeProfile.environmentTiles == null || activeProfile.environmentTiles.Count == 0) - { - return null; - } - - float total = 0f; - for (int i = 0; i < activeProfile.environmentTiles.Count; i++) - { - EnvironmentTileEntry entry = activeProfile.environmentTiles[i]; - if (entry != null && entry.tile != null) - { - total += Mathf.Max(0.01f, entry.weight); - } - } - - if (total <= 0f) - { - return null; - } - - float selector = Hash01(worldCell.x, worldCell.y, seed + 701); - float threshold = selector * total; - float cumulative = 0f; - - for (int i = 0; i < activeProfile.environmentTiles.Count; i++) - { - EnvironmentTileEntry entry = activeProfile.environmentTiles[i]; - if (entry == null || entry.tile == null) - { - continue; - } - - cumulative += Mathf.Max(0.01f, entry.weight); - if (threshold <= cumulative) - { - return entry.tile; - } - } - - return activeProfile.environmentTiles[0].tile; - } - - private void RenderRandomPrefabs(Vector2Int coord, ChunkRuntime runtime, WorldAutotileProfile activeProfile) - { - if (runtime.Chunk.ObjectsRoot == null) - { - return; - } - - ClearSpawnedObjects(runtime.Chunk.ObjectsRoot); - if (randomPrefabChance <= 0f || activeProfile.randomPrefabs == null || activeProfile.randomPrefabs.Count == 0) - { - return; - } - - for (int y = 0; y < chunkSize; y++) - { - for (int x = 0; x < chunkSize; x++) - { - if (runtime.WallMask[x, y] || runtime.EnvironmentMask[x, y]) - { - continue; - } - - Vector2Int worldCell = ChunkToWorldCell(coord, x, y); - if (Hash01(worldCell.x, worldCell.y, seed + 1103) > randomPrefabChance) - { - continue; - } - - GameObject prefab = PickRandomPrefab(worldCell, activeProfile); - if (prefab == null) - { - continue; - } - - GameObject instance = Instantiate(prefab, runtime.Chunk.ObjectsRoot); - instance.transform.localPosition = new Vector3(x + 0.5f, y + 0.5f, randomPrefabZOffset); - instance.transform.localRotation = Quaternion.identity; - instance.name = prefab.name; - } - } - } - - private GameObject PickRandomPrefab(Vector2Int worldCell, WorldAutotileProfile activeProfile) - { - float total = 0f; - for (int i = 0; i < activeProfile.randomPrefabs.Count; i++) - { - RandomPrefabEntry entry = activeProfile.randomPrefabs[i]; - if (entry != null && entry.prefab != null) - { - total += Mathf.Max(0.01f, entry.weight); - } - } - - if (total <= 0f) - { - return null; - } - - float selector = Hash01(worldCell.x, worldCell.y, seed + 1409) * total; - float cumulative = 0f; - for (int i = 0; i < activeProfile.randomPrefabs.Count; i++) - { - RandomPrefabEntry entry = activeProfile.randomPrefabs[i]; - if (entry == null || entry.prefab == null) - { - continue; - } - - cumulative += Mathf.Max(0.01f, entry.weight); - if (selector <= cumulative) - { - return entry.prefab; - } - } - - for (int i = 0; i < activeProfile.randomPrefabs.Count; i++) - { - RandomPrefabEntry entry = activeProfile.randomPrefabs[i]; - if (entry != null && entry.prefab != null) - { - return entry.prefab; - } - } - - return null; - } - - private static void ClearSpawnedObjects(Transform root) - { - for (int i = root.childCount - 1; i >= 0; i--) - { - UnityEngine.Object.Destroy(root.GetChild(i).gameObject); - } - } - - private Vector2Int WorldToChunk(Vector3 position) - { - return new Vector2Int( - Mathf.FloorToInt(position.x / chunkSize), - Mathf.FloorToInt(position.y / chunkSize)); - } - - private Vector2Int ChunkToWorldCell(Vector2Int coord, int localX, int localY) - { - return new Vector2Int(coord.x * chunkSize + localX, coord.y * chunkSize + localY); - } - - private static int Hash(int x, int y, int seed) - { - int hash = x; - hash = hash * 397 ^ y; - hash = hash * 397 ^ seed; - hash = (hash << 13) ^ hash; - return hash * (hash * hash * 15731 + 789221) + 1376312589; - } - - private static float Hash01(int x, int y, int seed) - { - return (Hash(x, y, seed) & int.MaxValue) / (float)int.MaxValue; - } - - private async UniTaskVoid GenerateChunkDataAsync(Vector2Int coord, int version) - { - try - { - ChunkBuildResult result = await UniTask.RunOnThreadPool(() => GenerateChunkData(coord, version)); - lock (generationLock) - { - completedBuilds.Enqueue(result); - activeGenerationJobs = Mathf.Max(0, activeGenerationJobs - 1); - } - } - catch (Exception exception) - { - lock (generationLock) - { - activeGenerationJobs = Mathf.Max(0, activeGenerationJobs - 1); - } - - Debug.LogException(exception, this); - } - } - - private void DrainCompletedBuilds(int maxRenders) - { - int renders = 0; - while (renders < maxRenders) - { - ChunkBuildResult result; - lock (generationLock) - { - if (completedBuilds.Count == 0) - { - break; - } - - result = completedBuilds.Dequeue(); - } - - if (!ApplyBuildResult(result)) - { - continue; - } - - RenderChunk(result.Coord); - RefreshNeighborBorders(result.Coord); - renders++; - } - } - - private bool ApplyBuildResult(ChunkBuildResult result) - { - if (!chunks.TryGetValue(result.Coord, out ChunkRuntime runtime)) - { - return false; - } - - if (result.Version != runtime.Version) - { - return false; - } - - runtime.WallMask = result.WallMask; - runtime.EnvironmentMask = result.EnvironmentMask; - if (!runtime.IsRendered) - { - runtime.State = ChunkState.ReadyToRender; - } - - return !runtime.IsRendered; - } - - private void EnsureBlockingChunksLoaded(Vector2Int centerChunk) - { - List requiredCoords = GetCoordsByPriority(centerChunk, blockingGenerationRadius); - bool isMissingRequiredChunk = false; - - for (int i = 0; i < requiredCoords.Count; i++) - { - Vector2Int coord = requiredCoords[i]; - ChunkRuntime runtime = GetOrCreateChunkRuntime(coord); - if (runtime.IsRendered) - { - continue; - } - - isMissingRequiredChunk = true; - if (runtime.State == ChunkState.Generating) - { - continue; - } - - runtime.Version++; - runtime.State = ChunkState.SyncBuilding; - ApplyBuildResult(GenerateChunkData(coord, runtime.Version)); - RenderChunk(coord); - RefreshNeighborBorders(coord); - } - - DrainCompletedBuilds(isMissingRequiredChunk ? int.MaxValue : maxChunkRendersPerFrame); - SetLoadingPaused(HasMissingRequiredChunks(requiredCoords)); - } - - private bool HasMissingRequiredChunks(List requiredCoords) - { - for (int i = 0; i < requiredCoords.Count; i++) - { - if (!chunks.TryGetValue(requiredCoords[i], out ChunkRuntime runtime) || !runtime.IsRendered) - { - return true; - } - } - - return false; - } - - private bool TryReserveGenerationSlot() - { - lock (generationLock) - { - if (activeGenerationJobs >= maxAsyncChunkJobs) - { - return false; - } - - activeGenerationJobs++; - return true; - } - } - - private List GetCoordsByPriority(Vector2Int centerChunk, int radius) - { - List coords = new List((radius * 2 + 1) * (radius * 2 + 1)); - for (int y = -radius; y <= radius; y++) - { - for (int x = -radius; x <= radius; x++) - { - coords.Add(new Vector2Int(centerChunk.x + x, centerChunk.y + y)); - } - } - - coords.Sort((left, right) => CompareChunkPriority(centerChunk, left, right)); - return coords; - } - - private static int CompareChunkPriority(Vector2Int centerChunk, Vector2Int left, Vector2Int right) - { - int leftDx = Mathf.Abs(left.x - centerChunk.x); - int leftDy = Mathf.Abs(left.y - centerChunk.y); - int rightDx = Mathf.Abs(right.x - centerChunk.x); - int rightDy = Mathf.Abs(right.y - centerChunk.y); - - int leftChebyshev = Mathf.Max(leftDx, leftDy); - int rightChebyshev = Mathf.Max(rightDx, rightDy); - int chebyshevCompare = leftChebyshev.CompareTo(rightChebyshev); - if (chebyshevCompare != 0) - { - return chebyshevCompare; - } - - int leftDistance = leftDx * leftDx + leftDy * leftDy; - int rightDistance = rightDx * rightDx + rightDy * rightDy; - int distanceCompare = leftDistance.CompareTo(rightDistance); - if (distanceCompare != 0) - { - return distanceCompare; - } - - int yCompare = left.y.CompareTo(right.y); - return yCompare != 0 ? yCompare : left.x.CompareTo(right.x); - } - - private ChunkRuntime GetOrCreateChunkRuntime(Vector2Int coord) - { - if (!chunks.TryGetValue(coord, out ChunkRuntime runtime)) - { - runtime = new ChunkRuntime(); - chunks.Add(coord, runtime); - } - - return runtime; - } - - private bool IsWithinRadius(Vector2Int coord, Vector2Int centerChunk, int radius) - { - int dx = Mathf.Abs(coord.x - centerChunk.x); - int dy = Mathf.Abs(coord.y - centerChunk.y); - return dx <= radius && dy <= radius; - } - - private TileBase[] GetGroundTiles(TileBase groundTile, int tileCount) - { - if (cachedGroundTiles == null || cachedGroundTiles.Length != tileCount || cachedGroundTile != groundTile) - { - cachedGroundTiles = new TileBase[tileCount]; - cachedGroundTile = groundTile; - if (groundTile != null) - { - Array.Fill(cachedGroundTiles, groundTile); - } - } - - return cachedGroundTiles; - } - - private void SetLoadingPaused(bool pause) - { - if (pause == isLoadingPaused) - { - return; - } - - if (pause) - { - pausedTimeScale = Time.timeScale > 0f ? Time.timeScale : 1f; - Time.timeScale = 0f; - } - else - { - Time.timeScale = pausedTimeScale; - } - - isLoadingPaused = pause; - } - - private readonly struct GeneratedChunk - { - public GeneratedChunk(Transform root, Tilemap ground, Tilemap walls, Tilemap environment, Transform objectsRoot) - { - Root = root; - Ground = ground; - Walls = walls; - Environment = environment; - ObjectsRoot = objectsRoot; - } - - public Transform Root { get; } - public Tilemap Ground { get; } - public Tilemap Walls { get; } - public Tilemap Environment { get; } - public Transform ObjectsRoot { get; } - } - - private sealed class ChunkRuntime - { - public GeneratedChunk Chunk; - public bool[,] WallMask; - public bool[,] EnvironmentMask; - public ChunkState State; - public int Version; - - public bool HasData => WallMask != null && EnvironmentMask != null; - public bool IsRendered => State == ChunkState.Rendered && Chunk.Root != null; - } - - private readonly struct ChunkBuildResult - { - public ChunkBuildResult(Vector2Int coord, bool[,] wallMask, bool[,] environmentMask, int version) - { - Coord = coord; - WallMask = wallMask; - EnvironmentMask = environmentMask; - Version = version; - } - - public Vector2Int Coord { get; } - public bool[,] WallMask { get; } - public bool[,] EnvironmentMask { get; } - public int Version { get; } - } - - private enum ChunkState - { - None, - Generating, - SyncBuilding, - ReadyToRender, - Rendered - } - } -} diff --git a/Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs.meta b/Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs.meta deleted file mode 100644 index 509f46f3..00000000 --- a/Assets/Scripts/WorldGen/InfiniteWorldGenerator.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 6bacd3a0ac13e6f4a94548426dd89ebb \ No newline at end of file diff --git a/Assets/Scripts/WorldGen/ProceduralWorldArt.cs b/Assets/Scripts/WorldGen/ProceduralWorldArt.cs deleted file mode 100644 index bfbc36cb..00000000 --- a/Assets/Scripts/WorldGen/ProceduralWorldArt.cs +++ /dev/null @@ -1,350 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Tilemaps; - -namespace InfiniteWorld -{ - public static class ProceduralWorldArt - { - private const int TextureSize = 32; - private static readonly Dictionary SpriteCache = new Dictionary(); - private static readonly Dictionary TileCache = new Dictionary(); - - public static Sprite CreatePlayerSprite() - { - const string key = "player_sprite"; - if (SpriteCache.TryGetValue(key, out Sprite cached)) - { - return cached; - } - - Color transparent = new Color(0f, 0f, 0f, 0f); - Texture2D texture = CreateTexture(key, transparent); - Color cloak = new Color(0.13f, 0.33f, 0.79f, 1f); - Color trim = new Color(0.85f, 0.92f, 1f, 1f); - Color face = new Color(0.99f, 0.89f, 0.72f, 1f); - - FillRect(texture, 10, 4, 12, 16, cloak); - FillRect(texture, 9, 18, 14, 7, cloak); - FillRect(texture, 12, 24, 8, 5, face); - FillRect(texture, 11, 23, 10, 1, trim); - FillRect(texture, 8, 12, 3, 10, trim); - FillRect(texture, 21, 12, 3, 10, trim); - FillRect(texture, 12, 0, 3, 4, cloak); - FillRect(texture, 17, 0, 3, 4, cloak); - texture.Apply(); - - Sprite sprite = CreateSprite(texture); - SpriteCache[key] = sprite; - return sprite; - } - - public static TileBase CreateSolidTile(string key, Color color, float noiseStrength = 0.04f) - { - if (TileCache.TryGetValue(key, out Tile cached)) - { - return cached; - } - - Texture2D texture = CreateTexture(key, color); - ApplyNoise(texture, noiseStrength, 31); - texture.Apply(); - Tile tile = CreateTile(texture, key); - TileCache[key] = tile; - return tile; - } - - public static TileBase CreateFeatureTile(string key, Color fill, Color border, bool top, bool right, bool bottom, bool left, InnerCornerMask innerCornerMask = InnerCornerMask.None, bool solidCollider = false) - { - if (TileCache.TryGetValue(key, out Tile cached)) - { - return cached; - } - - Texture2D texture = CreateTexture(key, fill); - ApplyNoise(texture, 0.05f, 71); - DrawBorder(texture, top, right, bottom, left, border, 4); - CarveInnerCorner(texture, innerCornerMask); - texture.Apply(); - - Tile tile = CreateTile(texture, key); - if (solidCollider) - { - tile.colliderType = Tile.ColliderType.Grid; - } - TileCache[key] = tile; - return tile; - } - - public static TileBase CreateDecorationTile(string key, Color baseColor, Color accentColor, DecorationPattern pattern) - { - if (TileCache.TryGetValue(key, out Tile cached)) - { - return cached; - } - - Color transparent = new Color(0f, 0f, 0f, 0f); - Texture2D texture = CreateTexture(key, transparent); - - switch (pattern) - { - case DecorationPattern.Bush: - DrawDisc(texture, 16, 15, 8, baseColor); - DrawDisc(texture, 10, 13, 6, baseColor); - DrawDisc(texture, 22, 13, 6, baseColor); - DrawDisc(texture, 14, 17, 3, accentColor); - DrawDisc(texture, 21, 17, 3, accentColor); - break; - case DecorationPattern.Flower: - DrawDisc(texture, 16, 12, 2, baseColor); - DrawDisc(texture, 12, 16, 2, baseColor); - DrawDisc(texture, 20, 16, 2, baseColor); - DrawDisc(texture, 16, 20, 2, baseColor); - DrawDisc(texture, 16, 16, 2, accentColor); - DrawLine(texture, 16, 0, 16, 12, new Color(0.2f, 0.5f, 0.2f, 1f)); - break; - default: - DrawDisc(texture, 12, 12, 4, baseColor); - DrawDisc(texture, 20, 18, 3, accentColor); - DrawDisc(texture, 9, 20, 2, accentColor); - break; - } - - texture.Apply(); - Tile tile = CreateTile(texture, key); - TileCache[key] = tile; - return tile; - } - - private static Texture2D CreateTexture(string key, Color fillColor) - { - Texture2D texture = new Texture2D(TextureSize, TextureSize, TextureFormat.RGBA32, false) - { - filterMode = FilterMode.Point, - wrapMode = TextureWrapMode.Clamp, - name = key - }; - - Color[] pixels = new Color[TextureSize * TextureSize]; - for (int i = 0; i < pixels.Length; i++) - { - pixels[i] = fillColor; - } - - texture.SetPixels(pixels); - return texture; - } - - private static Tile CreateTile(Texture2D texture, string key) - { - Sprite sprite = CreateSprite(texture); - Tile tile = ScriptableObject.CreateInstance(); - tile.sprite = sprite; - tile.name = key; - tile.hideFlags = HideFlags.HideAndDontSave; - return tile; - } - - private static Sprite CreateSprite(Texture2D texture) - { - Sprite sprite = Sprite.Create(texture, new Rect(0f, 0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), TextureSize); - sprite.name = texture.name; - return sprite; - } - - private static void ApplyNoise(Texture2D texture, float strength, int offset) - { - if (strength <= 0f) - { - return; - } - - for (int y = 0; y < texture.height; y++) - { - for (int x = 0; x < texture.width; x++) - { - Color pixel = texture.GetPixel(x, y); - if (pixel.a <= 0f) - { - continue; - } - - float noise = Mathf.PerlinNoise((x + offset) * 0.21f, (y + offset) * 0.21f) - 0.5f; - texture.SetPixel(x, y, pixel * (1f + noise * strength * 2f)); - } - } - } - - private static void DrawBorder(Texture2D texture, bool top, bool right, bool bottom, bool left, Color color, int thickness) - { - if (top) - { - FillRect(texture, 0, TextureSize - thickness, TextureSize, thickness, color); - } - - if (bottom) - { - FillRect(texture, 0, 0, TextureSize, thickness, color); - } - - if (left) - { - FillRect(texture, 0, 0, thickness, TextureSize, color); - } - - if (right) - { - FillRect(texture, TextureSize - thickness, 0, thickness, TextureSize, color); - } - } - - private static void CarveInnerCorner(Texture2D texture, InnerCornerMask innerCornerMask) - { - if (innerCornerMask == InnerCornerMask.None) - { - return; - } - - Color transparent = new Color(0f, 0f, 0f, 0f); - const int radius = 8; - - if ((innerCornerMask & InnerCornerMask.TopLeft) != 0) - { - CutCorner(texture, 0, TextureSize - 1, radius, transparent, 1, -1); - } - - if ((innerCornerMask & InnerCornerMask.TopRight) != 0) - { - CutCorner(texture, TextureSize - 1, TextureSize - 1, radius, transparent, -1, -1); - } - - if ((innerCornerMask & InnerCornerMask.BottomRight) != 0) - { - CutCorner(texture, TextureSize - 1, 0, radius, transparent, -1, 1); - } - - if ((innerCornerMask & InnerCornerMask.BottomLeft) != 0) - { - CutCorner(texture, 0, 0, radius, transparent, 1, 1); - } - } - - private static void CutCorner(Texture2D texture, int originX, int originY, int radius, Color transparent, int dirX, int dirY) - { - for (int x = 0; x < radius; x++) - { - for (int y = 0; y < radius; y++) - { - float dx = x / (float)radius; - float dy = y / (float)radius; - if (dx * dx + dy * dy > 1f) - { - continue; - } - - int px = originX + x * dirX; - int py = originY + y * dirY; - if (px >= 0 && px < TextureSize && py >= 0 && py < TextureSize) - { - texture.SetPixel(px, py, transparent); - } - } - } - } - - private static void DrawDisc(Texture2D texture, int centerX, int centerY, int radius, Color color) - { - int sqrRadius = radius * radius; - for (int y = -radius; y <= radius; y++) - { - for (int x = -radius; x <= radius; x++) - { - if (x * x + y * y > sqrRadius) - { - continue; - } - - int px = centerX + x; - int py = centerY + y; - if (px >= 0 && px < TextureSize && py >= 0 && py < TextureSize) - { - texture.SetPixel(px, py, color); - } - } - } - } - - private static void DrawLine(Texture2D texture, int x0, int y0, int x1, int y1, Color color) - { - int dx = Mathf.Abs(x1 - x0); - int sx = x0 < x1 ? 1 : -1; - int dy = -Mathf.Abs(y1 - y0); - int sy = y0 < y1 ? 1 : -1; - int error = dx + dy; - - while (true) - { - if (x0 >= 0 && x0 < TextureSize && y0 >= 0 && y0 < TextureSize) - { - texture.SetPixel(x0, y0, color); - } - - if (x0 == x1 && y0 == y1) - { - break; - } - - int twiceError = 2 * error; - if (twiceError >= dy) - { - error += dy; - x0 += sx; - } - - if (twiceError <= dx) - { - error += dx; - y0 += sy; - } - } - } - - private static void FillRect(Texture2D texture, int x, int y, int width, int height, Color color) - { - for (int py = y; py < y + height; py++) - { - if (py < 0 || py >= TextureSize) - { - continue; - } - - for (int px = x; px < x + width; px++) - { - if (px < 0 || px >= TextureSize) - { - continue; - } - - texture.SetPixel(px, py, color); - } - } - } - } - - public enum DecorationPattern - { - Bush, - Flower, - Rocks - } - - [System.Flags] - public enum InnerCornerMask - { - None = 0, - TopLeft = 1, - TopRight = 2, - BottomRight = 4, - BottomLeft = 8 - } -} diff --git a/Assets/Scripts/WorldGen/ProceduralWorldArt.cs.meta b/Assets/Scripts/WorldGen/ProceduralWorldArt.cs.meta deleted file mode 100644 index df0942f3..00000000 --- a/Assets/Scripts/WorldGen/ProceduralWorldArt.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: fc8c4a69ee2e7a046adf658709613591 \ No newline at end of file diff --git a/Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs b/Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs deleted file mode 100644 index d6f3c7eb..00000000 --- a/Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs +++ /dev/null @@ -1,237 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; - -namespace InfiniteWorld -{ - public static class RuntimeWorldProfileFactory - { - public static WorldAutotileProfile CreateFallbackProfile() - { - WorldAutotileProfile profile = ScriptableObject.CreateInstance(); - profile.name = "RuntimeFallbackWorldProfile"; - - Color grass = new Color(0.35f, 0.62f, 0.26f, 1f); - Color wallFill = new Color(0.48f, 0.37f, 0.22f, 1f); - Color wallBorder = new Color(0.29f, 0.21f, 0.12f, 1f); - - profile.baseGroundTile = ProceduralWorldArt.CreateSolidTile("base_grass", grass, 0.06f); - profile.wallTiles.center = ProceduralWorldArt.CreateFeatureTile("wall_center", wallFill, wallBorder, false, false, false, false, InnerCornerMask.None, true); - profile.wallTiles.top = ProceduralWorldArt.CreateFeatureTile("wall_top", wallFill, wallBorder, true, false, false, false, InnerCornerMask.None, true); - profile.wallTiles.right = ProceduralWorldArt.CreateFeatureTile("wall_right", wallFill, wallBorder, false, true, false, false, InnerCornerMask.None, true); - profile.wallTiles.bottom = ProceduralWorldArt.CreateFeatureTile("wall_bottom", wallFill, wallBorder, false, false, true, false, InnerCornerMask.None, true); - profile.wallTiles.left = ProceduralWorldArt.CreateFeatureTile("wall_left", wallFill, wallBorder, false, false, false, true, InnerCornerMask.None, true); - profile.wallTiles.outerTopLeft = ProceduralWorldArt.CreateFeatureTile("wall_outer_tl", wallFill, wallBorder, true, false, false, true, InnerCornerMask.None, true); - profile.wallTiles.outerTopRight = ProceduralWorldArt.CreateFeatureTile("wall_outer_tr", wallFill, wallBorder, true, true, false, false, InnerCornerMask.None, true); - profile.wallTiles.outerBottomRight = ProceduralWorldArt.CreateFeatureTile("wall_outer_br", wallFill, wallBorder, false, true, true, false, InnerCornerMask.None, true); - profile.wallTiles.outerBottomLeft = ProceduralWorldArt.CreateFeatureTile("wall_outer_bl", wallFill, wallBorder, false, false, true, true, InnerCornerMask.None, true); - profile.wallTiles.innerTopLeft = ProceduralWorldArt.CreateFeatureTile("wall_inner_tl", wallFill, wallBorder, false, false, false, false, InnerCornerMask.TopLeft, true); - profile.wallTiles.innerTopRight = ProceduralWorldArt.CreateFeatureTile("wall_inner_tr", wallFill, wallBorder, false, false, false, false, InnerCornerMask.TopRight, true); - profile.wallTiles.innerBottomRight = ProceduralWorldArt.CreateFeatureTile("wall_inner_br", wallFill, wallBorder, false, false, false, false, InnerCornerMask.BottomRight, true); - profile.wallTiles.innerBottomLeft = ProceduralWorldArt.CreateFeatureTile("wall_inner_bl", wallFill, wallBorder, false, false, false, false, InnerCornerMask.BottomLeft, true); - - profile.environmentTiles.Add(new EnvironmentTileEntry - { - id = "Bush", - tile = ProceduralWorldArt.CreateDecorationTile("env_bush", new Color(0.15f, 0.45f, 0.18f, 1f), new Color(0.23f, 0.58f, 0.25f, 1f), DecorationPattern.Bush), - weight = 1.4f - }); - profile.environmentTiles.Add(new EnvironmentTileEntry - { - id = "FlowerBlue", - tile = ProceduralWorldArt.CreateDecorationTile("env_flower_blue", new Color(0.44f, 0.62f, 0.96f, 1f), new Color(0.98f, 0.91f, 0.52f, 1f), DecorationPattern.Flower), - weight = 0.75f - }); - profile.environmentTiles.Add(new EnvironmentTileEntry - { - id = "Rock", - tile = ProceduralWorldArt.CreateDecorationTile("env_rock", new Color(0.48f, 0.48f, 0.52f, 1f), new Color(0.69f, 0.69f, 0.74f, 1f), DecorationPattern.Rocks), - weight = 0.9f - }); - - return profile; - } - - public static List CreateFallbackTemplates(int size) - { - List templates = new List - { - CreateCross(size), - CreateStraightHorizontal(size), - CreateStraightVertical(size), - CreateCorner(size, true, true, false, false), - CreateCorner(size, false, true, true, false), - CreateCorner(size, false, false, true, true), - CreateCorner(size, true, false, false, true), - CreateTJunction(size, true, true, true, false), - CreateTJunction(size, false, true, true, true), - CreateTJunction(size, true, false, true, true), - CreateTJunction(size, true, true, false, true) - }; - - return templates; - } - - private static ChunkTemplate CreateCross(int size) - { - ChunkTemplate template = CreateTemplate("Runtime_Cross", size, size, true, true, true, true); - DrawRoom(template, 3, 3, size - 6, size - 6); - DrawPillar(template, 4, 4); - DrawPillar(template, size - 5, 4); - DrawPillar(template, 4, size - 5); - DrawPillar(template, size - 5, size - 5); - ScatterEnvironment(template, 3); - return template; - } - - private static ChunkTemplate CreateStraightHorizontal(int size) - { - ChunkTemplate template = CreateTemplate("Runtime_Straight_H", size, size, false, true, false, true); - DrawRoom(template, 2, 4, size - 4, size - 8); - DrawSideAlcoves(template, horizontal: true); - ScatterEnvironment(template, 2); - return template; - } - - private static ChunkTemplate CreateStraightVertical(int size) - { - ChunkTemplate template = CreateTemplate("Runtime_Straight_V", size, size, true, false, true, false); - DrawRoom(template, 4, 2, size - 8, size - 4); - DrawSideAlcoves(template, horizontal: false); - ScatterEnvironment(template, 2); - return template; - } - - private static ChunkTemplate CreateCorner(int size, bool top, bool right, bool bottom, bool left) - { - ChunkTemplate template = CreateTemplate($"Runtime_Corner_{top}_{right}_{bottom}_{left}", size, size, top, right, bottom, left); - DrawRoom(template, 3, 3, size - 6, size - 6); - if (!top) - { - DrawWallLine(template, 5, size - 5, size - 6, size - 5); - } - if (!right) - { - DrawWallLine(template, size - 5, 5, size - 5, size - 6); - } - if (!bottom) - { - DrawWallLine(template, 5, 4, size - 6, 4); - } - if (!left) - { - DrawWallLine(template, 4, 5, 4, size - 6); - } - ScatterEnvironment(template, 2); - return template; - } - - private static ChunkTemplate CreateTJunction(int size, bool top, bool right, bool bottom, bool left) - { - ChunkTemplate template = CreateTemplate($"Runtime_T_{top}_{right}_{bottom}_{left}", size, size, top, right, bottom, left); - DrawRoom(template, 2, 2, size - 4, size - 4); - DrawPillar(template, size / 2, size / 2); - ScatterEnvironment(template, 3); - return template; - } - - private static ChunkTemplate CreateTemplate(string name, int width, int height, bool top, bool right, bool bottom, bool left) - { - ChunkTemplate template = ScriptableObject.CreateInstance(); - template.name = name; - template.Resize(width, height); - template.exitTop = top; - template.exitRight = right; - template.exitBottom = bottom; - template.exitLeft = left; - template.ApplyBorderWallsFromExits(3); - return template; - } - - private static void DrawRoom(ChunkTemplate template, int xMin, int yMin, int width, int height) - { - for (int x = xMin; x < xMin + width; x++) - { - template.SetWall(x, yMin, true); - template.SetWall(x, yMin + height - 1, true); - } - - for (int y = yMin; y < yMin + height; y++) - { - template.SetWall(xMin, y, true); - template.SetWall(xMin + width - 1, y, true); - } - - template.CarveExit(ChunkExit.Top, 3); - template.CarveExit(ChunkExit.Right, 3); - template.CarveExit(ChunkExit.Bottom, 3); - template.CarveExit(ChunkExit.Left, 3); - } - - private static void DrawPillar(ChunkTemplate template, int x, int y) - { - for (int py = -1; py <= 1; py++) - { - for (int px = -1; px <= 1; px++) - { - template.SetWall(x + px, y + py, true); - } - } - } - - private static void DrawSideAlcoves(ChunkTemplate template, bool horizontal) - { - if (horizontal) - { - DrawWallLine(template, template.width / 2 - 1, 5, template.width / 2 - 1, 7); - DrawWallLine(template, template.width / 2 + 1, template.height - 8, template.width / 2 + 1, template.height - 6); - } - else - { - DrawWallLine(template, 5, template.height / 2 - 1, 7, template.height / 2 - 1); - DrawWallLine(template, template.width - 8, template.height / 2 + 1, template.width - 6, template.height / 2 + 1); - } - } - - private static void DrawWallLine(ChunkTemplate template, int x0, int y0, int x1, int y1) - { - int dx = Math.Sign(x1 - x0); - int dy = Math.Sign(y1 - y0); - int x = x0; - int y = y0; - - while (true) - { - template.SetWall(x, y, true); - if (x == x1 && y == y1) - { - break; - } - - if (x != x1) - { - x += dx; - } - - if (y != y1) - { - y += dy; - } - } - } - - private static void ScatterEnvironment(ChunkTemplate template, int spacing) - { - for (int y = 2; y < template.height - 2; y += spacing + 2) - { - for (int x = 2; x < template.width - 2; x += spacing + 3) - { - if (!template.GetWall(x, y)) - { - template.SetEnvironment(x, y, ((x + y) & 1) == 0); - } - } - } - } - } -} diff --git a/Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs.meta b/Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs.meta deleted file mode 100644 index 28148519..00000000 --- a/Assets/Scripts/WorldGen/RuntimeWorldProfileFactory.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e5b485257bdc222448c314a7cd173845 \ No newline at end of file diff --git a/Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs b/Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs deleted file mode 100644 index 7ca2c9dc..00000000 --- a/Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs +++ /dev/null @@ -1,10 +0,0 @@ -using UnityEngine; - -namespace InfiniteWorld -{ - [DisallowMultipleComponent] - public sealed class WorldAutotileAuthoringRoot : MonoBehaviour - { - public WorldAutotileProfile profile; - } -} diff --git a/Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs.meta b/Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs.meta deleted file mode 100644 index e3d414cd..00000000 --- a/Assets/Scripts/WorldGen/WorldAutotileAuthoringRoot.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: bbd0bbbd74f81084bb8661f761798856 \ No newline at end of file diff --git a/Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs b/Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs deleted file mode 100644 index 632023e2..00000000 --- a/Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs +++ /dev/null @@ -1,18 +0,0 @@ -using UnityEngine; - -namespace InfiniteWorld -{ - public enum WorldAutotileAuthoringSectionType - { - WallShapes, - BackgroundSample, - EnvironmentPalette - } - - [DisallowMultipleComponent] - public sealed class WorldAutotileAuthoringSection : MonoBehaviour - { - public WorldAutotileAuthoringSectionType sectionType; - public Vector2Int size = Vector2Int.one; - } -} diff --git a/Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs.meta b/Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs.meta deleted file mode 100644 index 3e1c3d17..00000000 --- a/Assets/Scripts/WorldGen/WorldAutotileAuthoringSection.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: fbfe986c83f0c96419c804643d142e37 \ No newline at end of file diff --git a/Assets/Scripts/WorldGen/WorldAutotileProfile.cs b/Assets/Scripts/WorldGen/WorldAutotileProfile.cs deleted file mode 100644 index e78a6ee4..00000000 --- a/Assets/Scripts/WorldGen/WorldAutotileProfile.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Tilemaps; - -namespace InfiniteWorld -{ - [CreateAssetMenu(menuName = "Infinite World/World Autotile Profile", fileName = "WorldAutotileProfile")] - public class WorldAutotileProfile : ScriptableObject - { - public bool autoUpdatePaletteLayout = true; - public bool autoRefreshGeneratedWorld = true; - public TileBase baseGroundTile; - public AutoTileDefinition wallTiles = new AutoTileDefinition(); - public List environmentTiles = new List(); - public List randomPrefabs = new List(); - - public TileBase GetWallTile(AutoTileShape shape) - { - return wallTiles != null ? wallTiles.GetTile(shape) : null; - } - - public bool HasAnyAssignedTiles() - { - if (baseGroundTile != null) - { - return true; - } - - if (wallTiles != null && wallTiles.HasAnyAssignedTiles()) - { - return true; - } - - if (environmentTiles != null) - { - for (int i = 0; i < environmentTiles.Count; i++) - { - if (environmentTiles[i] != null && environmentTiles[i].tile != null) - { - return true; - } - } - } - - return false; - } - } - - public enum AutoTileShape - { - Center, - Top, - Right, - Bottom, - Left, - OuterTopLeft, - OuterTopRight, - OuterBottomRight, - OuterBottomLeft, - InnerTopLeft, - InnerTopRight, - InnerBottomRight, - InnerBottomLeft - } - - [Serializable] - public class AutoTileDefinition - { - public TileBase center; - public TileBase top; - public TileBase right; - public TileBase bottom; - public TileBase left; - public TileBase outerTopLeft; - public TileBase outerTopRight; - public TileBase outerBottomRight; - public TileBase outerBottomLeft; - public TileBase innerTopLeft; - public TileBase innerTopRight; - public TileBase innerBottomRight; - public TileBase innerBottomLeft; - - public TileBase GetTile(AutoTileShape shape) - { - TileBase tile = shape switch - { - AutoTileShape.Center => center, - AutoTileShape.Top => top, - AutoTileShape.Right => right, - AutoTileShape.Bottom => bottom, - AutoTileShape.Left => left, - AutoTileShape.OuterTopLeft => outerTopLeft, - AutoTileShape.OuterTopRight => outerTopRight, - AutoTileShape.OuterBottomRight => outerBottomRight, - AutoTileShape.OuterBottomLeft => outerBottomLeft, - AutoTileShape.InnerTopLeft => innerTopLeft, - AutoTileShape.InnerTopRight => innerTopRight, - AutoTileShape.InnerBottomRight => innerBottomRight, - AutoTileShape.InnerBottomLeft => innerBottomLeft, - _ => center - }; - - return tile ?? center; - } - - public TileBase GetAssignedTile(AutoTileShape shape) - { - return shape switch - { - AutoTileShape.Center => center, - AutoTileShape.Top => top, - AutoTileShape.Right => right, - AutoTileShape.Bottom => bottom, - AutoTileShape.Left => left, - AutoTileShape.OuterTopLeft => outerTopLeft, - AutoTileShape.OuterTopRight => outerTopRight, - AutoTileShape.OuterBottomRight => outerBottomRight, - AutoTileShape.OuterBottomLeft => outerBottomLeft, - AutoTileShape.InnerTopLeft => innerTopLeft, - AutoTileShape.InnerTopRight => innerTopRight, - AutoTileShape.InnerBottomRight => innerBottomRight, - AutoTileShape.InnerBottomLeft => innerBottomLeft, - _ => null - }; - } - - public bool HasAnyAssignedTiles() - { - return center != null || - top != null || - right != null || - bottom != null || - left != null || - outerTopLeft != null || - outerTopRight != null || - outerBottomRight != null || - outerBottomLeft != null || - innerTopLeft != null || - innerTopRight != null || - innerBottomRight != null || - innerBottomLeft != null; - } - } - - [Serializable] - public class EnvironmentTileEntry - { - public string id = "Environment"; - public TileBase tile; - [Min(0f)] public float weight = 1f; - } - - [Serializable] - public class RandomPrefabEntry - { - public string id = "RandomPrefab"; - public GameObject prefab; - [Min(0f)] public float weight = 1f; - } -} diff --git a/Assets/Scripts/WorldGen/WorldAutotileProfile.cs.meta b/Assets/Scripts/WorldGen/WorldAutotileProfile.cs.meta deleted file mode 100644 index fadc8263..00000000 --- a/Assets/Scripts/WorldGen/WorldAutotileProfile.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: e36b055e81273a54c8e736e2ef74fa50 \ No newline at end of file diff --git a/Packages/manifest.json b/Packages/manifest.json index de5e08b3..8825a419 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,20 +1,9 @@ { "dependencies": { - "com.unity.2d.animation": "13.0.4", - "com.unity.2d.aseprite": "3.0.1", - "com.unity.2d.common": "12.0.2", - "com.unity.2d.pixel-perfect": "5.1.1", - "com.unity.2d.psdimporter": "12.0.1", - "com.unity.2d.sprite": "1.0.0", - "com.unity.2d.spriteshape": "13.0.0", - "com.unity.2d.tilemap": "1.0.0", - "com.unity.2d.tilemap.extras": "6.0.1", - "com.unity.2d.tooling": "1.0.2", "com.unity.burst": "1.8.28", "com.unity.collab-proxy": "2.11.3", "com.unity.collections": "2.6.2", "com.unity.ext.nunit": "2.0.5", - "com.unity.feature.2d": "2.0.2", "com.unity.ide.rider": "3.0.39", "com.unity.ide.visualstudio": "2.0.26", "com.unity.ide.vscode": "1.2.5", @@ -41,12 +30,10 @@ "com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.particlesystem": "1.0.0", "com.unity.modules.physics": "1.0.0", - "com.unity.modules.physics2d": "1.0.0", "com.unity.modules.screencapture": "1.0.0", "com.unity.modules.subsystems": "1.0.0", "com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrainphysics": "1.0.0", - "com.unity.modules.tilemap": "1.0.0", "com.unity.modules.ui": "1.0.0", "com.unity.modules.uielements": "1.0.0", "com.unity.modules.uielementsnative": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 294333de..a3e4f813 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,113 +1,5 @@ { "dependencies": { - "com.unity.2d.animation": { - "version": "13.0.4", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.2d.common": "12.0.2", - "com.unity.2d.sprite": "1.0.0", - "com.unity.collections": "2.4.3", - "com.unity.modules.animation": "1.0.0", - "com.unity.modules.uielements": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.aseprite": { - "version": "3.0.1", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.2d.common": "12.0.1", - "com.unity.2d.sprite": "1.0.0", - "com.unity.2d.tilemap": "1.0.0", - "com.unity.mathematics": "1.2.6", - "com.unity.modules.animation": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.common": { - "version": "12.0.2", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.burst": "1.8.4", - "com.unity.2d.sprite": "1.0.0", - "com.unity.collections": "2.4.3", - "com.unity.mathematics": "1.1.0", - "com.unity.modules.animation": "1.0.0", - "com.unity.modules.uielements": "1.0.0", - "com.unity.modules.imageconversion": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.pixel-perfect": { - "version": "5.1.1", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.modules.imgui": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.psdimporter": { - "version": "12.0.1", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.2d.common": "12.0.1", - "com.unity.2d.sprite": "1.0.0", - "com.unity.2d.tilemap": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.sprite": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, - "com.unity.2d.spriteshape": { - "version": "13.0.0", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.2d.common": "12.0.0", - "com.unity.mathematics": "1.1.0", - "com.unity.modules.physics2d": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.tilemap": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.tilemap": "1.0.0", - "com.unity.modules.uielements": "1.0.0" - } - }, - "com.unity.2d.tilemap.extras": { - "version": "6.0.1", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.2d.tilemap": "1.0.0", - "com.unity.modules.tilemap": "1.0.0", - "com.unity.modules.jsonserialize": "1.0.0" - }, - "url": "https://packages.unity.com" - }, - "com.unity.2d.tooling": { - "version": "1.0.2", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.2d.common": "12.0.2", - "com.unity.modules.uielements": "1.0.0" - }, - "url": "https://packages.unity.com" - }, "com.unity.burst": { "version": "1.8.28", "depth": 0, @@ -144,22 +36,6 @@ "source": "builtin", "dependencies": {} }, - "com.unity.feature.2d": { - "version": "2.0.2", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.2d.animation": "13.0.4", - "com.unity.2d.pixel-perfect": "5.1.1", - "com.unity.2d.psdimporter": "12.0.1", - "com.unity.2d.sprite": "1.0.0", - "com.unity.2d.spriteshape": "13.0.0", - "com.unity.2d.tilemap": "1.0.0", - "com.unity.2d.tilemap.extras": "6.0.1", - "com.unity.2d.aseprite": "3.0.1", - "com.unity.2d.tooling": "1.0.2" - } - }, "com.unity.ide.rider": { "version": "3.0.39", "depth": 0, @@ -419,12 +295,6 @@ "source": "builtin", "dependencies": {} }, - "com.unity.modules.physics2d": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": {} - }, "com.unity.modules.screencapture": { "version": "1.0.0", "depth": 0, @@ -456,14 +326,6 @@ "com.unity.modules.terrain": "1.0.0" } }, - "com.unity.modules.tilemap": { - "version": "1.0.0", - "depth": 0, - "source": "builtin", - "dependencies": { - "com.unity.modules.physics2d": "1.0.0" - } - }, "com.unity.modules.ui": { "version": "1.0.0", "depth": 0, diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index d712d2de..f6fbd773 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -6,8 +6,8 @@ EditorBuildSettings: serializedVersion: 2 m_Scenes: - enabled: 1 - path: Assets/Scenes/SampleScene.unity - guid: 8c9cfa26abfee488c85f1582747f6a02 + path: Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity + guid: a0ae584ed532105449545cd0c38404e5 m_configObjects: com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3} m_UseUCBPForAssetBundles: 0 diff --git a/docs/tasks/items/TASK-0001.md b/docs/tasks/items/TASK-0001.md index e7f8f1e7..9d2be720 100644 --- a/docs/tasks/items/TASK-0001.md +++ b/docs/tasks/items/TASK-0001.md @@ -13,9 +13,9 @@ canonical_docs: - docs/tasks/Index.md - docs/tasks/_template.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0001 - Зафиксировать MVP-архитектуру диаблоида на FishNet @@ -42,20 +42,20 @@ related_files: ## Current Context -В проекте есть воксельный генератор мира в `Assets/Scripts/VoxelWorld/*` и легаси код в `Assets/Scripts/WorldGen/*`. Фокус проекта смещен на воксельный генератор, поэтому архитектурные решения должны опираться на него. +В проекте фокус полностью смещен на воксельный генератор в `Assets/Features/VoxelWorld/*`. Архитектурные решения должны опираться на эту ветку как на каноническую. ## Source Of Truth - `docs/tasks/Index.md` -- код в `Assets/Scripts/VoxelWorld/*` +- код в `Assets/Features/VoxelWorld/*` - явные решения человека по MVP после создания этой задачи ## Read First - `docs/tasks/Index.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs` -- `Assets/Scripts/Player/SimplePlayerInputMover.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs` +- `Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity` ## Scope In diff --git a/docs/tasks/items/TASK-0002.md b/docs/tasks/items/TASK-0002.md index 60c73a83..83210c6d 100644 --- a/docs/tasks/items/TASK-0002.md +++ b/docs/tasks/items/TASK-0002.md @@ -13,8 +13,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scenes/SampleScene.unity - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0002 - Реализовать сетевой bootstrap, лобби и выбор мира @@ -41,7 +40,7 @@ related_files: ## Current Context -В проекте пока нет видимого сетевого кода FishNet. Есть только локальные worldgen и player prototype скрипты. +В проекте уже есть каноническая voxel-сцена и runtime worldgen, но сетевой bootstrap и lobby flow еще не оформлены. ## Source Of Truth @@ -52,8 +51,7 @@ related_files: ## Read First - `docs/tasks/items/TASK-0001.md` -- `Assets/Scenes/SampleScene.unity` -- `Assets/Scripts/Player/SimplePlayerInputMover.cs` +- `Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity` ## Scope In @@ -74,7 +72,7 @@ related_files: ## If You Find Drift -- если текущая сцена прототипа мешает лобби flow, зафиксируйте это и вынесите сценовую декомпозицию в подзадачи реализации +- если текущая voxel-сцена мешает lobby/world selection flow, зафиксируйте это и вынесите сценовую декомпозицию в подзадачи реализации ## Suggested Approach diff --git a/docs/tasks/items/TASK-0003.md b/docs/tasks/items/TASK-0003.md index 0d4ab9b4..212152a0 100644 --- a/docs/tasks/items/TASK-0003.md +++ b/docs/tasks/items/TASK-0003.md @@ -13,8 +13,8 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs --- # TASK-0003 - Построить детерминированную voxel-генерацию мира с биомами @@ -41,19 +41,19 @@ related_files: ## Current Context -В проекте уже есть `VoxelWorldGenerator`, который строит чанки и управляет их lifecycle. Легаси `Assets/Scripts/WorldGen/*` не является фокусом проекта. +В проекте уже есть `VoxelWorldGenerator`, который строит чанки и управляет их lifecycle. Канонический код мира находится в `Assets/Features/VoxelWorld/*`. ## Source Of Truth -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs` - решения из `TASK-0001` ## Read First - `docs/tasks/items/TASK-0001.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs` ## Scope In diff --git a/docs/tasks/items/TASK-0004.md b/docs/tasks/items/TASK-0004.md index 495594dd..fd8a8d7c 100644 --- a/docs/tasks/items/TASK-0004.md +++ b/docs/tasks/items/TASK-0004.md @@ -13,8 +13,8 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scenes/SampleScene.unity - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0004 - Спроектировать раздельные сохранения мира и персонажей @@ -53,7 +53,7 @@ related_files: - `docs/tasks/items/TASK-0001.md` - `docs/tasks/items/TASK-0002.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` ## Scope In diff --git a/docs/tasks/items/TASK-0005.md b/docs/tasks/items/TASK-0005.md index 482cf16e..d2f36681 100644 --- a/docs/tasks/items/TASK-0005.md +++ b/docs/tasks/items/TASK-0005.md @@ -13,7 +13,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs --- # TASK-0005 - Реализовать детерминированный спавн врагов по чанкам @@ -50,7 +50,7 @@ related_files: ## Read First - `docs/tasks/items/TASK-0003.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` ## Scope In diff --git a/docs/tasks/items/TASK-0006.md b/docs/tasks/items/TASK-0006.md index aadaae7c..0b28d844 100644 --- a/docs/tasks/items/TASK-0006.md +++ b/docs/tasks/items/TASK-0006.md @@ -14,7 +14,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs --- # TASK-0006 - Реализовать побитовую систему состояния врагов в чанке @@ -53,7 +53,7 @@ Enemy slot model должна прийти из `TASK-0005`, а общая сх - `docs/tasks/items/TASK-0004.md` - `docs/tasks/items/TASK-0005.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` ## Scope In diff --git a/docs/tasks/items/TASK-0007.md b/docs/tasks/items/TASK-0007.md index 0ebcb33e..f3bfe120 100644 --- a/docs/tasks/items/TASK-0007.md +++ b/docs/tasks/items/TASK-0007.md @@ -13,7 +13,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0007 - Построить базовую боевую систему и прогрессию @@ -50,7 +50,7 @@ related_files: ## Read First - `docs/tasks/items/TASK-0001.md` -- `Assets/Scripts/Player/SimplePlayerInputMover.cs` +- `Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity` ## Scope In diff --git a/docs/tasks/items/TASK-0008.md b/docs/tasks/items/TASK-0008.md index 5400ab14..c08187aa 100644 --- a/docs/tasks/items/TASK-0008.md +++ b/docs/tasks/items/TASK-0008.md @@ -14,7 +14,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0008 - Реализовать сетевой инвентарь и экипировку diff --git a/docs/tasks/items/TASK-0009.md b/docs/tasks/items/TASK-0009.md index 8476d3b5..03f5e177 100644 --- a/docs/tasks/items/TASK-0009.md +++ b/docs/tasks/items/TASK-0009.md @@ -14,7 +14,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0009 - Ввести абстрактную систему оружия diff --git a/docs/tasks/items/TASK-0010.md b/docs/tasks/items/TASK-0010.md index 9a9c4431..dd9e28d7 100644 --- a/docs/tasks/items/TASK-0010.md +++ b/docs/tasks/items/TASK-0010.md @@ -14,7 +14,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0010 - Реализовать абстрактную систему скиллов и книг для оружия diff --git a/docs/tasks/items/TASK-0011.md b/docs/tasks/items/TASK-0011.md index 813cdae2..4416f71d 100644 --- a/docs/tasks/items/TASK-0011.md +++ b/docs/tasks/items/TASK-0011.md @@ -16,7 +16,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0011 - Сделать базовую модель классов персонажей diff --git a/docs/tasks/items/TASK-0012.md b/docs/tasks/items/TASK-0012.md index 1e968920..26ab6da6 100644 --- a/docs/tasks/items/TASK-0012.md +++ b/docs/tasks/items/TASK-0012.md @@ -16,8 +16,8 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs - - Assets/Scenes/SampleScene.unity + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0012 - Построить систему врагов на NavMesh с использованием скиллов @@ -57,7 +57,7 @@ related_files: - `docs/tasks/items/TASK-0005.md` - `docs/tasks/items/TASK-0007.md` - `docs/tasks/items/TASK-0010.md` -- `Assets/Scenes/SampleScene.unity` +- `Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity` ## Scope In diff --git a/docs/tasks/items/TASK-0013.md b/docs/tasks/items/TASK-0013.md index 56c67a12..b9592207 100644 --- a/docs/tasks/items/TASK-0013.md +++ b/docs/tasks/items/TASK-0013.md @@ -15,7 +15,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scenes/SampleScene.unity + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0013 - Реализовать меню лобби, выбор персонажа и выбор мира @@ -55,7 +55,7 @@ related_files: - `docs/tasks/items/TASK-0002.md` - `docs/tasks/items/TASK-0004.md` - `docs/tasks/items/TASK-0011.md` -- `Assets/Scenes/SampleScene.unity` +- `Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity` ## Scope In diff --git a/docs/tasks/items/TASK-0014.md b/docs/tasks/items/TASK-0014.md index f90fdcf6..83e8866a 100644 --- a/docs/tasks/items/TASK-0014.md +++ b/docs/tasks/items/TASK-0014.md @@ -15,7 +15,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0014 - Реализовать MVP-скилл Воина с ударом мечом diff --git a/docs/tasks/items/TASK-0015.md b/docs/tasks/items/TASK-0015.md index e4a54fa7..f8d066c6 100644 --- a/docs/tasks/items/TASK-0015.md +++ b/docs/tasks/items/TASK-0015.md @@ -15,7 +15,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0015 - Реализовать MVP-скилл Мага с AOE-кастом diff --git a/docs/tasks/items/TASK-0016.md b/docs/tasks/items/TASK-0016.md index 950f4609..eeff35bb 100644 --- a/docs/tasks/items/TASK-0016.md +++ b/docs/tasks/items/TASK-0016.md @@ -15,7 +15,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/Player/SimplePlayerInputMover.cs + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0016 - Реализовать MVP-скилл Лучника с выстрелом diff --git a/docs/tasks/items/TASK-0017.md b/docs/tasks/items/TASK-0017.md index 216ee646..83cc0efd 100644 --- a/docs/tasks/items/TASK-0017.md +++ b/docs/tasks/items/TASK-0017.md @@ -15,7 +15,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scenes/SampleScene.unity + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0017 - Добавить reconnect/resume после дисконнекта с сохранением позиции diff --git a/docs/tasks/items/TASK-0018.md b/docs/tasks/items/TASK-0018.md index 4e9c89bb..d383cf9f 100644 --- a/docs/tasks/items/TASK-0018.md +++ b/docs/tasks/items/TASK-0018.md @@ -14,7 +14,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs --- # TASK-0018 - Добавить миграции формата сохранений между версиями diff --git a/docs/tasks/items/TASK-0019.md b/docs/tasks/items/TASK-0019.md index 8767afcb..0ff06b8f 100644 --- a/docs/tasks/items/TASK-0019.md +++ b/docs/tasks/items/TASK-0019.md @@ -13,7 +13,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs - Assets/ChunkTemplate.asset --- @@ -52,7 +52,7 @@ Dungeon prefab должны одинаково размещаться по seed ## Read First - `docs/tasks/items/TASK-0003.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` - `Assets/ChunkTemplate.asset` ## Scope In diff --git a/docs/tasks/items/TASK-0020.md b/docs/tasks/items/TASK-0020.md index 83421115..06d59b11 100644 --- a/docs/tasks/items/TASK-0020.md +++ b/docs/tasks/items/TASK-0020.md @@ -16,7 +16,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scenes/SampleScene.unity + - Assets/Features/VoxelWorld/Scenes/VoxelWorldTestScene.unity --- # TASK-0020 - Добавить серверные ограничения и валидации против читов diff --git a/docs/tasks/items/TASK-0021.md b/docs/tasks/items/TASK-0021.md index 5c934ea4..1da2a29f 100644 --- a/docs/tasks/items/TASK-0021.md +++ b/docs/tasks/items/TASK-0021.md @@ -13,8 +13,8 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs - - Assets/Editor/Tasks/TaskBoardWindow.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/Tasks/Editor/TaskBoardWindow.cs --- # TASK-0021 - Привести проект в порядок (asmdef и базовые тесты) @@ -53,7 +53,7 @@ related_files: ## Read First - `docs/tasks/Index.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` ## Scope In @@ -104,4 +104,4 @@ related_files: ## Handoff Notes -Если при разнесении asmdef всплывет, что legacy `Assets/Scripts/WorldGen/*` больше не нужен, лучше выделить его в отдельный assembly или пометить как deprecated, а не смешивать с `VoxelWorld`. +Легаси `Assets/Scripts/WorldGen/*` удален. Дальнейшие изменения стоит делать только внутри актуальных feature-папок, не возвращая старую 2D-ветку в общий runtime. diff --git a/docs/tasks/items/TASK-0022.md b/docs/tasks/items/TASK-0022.md index 0a0eeb16..fc82224a 100644 --- a/docs/tasks/items/TASK-0022.md +++ b/docs/tasks/items/TASK-0022.md @@ -15,7 +15,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs --- # TASK-0022 - Интегрировать спавн врагов в VoxelWorldGenerator @@ -42,7 +42,7 @@ related_files: - `docs/tasks/items/TASK-0005.md` - `docs/tasks/items/TASK-0006.md` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` ## Scope In diff --git a/docs/tasks/items/TASK-0023.md b/docs/tasks/items/TASK-0023.md index 0ede8382..f9a77eec 100644 --- a/docs/tasks/items/TASK-0023.md +++ b/docs/tasks/items/TASK-0023.md @@ -13,7 +13,7 @@ depends_on: canonical_docs: - docs/tasks/Index.md related_files: - - Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs + - Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs --- # TASK-0023 - Runtime NavMesh bake для voxel-чанка diff --git a/docs/tasks/items/TASK-0024.md b/docs/tasks/items/TASK-0024.md index df9766d7..ea1be7f0 100644 --- a/docs/tasks/items/TASK-0024.md +++ b/docs/tasks/items/TASK-0024.md @@ -43,8 +43,8 @@ related_files: ## Read First -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldAtlas.cs` -- `Assets/Scripts/VoxelWorld/Runtime/VoxelWorldGenerator.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldAtlas.cs` +- `Assets/Features/VoxelWorld/Runtime/VoxelWorldGenerator.cs` ## Scope In