接入obfuz->2.0

This commit is contained in:
Alex-Rachel
2025-07-26 08:10:41 +08:00
parent f2c7ff4336
commit cb86d8868e
713 changed files with 57092 additions and 10 deletions

View File

@@ -0,0 +1,74 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HybridCLR.Editor.Template
{
public class FileRegionReplace
{
private readonly string _tplCode;
private readonly Dictionary<string, string> _regionReplaceContents = new Dictionary<string, string>();
public FileRegionReplace(string tplCode)
{
_tplCode = tplCode;
}
public void Replace(string regionName, string regionContent)
{
_regionReplaceContents.Add(regionName, regionContent);
}
public string GenFinalString()
{
string originContent = _tplCode;
string resultContent = originContent;
foreach (var c in _regionReplaceContents)
{
resultContent = ReplaceRegion(resultContent, c.Key, c.Value);
}
return resultContent;
}
public void Commit(string outputFile)
{
string dir = Path.GetDirectoryName(outputFile);
Directory.CreateDirectory(dir);
string resultContent = GenFinalString();
var utf8WithoutBOM = new System.Text.UTF8Encoding(false);
File.WriteAllText(outputFile, resultContent, utf8WithoutBOM);
}
public static string ReplaceRegion(string resultText, string region, string replaceContent)
{
int startIndex = resultText.IndexOf("//!!!{{" + region);
if (startIndex == -1)
{
throw new Exception($"region:{region} start not find");
}
int endIndex = resultText.IndexOf("//!!!}}" + region);
if (endIndex == -1)
{
throw new Exception($"region:{region} end not find");
}
int replaceStart = resultText.IndexOf('\n', startIndex);
int replaceEnd = resultText.LastIndexOf('\n', endIndex);
if (replaceStart == -1 || replaceEnd == -1)
{
throw new Exception($"region:{region} not find");
}
if (resultText.Substring(replaceStart, replaceEnd - replaceStart) == replaceContent)
{
return resultText;
}
resultText = resultText.Substring(0, replaceStart) + "\n" + replaceContent + "\n" + resultText.Substring(replaceEnd);
return resultText;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 15d4563ad83546c42bc65c99be9bd54a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: