From 13ed569eaf54043f22ae99416c0e8d58517543a0 Mon Sep 17 00:00:00 2001 From: Jan Racek Date: Fri, 27 Mar 2026 21:29:24 +0100 Subject: [PATCH] cleanup --- Debug.unity | 872 ------------------ Debug.unity.meta | 7 - Editor/Core/MkpsxisoDownloader.cs | 23 +- Editor/Core/PCSXReduxDownloader.cs | 25 +- Editor/Core/PSXAudioConverter.cs | 23 +- Editor/QuantizedPreviewWindow.cs | 26 +- Icons/LuaFile.png | Bin 0 -> 18247 bytes ...jectExporter.png.meta => LuaFile.png.meta} | 2 +- Icons/PSXAudioClip.png | Bin 0 -> 15899 bytes ...Navmesh.png.meta => PSXAudioClip.png.meta} | 2 +- Icons/PSXCanvas.png | Bin 0 -> 13276 bytes Icons/PSXCanvas.png.meta | 143 +++ Icons/PSXCutsceneClip.png | Bin 0 -> 12605 bytes Icons/PSXCutsceneClip.png.meta | 143 +++ Icons/PSXData.png | Bin 0 -> 19777 bytes Icons/PSXData.png.meta | 143 +++ Icons/PSXFontAsset.png | Bin 0 -> 14919 bytes Icons/PSXFontAsset.png.meta | 143 +++ Icons/PSXInteractable.png | Bin 0 -> 12481 bytes Icons/PSXInteractable.png.meta | 143 +++ Icons/PSXNavmesh.png | Bin 6837 -> 0 bytes Icons/PSXObjectExporter.png | Bin 0 -> 17845 bytes Icons/PSXObjectExporter.png.meta | 143 +++ Icons/PSXPlayer.png | Bin 9161 -> 13358 bytes Icons/PSXPortalLink.png | Bin 0 -> 13401 bytes Icons/PSXPortalLink.png.meta | 143 +++ Icons/PSXRoom.png | Bin 0 -> 11618 bytes Icons/PSXRoom.png.meta | 143 +++ Icons/PSXSObjectExporter.png | Bin 6839 -> 0 bytes Icons/PSXSceneExporter.png | Bin 8210 -> 13458 bytes Icons/PSXTriggerBox.png | Bin 0 -> 12921 bytes Icons/PSXTriggerBox.png.meta | 143 +++ Icons/PSXUIBox.png | Bin 0 -> 10429 bytes Icons/PSXUIBox.png.meta | 143 +++ Icons/PSXUIImage.png | Bin 0 -> 14854 bytes Icons/PSXUIImage.png.meta | 143 +++ Icons/PSXUIProgressBar.png | Bin 0 -> 13392 bytes Icons/PSXUIProgressBar.png.meta | 143 +++ Icons/PSXUIText.png | Bin 0 -> 9466 bytes Icons/PSXUIText.png.meta | 143 +++ Runtime/IPSXExportable.cs | 3 + Runtime/ImageProcessing.cs | 34 +- Runtime/LuaFile.cs | 1 + Runtime/PSXAudioClip.cs | 5 +- Runtime/PSXCanvas.cs | 1 + Runtime/PSXCutsceneClip.cs | 1 + Runtime/PSXData.cs | 1 + Runtime/PSXFontAsset.cs | 10 +- Runtime/PSXInteractable.cs | 1 + Runtime/PSXLightingBaker.cs | 2 + Runtime/PSXMesh.cs | 7 +- Runtime/PSXObjectExporter.cs | 1 + Runtime/PSXPlayer.cs | 1 + Runtime/PSXPortalLink.cs | 1 + Runtime/PSXRoom.cs | 1 + Runtime/PSXSceneExporter.cs | 1 + Runtime/PSXSceneWriter.cs | 20 +- Runtime/PSXTexture2D.cs | 4 +- Runtime/PSXTrackType.cs | 4 - Runtime/PSXTriggerBox.cs | 1 + Runtime/PSXUIBox.cs | 1 + Runtime/PSXUIImage.cs | 1 + Runtime/PSXUIProgressBar.cs | 1 + Runtime/PSXUIText.cs | 1 + Runtime/SceneMemoryAnalyzer.cs | 10 +- Runtime/TexturePacker.cs | 2 +- Runtime/Utils.cs | 24 + Sample.meta | 8 - Sample/Lua.meta | 8 - Sample/Lua/example.lua | 95 -- Sample/Lua/example.lua.meta | 10 - Sample/Material.meta | 8 - Sample/Material/PSXDefault.mat | 137 --- Sample/Material/PSXDefault.mat.meta | 8 - Sample/Scene.meta | 8 - Sample/Scene/Demo.unity | 683 -------------- Sample/Scene/Demo.unity.meta | 7 - doc.meta | 8 - tools.meta | 8 - tools/LUA_VSCODE_SETUP.md | 49 - tools/LUA_VSCODE_SETUP.md.meta | 7 - tools/imhex.hexproj | Bin 19968 -> 0 bytes tools/imhex.hexproj.meta | 7 - tools/splash_api.lua | 383 -------- tools/splash_api.lua.meta | 10 - 85 files changed, 1953 insertions(+), 2470 deletions(-) delete mode 100644 Debug.unity delete mode 100644 Debug.unity.meta create mode 100644 Icons/LuaFile.png rename Icons/{PSXSObjectExporter.png.meta => LuaFile.png.meta} (98%) create mode 100644 Icons/PSXAudioClip.png rename Icons/{PSXNavmesh.png.meta => PSXAudioClip.png.meta} (98%) create mode 100644 Icons/PSXCanvas.png create mode 100644 Icons/PSXCanvas.png.meta create mode 100644 Icons/PSXCutsceneClip.png create mode 100644 Icons/PSXCutsceneClip.png.meta create mode 100644 Icons/PSXData.png create mode 100644 Icons/PSXData.png.meta create mode 100644 Icons/PSXFontAsset.png create mode 100644 Icons/PSXFontAsset.png.meta create mode 100644 Icons/PSXInteractable.png create mode 100644 Icons/PSXInteractable.png.meta delete mode 100644 Icons/PSXNavmesh.png create mode 100644 Icons/PSXObjectExporter.png create mode 100644 Icons/PSXObjectExporter.png.meta create mode 100644 Icons/PSXPortalLink.png create mode 100644 Icons/PSXPortalLink.png.meta create mode 100644 Icons/PSXRoom.png create mode 100644 Icons/PSXRoom.png.meta delete mode 100644 Icons/PSXSObjectExporter.png create mode 100644 Icons/PSXTriggerBox.png create mode 100644 Icons/PSXTriggerBox.png.meta create mode 100644 Icons/PSXUIBox.png create mode 100644 Icons/PSXUIBox.png.meta create mode 100644 Icons/PSXUIImage.png create mode 100644 Icons/PSXUIImage.png.meta create mode 100644 Icons/PSXUIProgressBar.png create mode 100644 Icons/PSXUIProgressBar.png.meta create mode 100644 Icons/PSXUIText.png create mode 100644 Icons/PSXUIText.png.meta delete mode 100644 Sample.meta delete mode 100644 Sample/Lua.meta delete mode 100644 Sample/Lua/example.lua delete mode 100644 Sample/Lua/example.lua.meta delete mode 100644 Sample/Material.meta delete mode 100644 Sample/Material/PSXDefault.mat delete mode 100644 Sample/Material/PSXDefault.mat.meta delete mode 100644 Sample/Scene.meta delete mode 100644 Sample/Scene/Demo.unity delete mode 100644 Sample/Scene/Demo.unity.meta delete mode 100644 doc.meta delete mode 100644 tools.meta delete mode 100644 tools/LUA_VSCODE_SETUP.md delete mode 100644 tools/LUA_VSCODE_SETUP.md.meta delete mode 100644 tools/imhex.hexproj delete mode 100644 tools/imhex.hexproj.meta delete mode 100644 tools/splash_api.lua delete mode 100644 tools/splash_api.lua.meta diff --git a/Debug.unity b/Debug.unity deleted file mode 100644 index 8aefc5e..0000000 --- a/Debug.unity +++ /dev/null @@ -1,872 +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: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 - 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: 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 &283344192 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 283344197} - - component: {fileID: 283344196} - - component: {fileID: 283344195} - - component: {fileID: 283344194} - - component: {fileID: 283344193} - m_Layer: 0 - m_Name: f (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &283344193 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283344192} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bea0f31a495202580ac77bd9fd6e99f2, type: 3} - m_Name: - m_EditorClassIdentifier: - IsActive: 1 - bitDepth: 8 - luaFile: {fileID: 0} - previewNormals: 0 - normalPreviewLength: 0.5 ---- !u!65 &283344194 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283344192} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &283344195 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283344192} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &283344196 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283344192} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &283344197 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 283344192} - serializedVersion: 2 - m_LocalRotation: {x: -0.1479161, y: 0.37224695, z: -0.33835596, w: 0.85150945} - m_LocalPosition: {x: -30.19757, y: 0, z: 8.341} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 47.226, z: -43.342} ---- !u!1 &1293128684 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1293128689} - - component: {fileID: 1293128688} - - component: {fileID: 1293128687} - - component: {fileID: 1293128686} - - component: {fileID: 1293128685} - m_Layer: 0 - m_Name: f - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1293128685 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1293128684} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bea0f31a495202580ac77bd9fd6e99f2, type: 3} - m_Name: - m_EditorClassIdentifier: - IsActive: 1 - bitDepth: 8 - luaFile: {fileID: 0} - previewNormals: 0 - normalPreviewLength: 0.5 ---- !u!65 &1293128686 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1293128684} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1293128687 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1293128684} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1293128688 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1293128684} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1293128689 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1293128684} - serializedVersion: 2 - m_LocalRotation: {x: -0.13355339, y: 0.35044792, z: -0.3301185, w: 0.8662399} - m_LocalPosition: {x: -30.19757, y: 0, z: 10.84006} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 44.053, z: -41.723} ---- !u!1 &1331845601 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1331845603} - - component: {fileID: 1331845602} - m_Layer: 0 - m_Name: Exp - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1331845602 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1331845601} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ab5195ad94fd173cfb6d48ee06eaf245, type: 3} - m_Name: - m_EditorClassIdentifier: - GTEScaling: 100 - SceneLuaFile: {fileID: 0} - BSPPreviewDepth: 2 ---- !u!4 &1331845603 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1331845601} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -31.5414, y: 0, z: 10.89769} - 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 &1337453585 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1337453587} - - component: {fileID: 1337453586} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1337453586 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1337453585} - m_Enabled: 1 - serializedVersion: 11 - m_Type: 1 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - 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_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ForceVisible: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_LightUnit: 1 - m_LuxAtDistance: 1 - m_EnableSpotReflector: 1 ---- !u!4 &1337453587 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1337453585} - serializedVersion: 2 - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &1388445967 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1388445970} - - component: {fileID: 1388445969} - - component: {fileID: 1388445968} - 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 &1388445968 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1388445967} - m_Enabled: 1 ---- !u!20 &1388445969 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1388445967} - 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: 0 - 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 &1388445970 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1388445967} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, 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!1 &1392840323 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1392840328} - - component: {fileID: 1392840327} - - component: {fileID: 1392840326} - - component: {fileID: 1392840325} - - component: {fileID: 1392840324} - m_Layer: 0 - m_Name: f (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1392840324 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1392840323} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bea0f31a495202580ac77bd9fd6e99f2, type: 3} - m_Name: - m_EditorClassIdentifier: - IsActive: 1 - bitDepth: 8 - luaFile: {fileID: 0} - previewNormals: 0 - normalPreviewLength: 0.5 ---- !u!65 &1392840325 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1392840323} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1392840326 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1392840323} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1392840327 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1392840323} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1392840328 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1392840323} - serializedVersion: 2 - m_LocalRotation: {x: -0.409346, y: -0.7736037, z: 0.22623056, w: 0.42754278} - m_LocalPosition: {x: -30.19757, y: 2.041, z: 10.84006} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: -122.144, z: 55.77} ---- !u!1 &1513869424 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1513869429} - - component: {fileID: 1513869428} - - component: {fileID: 1513869427} - - component: {fileID: 1513869426} - - component: {fileID: 1513869425} - m_Layer: 0 - m_Name: f (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1513869425 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1513869424} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bea0f31a495202580ac77bd9fd6e99f2, type: 3} - m_Name: - m_EditorClassIdentifier: - IsActive: 1 - bitDepth: 8 - luaFile: {fileID: 0} - previewNormals: 0 - normalPreviewLength: 0.5 ---- !u!65 &1513869426 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1513869424} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1513869427 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1513869424} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1513869428 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1513869424} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1513869429 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1513869424} - serializedVersion: 2 - m_LocalRotation: {x: -0.09615398, y: 0.2551484, z: 0.3392829, w: 0.9003004} - m_LocalPosition: {x: -27.156, y: 0, z: 9.065} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: -20.259, y: 24.845, z: 36.791} ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 1388445970} - - {fileID: 1337453587} - - {fileID: 1293128689} - - {fileID: 283344197} - - {fileID: 1392840328} - - {fileID: 1513869429} - - {fileID: 1331845603} diff --git a/Debug.unity.meta b/Debug.unity.meta deleted file mode 100644 index 31df3d0..0000000 --- a/Debug.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ab8d113c2664ebf4d899b0826cd5f10c -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Editor/Core/MkpsxisoDownloader.cs b/Editor/Core/MkpsxisoDownloader.cs index a13878b..60f1519 100644 --- a/Editor/Core/MkpsxisoDownloader.cs +++ b/Editor/Core/MkpsxisoDownloader.cs @@ -113,7 +113,7 @@ namespace SplashEdit.EditorCode System.IO.Compression.ZipFile.ExtractToDirectory(tempFile, installDir); // Fix nested directory (archives often have one extra level) - FixNestedDirectory(installDir); + SplashEdit.RuntimeCode.Utils.FixNestedDirectory(installDir); try { File.Delete(tempFile); } catch { } @@ -142,27 +142,6 @@ namespace SplashEdit.EditorCode } } - private static void FixNestedDirectory(string dir) - { - // If extraction created exactly one subdirectory, flatten it - var subdirs = Directory.GetDirectories(dir); - if (subdirs.Length == 1) - { - string nested = subdirs[0]; - foreach (string file in Directory.GetFiles(nested)) - { - string dest = Path.Combine(dir, Path.GetFileName(file)); - if (!File.Exists(dest)) File.Move(file, dest); - } - foreach (string sub in Directory.GetDirectories(nested)) - { - string dest = Path.Combine(dir, Path.GetFileName(sub)); - if (!Directory.Exists(dest)) Directory.Move(sub, dest); - } - try { Directory.Delete(nested, true); } catch { } - } - } - /// /// Runs mkpsxiso with the given XML catalog to produce a BIN/CUE image. /// diff --git a/Editor/Core/PCSXReduxDownloader.cs b/Editor/Core/PCSXReduxDownloader.cs index adea041..125e12e 100644 --- a/Editor/Core/PCSXReduxDownloader.cs +++ b/Editor/Core/PCSXReduxDownloader.cs @@ -164,7 +164,7 @@ namespace SplashEdit.EditorCode else { // The zip might have a nested directory — try to find the exe - FixNestedDirectory(installDir); + SplashEdit.RuntimeCode.Utils.FixNestedDirectory(installDir); if (SplashBuildPaths.IsPCSXReduxInstalled()) { log?.Invoke("PCSX-Redux installed successfully!"); @@ -187,29 +187,6 @@ namespace SplashEdit.EditorCode } } - /// - /// If the zip extracts into a nested directory, move files up. - /// - private static void FixNestedDirectory(string installDir) - { - var subdirs = Directory.GetDirectories(installDir); - if (subdirs.Length == 1) - { - string nested = subdirs[0]; - foreach (string file in Directory.GetFiles(nested)) - { - string dest = Path.Combine(installDir, Path.GetFileName(file)); - File.Move(file, dest); - } - foreach (string dir in Directory.GetDirectories(nested)) - { - string dest = Path.Combine(installDir, Path.GetFileName(dir)); - Directory.Move(dir, dest); - } - try { Directory.Delete(nested); } catch { } - } - } - /// /// Parse the latest build ID from the master manifest JSON. /// Expected format: {"builds":[{"id":1234,...},...],...} diff --git a/Editor/Core/PSXAudioConverter.cs b/Editor/Core/PSXAudioConverter.cs index f47e6ac..6571642 100644 --- a/Editor/Core/PSXAudioConverter.cs +++ b/Editor/Core/PSXAudioConverter.cs @@ -126,7 +126,7 @@ namespace SplashEdit.EditorCode } // Fix nested directory (sometimes archives have one extra level) - FixNestedDirectory(installDir); + SplashEdit.RuntimeCode.Utils.FixNestedDirectory(installDir); try { File.Delete(tempFile); } catch { } @@ -155,27 +155,6 @@ namespace SplashEdit.EditorCode } } - private static void FixNestedDirectory(string dir) - { - // If extraction created exactly one subdirectory, flatten it - var subdirs = Directory.GetDirectories(dir); - if (subdirs.Length == 1) - { - string nested = subdirs[0]; - foreach (string file in Directory.GetFiles(nested)) - { - string dest = Path.Combine(dir, Path.GetFileName(file)); - if (!File.Exists(dest)) File.Move(file, dest); - } - foreach (string sub in Directory.GetDirectories(nested)) - { - string dest = Path.Combine(dir, Path.GetFileName(sub)); - if (!Directory.Exists(dest)) Directory.Move(sub, dest); - } - try { Directory.Delete(nested, true); } catch { } - } - } - /// /// Converts a Unity AudioClip to PS1 SPU ADPCM format using psxavenc. /// Returns the ADPCM byte array, or null on failure. diff --git a/Editor/QuantizedPreviewWindow.cs b/Editor/QuantizedPreviewWindow.cs index aee0c60..c1d3b2c 100644 --- a/Editor/QuantizedPreviewWindow.cs +++ b/Editor/QuantizedPreviewWindow.cs @@ -13,7 +13,6 @@ namespace SplashEdit.EditorCode private Texture2D quantizedTexture; private Texture2D vramTexture; // VRAM representation of the texture private List clut; // Color Lookup Table (CLUT), stored as a 1D list - private ushort[] indexedPixelData; // Indexed pixel data for VRAM storage private PSXBPP bpp = PSXBPP.TEX_4BIT; private readonly int previewSize = 256; @@ -54,7 +53,7 @@ namespace SplashEdit.EditorCode { GUILayout.BeginVertical(); GUILayout.Label("Original Texture", PSXEditorStyles.CardHeaderStyle); - DrawTexturePreview(originalTexture, previewSize, false); + DrawTexturePreview(originalTexture, previewSize); GUILayout.EndVertical(); } @@ -88,27 +87,6 @@ namespace SplashEdit.EditorCode PSXEditorStyles.DrawSeparator(4, 4); - // Export indexed pixel data - if (indexedPixelData != null) - { - if (GUILayout.Button("Export texture data", PSXEditorStyles.SecondaryButton, GUILayout.Height(24))) - { - string path = EditorUtility.SaveFilePanel("Save texture data", "", "pixel_data", "bin"); - - if (!string.IsNullOrEmpty(path)) - { - using (FileStream fileStream = new FileStream(path, FileMode.Create, FileAccess.Write)) - using (BinaryWriter writer = new BinaryWriter(fileStream)) - { - foreach (ushort value in indexedPixelData) - { - writer.Write(value); - } - } - } - } - } - // Export CLUT data if (clut != null) { @@ -146,7 +124,7 @@ namespace SplashEdit.EditorCode clut = psxTex.ColorPalette; } - private void DrawTexturePreview(Texture2D texture, int size, bool flipY = true) + private void DrawTexturePreview(Texture2D texture, int size) { // Renders a texture preview within the editor window Rect rect = GUILayoutUtility.GetRect(size, size, GUILayout.ExpandWidth(false)); diff --git a/Icons/LuaFile.png b/Icons/LuaFile.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd4900cef7ea1ecce46f7ec80be36e14eaf4642 GIT binary patch literal 18247 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 JPDHLkV1nQYjC241 literal 0 HcmV?d00001 diff --git a/Icons/PSXSObjectExporter.png.meta b/Icons/LuaFile.png.meta similarity index 98% rename from Icons/PSXSObjectExporter.png.meta rename to Icons/LuaFile.png.meta index 19dfd61..b480442 100644 --- a/Icons/PSXSObjectExporter.png.meta +++ b/Icons/LuaFile.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5a5f4bcf472dcfc44b794a898530a6f0 +guid: 607cfdcd926623447afba2249593f87b TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Icons/PSXAudioClip.png b/Icons/PSXAudioClip.png new file mode 100644 index 0000000000000000000000000000000000000000..1f57956b90a44d60f8723f50b86fb291a9fba2ed GIT binary patch literal 15899 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 literal 0 HcmV?d00001 diff --git a/Icons/PSXNavmesh.png.meta b/Icons/PSXAudioClip.png.meta similarity index 98% rename from Icons/PSXNavmesh.png.meta rename to Icons/PSXAudioClip.png.meta index dfb876e..3282840 100644 --- a/Icons/PSXNavmesh.png.meta +++ b/Icons/PSXAudioClip.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 55ec05596eb659341b8fdb46cd21ab63 +guid: c1ac35b4ac561a6479df60ee4440f138 TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Icons/PSXCanvas.png b/Icons/PSXCanvas.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7e7234e6198509bd0fa2521dc321ce0353986e GIT binary patch literal 13276 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 z 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 literal 0 HcmV?d00001 diff --git a/Icons/PSXFontAsset.png.meta b/Icons/PSXFontAsset.png.meta new file mode 100644 index 0000000..8b82e03 --- /dev/null +++ b/Icons/PSXFontAsset.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 7e7ebf02d9a128040a98c0e8a77f318b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Icons/PSXInteractable.png b/Icons/PSXInteractable.png new file mode 100644 index 0000000000000000000000000000000000000000..891c08b40d2816a50cc9be443b3e96c33921af02 GIT binary patch literal 12481 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 literal 0 HcmV?d00001 diff --git a/Icons/PSXInteractable.png.meta b/Icons/PSXInteractable.png.meta new file mode 100644 index 0000000..4393004 --- /dev/null +++ b/Icons/PSXInteractable.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 2693d84ea56d55f41841bccc513aef7a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Icons/PSXNavmesh.png b/Icons/PSXNavmesh.png deleted file mode 100644 index 0b07dfb9e1cb5920546191868c61f40680c013dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6837 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 diff --git a/Icons/PSXObjectExporter.png b/Icons/PSXObjectExporter.png new file mode 100644 index 0000000000000000000000000000000000000000..f7e28387f327282523af6db5580e95df290c0f5a GIT binary patch literal 17845 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 KMNUMnLSTZx|41qT literal 0 HcmV?d00001 diff --git a/Icons/PSXObjectExporter.png.meta b/Icons/PSXObjectExporter.png.meta new file mode 100644 index 0000000..bbb833d --- /dev/null +++ b/Icons/PSXObjectExporter.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 5dae4156e1023c34db04e1a0133e8366 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Icons/PSXPlayer.png b/Icons/PSXPlayer.png index ef0d609c36ee5af57c87e1369324e889d9483a27..8c4b7d27480c569c98ffeee4d55ab0a7eebd274a 100644 GIT binary patch literal 13358 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 Jxr|xp{{ZJdx5+t@pg}`> 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 diff --git a/Icons/PSXPortalLink.png b/Icons/PSXPortalLink.png new file mode 100644 index 0000000000000000000000000000000000000000..0e774022f6f2c90e09d1d40d753020aacef30bde GIT binary patch literal 13401 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 Ta+!Rg4Um)hBwZNX}kGyJJ literal 0 HcmV?d00001 diff --git a/Icons/PSXRoom.png.meta b/Icons/PSXRoom.png.meta new file mode 100644 index 0000000..b849c41 --- /dev/null +++ b/Icons/PSXRoom.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: e2a0da16256de3a419a3848add40def9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Icons/PSXSObjectExporter.png b/Icons/PSXSObjectExporter.png deleted file mode 100644 index 7dbfda722071afe9486d6fe587e92f6d3d936c06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6839 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 F{{gEAUxWYv literal 8210 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 diff --git a/Icons/PSXTriggerBox.png b/Icons/PSXTriggerBox.png new file mode 100644 index 0000000000000000000000000000000000000000..d278487e0c1339fb6d044677c8ee69327bb3dd1f GIT binary patch literal 12921 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 Xw$8Bi;3o|af&s4-)aA=$%~AgYbFbIk literal 0 HcmV?d00001 diff --git a/Icons/PSXUIBox.png.meta b/Icons/PSXUIBox.png.meta new file mode 100644 index 0000000..819815b --- /dev/null +++ b/Icons/PSXUIBox.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 11ce7fce378375c49a29f10d2c8e1695 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Icons/PSXUIImage.png b/Icons/PSXUIImage.png new file mode 100644 index 0000000000000000000000000000000000000000..460a715e99854237a7f793ea0b6fb0aa427544ee GIT binary patch literal 14854 zcmb_@WmFtN)9&ozPJ;VFaQ8s4B|w6^>*5fcKyX-`Ab~(|ceg-rm*DR15F7%*<>P(7 z`{UmKclvbKobFTg%sh2^s!mV$S7pVISm>na003agNK2}|Ncev$F7itoSJ4{wA|R&H zstN$$N&nIx1ORvc8UF(SuABgH00V$`NdQ3PnAW5s{4#)SBKJ}9MZR3O63u=u0?koc z=Q99+;Qy^u+e0)johU9c3Q{Ns2xR!!Z_?ZybOAt+UPe+}-F@*m-PIjmYbo?Jc_peD z50w@dBJGHFqMX%0#E7q3n-8vqI=P|$P)#EYZ*Fcz!jcN4!`;lV{rR~~>`Q&eech>+ zKP&HNBceHk;iFMO9-(%@3$F~pH|Nhk?N=uAciZK1qpG_YP06{Jh*QP5J{;E)WyXDx z9TH#6P!;*bfqyP^ZuduubC~69`jkYN{A6WL2Pb4eQHneo&b{UtRzU)HHtIpZrKJal zZK{KD-}DFr-2L44>(36&;j;GYG9spFz9YnmeWa#2;Nzw1Kj(d!4^#{jLkw-l%BDx& zWnVIhQ zyIafdRg4Uj^7KySJnhns&@;0LH^aowS>8wU{Z5cDVSbx3U*w<$$SeY5W`qK;+0X#) zV0S_V*huB5a0%kuBY$5uvniMZ$Z~j~yzEJJK-3rlwB3N((=9pTEFNf=4vDvtjH1qW zXNeA5m{Hr`034Y&6$DXE+L2sW#TJp+EQWXR01zBW9sxH#h+}@Y=AH2lIM|C;(0so0 z@)g20`x!jzjF|3L0>&@BCT^j?$?D&bpsy+#(r|p0ZoAv<^s!mjgoJj6BL@vNIPl}c zmvu^JVnk~5hvd(M7E&y(06n1pof`bZtBIjXd9dFo0jJM zMR7L`WMho(apof0WIn(#TMb~b#3SnQLvOE>xuZ9x@2MNE9diWbCrT3%f$~fzeE@V7 zd;n>u-hnUuW-mR;$;!!8*s4u=j|-zy4t)0a>*Gg--MK;L&{lGFcCUlyp zw_{|{GjW8}{j_8(%UfmqorACCvxairhlA-OdFk*{k+vmlM<%jYL61|QfL6?@ z=KdEt6YlXB|KuGjMs|d`N;0X@O%ZH={r~_dLnxIig3-k!y^FD0=J21?s1*O3Zep9CK z$%jpy{OWd7X*OUkou=tMHSnV_DIcdYd~l66X2llXmpl0}pD-}rvYTvK2kFA(l(0P+ zC1=iTT80A~avUG22!HeY@L8@Ny*=dv;z}Xe)`Hj65`8^=tpD>947%CwunKiJrh zwaJUcoM$EzHJz>-iE;6nGx`WvQ>|L}%p8gj?FxnvGD)8RNn+Z!u9)@B*yo8W2SVN` zGIIIoCVY--0u%DHa&4V=CUl`w@oE;bg!T9A}BJvhhH}g+sjc& zz08{d1JWtNho;4h8V*o*GZC436G<7dp@;bhyRvWI63N&#=tkcK8S>3)J^q!rat@bb z(WgkHSOu{1#v4;|mtkUxy9<+|_9PNmW;t7_2v&DAzL=2(OC*VU4s4-hox(o-)8Xyi z9g_m03YrOnkk+sGj^eSLjNB!Ez4_gx&j{3;doZ!*+YUVC1AkPIiFh)Gs;J|6ekeO} zi-rE(-&yjoho5U@6B)SwF6F1>F4%nVHPj7pQqW^d@xf8D?x&-NV7Wytef1Ue5<*A6 zKdmJ2&MvE~{eg!ur8zEHr0&!dM3}p{DeK>VayBcw$o<8WT>F%ltp<#KF(}^l8rtlJ zShmep=vEf3{uzw{f6$V}1S6}l5b8^264ixKJSsyjnKDt4jw6B*ML;{;j0PY}XyAFB zILH_)&;K_eZ*b@FL;7uWU1u+RV#?x6s99f7>Q@mqpBr^`LymkofzvMvaGj+gZ4K;T znox4Jv@swI+~tk|qZ~kRZs790DU|_Iu6Wpr!NidjZB}e0&|{>GLLd9?4lk)Tb`lVO zwsToQH`&qGg@H2Uc?3i0Kk(+Ba7Gw9!-9kE-gRtJ0p(W`I8gd3O9rJ`=;OVSJ~ENe z@j|N@XWzGoaM^FFO!FhFTPVa$Zy0MY$*Y!*&eQIska}&VPCtnf5plCj`+8oC~7*m z7crV6%6qW?nZW^dTK_<>_dbH$wlVU&N3^RHeD?P6DM-wbBrU@KiW*Td%=X7NHnL@F zrmq6_m7EkEN_A=pNnw2U+;RXx#3DSR-POrP5AZcPiTGzo2!FIi(915*62dtS*||7( z1Eq2~Clz>N*DVVNi4EJl0%Exe@F<{nn3!vYKFLnxKRzvNAU~5IC5DG16;&<&ioNGh zzRg)m%)kaVMN~*RSI}E%0h2mn4BvOn16MfNo5JEt zKmEAiq%oD%w*$(95WOrvW@f>#Ezq&P0qQj4&a2I1YzUSG7(nZ3eFr9%@ndXW+wrQm zI+L#+tsA%zN__}@m|%n7K0ha0*{jcW-* zkBjh@T z@nZLYr7va-sy$I>3j-F3!fT-IFBYXidd=Uk6FWxbrZmWqJ4l?iH9%o+NXvu<5Oyvq z9lBLXAd`Q3YT}8sF2r(#VJOL&0Rk9lu6L5@aHeV&slS5}&OCJ8jsS&bn_D-bY~9`E;~GC(fq#D@i?%AVSfIurCz)xA1d?tMQFHgpH7)O0c2Ur8(x zvGk-X5yy<9+k5m%iab+dKe*(qef{jn-aZ3((CR0>PAB+>Z$dBh>t{RC0{=;Uc^`<^ zkyYolEltzAcsIHL^8CnMfPsci&edsYzgk`n>eWLI(q;-dB~Ks3fs1*i19K zM_p#LPEhD{wrm-rQ0Tedz|WN_fY7x0b}m>@;zthmd2F-{((@l37## z2JTfm&Z@U9tk87&TxAw|A^&Owx&p;dQ?8`aP^^ZCYM8hH?stM;5-H(~mU}P_B1wir z;!+JL+ba%F&}dHKfWpjUePqeD0ENJtZvj*KD<3tdvdU8BJ|v>sS}N?kOxUOTnRDN^eO z*>4%LPtA!P8*0Yd-;cv`O}^~tjWK_%_MYNCQ0}L1j2;r>IPGe00WjYuNYQ_aY*L}- zAm%nMX``iEiPC88V&tVIeQj38i>FOD@?#E2l*BRyCXA~28{jj&@^ml`t56c(ODypD z#SG?BO%_!`%iRQ)^xA>5%$0u-sN$9No_HpMqrW9y)-SufsA^wsZDNOHb?Pcs?rK~W z{^Kv7%o}7jtK7G0`BEj{I-*t8)lIyg8wP*(2c7Lib#=>L!r`y46tU%=Hxky2YlFQE zJsWDo@;pC?$+cp7eL;Crwr96p`E=dy!Ft9z##VXT;ki#P15BbI0%6~B*x_x-zS#W> z$p-)8J50Z*X8br-Zu8&!aQdiBtxaA>fhDC#e|X6vz7N#$*gYPc)=Gnl(PCl<(swYN zOM5Pu%sc8#K9G&n!+d5vzk9u^DlIHMYKR@5qrr~Hy9Rn`xBQh9I~dQTtJXj+ zWD;}d=Li3f#UJ%@%Bh|Ay9tdyQX4z8rb?0ffA}(EHwX^%-Sl%OV-^f{nY>I4AwJY5 zl}@D2PVx=$MI3%SSDcShZqOEJ(}_fQ;B3@?A8*De(sLW0nw!6raba~mAJo#mFPQgG zWNlFyyw!W66HMqo&PL*KaUDEmc|w6H8^REpzVgsbT^=$bA8o$wM9m~%$E2>m)7asK zIGw)RI$KXT?Weq!txk!`y4gCshyJHLr>^(XUx;9jbzzpcNBwV7hT{7>5m1b{JUDzF zziuCU@aU&0`f)(g$QP9_nb0zazd4b+5I?fnT?>|~!}2t@3Hb4Dk&ce5c$>|0lp20s zh@kCQ8uI?Jenl8fR$AHi1|Pu>N)ppwcH$Q*pIXaG*9l1l4b_m+;;?XP1_O43=p|}U zle%ASxS?Km+|WrerckjNWP9jwfE~50+tj!+a4rV$|L-mb)m?Q{$Giygoy7@%DH!$ zyd6>c+id@!#kze6jeK0csbM#e^$#cvP(oUi*ufz;)!*zeu80d&`wR>8GQHM~Ig_zi zh(tPbl=!Kz=^+s3F7jldR;By8jqMOsAYS3(%RB;mO?m{;KIUIw#Huu^!-J3$-O)lg z15UP+XAcv|y$Sog4q39RekAnVW}Er-o_yYdaOA2H!HhB*O2{51yyM;Vnc%E>W!}}#}q}FKw=ES^Dgz6-jvGj zZs$=@fhcR!{n1vBT3NqyeP(pCb!5o9$<)Cts!Th!HI&NiV0|y!pp;Z*{r!7tt7t1F z9Uo*F@oJ^+l5V@%|BJyX>s`)be}z^>ALO zF8T(;rta^iu7T=8p>$DjdkDQ-bad#Fn5Esw5fX`M`r;A+e0U;-U;_kU-g#U-$2IdI ze>@+NcjVMAA5fzx>%ugg{UwfP);wbkBA&JE$>T+CE)V&}b)EH33+o}=2V|$VdZ_J$ zF@H3BJjIWAwKYKaUrHO_O=Gj^D$9O_l|UEALRJ^Bt6IIbFFs1Zy3SHh4T@3EfBKqO za03#_=sHMPSXj}<=ikoW)qjNcvE9lMULre`ku7Z_gT}ul?lDJ0nHXa872!l)Xvocc zvvFA5(sDF!+0OhwQYZ;hlp&n=;k7BHV0(bmOy76~7>OH{N-8<}?A9pdiQm2xecUb| zZ#EfJh+@c

