Files
Silly-Home/Packages/com.vrchat.base/Editor/VRCSDK/Dependencies/VRChat/ProtectVPMPackages.cs
2026-06-07 16:58:24 +01:00

37 lines
1.5 KiB
C#

using System.Collections.Generic;
using System.IO;
using UnityEngine;
namespace VRC.SDKBase.Editor
{
public class ProtectVPMPackages : UnityEditor.AssetModificationProcessor
{
public static string[] OnWillSaveAssets(string[] paths)
{
// skip check if settings allows changes
if (VRCPackageSettings.Instance.allowVRCPackageChanges) return paths;
List<string> pathsToSave = new List<string>();
for (int i = 0; i < paths.Length; ++i)
{
var path = paths[i];
var directories = path.Split(Path.DirectorySeparatorChar);
if (directories.Length >= 2)
{
var filename = Path.GetFileName(path);
var extension = Path.GetExtension(path);
if (directories[0] == "Packages" && directories[1].StartsWith("com.vrchat") && !(filename == "MirrorReflection.mat") && ! path.Contains("UdonProgramSources") && !path.Contains("SerializedUdonPrograms") && !(extension == ".meta"))
{
Debug.LogWarning(
$"Something tried to change {path}, which is part of a VRC Package, and will not be changed. Use \"Save As...\" instead if you want to make your own version.");
continue;
}
}
pathsToSave.Add(path);
}
return pathsToSave.ToArray();
}
}
}