59 lines
2.0 KiB
C#
59 lines
2.0 KiB
C#
|
// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2023 Kybernetik //
|
||
|
|
||
|
#if UNITY_EDITOR && UNITY_2020_1_OR_NEWER
|
||
|
|
||
|
using System;
|
||
|
using System.IO;
|
||
|
using UnityEditor;
|
||
|
|
||
|
namespace Animancer.Editor
|
||
|
{
|
||
|
/// <summary>[Editor-Only]
|
||
|
/// Ensures that project files don't reference the Runtime-Only version of <see cref="Animancer"/>.Lite.dll.
|
||
|
/// </summary>
|
||
|
internal static class FixProjectDefinition
|
||
|
{
|
||
|
/************************************************************************************************************************/
|
||
|
|
||
|
[InitializeOnLoadMethod]
|
||
|
private static void Initialize()
|
||
|
{
|
||
|
var files = Directory.GetFiles(Environment.CurrentDirectory, "*.csproj", SearchOption.TopDirectoryOnly);
|
||
|
for (int i = 0; i < files.Length; i++)
|
||
|
FixFile(files[i]);
|
||
|
}
|
||
|
|
||
|
/************************************************************************************************************************/
|
||
|
|
||
|
private static readonly char[] NewLineCharacters = { '\r', '\n' };
|
||
|
|
||
|
private static void FixFile(string path)
|
||
|
{
|
||
|
var text = File.ReadAllText(path);
|
||
|
|
||
|
var index = text.IndexOf($"{nameof(Animancer)}.Lite.dll");
|
||
|
if (index < 0)
|
||
|
return;
|
||
|
|
||
|
const string Folder = "Runtime";
|
||
|
if (string.Compare(text, index - Folder.Length - 1, Folder, 0, Folder.Length) != 0)
|
||
|
return;
|
||
|
|
||
|
var lineStart = text.LastIndexOfAny(NewLineCharacters, index);
|
||
|
if (lineStart < 0)
|
||
|
return;
|
||
|
|
||
|
var lineEnd = text.IndexOfAny(NewLineCharacters, index);
|
||
|
if (lineEnd < 0)
|
||
|
return;
|
||
|
|
||
|
text = text.Substring(0, lineStart) + text.Substring(lineEnd, text.Length - lineEnd);
|
||
|
File.WriteAllText(path, text);
|
||
|
}
|
||
|
|
||
|
/************************************************************************************************************************/
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|