2Y=wU210wh?4R4^}BggH9)B=e3)Z1mRy4ZX*0}wIhp>_o89vrA z^u!hqaXu-MPP~4NVOc-6h&ZQ7TM;pa&{>}5=K#N}l(^r=?`!M6RL;_Gk%$Dlwn^*c zw_|DC4Fso&1;k|Bipt<-HUBtvImFdhYRPzY0^Xn!V~@j}=dEJTmGK|M8Cn^s2kWD_ ze`CI*4r z#J*f*n%H37THE?dW3^kq2^#9aqA`^#_>|!amjS}KK@6cxDah(gq=hkoHHn#hzi8qN z(n*EVKxSUO%hqSdxA}%HwtH=aUF^(nR}{tXrDj+X^l;Lp&Smlw1GK3JiIqo9fh!Wt7}%~5ha`(qdlFh+uUXmyWOA%) z#s*`|?c=Lj0}~!cLp$Qk6>{5?z~7WVc(Vv&(4D0me`c%eniJQtnXPWwthY=ztr`%y zPjjuTQG>B(+{YJPIgi@DYriWZT24vDjdx(&cEhM;vPaTrzgRd}0+;MDsd8IU;1}=c z{I9lb6>7nNbooMXsmLT1OA8_X$ZfK5+)Kr%ApV;K|sB7o}P^I zyRZ`H#Uldd%McN8A%-cUdI!vG--!bG_yxd*3U;fXy{{(UUT)nu__c%cCJ%P71YFN` z|Bzrwg+BiD)HMEc@4b2ert3A`2qEd2XzZ)JHG~`v8+;10 z%b{iJ6Ms{i!`?;0n0StzoN|I`U6nJ*@lTE!R3drKtoV&94QAy!>jwPo4$5SX>3dg= zdOEOoO8p2XWq%YgaQ6kiRze%7`;i+|2^p z<-I_N?peGQ)@F+Ugfb9Rt)>n>2}gW|GYQ`J*%yhi+jiKN#r30O=f`d^_u0C{B5T+s ze#gyALQ@+(Di$8Fq}Scn&`4~;FKHCpR|nGKJ8ZNJl`0<_k>^Q8H8a3gqBB8(oda9R zdU_4feTrIaW=I5I8E>h1ZMW`K+I%6Hiy=*HuwR3-zb7zySSRFd5#L3;AGGI`=f>yX zM&Mqc)dg_;2|4(g-4fapQ2bw)-7vQ~`cFlTMTRy87RV>lbT%3kR-~6;6i+a5F-41; zF>2v&38VgAm{Ay$THYp|BSct-qH3qtJ`MjS6b|)7@nQ=&;km~@xDctWf8tb{6Ith< z*h=bqrL4$Q6W<7_3wJf4IOvD&ly|)rlNz|>T_LT;fbv@4z~}Q_5Ou>nX|QZdgjT;i z68uDAF=ECNU$B=Rs=$;+Z34w{;hg^b%Hvb{${!ezVP_`tznP!UGdsPU(xB81%Cu440#5mYN^2!mMZygh`24VsMV)VSNTe^Hzn zaP@jfs|mMkw5AKuHCTt2T-dlXa7mWeDLJLx!#Qzf%DH1YI!+b-77GuLjC|bu6=nvaJ2i3=l;}gr#wnnUs+C`PJCH(?LDzyWxO?UL z+p-=}7olOR_dgcmR@=M1De?^;h1BTeTO8E>%8 zNZ4i&``qurs=g3KS`cvsX&XIW*~tOF4EFlJ#?nlDOaewxLsH-~UYk9;MgY@{SSo`C z;xo5L9ksZ6WubWnfAH-U5A(<}XhZGfTf;R^KZ&zSBWH{`cmB)zRev)FP>@|~`$p?K zi-grxWAqqXNU!1N=wUnX!d4CU&speD@h`1vthQ8(Ss>i$sB50`wQ z1;|fH5=_W9$5$Yl6nB6NDlY-&meKD9kj1+BFV`LWuigxxcrMnT#Z+`m8)Q<&f;(H| zKfi^S;;<_;*WwVaq)(Y%Vf8O38^>=TPSRMX*CwnX%1iaWZn*$M&=&Nr0&Xas<~C_y z_J4o)sIhd`g!Ko1m&=weeh4ha4m@?UW6$^3liA}^eZ`4La+QnXl)MC3J#Ds)lh*Xf z1~7($Wvi0j^Yf-qPNsN_tJ!Zz&`V21A&sRnRA|nY1^G}NH?-yw_uucJ-g2!&1Z5k~ zxYXn81KkXP?SaV;)*{O#E?f6iZyd8XlZ!1$15cXj_&N&dmab#Cv+`WCX;ih8-;q+b z&1Toj2uQMU5rY;f7bjxbyko~dWw;=`mreL<%$P?U8%?hiBw^gFb@Vkfl8UmfqK}*Gc+=sVz3WC?5X-0 zG{D=2P?a0moNqhFg|fHsPdS#~lI#jR#j0g!v!T`ZPeax?iUi~qAlfm- zlvwpw_O30}3`c1F;;KHy8ToDnvi3Xa1i-$8=LE*34UYkj55ywB+H5Yeyt9e+BunOp zka4er)^^(aqdiuzEf#-gLtsI$H!<{?k%xT>#Y8JB%O$~P%}g|Q22KY0bF(&?kpc5u z%xF$vcRu^{F4_FkJ{JXnVVUOcWB431J96JI#rm{S&@U-#mBmS+|IqzH4%&IVyAdzS zvs~~f;T@9bLzdh5YAIAt-AjEAvF=!4@hg25JM3AD7ik}(n3FVSRxa*4Afn^v&`mEl z@#A^!58q04K$!CcMz3`ezoS%mRp2}oo+TJjj9sfDjc{@H&+GYH0coFn>q&K7%N{PL z2Zvu!sU50|6AZXDGUdptsIph%z89fhO?9E9UI%Z>@3G8+_Wi&~`?nEM{Q(q48S|{7 z;BKF8#%z?^ufl|E?dko`4(4q#oOu(f9JJ%)aYLp^uZqX+!>2g+m&}ntX&K&pu}(0a z`MR3p_kZHAZX3qzvepy2>d_rgb|h3}g0d9xb4*lLJwTjFRoM?Y^2+o9dOSGgAB8d9 zx$}-CRb;%BNvVaB2b~)vv~m2TcGlzFWc`Eusn8T<(J3WDJFuX| z8=s=z>92Zi)&d<-AG!-hEm;+UgxgMXe}KAH-c2y?Z~l4F)%1~js>r% zp7~(#){$yUWh$5W%zs+q4pkZ-jiz%_NQtigf`0_%O!p-vSY!H}9cdH1j_%L->9!VG zt-b^2R3Vc$7fWA=K$qTya9E&?Mr_vc@BGebk8+VgtGDT7*8C%Ur#93i`N_r#r*0%Bw0G1~GniJ_i;a5>7iSr}PQ6J6aNHL!KY&qx0{_K@C!R;PQ}sIV@D zSz>)P>#LMjfKrP?-YK4P35$I=3M@E&LP}X>K=4WA<@+a_TDZzR)^X9cTmVZ|XPl_H z>@&aW%sHuX7gtsVALatHj?I~C7FQ~a7zMmg-IV1UrG0y?#AKu{68_MUi8-49I zKhX;WEr-)=O2F2K+B)+gvSxZ^}{@8H_B{i}=&NlMyt&E0}baOq?|P?&jG9*=#(z$T#h z_)Zj5Ioc+5)ck&fTD&yS{yp3j_Pv8w;MDokpJD@COT0LS0%W)w-xw8uzIdOBxZ%1gKwpTbBZ0ve&{x(4)V1_P%(m)pzdao`7TK6gZzy=!p$D~04sqlUf zkw$Of+qY*)dTXh>wjZ56AGTiCxkuem=lH9Onq%>+Vk@1p$HjI=XTg5ZYac1g2_(#= z_>Dp7DpE^x8@j+b?aZ&Mnc@@YbP}@j5^`(Uc#A}#8Q7V>9xu6qgo`$`wkU5n7zIjU zeyBF?zlLV^tE@(B=LGSnOHC5|G(qr~oSm1@xTs%F36CCa#)77P9618WwS;T~Y!Ked zg?tJ1$SsV@tblsvPFEEBKs_P(vP^JLHyN{zs>*GY-zn;PG-u(8s#Lf%C|B!wa#&vm zb4O2^J!N)|C-OU_aKOnKQxZ|6?Mi^MO^x1HYyz0@$~ln|LF!*)F=B)B%cbmqs+R0* zuwXX}j+j}sHUsE@LI(dhLYY^KIf^YuOZI7qpmLjy^vs}Zmg!0~sh>I#t=mr(s6HW) zJcqrCipTMG#;Xn^DXv!4Pv2_gb&+)vf9jgM!gua>Pt%N0M}x=@eZ58CBgkYzaKb(^ zE%4drp;828Pp02rp|hlGoRG}#dm!FF%J(dA)wi-`0hiZPU-FIvsmO*&MOg^!X^lL5 z>8ScUopBn;vWnh-;@^fc1AalF+e{t--iC^CamLS26ntOgL*v&-6ofZuKZJ<`ze+Wi zu$0YBdMiOe9K9g-@N$T35>{^+Qy2`DDI_O48e#&*I&Y4dT@#NXlawq+Qv$B1nRt{a> zJs}2JxmIPJ7{05phJjE;n)ewAcP(rJc#a?C(I93n|G@#E>k%9wjC*^SDgkz}UkJ(X zJg<*M@?lXcKQV@e;Ks?>_1PTKEBS4zM$2RQGvpZnzs9s2&~alcy+!)32Cqi1;8N|wU(!Sf zM+?#$9J?sDx&Jaa<3v_gP3t&{<;Tc#_xtP=|HU6?om!q-1{LS2e_+NUj^waX@p!9@ z)Dfg^Si-7-d>|W@e+`qH`}N)Cu;Z$WEWv>jkdBV}e9fmboh1g{XQLBC#(h-a0FB%n zk4Qa}O&u0VF{vPQoWzvBfu^eGdRXz|<>qEC33C87Y77dQW;jX_lKNl6kUTOUBz+P8 ze7@a}EyBT)u~FL6=s_;y4>#iLmTsl)7NvclUM zG)w-SVfyriS})_xWCfAxa4f*@Hk&dImobxZYdzS*iXSg(H)p|?H#ORVXVO-&?Hq4J znA?+{DHb$&U#K9RiuBoDo{~qWV|~oa?H~?~0f*e$#SFdQ>1XB<#*NIADrj0Sp+0Sy z1)x_OvHiawS1_hVZC@Z;{T}L!;&iO|aYih1CiHnzqbx2aY(J!o$kgcEE^@Uymp7?v zl_2Q9`7u;wy?k&s!)N@lJE}AFcjwgMD+!vmP#Mkcx7axTRi0Wx2I=4wS!cgSj^B3} za;ra!9+aFjfh52A{|DMI$;IM7(5-ccDFdv$si77;6SnN6BOhvRt@z)J?B*?$d8?h0 z{$Lq++!l3oed;AmYzw*_K1;r($QzT_%dEqIPAQvW%pJe4G^z`6x^Ew#<-_^d zNk6_lS3Av%a%uK7php`|PJ4|8ACTlp{bUh0V%wCgAW*|}-Id3a`o#k8^p{w#1F1~X zh-6Kp6+hYMqJVMlN-?!nc8B0UpH!l9MFaNl`+i40f+_!D7?Jy;LdFTy< znDM0Ab7)*9%L~@XSn?kaU!OQ&#wAKX{(tsGPE{4+#b$JAR5Ix zs{X?+u~pQIr%bYbSeMb>TgH7VfoX?~G1OXuJ9D9FmqMhq^J z!d73e3BOIW%o~2dpA?hLjB6vNwOKG?hu?kKt`G8S2OciMMdM_ye=B+O>}o|M4fm3l zKwJ{^>9k^awrQM=1-va!zqejh9qr>R`7)x0REMmDlmj!W%tlB>T(zI5f%H`Sx6n9j ztiQnYq=o@%2xG72L}&O3#vNM&QoDCyvTKa{hLy2iHN_aMDRJSiNvXG zd8BNQeg`(K1eW(V|C+r{S3?Ce71@Q&k$M>Vu)d`t;%f83M4*Qn3RDR5k@frlBU?NO z_`+k`1zJR@|BKA1RXc4W?G=;2!G>#bFR#xzKvY*|pyqh&2!TVvGqu_Ix7X+$sil90 ztXJicHv9^%{}v|5m1D16XD-_7GU^w5Z5$zi)*VNmK+x3JBPpP5ru``l=Qw3J)++@M1cSUEk()#J+G}&bGMtl|*NrR5gJsU;cou3xRCm-$+*GIH2 zcX%u71J0ghPVJ&s$9=kuf&J`StgL|%WERk%uL|?a#s-Z9Am;r6%P}un{-o|LIpj1_ zm<%Ku`A3Bj1&XQSf3mJbmjC@go*DRa8wH=+BjXx1{;`#^qT z{1Irp3Yz{JAl3Oy31zj6chY(mr|hA{+%2SzAm`Y|IO{B{;{(V|DPB+4ZY*`Re*{?n z!}>!jdKZt5LXEEfQKfacHQIzm4ylyued}e08)$3;plGw3A@A5px?l#JG=!0!p1*(h zcwX6{gvZj90n7%h3?P@1@pl*B&Q;lV;82a=1n;!^**2Xyfem{*vrAcIEiv@>1g)c4?S-?XVY&QD zZcx@`T#U%ivp(s+78=a za(FXaw*zoAePn|Tn>PsqF>16*(mzDKV7z~!J*M6WcoHG-aX^n_qK}XL3(!u>KLD`f zpphjY$NnP@${G8nAmx*|=cz(=0Tx^Tl9w#wb5nTRT-1IzhwB~!5NJ|_T6MayK?Z0g z8v0?v{*52t!3jU6;=|`+R=w0--X7zOKZEpxTp@Y9M`OcK4*$kZ^r?Oq<*CW3gAz*0bd8Amc=A^XXl|QdBZ7L++JZ_9ijNSL zr>YMq0rb~Ei}Y!$-J9HJc`|gh#i|A_JL2*PECh*Z@g>vWwHt9rZk<99C8W%M<38GJ zIzD6p7VQ@47HsR0;tFI>Tn=;DD7g!kC4Z(Knpy6i*bAuJg{3Hgv&*}hV1TTI>E}^Pm2}t$9fhol2A{#C-R}T0m7* zE2WDT!$m(u3Y$U^dIU}~FdZ<~9lJ#dvlPxPP9?AlUL5r-U{`dG^mi*-?8Rkb{WAaA zItJ(2LB#ROxBg&v^RZ-9la8Bz06`i{<&K3wBf^zFF`T7veZEJ z($?ep@(|7(3-w28;K%=6poYxctMc%iC%sI(nau* zqR=|dV8)?>y(Z$pd|Dk7^7y9vR(MRrizDs!Ti^C(%94d|ET%51;PQK}wIReo{&j{_ z)+vC-9i|fzVcbRm5<17|b}EeHWA=Fx?97aV=Qa{E^pt8Xr2dC?OMP{x65fAR`tW*z zD?g{aH-OSSsT>W-A?QyKJ95_kUKBFW!{{UgU|)(Y z62ctTJ8OW7%tiqO-luFsy`rBpZ+g85+%@V2O?eRD_l$g zqy|)34Hcva*@9F*=Gh^hVe}tjE9YC~);@lgFNY zfK1{`Es8Xn;t1l|$^jm_@@JX&WMF_rwGF`a338GaIx=eWdlI|+Eu)l%&dZCRINJBbptwMQ}&MUqsn{e`e^!pY#W`)&2_7uE7 z_V&k$CLYAQCzp()^1Q|Rk`J!)xJR~fIK_$x`@~*+)FdMZKjK=D0>$p-yYRBzqCpDu zm!pBt`b15jGx&MIW1RhdLAwUyFjCB->>g+`p`e_LO%OT8ljj&<+|#nO9mbJaAxpGx z!^kqU@R6$*Mi~$U&37R4cPROa89m(6*rMvhIVd>5s5sYm2zc7(?o)E|ufOHbn}$#M zI%KaZwF40L#6KH0c@uumTEk8Kl{8eHS(HY{r0&R?4-F=r;UAStl!{mLJ@uM89Wu!A z03V$Hlqw1&#O58iLqmg(I+RJDIphnmq!`edq5i*V46 z41LP{g~lCWac@2X{@K{U1Wei1GdHFSFf88er65xMrKW0Y$s$|% zbG4Z%i!;lGmBV5-Hmek{cgv$?K^|xm_=W#*>KDy_Mci66%A2*Jy=4Tem|dMd~Y-~bhQby zdilo{CbC2AaXD~`q+7Nc3OjQ0d=}GO9cpiXQra1t+-rX-WEszRO0b__8eY0&g@=dB zV&|g6!)4h&5C8=6`jN~4Gjk)c2B5C)%vAyu6>XcSgI<=FdW*nWIk6EcNKh#{qW=#H zNzbnVW97BXik!a=61LQ_AEC4)d7y%N>vmRvf8Kv1Eex-aZAG7eAb#$vs*?LxbzI*g zTpQ51@xKxPKNp`?c&@VF8`Xp#kHl=>qV(mb5ca11A2M@n|FS39tiQNWW@xq+5-f-p z<9$8d@V8PVG`E_BgHxTR1!iXE%0QcZyzAbv;2v+Cy1Of&HleAN2AG6cgO~p*&eA9N zJBF$&{DsNA)svFi$;|rEtwLD_Iy z^mqQzg#XLMP5lK5(|9gc^))wapzCaY$+go_alZ^7$U>zvEVFzKKhxmwna%9VlE)>b zBlop(s=piIu4>nq-VakrI7tW(AAF{1w7;^{v4l;2HEM74MD1Fn^CewFf;K@!5TN27 z)on6>g%a0q%*;g1BzCsYJr$D9eS6O39o@hAkB<3PIcm#Na&Brb9GP=tFjFyc4;y+H zzE46t$Z0AMdQZRV6yYZ2a++RaexBFTO<_=->7%sk_AT`kZjGhMsj&XT$-p=qKe0G@$NfB z@(e#e?#tOtWg)>ZSp4ZXB_>eyKk3cXu!E@$Pn23L#1+c-bWavj-2ES?*fptdxbh#IBCa(N50|`Tz(ShllG;U zAK1oDOUMAY%wmoAbF*_ysB5MBA+g$QgwR>V{BJZ8Cii6;cMMq$)&iL;Ah^gRA7Gtg zCM+hWOn8H%wI(fJ!ZkYV5P3mQVyfzJ@zvqOCeCfEULaU0(#eX=^x=<d1vMIa)^@8MM~S{^B2o^rVe&?=JqZCM8?k8(i~#pY;0!^L5HZh q+P}044zBht#@6SrFuIiqho!Xx2{_b?oXI14l*ccQT003ai%gLxAa`^Lx2SMzAl{AMVGN`$n zni2r`yhN0L1c2M;`W*mp=K_E|695p70{~Lzq=t8*hzf|A!W$Vxjz~Asje&>^-C0i8 z6#zi+|Gm*}48A}VqPoc|$)fIoDT#3Clf0bt0DxCnUPe;GYyNP_(~D^8w(Z~Xfun~& zvnLYW$B!hoc@PG^A1<6wSq@p5Y`J$fND~@gzNDSMl-*Rz*51Xl-H}s~V@}V$vJhx= z4G6TC`nUJs{a=~f)|seyX#;QL@m#;R=hn~=`RAvZg#Q#`h#ngG+6g*)_1F8zW3D5S z6($w^n^LNj^dJ*42jNMNcm&SZzbbRvMRSK9;Hb`a-#i1Y=;KzIAQN*1{~dbqQDj8#6j z=&hx;{JeCjx87GCqvPnchNPXM^9~ARA?>cL^00dQHsB6%M_@jfk_j63f8}xyIlC+= z-IdD%gR~=jeeBVS4%UJtZDuuZiA3BCLWS3?2m;`76D1()N1qO2WN(`Bl?Oi8(=qz z2o)wI1&aDX+iYjrE3s?;Ig?d)eK~{Hb|pjVLbftEFHTscqblvbZ=2{n1f$Fw_ zv7i+^X$|NM)TZqX+u}%OwTlcL({h;^S|^u1jP0~orFdfO7-~>Xl|+%c3aqxXh2PX4 zm5&It+uSa}yKbSE!M2M|{@|D*G~^*DJ7}CDiwDM9hU5%cLos`0@%wMxF3;ja?UhNa zA703EpG{8Ce5S$v-dG0VkT8_VxB}NZ?Gp^h|w6#GGMdpd0y-{p?@2I-0Sc zt_Nk8S{lrcSvp3!^vLIB5jCY)=02KKTE*=5f;mU0ub0xN1#ADNH~`l$H!w7sVKrYY z7=t`UFh7Vfrk|A!SaZ@}FO!bh;ez)z-mY+CA1EbIB$#t;!Lol%3AE>SvZ78|1Izy! zsPsqI?Q;3ZWvJzDI_iUpk(D1vnt9U+>kOBj{k6CjAL!Vi&NNYgi#px~oG8jFNCU&* ze#e0jV)SRk&&}cG;@!@J(@U?8&bway)Of4I;yhI%T=%*S)~S#gR^Q_j&!FyPJI*g- zQXxD?wM_y5mw^uC?i*P^vqx6823L-|DTs{F;xiq6iq4*JEG(Ly`llo8X@B#r_6Z!f zYEv`X2()mt$Ft{@A~|Rv*#!P{Of6pBjOB>^f@J19d575v`&DK) z)Ew!e&27gW`cc7t{ZN=ZoI)5oMOYP4MXuP&7r5utXyzL`7Gc?hjE%~X{ z5F-nM93Cl|fTBEg_6M6*(kQmlorBg3=TMcoD6dl3#9d_o6H^k_6wYZADb&bHd9l|J}E%9y)55u9q?NQChU z&3H?%_hCi#s%qg)3J#Ewod+SJ!4Q21bYcA?N1mPaHx0zJ9sQv2kL)p5{H&B^ATJIB zzJWapHz1bLS4924F(o-v`%( z3Y^yC7(3@EzZzf6yLZQp2g(`26PaAF2n1^g@o)0^7LAFA zc3|xN=e)9gfg?y=5ud#eYQr7!ZUF4@2I)>n?_|F}ra5JQQ475fvoNVAQxzrFHpgw?qySf(UStYgYlCNbQD`hHcX@9uvCJ6R0+M`Jr1gJ<+Q#gQp zhM-P84QqI)4hQxly}$)g%In`bfVhb; z@|JScWMR*&%aLm3ja_j9vH2a*msW6dq0g^*>`8^}#29LuACmKb49CBrGg##(P9Bd2 zMtw;8Ak#h*wdxmWd`dE_@znN;DYC7&@)IwL5%dDE**h*RwMAD$HgLqe0Y&9Y)8j(; zKOlh?@eDV(RHH%VI2xUj%a{|wQQJWSv>Re3dO!|`^JDOga_`w{qj#5zzj^y6CT;Xg zk;FVj==vtKI8*!wOl+~tp#Bw}Xbb<&c<_9O0zA;k^9}3P|$|Dku!12|eCCqdcaC%m$AWcY&jh z&wlM->`f%7*zX}dVQFj2hZV381|Y7nn8*QjR;-j_jKpqY(HPC=w=!SIWkl#s3KUT6+Eig z#i`&oKRqOha`&FEqE_9O3b`q5kaG6PA62DLGqE^f%=rs@VykLz-Xm=}UMK1uhTz-ZdnC>p zY6^5v1KHn#7^fy@B!7saw8`I)(E$Gqx$_B_bRJULapIsH{=BEd4gADv980-9MMU9L zyuM0~Jbd*!&#nk*+bM}BX-~)ZjD;vLBIjPj%F%%m5K589bs1?Np>B7z8wplQJa7~V zgovIrZ~cd>^Gfy?I`rXd1+cC(j@&joEl8;GQX1Es`XuhhZelZv?SEGW+s%|6om~M7 z=y)y+gFSUr8yv9Q4wcrERCIZN$p&QkN8Q4Tp3V*IyWoH$>;%tBpE*NFZb3t3c0o`l z_pkO3Q0t?7u{zLgppeq}2x@)7EEE#L&2|;wLpxThO-lrpOnvXSzov?Z<4yQSs;#71 zx<#F8V<>h-9TnE@w_SIt9M!69ujMWEXuC9O`MNzF{~vF}O6M9#+p6~{*q^-jTWb@B zx;RD4cJbz_!F+zac~-SRrqsV}YmdGCYTZ<{xw9#U!~gI!|9!f&M@w3YJ2q~Rpb`l% zcM4^bn>{`tA;Yc5zW5^+6Wp6WRJO>d>KnR^bX-1WQE+A3s+~SJ{2oWspH8sLH-FTd z%a+zr`3RM}+KOZOUO2q;guO`weYX|^MvQmXwy2;jIRmLk_}HwS!v{CiY-E;`h`%s> zBvI9DGT7BnDI1LGG)QVMg|f?4lMGy3E$#`B+BSsB)}060;s)P~&PzSa*j-o$P@SS~ zvybdyT-`EU%3+2n`9@x}%;DkGL>!w^pfzz!)zqU*m{JKr_~{)S=c+*5-R~=$7^wX3 zN{-Sg4`^toZZuxF8O+~SO*|0?YEz^FS3YK}QC&X|SnwzaQj)9DPiy1$7-pXbg{#pt`K30FO|`Th&dp^uW9-R=a7(mBZ_ZbouEIt6fqO=7;$3+ojW4G^eN}RF z8m`Ck&OX1LfJ7ZDpz^H*5%rp$!+BG`a=}#o%cl%yH%q+dosF(ZETsiIk{?BgYLjf; zu^oTcU{0Zn5QQNq>~{{?79JO_&Y{Jj@&t{u@a?z3Hxvcg_R1^vh9N}JZ%PCfh_*eKfV`8 z0p?rK4+L4BFc$$CGMBUz!`qQXEbA%8Rj<|e*5g~z*`-xsQRpw#u!rIGkJr?s_U%=uF3QBZ?>^~u+o3?D@L|Nqs=V{Lc;gT!-RiyyGaa6{ntK|K8tqPpZ&={?L3=!`&WCV+qC2d z>;ZOe-`j|wt>^-wn6Dv$lab+(RG=wsjTU2Z6uxS{o4tzXz_;5tQ&)4}?N#lxDpQ)D zlR0#!hS+VO7}WC!iT0zF61l!mcEl29I!x?`&(CDihXlcFSfqnO?dgG`+GOmdXKLDRn<|{{de!uw@5$0IL#Om{_}w^8Ir+1FlDQ$7rSVR99L)2$%dme6AZXvrsn^7?gwo-d=oM%X$Dmw=s&Be}D^ z(-AZ>#DybA_mpyMV+Eg*LNT}xrQK2*NAhB6xneYIHRR4=^d_x7XE~E2Ne-RK&WS%X z!^;{Husa)Ag+DN<=qeXOciMSC+_SIxWhZgJps+Iis5qfKI{{>ouT+!5at4gr>%i4;wU*3nB%TAa5UxSN^AZVH zvYMhR7uG>YJ{N3(yrwty!XIJ{rl}hW#6B=`#lS4YZ7|&pdB~9p$VpZ2du7t|`^6pD zdS&bzGM6!r0yMvp-u0l3Wl;3Z5jdT8pgGILn&2q=G#Oo~N!nIB{NrA+-`zDX=nB^` zq9i@-OKguqZomb*d+p_WHRcp-r4gH6<)gy2Q=6MF3-5NCm@_48_Tb&DhdFP>h;!U%P@hE);A7&l?NkO7w6gnz6Q#Im{z zj$vUmZ`um0TeAO#FfFh7XV5&{c|*f4RRZAV-lcjeo#~Rbsmn>8#3iW24R*i6dROht;7Ot@)I|<;t+4s5nB;$>-y6B z&jYWS)g>(TA97TS%`dugXoH_PEnjL=p>psV(i=nqlw`8krFzXB^Tv%*|IEhjFKVxk zCnfS))DFS81NdlO8ns=)4Nl1iJVe3b3ismW_#0YxmZul=QL1OF>x3Sw<)TODlAe9{ z13e=pgd3a_IR4exzxT(o-fplsW4Tc4*6>Y|naxbEi8_-~8|&ZgBRVOg6mQVA7(cN? z%z`4gHTv-yZ1TC?yVUZ{bWp>f>-1$Jazf&KX*GM>R?B60veVjt>_2ZswF1?qt|BcU zU?%q`c--VJzY~MhZaYJ@X+tCMft?7WdnH;8Ao@a}$O2%S|FupVu3$iFCZ|*?M_>a~pWvio7>eRGBg2V*Mej z`v=JzsI$UqOdC5i`KPjcF3bRrvQ zh++Qk5bzJg%kJ8az|Ni@5J0IY;+TFU@CX09yUVK}bVZZkYD!Cgt(6Vg#+)}Zw1$Ch zVv6|^*^j?(%Z~e6=Thl$Whg9Ai*9t!=mvQa2nlK#9OW00vOS{bHEl_+A$JHNIgJR&D@P91NGA4{2q=RU zv6h^JpGGCF??Xl<;2*!EQxgg!Sy%930<6P04-{!@6Ssx{Ypd}Z2YeqtwjQWaKW707 zKog?CkMp0j;CT~po3|DckwxMu$R(+=5X>;Ue2nJ2zLnnz+cbYrk!|-sVp?p4U@no~ z`>xr9-w8U}E^42Y_x94z`of~55x{-BE)7XI7EzKAP9r+zfn3Occ_1nFNhxfXSM|}0 z7~j~RL4DmX_YS6_{&3_PDvR_b{}y5KBOi`H!{hP(U}zS7Q=I+Ere3Apqv_CV z;or35;@QR&gA98{$ub1>~V2siLz$+H5}m5rq##B#|O% z)EPa}!7@ckzoE{q*Z-mU#xkxwiUmKUuZf%$N8)L)avR;jAyj&%TB2UByeS;CsOHF0 zi)^uxvCZBRmGq&9eDcq;Hmz95cAO`_ty&xLHp-{9)Q(wb3QGu#)HCR~VsNycqf<)Qxc zwL^^fgI*FzuB0Dh3xP4H^pv$UxTO_A!fWchU{{lHv118AGC47`Xh;2mosN~k z)@Kqaj#ga4FF=q?_!;~>6M;VFjr=2Lq*ZN9hV(~8o_=I*^&ui&$>^-NYK%dHJh7G> zgKg|X2w0OV1+AKanE9D%Z?eA!FPu4zwu;fpfX88cWgg}!%~nPL56OGBAssa1gL|`W zQjs;~ljIYTYQV41=L)ogKT}T)e==yL1#S2V0q|D_oJ0SPy_Rpg-w8HwDt3^=sMEDT zd`{#y9I&sQKgwZf&E6=}?mFA$BdC|hE3JV~0jhI_2bz~~9BN@ZflU==HnbOdGGBLk zXYd6D+#UB8iIRGRBitzlGsQmLxgXCo8v5f}6;un~?^}M?{4{wri7*wUnX9egTJBbrOC+X`1EF6a3 z4!`|qxjQ%!n=NhoYw~5j63pdiQdaAkeV=UT>X*6~C88}R1D17z&arE0r8x)?l$vKz zWpt*}9S|<1{}3MbX`eED-lIT$6))osxXWzE3M305L8dwH%(*}sg2v0_X^)rl3!u88 zsSYn}RpG}JzFXcjhYwJ)vLWMLcDNKd zd8NOJH#Q3O)yw#e26h(S^umK4xMgofk_vyg>e?jKhPs>VwM_;==j1(pCReL-imx{b za*l+|8#$ELpe~Tqu-oecKV%5dcNZpVvz@?y-JaQ5>EC~82IB7G5hRPar^)U#dT}OD zA1T`|>IVIQcc4M;)`~$V!`eD9R7e2@pxYe4292eRw;<)8smpw!W-wB2O7bGlGN0hy zjjLAYcrBYNwEr&BC#|&v0cY>~GZVkg>rel%xh@3|YCS5tOJ^}*HRAfI#bI%D+|p*B zL~p(v3#JYOKE6xV0Jp54-Qm_NFTWkl*BYoN4ja5wZTxRm2wlWnNw*$>+M1R506P&m z+$_|I5Q!&K<{MRixR;s(c%D!Yq*q>Rp_;R|yDGMyd!=)xX#Rx{ZKSiP0y~Cs!}B zbFQ5=b>ldXiipjDYTkkiU~#jhIco+5aZIqB#3wHxx{+`%ZqW(c3ZUKL3_|$(tiCR(+BE z2;Qf}HuZe8aN$Yhwr_Lu!`hmakwhB0lC{~PMrsh^ zez9ax&~2l1YLe6-iI%mDdNV-3`D0qS;+ohOH1^3>x;lL|VBq2RojUFupD|}sR#Su* zA>eD2(Vi6xe>DP}YU%>v7N)@Piwobq@zwGH^XOjIG>Hdq^vF=!B}>8NT}9N(%G8H6 zpJxC+lY{bnQkBQg=Qe>Knk=-}gwUg7ez`9K4_10P=)KX?WQJ%InqLsP zVS(C>AvwytK%WV*A?DIoHV^c+v0+1q$P^O{|>=$R8PWIh+LjaD-~Qrffa?>9HjLU z`}Z=K3rpZ7$RIMj+U+D&5KJc#x)o{>+&FJ|SOQsNy6+lvi|`vSe|%f6R`l_H5pV` zJ@GU>4(`_)w_a?#>LpY*L3e`MtWq8TC{DgpET<#ZPuybFk2S+zLC35teoU1o8dm(aK)=KT!i`GOk2$H-ier6$4mM zb!$p&N2zej-bY*FHtMj(Wx#G_Sr84XFrpk(c3rk*%AU4=Q8LqLgnA+T3~#X8rTkvy z{mBdFy=$@T6g3sDdCJ3x%cyDgVtqXUu4--sQ0|g)W3op`Y9az<*?0G%N{`dgQ#

