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 0000000..ecd4900
Binary files /dev/null and b/Icons/LuaFile.png differ
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 0000000..1f57956
Binary files /dev/null and b/Icons/PSXAudioClip.png differ
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 0000000..6e7e723
Binary files /dev/null and b/Icons/PSXCanvas.png differ
diff --git a/Icons/PSXCanvas.png.meta b/Icons/PSXCanvas.png.meta
new file mode 100644
index 0000000..ae3e67e
--- /dev/null
+++ b/Icons/PSXCanvas.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 356cfa78fb65c4141a6163492c5a70c9
+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/PSXCutsceneClip.png b/Icons/PSXCutsceneClip.png
new file mode 100644
index 0000000..5511426
Binary files /dev/null and b/Icons/PSXCutsceneClip.png differ
diff --git a/Icons/PSXCutsceneClip.png.meta b/Icons/PSXCutsceneClip.png.meta
new file mode 100644
index 0000000..70c251b
--- /dev/null
+++ b/Icons/PSXCutsceneClip.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 2e44d4c108f1b3b4bbb11d764ee322ba
+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/PSXData.png b/Icons/PSXData.png
new file mode 100644
index 0000000..9256350
Binary files /dev/null and b/Icons/PSXData.png differ
diff --git a/Icons/PSXData.png.meta b/Icons/PSXData.png.meta
new file mode 100644
index 0000000..7ac5abf
--- /dev/null
+++ b/Icons/PSXData.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 56495f2f7c3b793479704907f633cc9f
+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/PSXFontAsset.png b/Icons/PSXFontAsset.png
new file mode 100644
index 0000000..d9ef6fb
Binary files /dev/null and b/Icons/PSXFontAsset.png differ
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 0000000..891c08b
Binary files /dev/null and b/Icons/PSXInteractable.png differ
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 0b07dfb..0000000
Binary files a/Icons/PSXNavmesh.png and /dev/null differ
diff --git a/Icons/PSXObjectExporter.png b/Icons/PSXObjectExporter.png
new file mode 100644
index 0000000..f7e2838
Binary files /dev/null and b/Icons/PSXObjectExporter.png differ
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 ef0d609..8c4b7d2 100644
Binary files a/Icons/PSXPlayer.png and b/Icons/PSXPlayer.png differ
diff --git a/Icons/PSXPortalLink.png b/Icons/PSXPortalLink.png
new file mode 100644
index 0000000..0e77402
Binary files /dev/null and b/Icons/PSXPortalLink.png differ
diff --git a/Icons/PSXPortalLink.png.meta b/Icons/PSXPortalLink.png.meta
new file mode 100644
index 0000000..2baac42
--- /dev/null
+++ b/Icons/PSXPortalLink.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: e2c33bdfa2d4f6841abb6f1bd2c3ce4c
+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/PSXRoom.png b/Icons/PSXRoom.png
new file mode 100644
index 0000000..d9f7feb
Binary files /dev/null and b/Icons/PSXRoom.png differ
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 7dbfda7..0000000
Binary files a/Icons/PSXSObjectExporter.png and /dev/null differ
diff --git a/Icons/PSXSceneExporter.png b/Icons/PSXSceneExporter.png
index a97f192..e933f98 100644
Binary files a/Icons/PSXSceneExporter.png and b/Icons/PSXSceneExporter.png differ
diff --git a/Icons/PSXTriggerBox.png b/Icons/PSXTriggerBox.png
new file mode 100644
index 0000000..d278487
Binary files /dev/null and b/Icons/PSXTriggerBox.png differ
diff --git a/Icons/PSXTriggerBox.png.meta b/Icons/PSXTriggerBox.png.meta
new file mode 100644
index 0000000..c85a5f9
--- /dev/null
+++ b/Icons/PSXTriggerBox.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: 661ef445800490d48bb6486c6b48d7bb
+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/PSXUIBox.png b/Icons/PSXUIBox.png
new file mode 100644
index 0000000..818ac97
Binary files /dev/null and b/Icons/PSXUIBox.png differ
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 0000000..460a715
Binary files /dev/null and b/Icons/PSXUIImage.png differ
diff --git a/Icons/PSXUIImage.png.meta b/Icons/PSXUIImage.png.meta
new file mode 100644
index 0000000..d05f6d4
--- /dev/null
+++ b/Icons/PSXUIImage.png.meta
@@ -0,0 +1,143 @@
+fileFormatVersion: 2
+guid: fbae166a0556be14c906804e97f8ce15
+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/PSXUIProgressBar.png b/Icons/PSXUIProgressBar.png
new file mode 100644
index 0000000..d645b8e
Binary files /dev/null and b/Icons/PSXUIProgressBar.png differ
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 0000000..f02b19b
Binary files /dev/null and b/Icons/PSXUIText.png differ
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 080213e..0000000
Binary files a/tools/imhex.hexproj and /dev/null differ
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}