_qx`{Ow04lKMgJHsmt$Vc%;-PJ}Lsx@JoTjMSGrbl`f`rLTJ3j&*G)3C&_nVf!aRWKBRF& z7B8hoCX@1o)akf65O7?u>pvNQXTQ~uJMdBjE2Adk2xHTrisATBRe8{-q;8A9a^49a z!%wF-Ihv?f*yacg5`i3%)qyV$=LDQq0F!x=?NoJ8Nz4~rjIoYpc~UsVOeb4yagCcj z5_Ia90pLv94y?1rC`3Lj_vQr}tYJw^^iG%n{S1sqWCY(dK}T9mu_$Gphv^Eyn-|KW zKwm@ZArc3OqlKe|%c3ueT>3Rkz`ZtQX)^671EC}HY+a2vKmPnhN;XTv-6*NCAMN(5 z>8}@NVq^*A2$JtD5Ev{X2Weu(a1=w75F{7$5h#Prp0zo}tgyA}!kC1|`{yHk1BxyU z;9s;^jq<%vV*b;gw%6s2Bj9EXnm zW;}m?g3Ktor$A$dQ#8nB*kuoRu+1D7V3pUFsAhPt_?4DyU^?z+6ugjbS$HrpN+rmp z^3((9a~epLoYH$6d(bX6Soz7y$=V}dSEq7d3=#L*CTcK?rJsMCAY7F^Ms21&hj71B zBq9vTSKO3M0duDMod)6FMBz$yebK?k+-iRo$+`MtOW`d0#)Q%o0kk~+Y}L5EH8>Du zOl2IQ+{3)+ICS?#jj#RH>`{<_SBL<-kNgMk3#+#F)sR%0d!m||#TK(WjBsI3>xJ}( zD57Ko`WxcD_{8FVN35Q&J+?gpk}|wewZ%&bR(-<+8vEH5KS|tr-9I;=n)r5af@3Z5 ztg#MAX0bc0!Uos8Rhddg5`+uW6o2t34e)`gpNBe}PbAM^WTqegt*>n9pZ8Tv6}|s2 zZ-}*W0BdjjS=!e>-Mi~;0aXvycjK$eOU;eGp3aRs9^;2EW_J(VJcOeNvXEKY=Oes7 zG;yJ<&Ma0uOA|Y^!L5p4e(#gG8+9MKLDRnkr4yy&U!&?O3fIN2L?X~;YKgt3u}B&a zjQ)Tjqx(+lH%h;uORQ0FF8C{W9WDsWTRT+oQy9EzsBtbvH(K$HIHy1tkML_bjYs3a zdA5qT>D;%57p25M2fYt%JwYwkwI@mR{znVBwfoHQ6Rm(s^E)eQ6^9;aG3HM4xv~$_ zSnW6h=#X@tv&tBLn}z^gg@bXXl^?q=YHtY3V zB_1(;>LZ9L+rTZFiEwm7^x}b%R%6c%;bMJF+$e`{^!Bt zZ=^KU-zK9DSZ#dW2%G=R6R<0>5WM*6LWVQ9mtPT$4rjJcCC($PPK;%zD@c#oR_h&p z^`e&H_Vqwn#n7%p`se@muIDQBMtTc3UIN*}_xN)85L^C#C+KCkm>KSBFeb`!%0Erv_f@ zeV5(Tl!b^Uo8*ibIDGLlsL~m23|Q zMlIv?GCpZBsUz@VJb%mVr@ooUx}p&z=bt66h8x5LR)Mt0RDwx;L2_d8K0Fr;2bYV7 z^$Ub@^bvgUhQGGOkR8G+EfTmPslGA5E$N2r)ju-x3&mYr&!Vk6A>2cA32%aE>rpZ^j@+q6FgDq|;82>5Y`s)W-sJO-Uop(%2b&kqa|bFEo?40@;ZZrknb&R`hO2viRg} zeoi1SvNmdZ6k`2XVQVqfSMfi81mO<`clDR9>DqTjhrZQeA-K3bG)Ma4}8Ei}FK1zc>rg*TK3u}87PK2-NEQEy`=%s*=q zz3T}5l{65x*?DRzXZK_JMKMa8ej7^7`)p9GJhyry33=op=c;o1XqdqcM<_-PkF-A)-DSE4E`K6GHKGj;Kb zVCTImM8FIgz`>v*LQ@iVm~2dyv-}3FY8f0{nrVm3`AH_A)ESu8u@^jA<*-7rEP9_msia=^n5m$v4?V6Ss!u2 zFyjKtgSUw&=ckV+FRj1iOX)YI#RbOTjFtM+h3%y!X!xQQJ)IQP?O z;u7EVA>?{9xU|6od{n*p=Mstn4d^D^hp5qP$V;*Jb}k0?yf(=( zYX~<-t3~o0_O>){lA4NsV?1Jvlm7(0anMEKZTX7c%GN%w?%7gzBLwHuNI-*A zpN@ARoir~K2#5(CFzJ>M|GZS-c4ifyiaV!k3fxtkGhcS@h-%=U178Q}cj-0WV956W z{%?w}e3f4@*|+$TvvI9ZTszyiA;k3a;+P*ce8w8}WP`XxUN=VYF$dXhnoU>jTuQc@ zkt4FEE8#zH4Kz6>V%RxJar(UuQ-mwlw-)0yjcTW~vmCe+(sr<6#_gL39<4N0QOXFx zHjg@C_I* z4Sxj#BAd^fB`0-wL?+01mdLAP3pv%pV%B$=#tRd+Ub%+4kx^jP-0z8ry=u<(8RRDB zxRYJPo_2x0h#AVSH^%E9b+A0Owx$saTqtpt>^$t)*z^c}2u=QQBuZEvQmUSRW0c$HkHpt$$c8J-_tSh`=@hB--UD@?s@OQWKY4PM*|La*su|>a9&PCB550>wFh?>|F zH;aJ@n_W8KQV>byaF5bQf8BE#(HI4cIrbk%l6|i@n&@|IREUEE^`s7mW3IdHVrJ`{ z$5b^h-kG;q%<-=JZUNyvFUYcjCfxgh?~eSN)gMe!3v@GBFbg=Sei6Veur~C4?U;$Q zG9;x?Ui^wS0}fSfv`!c&nV_NsQ~ElIynj9_yW z<4C;O=Xn3G!U6c7S1$C!AeIDdA0`W9t}oFPCNFOy1ek>_1yv5eiGICUJ#LG6? zZn8RVt{zsx=1vX{mX2-!RMo}F%Ei*v6>4Vc0(EmSHMfIe{NIJ|ZS3u#%mMsdj4aPp qmM-Rq51Lw8Lal8a-JVO-p^8pcPS6ntH*~~T0P?cRG9^+b!T$@=Z)i;b literal 0 HcmV?d00001 diff --git a/Icons/PSXUIProgressBar.png.meta b/Icons/PSXUIProgressBar.png.meta new file mode 100644 index 0000000..2a33007 --- /dev/null +++ b/Icons/PSXUIProgressBar.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 4ba32ceba8e78ae4dbad95d3fd57c674 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Icons/PSXUIText.png b/Icons/PSXUIText.png new file mode 100644 index 0000000000000000000000000000000000000000..f02b19b47d999dd7c542bb6c976243428102801d GIT binary patch literal 9466 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 TlK#~*+$XOF%;v<&?(nCHB& literal 0 HcmV?d00001 diff --git a/Icons/PSXUIText.png.meta b/Icons/PSXUIText.png.meta new file mode 100644 index 0000000..b0cc5ba --- /dev/null +++ b/Icons/PSXUIText.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 38a1d4112773e114c969699f94844e6a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/IPSXExportable.cs b/Runtime/IPSXExportable.cs index 7bb2f9d..93df469 100644 --- a/Runtime/IPSXExportable.cs +++ b/Runtime/IPSXExportable.cs @@ -1,5 +1,8 @@ namespace SplashEdit.RuntimeCode { + + // I tried to make this and now I'm scared to delete this. + /// /// Implemented by MonoBehaviours that participate in the PSX scene export pipeline. /// Each exportable object converts its Unity representation into PSX-ready data. diff --git a/Runtime/ImageProcessing.cs b/Runtime/ImageProcessing.cs index 7c9f746..6c84c18 100644 --- a/Runtime/ImageProcessing.cs +++ b/Runtime/ImageProcessing.cs @@ -137,53 +137,55 @@ namespace SplashEdit.RuntimeCode private class Node { public Vector3 Point; + public int Index; public Node Left, Right; } private Node root; - private List points; public KDTree(List points) { - this.points = points; - root = Build(points, 0); + var indexed = new List<(Vector3 point, int index)>(); + for (int i = 0; i < points.Count; i++) + indexed.Add((points[i], i)); + root = Build(indexed, 0); } - private Node Build(List points, int depth) + private Node Build(List<(Vector3 point, int index)> items, int depth) { - if (points.Count == 0) return null; + if (items.Count == 0) return null; int axis = depth % 3; - points.Sort((a, b) => a[axis].CompareTo(b[axis])); - int median = points.Count / 2; + items.Sort((a, b) => a.point[axis].CompareTo(b.point[axis])); + int median = items.Count / 2; return new Node { - Point = points[median], - Left = Build(points.Take(median).ToList(), depth + 1), - Right = Build(points.Skip(median + 1).ToList(), depth + 1) + Point = items[median].point, + Index = items[median].index, + Left = Build(items.Take(median).ToList(), depth + 1), + Right = Build(items.Skip(median + 1).ToList(), depth + 1) }; } public int FindNearestIndex(Vector3 target) { - Vector3 nearest = FindNearest(root, target, 0, root.Point); - return points.IndexOf(nearest); + return FindNearest(root, target, 0, root).Index; } - private Vector3 FindNearest(Node node, Vector3 target, int depth, Vector3 best) + private Node FindNearest(Node node, Vector3 target, int depth, Node best) { if (node == null) return best; - if (Vector3.SqrMagnitude(target - node.Point) < Vector3.SqrMagnitude(target - best)) - best = node.Point; + if (Vector3.SqrMagnitude(target - node.Point) < Vector3.SqrMagnitude(target - best.Point)) + best = node; int axis = depth % 3; Node first = target[axis] < node.Point[axis] ? node.Left : node.Right; Node second = first == node.Left ? node.Right : node.Left; best = FindNearest(first, target, depth + 1, best); - if (Mathf.Pow(target[axis] - node.Point[axis], 2) < Vector3.SqrMagnitude(target - best)) + if (Mathf.Pow(target[axis] - node.Point[axis], 2) < Vector3.SqrMagnitude(target - best.Point)) best = FindNearest(second, target, depth + 1, best); return best; diff --git a/Runtime/LuaFile.cs b/Runtime/LuaFile.cs index 2c4cee1..475348f 100644 --- a/Runtime/LuaFile.cs +++ b/Runtime/LuaFile.cs @@ -2,6 +2,7 @@ using UnityEngine; namespace SplashEdit.RuntimeCode { + [Icon("Packages/net.psxsplash.splashedit/Icons/LuaFile.png")] public class LuaFile : ScriptableObject { [SerializeField] private string luaScript; diff --git a/Runtime/PSXAudioClip.cs b/Runtime/PSXAudioClip.cs index aa75d89..a52ba5f 100644 --- a/Runtime/PSXAudioClip.cs +++ b/Runtime/PSXAudioClip.cs @@ -4,8 +4,6 @@ namespace SplashEdit.RuntimeCode { /// /// Pre-converted audio clip data ready for splashpack serialization. - /// Populated by the Editor (PSXSceneExporter) so Runtime code never - /// touches PSXAudioConverter. /// public struct AudioClipExport { @@ -18,9 +16,10 @@ namespace SplashEdit.RuntimeCode /// /// Attach to a GameObject to include an audio clip in the PS1 build. /// At export time, the AudioClip is converted to SPU ADPCM and packed - /// into the splashpack binary. Use Audio.Play(clipIndex) from Lua. + /// into the splashpack for runtime loading. /// [AddComponentMenu("PSX/Audio Clip")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXAudioClip.png")] public class PSXAudioClip : MonoBehaviour { [Tooltip("Name used to identify this clip in Lua (Audio.Play(\"name\"))." )] diff --git a/Runtime/PSXCanvas.cs b/Runtime/PSXCanvas.cs index ace3c88..b949701 100644 --- a/Runtime/PSXCanvas.cs +++ b/Runtime/PSXCanvas.cs @@ -17,6 +17,7 @@ namespace SplashEdit.RuntimeCode [DisallowMultipleComponent] [ExecuteAlways] [AddComponentMenu("PSX/UI/PSX Canvas")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXCanvas.png")] public class PSXCanvas : MonoBehaviour { [Tooltip("Name used to reference this canvas from Lua (max 24 chars). Must be unique per scene.")] diff --git a/Runtime/PSXCutsceneClip.cs b/Runtime/PSXCutsceneClip.cs index f627b02..cb80c00 100644 --- a/Runtime/PSXCutsceneClip.cs +++ b/Runtime/PSXCutsceneClip.cs @@ -10,6 +10,7 @@ namespace SplashEdit.RuntimeCode /// all PSXCutsceneClip assets via Resources.FindObjectsOfTypeAll. /// [CreateAssetMenu(fileName = "NewCutscene", menuName = "PSX/Cutscene Clip", order = 100)] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXCutsceneClip.png")] public class PSXCutsceneClip : ScriptableObject { [Tooltip("Name used to reference this cutscene from Lua (max 24 chars). Must be unique per scene.")] diff --git a/Runtime/PSXData.cs b/Runtime/PSXData.cs index 3faa457..fb474c3 100644 --- a/Runtime/PSXData.cs +++ b/Runtime/PSXData.cs @@ -5,6 +5,7 @@ namespace SplashEdit.RuntimeCode { [CreateAssetMenu(fileName = "PSXData", menuName = "PSXSplash/PS1 Project Data")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXData.png")] public class PSXData : ScriptableObject { diff --git a/Runtime/PSXFontAsset.cs b/Runtime/PSXFontAsset.cs index 65f7fb4..a51c04a 100644 --- a/Runtime/PSXFontAsset.cs +++ b/Runtime/PSXFontAsset.cs @@ -8,6 +8,7 @@ using UnityEditor; namespace SplashEdit.RuntimeCode { [CreateAssetMenu(fileName = "New PSXFont", menuName = "PSX/Font Asset")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXFontAsset.png")] public class PSXFontAsset : ScriptableObject { [Header("Source - Option A: TrueType/OTF Font")] @@ -154,7 +155,6 @@ namespace SplashEdit.RuntimeCode if (validCount > 0) { workingSize = 0; - Debug.Log("PSXFontAsset: Using font's native size for character info."); } } @@ -273,11 +273,6 @@ namespace SplashEdit.RuntimeCode // This makes the native advance widths match the bitmap exactly for // proportional rendering. Characters wider than cell get clipped (rare). - Debug.Log($"PSXFontAsset: Cell {glyphWidth}x{glyphHeight}, {glyphsPerRow}/row, " + - $"{rowCount} rows, texture {texW}x{texH} " + - $"(measured: {measuredMaxW}x{measuredMaxH}, " + - $"ascender={maxAscender}, descender={maxDescender}, vScale={vScale:F2})"); - // ── Step 5: Render glyphs into grid ── // Each glyph is LEFT-ALIGNED at native width for proportional rendering. // The advance widths from CharacterInfo match native glyph proportions. @@ -376,8 +371,6 @@ namespace SplashEdit.RuntimeCode return; } - Debug.Log($"PSXFontAsset: Rendered {renderedCount}/95 glyphs."); - // Store advance widths from the same CharacterInfo used for rendering. // This guarantees advances match the bitmap glyphs exactly. storedAdvanceWidths = new byte[96]; @@ -424,7 +417,6 @@ namespace SplashEdit.RuntimeCode fontTexture = AssetDatabase.LoadAssetAtPath(texPath); EditorUtility.SetDirty(this); AssetDatabase.SaveAssets(); - Debug.Log($"PSXFontAsset: Saved {texW}x{texH} bitmap at {texPath}"); } #endif diff --git a/Runtime/PSXInteractable.cs b/Runtime/PSXInteractable.cs index 5095c03..00b8401 100644 --- a/Runtime/PSXInteractable.cs +++ b/Runtime/PSXInteractable.cs @@ -8,6 +8,7 @@ namespace SplashEdit.RuntimeCode /// the onInteract Lua event fires. ///

[RequireComponent(typeof(PSXObjectExporter))] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXInteractable.png")] public class PSXInteractable : MonoBehaviour { [Header("Interaction Settings")] diff --git a/Runtime/PSXLightingBaker.cs b/Runtime/PSXLightingBaker.cs index b67f17b..acf30f2 100644 --- a/Runtime/PSXLightingBaker.cs +++ b/Runtime/PSXLightingBaker.cs @@ -76,6 +76,8 @@ namespace SplashEdit.RuntimeCode finalColor += lightContribution; } + // Clamp to 0.8 to leave headroom for PS1 2x color blending mode, + // which doubles vertex colors. Without this cap, bright areas would clip. finalColor.r = Mathf.Clamp(finalColor.r, 0.0f, 0.8f); finalColor.g = Mathf.Clamp(finalColor.g, 0.0f, 0.8f); finalColor.b = Mathf.Clamp(finalColor.b, 0.0f, 0.8f); diff --git a/Runtime/PSXMesh.cs b/Runtime/PSXMesh.cs index f473148..30f2edd 100644 --- a/Runtime/PSXMesh.cs +++ b/Runtime/PSXMesh.cs @@ -83,9 +83,6 @@ namespace SplashEdit.RuntimeCode } - /// - /// Creates a PSXMesh from a Unity Mesh by converting its vertices, normals, UVs, and applying shading. - /// /// /// Creates a PSXMesh from a Unity Renderer by extracting its mesh and materials. /// @@ -203,12 +200,12 @@ namespace SplashEdit.RuntimeCode /// Converts a Unity vertex into a PSXVertex by applying fixed-point conversion, shading, and UV mapping. ///
/// The position of the vertex. + /// World-to-GTE scaling factor. /// The normal vector at the vertex. /// Texture coordinates for the vertex. - /// The light direction used for shading calculations. - /// The color of the light affecting the vertex. /// Width of the texture for UV scaling. /// Height of the texture for UV scaling. + /// Pre-computed vertex color from lighting. /// A PSXVertex with converted coordinates, normals, UVs, and color. private static PSXVertex ConvertToPSXVertex(Vector3 vertex, float GTEScaling, Vector3 normal, Vector2 uv, int? textureWidth, int? textureHeight, Color color) { diff --git a/Runtime/PSXObjectExporter.cs b/Runtime/PSXObjectExporter.cs index 47b99fc..fde9265 100644 --- a/Runtime/PSXObjectExporter.cs +++ b/Runtime/PSXObjectExporter.cs @@ -14,6 +14,7 @@ namespace SplashEdit.RuntimeCode [RequireComponent(typeof(MeshFilter))] [RequireComponent(typeof(MeshRenderer))] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXObjectExporter.png")] public class PSXObjectExporter : MonoBehaviour, IPSXExportable { public LuaFile LuaFile => luaFile; diff --git a/Runtime/PSXPlayer.cs b/Runtime/PSXPlayer.cs index ffd3b15..1fd5992 100644 --- a/Runtime/PSXPlayer.cs +++ b/Runtime/PSXPlayer.cs @@ -4,6 +4,7 @@ using UnityEngine.Serialization; namespace SplashEdit.RuntimeCode { + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXPlayer.png")] public class PSXPlayer : MonoBehaviour { [Header("Player Dimensions")] diff --git a/Runtime/PSXPortalLink.cs b/Runtime/PSXPortalLink.cs index 3283204..ac238d2 100644 --- a/Runtime/PSXPortalLink.cs +++ b/Runtime/PSXPortalLink.cs @@ -11,6 +11,7 @@ namespace SplashEdit.RuntimeCode /// This is independent of the navigation portal system (PSXNavRegion). /// [ExecuteInEditMode] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXPortalLink.png")] public class PSXPortalLink : MonoBehaviour { [Tooltip("First room connected by this portal.")] diff --git a/Runtime/PSXRoom.cs b/Runtime/PSXRoom.cs index 5405ccb..7bb09a7 100644 --- a/Runtime/PSXRoom.cs +++ b/Runtime/PSXRoom.cs @@ -13,6 +13,7 @@ namespace SplashEdit.RuntimeCode /// This is independent of the navregion/portal system used for navigation. /// [ExecuteInEditMode] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXRoom.png")] public class PSXRoom : MonoBehaviour { [Tooltip("Optional display name for this room (used in editor gizmos).")] diff --git a/Runtime/PSXSceneExporter.cs b/Runtime/PSXSceneExporter.cs index cc3e676..0b7f8e8 100644 --- a/Runtime/PSXSceneExporter.cs +++ b/Runtime/PSXSceneExporter.cs @@ -16,6 +16,7 @@ namespace SplashEdit.RuntimeCode } [ExecuteInEditMode] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXSceneExporter.png")] public class PSXSceneExporter : MonoBehaviour { /// diff --git a/Runtime/PSXSceneWriter.cs b/Runtime/PSXSceneWriter.cs index ad11d4e..09e9145 100644 --- a/Runtime/PSXSceneWriter.cs +++ b/Runtime/PSXSceneWriter.cs @@ -7,7 +7,7 @@ using UnityEngine; namespace SplashEdit.RuntimeCode { /// - /// Pure binary serializer for the splashpack v8 format. + /// Pure binary serializer for the splashpack v16 format. /// All I/O extracted from PSXSceneExporter so the MonoBehaviour stays thin. /// public static class PSXSceneWriter @@ -72,7 +72,7 @@ namespace SplashEdit.RuntimeCode // ═══════════════════════════════════════════════════════════════ /// - /// Serialize the scene to a splashpack v8 binary file. + /// Serialize the scene to a splashpack v16 binary file. /// /// Absolute file path to write. /// Pre-built scene data. @@ -148,13 +148,13 @@ namespace SplashEdit.RuntimeCode writer.Write((ushort)clutCount); writer.Write((ushort)colliderCount); writer.Write((ushort)scene.interactables.Length); - writer.Write((ushort)PSXTrig.ConvertCoordinateToPSX(scene.playerPos.x, gte)); - writer.Write((ushort)PSXTrig.ConvertCoordinateToPSX(-scene.playerPos.y, gte)); - writer.Write((ushort)PSXTrig.ConvertCoordinateToPSX(scene.playerPos.z, gte)); + writer.Write(PSXTrig.ConvertCoordinateToPSX(scene.playerPos.x, gte)); + writer.Write(PSXTrig.ConvertCoordinateToPSX(-scene.playerPos.y, gte)); + writer.Write(PSXTrig.ConvertCoordinateToPSX(scene.playerPos.z, gte)); - writer.Write((ushort)PSXTrig.ConvertToFixed12(scene.playerRot.eulerAngles.x * Mathf.Deg2Rad)); - writer.Write((ushort)PSXTrig.ConvertToFixed12(scene.playerRot.eulerAngles.y * Mathf.Deg2Rad)); - writer.Write((ushort)PSXTrig.ConvertToFixed12(scene.playerRot.eulerAngles.z * Mathf.Deg2Rad)); + writer.Write(PSXTrig.ConvertToFixed12(scene.playerRot.eulerAngles.x * Mathf.Deg2Rad)); + writer.Write(PSXTrig.ConvertToFixed12(scene.playerRot.eulerAngles.y * Mathf.Deg2Rad)); + writer.Write(PSXTrig.ConvertToFixed12(scene.playerRot.eulerAngles.z * Mathf.Deg2Rad)); writer.Write((ushort)PSXTrig.ConvertCoordinateToPSX(scene.playerHeight, gte)); @@ -475,6 +475,7 @@ namespace SplashEdit.RuntimeCode writer.Write((ushort)0); // padding // Sentinel tpage = 0xFFFF marks untextured + // haha funny word. Sentinel, sentinel, sentinel. I could keep saying it forever. writer.Write((ushort)0xFFFF); writer.Write((ushort)0); writer.Write((ushort)0); @@ -828,6 +829,9 @@ namespace SplashEdit.RuntimeCode // ══════════════════════════════════════════════════════ // DEAD ZONE — pixel/audio bulk data (freed after VRAM/SPU upload) // Everything written after this point is not needed at runtime. + // You may be asking why we don't just put pixel/audio data in separate files + // or why don't we put this data at the end of the file to begin with. The answer is + // Very simple and I'm going to tell it to you right now... OH GOD I FORGOT TO TURN OFF THE STOVE (runs away) // ══════════════════════════════════════════════════════ AlignToFourBytes(writer); long pixelDataStart = writer.BaseStream.Position; diff --git a/Runtime/PSXTexture2D.cs b/Runtime/PSXTexture2D.cs index a203b0d..b7e906f 100644 --- a/Runtime/PSXTexture2D.cs +++ b/Runtime/PSXTexture2D.cs @@ -252,9 +252,9 @@ namespace SplashEdit.RuntimeCode if (BitDepth == PSXBPP.TEX_16BIT) { - for (int y = 0; y < Width; y++) + for (int y = 0; y < Height; y++) { - for (int x = 0; x < Height; x++) + for (int x = 0; x < Width; x++) { tex.SetPixel(x, Height - 1 - y, ImageData[x, y].GetUnityColor()); } diff --git a/Runtime/PSXTrackType.cs b/Runtime/PSXTrackType.cs index 87e90ab..79eed11 100644 --- a/Runtime/PSXTrackType.cs +++ b/Runtime/PSXTrackType.cs @@ -1,8 +1,5 @@ namespace SplashEdit.RuntimeCode { - /// - /// Cutscene track types. Must match the C++ TrackType enum in cutscene.hh. - /// public enum PSXTrackType : byte { CameraPosition = 0, @@ -10,7 +7,6 @@ namespace SplashEdit.RuntimeCode ObjectPosition = 2, ObjectRotationY = 3, ObjectActive = 4, - // UI track types (v13+) UICanvasVisible = 5, UIElementVisible = 6, UIProgress = 7, diff --git a/Runtime/PSXTriggerBox.cs b/Runtime/PSXTriggerBox.cs index ea0e94e..5c3e64b 100644 --- a/Runtime/PSXTriggerBox.cs +++ b/Runtime/PSXTriggerBox.cs @@ -2,6 +2,7 @@ using UnityEngine; namespace SplashEdit.RuntimeCode { + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXTriggerBox.png")] public class PSXTriggerBox : MonoBehaviour { [SerializeField] private Vector3 size = Vector3.one; diff --git a/Runtime/PSXUIBox.cs b/Runtime/PSXUIBox.cs index eb8c74a..601d883 100644 --- a/Runtime/PSXUIBox.cs +++ b/Runtime/PSXUIBox.cs @@ -10,6 +10,7 @@ namespace SplashEdit.RuntimeCode [RequireComponent(typeof(RectTransform))] [DisallowMultipleComponent] [AddComponentMenu("PSX/UI/PSX UI Box")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXUIBox.png")] public class PSXUIBox : MonoBehaviour { [Tooltip("Name used to reference this element from Lua (max 24 chars).")] diff --git a/Runtime/PSXUIImage.cs b/Runtime/PSXUIImage.cs index ecf976d..5737e2b 100644 --- a/Runtime/PSXUIImage.cs +++ b/Runtime/PSXUIImage.cs @@ -10,6 +10,7 @@ namespace SplashEdit.RuntimeCode [RequireComponent(typeof(RectTransform))] [DisallowMultipleComponent] [AddComponentMenu("PSX/UI/PSX UI Image")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXUIImage.png")] public class PSXUIImage : MonoBehaviour { [Tooltip("Name used to reference this element from Lua (max 24 chars).")] diff --git a/Runtime/PSXUIProgressBar.cs b/Runtime/PSXUIProgressBar.cs index 6413c04..c65d890 100644 --- a/Runtime/PSXUIProgressBar.cs +++ b/Runtime/PSXUIProgressBar.cs @@ -10,6 +10,7 @@ namespace SplashEdit.RuntimeCode [RequireComponent(typeof(RectTransform))] [DisallowMultipleComponent] [AddComponentMenu("PSX/UI/PSX UI Progress Bar")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXUIProgressBar.png")] public class PSXUIProgressBar : MonoBehaviour { [Tooltip("Name used to reference this element from Lua (max 24 chars).")] diff --git a/Runtime/PSXUIText.cs b/Runtime/PSXUIText.cs index df85359..972dfe3 100644 --- a/Runtime/PSXUIText.cs +++ b/Runtime/PSXUIText.cs @@ -10,6 +10,7 @@ namespace SplashEdit.RuntimeCode [RequireComponent(typeof(RectTransform))] [DisallowMultipleComponent] [AddComponentMenu("PSX/UI/PSX UI Text")] + [Icon("Packages/net.psxsplash.splashedit/Icons/PSXUIText.png")] public class PSXUIText : MonoBehaviour { [Tooltip("Name used to reference this element from Lua (max 24 chars).")] diff --git a/Runtime/SceneMemoryAnalyzer.cs b/Runtime/SceneMemoryAnalyzer.cs index 4532b9b..5a86fb8 100644 --- a/Runtime/SceneMemoryAnalyzer.cs +++ b/Runtime/SceneMemoryAnalyzer.cs @@ -222,16 +222,16 @@ namespace SplashEdit.RuntimeCode { if (bvh == null) return 0; // BVH nodes: each node has AABB (24 bytes) + child/tri info (8 bytes) = 32 bytes - // Triangle refs: 2 bytes each (uint16) - return (long)bvh.NodeCount * 32 + (long)bvh.TriangleRefCount * 2; + // Triangle refs: 4 bytes each (uint32) + return (long)bvh.NodeCount * 32 + (long)bvh.TriangleRefCount * 4; } private static long EstimateCollisionSize(PSXCollisionExporter collision) { if (collision == null || collision.MeshCount == 0) return 0; - // Each collision mesh header: AABB + triangle count (28 bytes) - // Each collision triangle: 3 vertices * 6 bytes = 18 bytes + normal 6 bytes = 24 bytes - return (long)collision.MeshCount * 28 + (long)collision.TriangleCount * 24; + // Each collision mesh header: AABB (24) + tri count (2) + flags (2) + offset (4) = 32 bytes + // Each collision triangle: 3 verts * 12 bytes + normal 12 bytes + flags 4 bytes = 52 bytes + return (long)collision.MeshCount * 32 + (long)collision.TriangleCount * 52; } private static long EstimateNavRegionSize(PSXNavRegionBuilder nav) diff --git a/Runtime/TexturePacker.cs b/Runtime/TexturePacker.cs index 1cee001..d639342 100644 --- a/Runtime/TexturePacker.cs +++ b/Runtime/TexturePacker.cs @@ -321,7 +321,7 @@ namespace SplashEdit.RuntimeCode // Iterate over possible CLUT positions in VRAM. for (ushort x = 0; x < VramWidth; x += 16) { - for (ushort y = 0; y <= VramHeight; y++) + for (ushort y = 0; y < VramHeight; y++) { var candidate = new Rect(x, y, clutWidth, clutHeight); if (IsPlacementValid(candidate)) diff --git a/Runtime/Utils.cs b/Runtime/Utils.cs index f6fc111..c13e694 100644 --- a/Runtime/Utils.cs +++ b/Runtime/Utils.cs @@ -331,6 +331,30 @@ namespace SplashEdit.RuntimeCode { private static int MaxTextureSize => 256; + /// + /// If a directory contains exactly one subdirectory (common after archive extraction), + /// flatten its contents up one level and remove the nested directory. + /// + public static void FixNestedDirectory(string dir) + { + var subdirs = System.IO.Directory.GetDirectories(dir); + if (subdirs.Length == 1) + { + string nested = subdirs[0]; + foreach (string file in System.IO.Directory.GetFiles(nested)) + { + string dest = System.IO.Path.Combine(dir, System.IO.Path.GetFileName(file)); + if (!System.IO.File.Exists(dest)) System.IO.File.Move(file, dest); + } + foreach (string sub in System.IO.Directory.GetDirectories(nested)) + { + string dest = System.IO.Path.Combine(dir, System.IO.Path.GetFileName(sub)); + if (!System.IO.Directory.Exists(dest)) System.IO.Directory.Move(sub, dest); + } + try { System.IO.Directory.Delete(nested, true); } catch { } + } + } + public static (Rect, Rect) BufferForResolution(Vector2 selectedResolution, bool verticalLayout, Vector2 offset = default) { if (offset == default) diff --git a/Sample.meta b/Sample.meta deleted file mode 100644 index 149e5f7..0000000 --- a/Sample.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 45b95f68e129e6f478d509d59f39bc6e -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Sample/Lua.meta b/Sample/Lua.meta deleted file mode 100644 index 907c076..0000000 --- a/Sample/Lua.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f9337852f7cf29848b42f674d396732d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Sample/Lua/example.lua b/Sample/Lua/example.lua deleted file mode 100644 index a7aba16..0000000 --- a/Sample/Lua/example.lua +++ /dev/null @@ -1,95 +0,0 @@ --- ============================================================================ --- PSXSplash Example Script --- Demonstrates all working Lua events and API calls. --- Attach this to a PSXObjectExporter via the "Lua File" field. --- ============================================================================ - --- Per-object state (each object gets its own copy of these locals) -local bobAmplitude = 50 -- vertical bob range -local bobSpeed = 2 -- bob increment per frame -local bobPhase = 0 - --- ============================================================================ --- LIFECYCLE EVENTS --- ============================================================================ - ---- Called once when the object is first loaded into the scene. -function onCreate(self) - Debug.Log("Object created!") - local pos = Entity.GetPosition(self) - Debug.Log(" start pos: " .. pos.x .. ", " .. pos.y .. ", " .. pos.z) -end - ---- Called every frame while the object is active. ---- WARNING: This runs on a 33 MHz MIPS R3000 — keep it light! -function onUpdate(self) - -- Simple vertical bob - bobPhase = bobPhase + bobSpeed - if bobPhase > 360 then bobPhase = bobPhase - 360 end - - local pos = Entity.GetPosition(self) - pos.y = pos.y + PSXMath.Sign(180 - bobPhase) * bobAmplitude / 60 - Entity.SetPosition(self, pos) -end - ---- Called when the object is destroyed or the scene unloads. -function onDestroy(self) - Debug.Log("Object destroyed!") -end - --- onEnable / onDisable are available but omitted here to reduce log noise. --- function onEnable(self) Debug.Log("Object enabled") end --- function onDisable(self) Debug.Log("Object disabled") end - --- ============================================================================ --- INTERACTION EVENTS (requires PSXInteractable component) --- ============================================================================ - ---- Called when the player interacts with this object. -function onInteract(self) - Debug.Log("Player interacted!") - local active = Entity.IsActive(self) - Entity.SetActive(self, not active) -end - --- ============================================================================ --- COLLISION / TRIGGER EVENTS --- ============================================================================ - ---- Called when this object's collider overlaps another. -function onCollideWithPlayer(self) - Debug.Log("Collision with another object") -end - ---- Called on the first frame two triggers overlap. -function onTriggerEnter(self, other) - Debug.Log("Trigger enter") -end - ---- Called every frame while two triggers continue to overlap. -function onTriggerStay(self, other) - -- Expensive! Avoid heavy work here. -end - ---- Called when two triggers stop overlapping. -function onTriggerExit(self, other) - Debug.Log("Trigger exit") -end - --- ============================================================================ --- INPUT EVENTS --- ============================================================================ - ---- Called when any button is pressed this frame. -function onButtonPress(self, button) - if button == Input.CROSS then - Debug.Log("Cross pressed!") - end -end - ---- Called when any button is released this frame. -function onButtonRelease(self, button) - if button == Input.CROSS then - Debug.Log("Cross released!") - end -end \ No newline at end of file diff --git a/Sample/Lua/example.lua.meta b/Sample/Lua/example.lua.meta deleted file mode 100644 index 23dbd8b..0000000 --- a/Sample/Lua/example.lua.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: c993fd0fc3a7b2e4db45e291e983ac47 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 74e983e6cf3376944af7b469023d6e4d, type: 3} diff --git a/Sample/Material.meta b/Sample/Material.meta deleted file mode 100644 index 03fdfe7..0000000 --- a/Sample/Material.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e5eb77d7823c1c944ba10953ae01f796 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Sample/Material/PSXDefault.mat b/Sample/Material/PSXDefault.mat deleted file mode 100644 index cb924af..0000000 --- a/Sample/Material/PSXDefault.mat +++ /dev/null @@ -1,137 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!21 &2100000 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: PSXDefault - m_Shader: {fileID: 4800000, guid: 0ca6dca7396eb48e5849247ffd444914, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 2000 - stringTagMap: - RenderType: Opaque - disabledShaderPasses: - - MOTIONVECTORS - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _BaseMap: - m_Texture: {fileID: 2800000, guid: 0be7a2d4700082dbc83b9274837c70bc, type: 3} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_Lightmaps: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_LightmapsInd: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_ShadowMasks: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _AddPrecomputedVelocity: 0 - - _AlphaClip: 0 - - _AlphaToMask: 0 - - _Blend: 0 - - _BlendModePreserveSpecular: 1 - - _BlendOp: 0 - - _BumpScale: 1 - - _ClearCoatMask: 0 - - _ClearCoatSmoothness: 0 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailAlbedoMapScale: 1 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _DstBlendAlpha: 0 - - _EnvironmentReflections: 1 - - _GlossMapScale: 0 - - _Glossiness: 0 - - _GlossyReflections: 0 - - _Metallic: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.005 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _SrcBlendAlpha: 1 - - _Surface: 0 - - _WorkflowMode: 1 - - _ZWrite: 1 - m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - m_BuildTextureStacks: [] - m_AllowLocking: 1 ---- !u!114 &7557462600926894941 -MonoBehaviour: - m_ObjectHideFlags: 11 - 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} - m_Name: - m_EditorClassIdentifier: - version: 10 diff --git a/Sample/Material/PSXDefault.mat.meta b/Sample/Material/PSXDefault.mat.meta deleted file mode 100644 index 4dba36f..0000000 --- a/Sample/Material/PSXDefault.mat.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6bf1caff36887d44fa357159c84fe954 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Sample/Scene.meta b/Sample/Scene.meta deleted file mode 100644 index 0dc61e9..0000000 --- a/Sample/Scene.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2ca98fa730fe5fa4ea239123eb09887b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Sample/Scene/Demo.unity b/Sample/Scene/Demo.unity deleted file mode 100644 index 2fdbb8b..0000000 --- a/Sample/Scene/Demo.unity +++ /dev/null @@ -1,683 +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: 0 - m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 - 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: 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 &416002693 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 416002697} - - component: {fileID: 416002696} - - component: {fileID: 416002695} - - component: {fileID: 416002694} - - component: {fileID: 416002698} - m_Layer: 0 - m_Name: ExportObjectWithScript - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &416002694 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416002693} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &416002695 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416002693} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ef90866ae3c8e3241995606c20a6f335, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &416002696 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416002693} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &416002697 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416002693} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 107.39} - 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 &416002698 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 416002693} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bea0f31a495202580ac77bd9fd6e99f2, type: 3} - m_Name: - m_EditorClassIdentifier: - bitDepth: 8 - luaFile: {fileID: 271950057456261835, guid: 2080a81a20451b74bb4fed47cde1eb64, type: 3} - previewNormals: 0 - normalPreviewLength: 0.5 ---- !u!1 &512214764 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 512214766} - - component: {fileID: 512214765} - m_Layer: 0 - m_Name: SceneExporter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &512214765 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 512214764} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ab5195ad94fd173cfb6d48ee06eaf245, type: 3} - m_Name: - m_EditorClassIdentifier: - GTEScaling: 100 ---- !u!4 &512214766 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 512214764} - 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 &706636693 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 706636697} - - component: {fileID: 706636696} - - component: {fileID: 706636695} - - component: {fileID: 706636694} - - component: {fileID: 706636698} - m_Layer: 0 - m_Name: ExportObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &706636694 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 706636693} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &706636695 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 706636693} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ef90866ae3c8e3241995606c20a6f335, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &706636696 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 706636693} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &706636697 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 706636693} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 101.463} - 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 &706636698 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 706636693} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: bea0f31a495202580ac77bd9fd6e99f2, type: 3} - m_Name: - m_EditorClassIdentifier: - bitDepth: 8 - luaFile: {fileID: 0} - previewNormals: 0 - normalPreviewLength: 0.5 ---- !u!1 &728093073 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 728093076} - - component: {fileID: 728093075} - - component: {fileID: 728093074} - - component: {fileID: 728093077} - 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 &728093074 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 728093073} - m_Enabled: 1 ---- !u!20 &728093075 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 728093073} - 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: 0 - 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 &728093076 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 728093073} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, 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 &728093077 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 728093073} - 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_Version: 2 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 ---- !u!1 &1570671553 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1570671555} - - component: {fileID: 1570671554} - - component: {fileID: 1570671556} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1570671554 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1570671553} - m_Enabled: 1 - serializedVersion: 11 - m_Type: 1 - m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize: 10 - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - 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_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ForceVisible: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_LightUnit: 1 - m_LuxAtDistance: 1 - m_EnableSpotReflector: 1 ---- !u!4 &1570671555 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1570671553} - serializedVersion: 2 - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!114 &1570671556 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1570671553} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Version: 3 - m_UsePipelineSettings: 1 - m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 - m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 - m_LightCookieSize: {x: 1, y: 1} - m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 0 ---- !u!1660057539 &9223372036854775807 -SceneRoots: - m_ObjectHideFlags: 0 - m_Roots: - - {fileID: 728093076} - - {fileID: 1570671555} - - {fileID: 512214766} - - {fileID: 706636697} - - {fileID: 416002697} diff --git a/Sample/Scene/Demo.unity.meta b/Sample/Scene/Demo.unity.meta deleted file mode 100644 index 1085384..0000000 --- a/Sample/Scene/Demo.unity.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 5688ba03f531c3245a838793c0ae7f93 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/doc.meta b/doc.meta deleted file mode 100644 index 43741c2..0000000 --- a/doc.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2241c29d16cfcf2418683f24bf7c3238 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tools.meta b/tools.meta deleted file mode 100644 index 4ad1e97..0000000 --- a/tools.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 19e02f51caaa13d4bae3949f98320b09 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tools/LUA_VSCODE_SETUP.md b/tools/LUA_VSCODE_SETUP.md deleted file mode 100644 index a7dce27..0000000 --- a/tools/LUA_VSCODE_SETUP.md +++ /dev/null @@ -1,49 +0,0 @@ -# PSXSplash Lua — VS Code Autocomplete Setup - -Get full IntelliSense (autocomplete, hover docs, go-to-definition) for the -PSXSplash Lua API in Visual Studio Code. - -## 1. Install the Lua Language Server extension - -Open VS Code → Extensions → search **sumneko.lua** → Install. - -## 2. Point the language server at the stubs - -Add (or merge) the following into your workspace `.vscode/settings.json`: - -```jsonc -{ - "Lua.workspace.library": [ - // Path to the EmmyLua stubs shipped with SplashEdit - "${workspaceFolder}/splashedit/tools" - ], - "Lua.runtime.version": "Lua 5.2", - "Lua.diagnostics.globals": [ - // Event callbacks the engine calls — not "undefined" globals - "onCreate", "onUpdate", "onDestroy", - "onEnable", "onDisable", - "onCollideWithPlayer", "onInteract", - "onTriggerEnter", "onTriggerStay", "onTriggerExit", - "onButtonPress", "onButtonRelease" - ] -} -``` - -> If your Lua scripts live inside the Unity project -> (`kitchensink/Assets/Lua/`), open that folder as the workspace root, then -> adjust the `library` path to be relative to it, e.g. -> `"../splashedit/tools"`. - -## 3. Verify - -Open any `.lua` script and type `Entity.` — you should see `Find`, -`FindByIndex`, `GetCount`, etc. with full parameter docs. - -Hover over `Input.CROSS` to see its type annotation. Hover over `onUpdate` -to see the performance warning. - -## Updating the stubs - -When the C++ API changes, regenerate `splash_api.lua` from the -`RegisterAll()` function in `psxsplash/src/luaapi.cpp`. The stubs file is -the single source of truth for editor autocomplete. diff --git a/tools/LUA_VSCODE_SETUP.md.meta b/tools/LUA_VSCODE_SETUP.md.meta deleted file mode 100644 index 14e3669..0000000 --- a/tools/LUA_VSCODE_SETUP.md.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: dacec9280b4291d4c9a93b1522687267 -TextScriptImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tools/imhex.hexproj b/tools/imhex.hexproj deleted file mode 100644 index 080213e59e0804551c9c0187f33c5d43a4375f1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19968 zcmeHOZExE)5YA`+3c;V&)vzVYFWrg)4bp8b(3fD%if%?=&=O;*ktKnWJf}tf`|c=; zqU31FRw+;c3Vk7uFkP zA`ln$pIFxTQxb)(a?hD97BgN@ZHxqaxyU=fziOLl&StaaiJ{VDM_p(YfiD9Co?$}M z)DO4G@Mj~ZaO#F6^wf13O|Zcn@xHvp$rw8)TUsN#ei8@d<}KM_%P`8)I7`PHKO8D! zW0HENH@xMf;yON0i#PNK(r#l*^nCh=|$nOsFUU9ap?$!D4@!ztosgD2MTju1% zvL>(}Pbmx6Nt7{%uARuGW7uN@xg`af;{VJtrT3}1zG*H^eg4xD_;;|$o)}J)h2Q|j zGsAp37z~n>Wln0m=SMLyajsud0tdw6TnO?7X6(q;cUIHOr+j;mSqoziC&+#jmV_W9 zzrvBs8S*ZvTR0ecxA{b!wAK)k{f;JHjhfO!nlXBs!l_WL$qBML4?KCI?0rgD`mq$L zQ2)G@`d6L$dvrV=Xh)-gb~N@S^|zjQ;RJ9=92(NsITocHI8dW(Pu-OT5Pk*F1?Hk- z1@O$C8UoCBS66UOC)kwa*O0!aUQXub!5O>~WAesJ*66Sva&j}L-7^vp*4O4|kVMWfJT559;ejYZX} zR;QI}7_l7*a#F66V~z~Rg1@38$jlHf)L4|hAu00@tDlq!2LuvsD-#SY zCG7hubZKEfV1E^mt&oO5!`Nh1VIcjZt}Z%A;hk^uIf@*AXBu7oP#^vXTaAbTm197E^_)1e@Ut56gkf1O@AyuCijz%l|1@S)W%kjwi7Qa*% zzp4J9Whs)(LFY&?S(zCLsxK62JD5 z013k=<&J|5uz94)UH=Bpl-HOMK-+Y_P?~5+HUV|T7@nXMSNC^m!}p&sFjpRP!{Ik@ zEAGD3InWw&MuQw1&yO1b+%ViThTt1- zLm1)K6q8+An7DfqI@DduaBw#U`d;us=4h8f^!nc=y8Y)3>;EQ-u6Kl8C#^61;`N)> ze^}$?Q(gaOwhi~cDou9Og;o&|>%a5?2>SZ+uT_Nm%}mGte%q&O?TY;$B*6}3pb_g} z5on74@QsIj)L3ttb9)Z=zbZ|3)P+_N5b;0o!)v~;E4E-E+#%%zo#eL)c+Z&W_}?>w zJg_uj{kkN%){t~ z@gIJ2*G1TuFVGnO8}omAf#3h@{9i)YS)sW9;Xa@be>%gtuZ(s4@2h1VMlXo}{7SH+ zpZ@cgXpH}M`HpI=H%)uG)bYOrr^Awn|9t1C!+(cB_muUkH!pwrxPJ4?#p#RFi_>nD tY?}Y@8z1@9=fD2_w}htC0$6`wjqT-F$;CSrsF`a7Gy)m{jX*CD_y?3VT?POE diff --git a/tools/imhex.hexproj.meta b/tools/imhex.hexproj.meta deleted file mode 100644 index 41e9cc2..0000000 --- a/tools/imhex.hexproj.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 2e825620cbb189b42965419f16e3fbcf -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/tools/splash_api.lua b/tools/splash_api.lua deleted file mode 100644 index fefc53e..0000000 --- a/tools/splash_api.lua +++ /dev/null @@ -1,383 +0,0 @@ --- ============================================================================ --- PSXSplash Lua API — EmmyLua Stubs --- Generated for SplashEdit. DO NOT EDIT — regenerate from luaapi.cpp. --- Place this file in your workspace root so the Lua Language Server picks it up. --- ============================================================================ - ---- @meta - --- ============================================================================ --- Types --- ============================================================================ - ---- A 3-component vector in 20.12 fixed-point space. ---- @class Vec3Table ---- @field x number ---- @field y number ---- @field z number - ---- Opaque handle returned by Entity.Find / Entity.FindByIndex. ---- @alias EntityHandle table - --- ============================================================================ --- Entity API --- ============================================================================ - ---- @class Entity -Entity = {} - ---- Find a game object by its Lua script index. ---- @param scriptIndex number The lua file index (0-based) assigned during export. ---- @return EntityHandle|nil Handle for use with other Entity functions, or nil. -function Entity.Find(scriptIndex) end - ---- Find a game object by its global object index. ---- @param index number Object index (0-based) in the scene's game-object array. ---- @return EntityHandle|nil -function Entity.FindByIndex(index) end - ---- Return the total number of game objects in the scene. ---- @return number -function Entity.GetCount() end - ---- Activate or deactivate a game object. ---- @param entity EntityHandle ---- @param active boolean -function Entity.SetActive(entity, active) end - ---- Check whether a game object is active. ---- @param entity EntityHandle ---- @return boolean -function Entity.IsActive(entity) end - ---- Get the world-space position of an entity (20.12 fixed-point). ---- @param entity EntityHandle ---- @return Vec3Table -function Entity.GetPosition(entity) end - ---- Set the world-space position of an entity. ---- @param entity EntityHandle ---- @param pos Vec3Table -function Entity.SetPosition(entity, pos) end - --- ============================================================================ --- Vec3 API --- ============================================================================ - ---- @class Vec3 -Vec3 = {} - ---- Create a new vector. ---- @param x number ---- @param y number ---- @param z number ---- @return Vec3Table -function Vec3.new(x, y, z) end - ---- Component-wise addition. ---- @param a Vec3Table ---- @param b Vec3Table ---- @return Vec3Table -function Vec3.add(a, b) end - ---- Component-wise subtraction (a - b). ---- @param a Vec3Table ---- @param b Vec3Table ---- @return Vec3Table -function Vec3.sub(a, b) end - ---- Scalar multiply. ---- @param v Vec3Table ---- @param s number ---- @return Vec3Table -function Vec3.mul(v, s) end - ---- Dot product. ---- @param a Vec3Table ---- @param b Vec3Table ---- @return number -function Vec3.dot(a, b) end - ---- Cross product. ---- @param a Vec3Table ---- @param b Vec3Table ---- @return Vec3Table -function Vec3.cross(a, b) end - ---- Magnitude (Euclidean length). ---- @param v Vec3Table ---- @return number -function Vec3.length(v) end - ---- Squared magnitude (cheaper than length). ---- @param v Vec3Table ---- @return number -function Vec3.lengthSq(v) end - ---- Return a unit-length copy of v. ---- @param v Vec3Table ---- @return Vec3Table -function Vec3.normalize(v) end - ---- Distance between two points. ---- @param a Vec3Table ---- @param b Vec3Table ---- @return number -function Vec3.distance(a, b) end - ---- Squared distance (cheaper than distance). ---- @param a Vec3Table ---- @param b Vec3Table ---- @return number -function Vec3.distanceSq(a, b) end - ---- Linear interpolation between a and b. ---- @param a Vec3Table ---- @param b Vec3Table ---- @param t number 0..1 ---- @return Vec3Table -function Vec3.lerp(a, b, t) end - --- ============================================================================ --- Input API --- ============================================================================ - ---- @class Input -Input = {} - ---- Button constants (bitmask values matching psyqo::AdvancedPad::Button). ---- @type number -Input.CROSS = 0 -Input.CIRCLE = 0 -Input.SQUARE = 0 -Input.TRIANGLE = 0 -Input.L1 = 0 -Input.R1 = 0 -Input.L2 = 0 -Input.R2 = 0 -Input.START = 0 -Input.SELECT = 0 -Input.UP = 0 -Input.DOWN = 0 -Input.LEFT = 0 -Input.RIGHT = 0 -Input.L3 = 0 -Input.R3 = 0 - ---- True on the single frame the button was pressed. ---- @param button number One of Input.CROSS, Input.CIRCLE, … ---- @return boolean -function Input.IsPressed(button) end - ---- True on the single frame the button was released. ---- @param button number ---- @return boolean -function Input.IsReleased(button) end - ---- True every frame the button is held down. ---- @param button number ---- @return boolean -function Input.IsHeld(button) end - ---- Get left analog stick axes. ---- @return number x -128..127 (0 if digital pad) ---- @return number y -128..127 -function Input.GetAnalog() end - --- ============================================================================ --- Timer API --- ============================================================================ - ---- @class Timer -Timer = {} - ---- Frames elapsed since the scene was loaded. ---- @return number -function Timer.GetFrameCount() end - --- ============================================================================ --- Camera API --- ============================================================================ - ---- @class Camera -Camera = {} - ---- Get the camera's world-space position. ---- @return Vec3Table -function Camera.GetPosition() end - ---- Set the camera's world-space position. ---- @param pos Vec3Table -function Camera.SetPosition(pos) end - ---- Get the camera's rotation (currently returns {0,0,0}). ---- @return Vec3Table Euler angles in radians -function Camera.GetRotation() end - ---- Set the camera's rotation (not yet implemented). ---- @param rot Vec3Table Euler angles in radians -function Camera.SetRotation(rot) end - ---- Point the camera at a world position (not yet implemented). ---- @param target Vec3Table -function Camera.LookAt(target) end - --- ============================================================================ --- Audio API — SPU ADPCM playback --- ============================================================================ - ---- @class Audio -Audio = {} - ---- Play a sound clip by index. Returns the SPU voice used (1-23), or -1 on failure. ---- @param clipIndex number 0-based clip index (order of PSXAudioSource in scene) ---- @param volume? number 0..127 (default 100) ---- @param pan? number 0=left, 64=center, 127=right (default 64) ---- @return number voiceId -function Audio.Play(clipIndex, volume, pan) end - ---- Stop a specific SPU voice (returned from Audio.Play). ---- @param voiceId number -function Audio.Stop(voiceId) end - ---- Set volume (and optional pan) on a playing voice. ---- @param voiceId number ---- @param volume number 0..127 ---- @param pan? number 0..127 (default 64) -function Audio.SetVolume(voiceId, volume, pan) end - ---- Stop all playing sounds. -function Audio.StopAll() end - --- ============================================================================ --- Debug API --- ============================================================================ - ---- @class Debug -Debug = {} - ---- Print a message to the TTY / debug console. ---- @param message string -function Debug.Log(message) end - ---- Draw a debug line (not yet implemented on PS1). ---- @param fromX number ---- @param fromY number ---- @param fromZ number ---- @param toX number ---- @param toY number ---- @param toZ number -function Debug.DrawLine(fromX, fromY, fromZ, toX, toY, toZ) end - ---- Draw a debug box (not yet implemented on PS1). ---- @param minX number ---- @param minY number ---- @param minZ number ---- @param maxX number ---- @param maxY number ---- @param maxZ number -function Debug.DrawBox(minX, minY, minZ, maxX, maxY, maxZ) end - --- ============================================================================ --- PSXMath API --- ============================================================================ - ---- @class PSXMath -PSXMath = {} - ---- Clamp a value between min and max. ---- @param value number ---- @param min number ---- @param max number ---- @return number -function PSXMath.Clamp(value, min, max) end - ---- Linear interpolation (a + (b-a)*t). ---- @param a number ---- @param b number ---- @param t number 0..1 ---- @return number -function PSXMath.Lerp(a, b, t) end - ---- Return -1, 0, or 1. ---- @param x number ---- @return number -function PSXMath.Sign(x) end - ---- Absolute value. ---- @param x number ---- @return number -function PSXMath.Abs(x) end - ---- Minimum of two values. ---- @param a number ---- @param b number ---- @return number -function PSXMath.Min(a, b) end - ---- Maximum of two values. ---- @param a number ---- @param b number ---- @return number -function PSXMath.Max(a, b) end - --- ============================================================================ --- Event Callbacks --- These are global functions you define in your script. The engine calls them --- automatically based on the event mask resolved at load time. --- ============================================================================ - ---- Called once when the game object is created. ---- @param self EntityHandle -function onCreate(self) end - ---- Called every frame while the object is active. ---- WARNING: 33 MHz CPU — keep this function fast! ---- @param self EntityHandle -function onUpdate(self) end - ---- Called when the object is destroyed / scene unloads. ---- @param self EntityHandle -function onDestroy(self) end - ---- Called when the object is activated. ---- @param self EntityHandle -function onEnable(self) end - ---- Called when the object is deactivated. ---- @param self EntityHandle -function onDisable(self) end - ---- Called when this object's collider overlaps another. ---- @param self EntityHandle ---- @param other EntityHandle -function onCollideWithPlayer(self) end - ---- Called when the player interacts with this object (PSXInteractable). ---- @param self EntityHandle -function onInteract(self) end - ---- Called on the first frame two trigger volumes overlap. ---- @param self EntityHandle ---- @param other EntityHandle -function onTriggerEnter(self, other) end - ---- Called every frame two trigger volumes continue overlapping. ---- @param self EntityHandle ---- @param other EntityHandle -function onTriggerStay(self, other) end - ---- Called when two trigger volumes stop overlapping. ---- @param self EntityHandle ---- @param other EntityHandle -function onTriggerExit(self, other) end - ---- Called when any controller button is pressed. ---- @param self EntityHandle ---- @param button number One of Input.CROSS, Input.CIRCLE, … -function onButtonPress(self, button) end - ---- Called when any controller button is released. ---- @param self EntityHandle ---- @param button number -function onButtonRelease(self, button) end diff --git a/tools/splash_api.lua.meta b/tools/splash_api.lua.meta deleted file mode 100644 index 62b1dbb..0000000 --- a/tools/splash_api.lua.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: f306660f23f57394496050343c2335f8 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 74e983e6cf3376944af7b469023d6e4d, type: 3}