1
0
mirror of https://github.com/soarqin/DSP_Mods_TO.git synced 2026-02-04 06:02:17 +08:00

format code

This commit is contained in:
2026-01-28 20:27:15 +08:00
parent d698e0afc1
commit 98abc31c6f
38 changed files with 2043 additions and 2043 deletions

View File

@@ -118,7 +118,7 @@ public static class I18N
_initialized = true; _initialized = true;
Apply(); Apply();
} }
[HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(Localization), nameof(Localization.LoadLanguage))] [HarmonyPostfix, HarmonyPriority(Priority.Last), HarmonyPatch(typeof(Localization), nameof(Localization.LoadLanguage))]
private static void Localization_LoadLanguage_Postfix(int index) private static void Localization_LoadLanguage_Postfix(int index)
{ {

View File

@@ -73,7 +73,7 @@ class PatchUILoadGame
_decompressButton.button.interactable = false; _decompressButton.button.interactable = false;
_decompressButton.gameObject.SetActive(false); _decompressButton.gameObject.SetActive(false);
} }
public static void OnDestroy() public static void OnDestroy()
{ {
if (_decompressButton) if (_decompressButton)

View File

@@ -39,7 +39,7 @@ static class PatchUISaveGame
//Console.WriteLine("OnCreate"); //Console.WriteLine("OnCreate");
_context = new UIContext(); _context = new UIContext();
} }
[HarmonyPatch(typeof(UISaveGameWindow), nameof(UISaveGameWindow.OnSaveClick)), HarmonyReversePatch] [HarmonyPatch(typeof(UISaveGameWindow), nameof(UISaveGameWindow.OnSaveClick)), HarmonyReversePatch]
private static void OSaveGameAs(this UISaveGameWindow ui, int data) { } private static void OSaveGameAs(this UISaveGameWindow ui, int data) { }

View File

@@ -24,9 +24,9 @@ public static class SaveUtil
fullPath = filename + GameSave.saveExt; fullPath = filename + GameSave.saveExt;
if (dir != null) fullPath = Path.Combine(dir, fullPath); if (dir != null) fullPath = Path.Combine(dir, fullPath);
var i = 0; var i = 0;
while(File.Exists(fullPath)) while (File.Exists(fullPath))
{ {
fullPath = $"{filename}[{i++}]{GameSave.saveExt}"; fullPath = $"{filename}[{i++}]{GameSave.saveExt}";
if (dir != null) fullPath = Path.Combine(dir, fullPath); if (dir != null) fullPath = Path.Combine(dir, fullPath);
} }
var buffer = new byte[1024 * 1024]; var buffer = new byte[1024 * 1024];

View File

@@ -19,7 +19,7 @@ class BlackHoleStream : Stream
public override void Flush() public override void Flush()
{ {
} }
public override int Read(byte[] buffer, int offset, int count) public override int Read(byte[] buffer, int offset, int count)

View File

@@ -46,7 +46,7 @@ public unsafe class BufferWriter : BinaryWriter
} }
private BufferWriter(DoubleBuffer buffer , UTF8Encoding encoding, CompressionStream outStream) : base(Stream.Null, encoding) private BufferWriter(DoubleBuffer buffer, UTF8Encoding encoding, CompressionStream outStream) : base(Stream.Null, encoding)
{ {
_baseStream = outStream; _baseStream = outStream;
_swapedBytes = 0; _swapedBytes = 0;

View File

@@ -76,7 +76,7 @@ public class CompressionStream : Stream
} }
return new CompressBuffer(); return new CompressBuffer();
} }
public BufferWriter BufferWriter { get; private set; } public BufferWriter BufferWriter { get; private set; }
public CompressionStream(WrapperDefines wrap, int compressionLevel, Stream outputStream, CompressBuffer compressBuffer, bool multiThread) public CompressionStream(WrapperDefines wrap, int compressionLevel, Stream outputStream, CompressBuffer compressBuffer, bool multiThread)
@@ -98,13 +98,13 @@ public class CompressionStream : Stream
{ {
_doubleBuffer = new DoubleBuffer(readBuffer ?? new byte[4 * Mb], writeBuffer ?? new byte[4 * Mb], Compress); _doubleBuffer = new DoubleBuffer(readBuffer ?? new byte[4 * Mb], writeBuffer ?? new byte[4 * Mb], Compress);
_outBuffer = outputBuffer ?? new byte[_wrapper.CompressBufferBound(writeBuffer?.Length ?? 4 * Mb)]; _outBuffer = outputBuffer ?? new byte[_wrapper.CompressBufferBound(writeBuffer?.Length ?? 4 * Mb)];
BufferWriter = new BufferWriter(_doubleBuffer,this); BufferWriter = new BufferWriter(_doubleBuffer, this);
} }
public override void Flush() public override void Flush()
{ {
_doubleBuffer.SwapBuffer(); _doubleBuffer.SwapBuffer();
if(_useMultiThread) if (_useMultiThread)
{ {
_doubleBuffer.WaitReadEnd(); _doubleBuffer.WaitReadEnd();
} }
@@ -151,7 +151,7 @@ public class CompressionStream : Stream
private void CompressAsync() private void CompressAsync()
{ {
while(!_stopWorker) while (!_stopWorker)
{ {
Compress_Internal(); Compress_Internal();
} }

View File

@@ -2,7 +2,7 @@ using System;
namespace CompressSave.Wrapper; namespace CompressSave.Wrapper;
public class LZ4API: WrapperDefines public class LZ4API : WrapperDefines
{ {
public static readonly bool Avaliable; public static readonly bool Avaliable;
public static readonly LZ4API Instance = new(); public static readonly LZ4API Instance = new();

View File

@@ -2,7 +2,7 @@
namespace CompressSave.Wrapper; namespace CompressSave.Wrapper;
public class NoneAPI: WrapperDefines public class NoneAPI : WrapperDefines
{ {
public static readonly bool Avaliable; public static readonly bool Avaliable;
public static readonly NoneAPI Instance = new(); public static readonly NoneAPI Instance = new();

View File

@@ -5,7 +5,7 @@ namespace CompressSave.Wrapper;
internal class PeekableReader(DecompressionStream input) : BinaryReader(input) internal class PeekableReader(DecompressionStream input) : BinaryReader(input)
{ {
public override int PeekChar() public override int PeekChar()
{ {
return input.PeekByte(); return input.PeekByte();
} }
} }

View File

@@ -8,10 +8,10 @@ public static class WinApi
// LoadLibrary, GetProcAddress, FreeLibrary // LoadLibrary, GetProcAddress, FreeLibrary
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)] [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern IntPtr LoadLibrary(string dllToLoad); public static extern IntPtr LoadLibrary(string dllToLoad);
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)] [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName); public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
[DllImport("kernel32.dll", SetLastError = true)] [DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)] [return: MarshalAs(UnmanagedType.Bool)]
public static extern bool FreeLibrary(IntPtr hModule); public static extern bool FreeLibrary(IntPtr hModule);

View File

@@ -25,7 +25,7 @@ public class WrapperDefines
long srcSize); long srcSize);
protected unsafe delegate long DecompressUpdateFunc(IntPtr dctx, byte* dstBuffer, ref long dstCapacity, byte* srcBuffer, protected unsafe delegate long DecompressUpdateFunc(IntPtr dctx, byte* dstBuffer, ref long dstCapacity, byte* srcBuffer,
ref long srcSize); ref long srcSize);
public CompressBufferBoundFunc CompressBufferBound; public CompressBufferBoundFunc CompressBufferBound;
public CompressBeginFunc CompressBegin; public CompressBeginFunc CompressBegin;
public CompressEndFunc CompressEnd; public CompressEndFunc CompressEnd;

View File

@@ -2,7 +2,7 @@ using System;
namespace CompressSave.Wrapper; namespace CompressSave.Wrapper;
public class ZstdAPI: WrapperDefines public class ZstdAPI : WrapperDefines
{ {
public static readonly bool Avaliable; public static readonly bool Avaliable;
public static readonly ZstdAPI Instance = new(); public static readonly ZstdAPI Instance = new();

View File

@@ -5,46 +5,46 @@ using Debug = UnityEngine.Debug;
namespace AssetsLoader namespace AssetsLoader
{ {
internal class ABEmbeddedAssetsLoad : ABLoad internal class ABEmbeddedAssetsLoad : ABLoad
{ {
public ABEmbeddedAssetsLoad(string filename, string assetsNamespace = null) public ABEmbeddedAssetsLoad(string filename, string assetsNamespace = null)
{ {
var stackTrace = new StackTrace(); var stackTrace = new StackTrace();
var frame = stackTrace.GetFrame(1); var frame = stackTrace.GetFrame(1);
var assembly = frame.GetMethod().DeclaringType.Assembly; var assembly = frame.GetMethod().DeclaringType.Assembly;
var flag = assetsNamespace == null; var flag = assetsNamespace == null;
if (flag) if (flag)
{ {
assetsNamespace = assembly.FullName.Split([','])[0]; assetsNamespace = assembly.FullName.Split([','])[0];
} }
LoadAssetsFromEmbedded(filename, assetsNamespace, assembly); LoadAssetsFromEmbedded(filename, assetsNamespace, assembly);
} }
private void LoadAssetsFromEmbedded(string filename, string assetsNamespace, Assembly assembly) private void LoadAssetsFromEmbedded(string filename, string assetsNamespace, Assembly assembly)
{ {
var text = assetsNamespace + "." + filename; var text = assetsNamespace + "." + filename;
var manifestResourceStream = assembly.GetManifestResourceStream(text); var manifestResourceStream = assembly.GetManifestResourceStream(text);
var flag = manifestResourceStream == null; var flag = manifestResourceStream == null;
if (flag) if (flag)
{ {
Debug.Log(string.Concat(["在", assembly.FullName, "找不到内嵌的资源", text, ",请检查内嵌资源中是否有它:"])); Debug.Log(string.Concat(["在", assembly.FullName, "找不到内嵌的资源", text, ",请检查内嵌资源中是否有它:"]));
foreach (var text2 in assembly.GetManifestResourceNames()) foreach (var text2 in assembly.GetManifestResourceNames())
{ {
Debug.Log(text2); Debug.Log(text2);
} }
Debug.Log("------------------------"); Debug.Log("------------------------");
} }
else else
{ {
Ab = AssetBundle.LoadFromStream(manifestResourceStream); Ab = AssetBundle.LoadFromStream(manifestResourceStream);
Init(); Init();
} }
} }
public ABEmbeddedAssetsLoad(string filename, string dllFilepath, string dllNamespace) public ABEmbeddedAssetsLoad(string filename, string dllFilepath, string dllNamespace)
{ {
var assembly = Assembly.LoadFrom(dllFilepath); var assembly = Assembly.LoadFrom(dllFilepath);
LoadAssetsFromEmbedded(filename, dllNamespace, assembly); LoadAssetsFromEmbedded(filename, dllNamespace, assembly);
} }
} }
} }

View File

@@ -2,12 +2,12 @@
namespace AssetsLoader namespace AssetsLoader
{ {
internal class ABFileLoad : ABLoad internal class ABFileLoad : ABLoad
{ {
public ABFileLoad(string filepath) public ABFileLoad(string filepath)
{ {
Ab = AssetBundle.LoadFromFile(filepath); Ab = AssetBundle.LoadFromFile(filepath);
Init(); Init();
} }
} }
} }

View File

@@ -4,77 +4,77 @@ using UnityEngine;
namespace AssetsLoader namespace AssetsLoader
{ {
public abstract class ABLoad : ILoad public abstract class ABLoad : ILoad
{ {
protected void Init() protected void Init()
{ {
foreach (var text in Ab.GetAllAssetNames()) foreach (var text in Ab.GetAllAssetNames())
{ {
var flag = text.Contains("prefabs"); var flag = text.Contains("prefabs");
if (flag) if (flag)
{ {
PrefabPath = text.Substring(0, text.IndexOf("prefabs", StringComparison.OrdinalIgnoreCase)); PrefabPath = text.Substring(0, text.IndexOf("prefabs", StringComparison.OrdinalIgnoreCase));
break; break;
} }
} }
} }
public GameObject LoadPrefab(string path) public GameObject LoadPrefab(string path)
{ {
var flag = Ab == null; var flag = Ab == null;
GameObject gameObject; GameObject gameObject;
if (flag) if (flag)
{ {
Debug.Log("内嵌的AB包没有找到"); Debug.Log("内嵌的AB包没有找到");
gameObject = null; gameObject = null;
} }
else else
{ {
var flag2 = path.Contains("/"); var flag2 = path.Contains("/");
if (flag2) if (flag2)
{ {
path = Path.Combine(PrefabPath, path); path = Path.Combine(PrefabPath, path);
var flag3 = !path.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase); var flag3 = !path.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase);
if (flag3) if (flag3)
{ {
path += ".prefab"; path += ".prefab";
} }
} }
gameObject = Ab.LoadAsset<GameObject>(path); gameObject = Ab.LoadAsset<GameObject>(path);
} }
return gameObject; return gameObject;
} }
public string LoadText(string path) public string LoadText(string path)
{ {
var flag = Ab == null; var flag = Ab == null;
string text; string text;
if (flag) if (flag)
{ {
Debug.Log("内嵌的AB包没有找到"); Debug.Log("内嵌的AB包没有找到");
text = null; text = null;
} }
else else
{ {
var flag2 = path.Contains("/"); var flag2 = path.Contains("/");
if (flag2) if (flag2)
{ {
path = Path.Combine(_txtPath, path); path = Path.Combine(_txtPath, path);
var flag3 = !path.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase); var flag3 = !path.EndsWith(".prefab", StringComparison.OrdinalIgnoreCase);
if (flag3) if (flag3)
{ {
path += ".prefab"; path += ".prefab";
} }
} }
text = Ab.LoadAsset<TextAsset>(path).text; text = Ab.LoadAsset<TextAsset>(path).text;
} }
return text; return text;
} }
protected string PrefabPath; protected string PrefabPath;
protected AssetBundle Ab; protected AssetBundle Ab;
private string _txtPath; private string _txtPath;
} }
} }

View File

@@ -2,27 +2,27 @@
namespace AssetsLoader namespace AssetsLoader
{ {
public static class ABLoader public static class ABLoader
{ {
public static ABLoad LoadFromFile(string abFilename, string dir) public static ABLoad LoadFromFile(string abFilename, string dir)
{ {
var text = Path.Combine(dir, abFilename); var text = Path.Combine(dir, abFilename);
return new ABFileLoad(text); return new ABFileLoad(text);
} }
public static ABLoad LoadFromFile(string filepath) public static ABLoad LoadFromFile(string filepath)
{ {
return new ABFileLoad(filepath); return new ABFileLoad(filepath);
} }
public static ABLoad LoadFromEmbeddedAssets(string abFilename, string defaultNamespace = null) public static ABLoad LoadFromEmbeddedAssets(string abFilename, string defaultNamespace = null)
{ {
return new ABEmbeddedAssetsLoad(abFilename, defaultNamespace); return new ABEmbeddedAssetsLoad(abFilename, defaultNamespace);
} }
public static ABLoad LoadFromDll(string abFilename, string dllFilepath, string dllDefaultNameSpace) public static ABLoad LoadFromDll(string abFilename, string dllFilepath, string dllDefaultNameSpace)
{ {
return new ABEmbeddedAssetsLoad(abFilename, dllFilepath, dllDefaultNameSpace); return new ABEmbeddedAssetsLoad(abFilename, dllFilepath, dllDefaultNameSpace);
} }
} }
} }

View File

@@ -2,10 +2,10 @@
namespace AssetsLoader namespace AssetsLoader
{ {
public interface ILoad public interface ILoad
{ {
GameObject LoadPrefab(string path); GameObject LoadPrefab(string path);
string LoadText(string path); string LoadText(string path);
} }
} }

View File

@@ -2,16 +2,16 @@
namespace AssetsLoader namespace AssetsLoader
{ {
public class ResourceLoad : ILoad public class ResourceLoad : ILoad
{ {
public GameObject LoadPrefab(string path) public GameObject LoadPrefab(string path)
{ {
return Resources.Load<GameObject>(path); return Resources.Load<GameObject>(path);
} }
public string LoadText(string path) public string LoadText(string path)
{ {
return Resources.Load<TextAsset>(path).text; return Resources.Load<TextAsset>(path).text;
} }
} }
} }

View File

@@ -4,153 +4,153 @@ using UnityEngine;
namespace XianTu namespace XianTu
{ {
public class BlueTuUIData public class BlueTuUIData
{ {
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)] [field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event Action OnValueChange; public event Action OnValueChange;
public static BlueTuUIData Instance { get; } = new(); public static BlueTuUIData Instance { get; } = new();
public Vector3 Bias public Vector3 Bias
{ {
get => _bias; get => _bias;
set set
{ {
_bias = value; _bias = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
public Vector3 Scale public Vector3 Scale
{ {
get => _scale; get => _scale;
set set
{ {
_scale = value; _scale = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
public Vector3 Pivot public Vector3 Pivot
{ {
get => _pivot; get => _pivot;
set set
{ {
_pivot = value; _pivot = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
public float LayerHeight public float LayerHeight
{ {
get => _layerHeight; get => _layerHeight;
set set
{ {
_layerHeight = value; _layerHeight = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
public float Rotate public float Rotate
{ {
get => _rotate; get => _rotate;
set set
{ {
_rotate = value; _rotate = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
public int LayerNumber public int LayerNumber
{ {
get => _layerNumber; get => _layerNumber;
set set
{ {
var flag = LayerNumber < 1; var flag = LayerNumber < 1;
if (!flag) if (!flag)
{ {
_layerNumber = value; _layerNumber = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
} }
public bool Enable public bool Enable
{ {
get => _enable; get => _enable;
set set
{ {
_enable = value; _enable = value;
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(); onValueChange();
} }
} }
} }
public BlueTuUIData Clone() public BlueTuUIData Clone()
{ {
var blueTuUIData = (BlueTuUIData)MemberwiseClone(); var blueTuUIData = (BlueTuUIData)MemberwiseClone();
blueTuUIData.OnValueChange = null; blueTuUIData.OnValueChange = null;
return blueTuUIData; return blueTuUIData;
} }
public void Reset() public void Reset()
{ {
var blueTuUIData = new BlueTuUIData(); var blueTuUIData = new BlueTuUIData();
_bias = blueTuUIData._bias; _bias = blueTuUIData._bias;
_scale = blueTuUIData._scale; _scale = blueTuUIData._scale;
_pivot = blueTuUIData._pivot; _pivot = blueTuUIData._pivot;
_layerHeight = blueTuUIData._layerHeight; _layerHeight = blueTuUIData._layerHeight;
_layerNumber = blueTuUIData._layerNumber; _layerNumber = blueTuUIData._layerNumber;
_rotate = blueTuUIData._rotate; _rotate = blueTuUIData._rotate;
_enable = true; _enable = true;
} }
private Vector3 _bias = new(0f, 0f, 0f); private Vector3 _bias = new(0f, 0f, 0f);
private Vector3 _scale = new(1f, 1f, 1f); private Vector3 _scale = new(1f, 1f, 1f);
private Vector3 _pivot = new(0f, 0f, 0f); private Vector3 _pivot = new(0f, 0f, 0f);
private float _layerHeight = 5f; private float _layerHeight = 5f;
private int _layerNumber = 1; private int _layerNumber = 1;
private float _rotate; private float _rotate;
private bool _enable = true; private bool _enable = true;
public Action OnBuildBtn; public Action OnBuildBtn;
public Action OnResetBtn; public Action OnResetBtn;
public Action OnCopyBtn; public Action OnCopyBtn;
} }
} }

View File

@@ -6,36 +6,36 @@ using UnityEngine;
namespace XianTu namespace XianTu
{ {
internal class EmbeddedFileLoad : ILoad internal class EmbeddedFileLoad : ILoad
{ {
public EmbeddedFileLoad(string assetsNamespace = null) public EmbeddedFileLoad(string assetsNamespace = null)
{ {
var stackTrace = new StackTrace(); var stackTrace = new StackTrace();
var frame = stackTrace.GetFrame(1); var frame = stackTrace.GetFrame(1);
var assembly = frame.GetMethod().DeclaringType.Assembly; var assembly = frame.GetMethod().DeclaringType.Assembly;
var flag = assetsNamespace == null; var flag = assetsNamespace == null;
if (flag) if (flag)
{ {
assetsNamespace = assembly.FullName.Split([','])[0]; assetsNamespace = assembly.FullName.Split([','])[0];
} }
this._assetsNamespace = assetsNamespace; this._assetsNamespace = assetsNamespace;
this._assembly = assembly; this._assembly = assembly;
} }
public GameObject LoadPrefab(string path) public GameObject LoadPrefab(string path)
{ {
return null; return null;
} }
public string LoadText(string path) public string LoadText(string path)
{ {
using var manifestResourceStream = _assembly.GetManifestResourceStream(_assetsNamespace + "." + path.Replace('/', '.')); using var manifestResourceStream = _assembly.GetManifestResourceStream(_assetsNamespace + "." + path.Replace('/', '.'));
using var streamReader = new StreamReader(manifestResourceStream); using var streamReader = new StreamReader(manifestResourceStream);
return streamReader.ReadToEnd(); return streamReader.ReadToEnd();
} }
private readonly string _assetsNamespace; private readonly string _assetsNamespace;
private readonly Assembly _assembly; private readonly Assembly _assembly;
} }
} }

View File

@@ -4,19 +4,19 @@ using UnityEngine;
namespace XianTu namespace XianTu
{ {
internal class FileLoad(string dirPath) : ILoad internal class FileLoad(string dirPath) : ILoad
{ {
public GameObject LoadPrefab(string path) public GameObject LoadPrefab(string path)
{ {
return null; return null;
} }
public string LoadText(string path) public string LoadText(string path)
{ {
return File.ReadAllText(Path.Combine(_dirPath, path)); return File.ReadAllText(Path.Combine(_dirPath, path));
} }
private readonly string _dirPath = dirPath ?? ""; private readonly string _dirPath = dirPath ?? "";
} }
} }

View File

@@ -5,376 +5,376 @@ using XianTu.UI;
namespace XianTu.Scripts.DataController namespace XianTu.Scripts.DataController
{ {
internal class BlueTuController internal class BlueTuController
{ {
public BlueTuController() public BlueTuController()
{ {
_oldData = BlueTuUIData.Instance.Clone(); _oldData = BlueTuUIData.Instance.Clone();
_data = BlueTuUIData.Instance; _data = BlueTuUIData.Instance;
Init_OnUIOpen(); Init_OnUIOpen();
_data.OnValueChange += OnUserChangeData; _data.OnValueChange += OnUserChangeData;
var blueTuUIData = _data; var blueTuUIData = _data;
blueTuUIData.OnBuildBtn = (Action)Delegate.Combine(blueTuUIData.OnBuildBtn, new Action(OnUserBuildDetermine)); blueTuUIData.OnBuildBtn = (Action)Delegate.Combine(blueTuUIData.OnBuildBtn, new Action(OnUserBuildDetermine));
var blueTuUIData2 = _data; var blueTuUIData2 = _data;
blueTuUIData2.OnCopyBtn = (Action)Delegate.Combine(blueTuUIData2.OnCopyBtn, new Action(OnUserCopy)); blueTuUIData2.OnCopyBtn = (Action)Delegate.Combine(blueTuUIData2.OnCopyBtn, new Action(OnUserCopy));
var blueTuUIData3 = _data; var blueTuUIData3 = _data;
blueTuUIData3.OnResetBtn = (Action)Delegate.Combine(blueTuUIData3.OnResetBtn, new Action(OnReset)); blueTuUIData3.OnResetBtn = (Action)Delegate.Combine(blueTuUIData3.OnResetBtn, new Action(OnReset));
var blueprintData = BlueTuDatabase.Load("FoundationBlueTu"); var blueprintData = BlueTuDatabase.Load("FoundationBlueTu");
_foundation = blueprintData.buildings[0]; _foundation = blueprintData.buildings[0];
} }
private void OnUserCopy() private void OnUserCopy()
{ {
_actionBuild.blueprintClipboard = _bPaste.blueprint; _actionBuild.blueprintClipboard = _bPaste.blueprint;
ResetBuildDuiDie(); ResetBuildDuiDie();
_bPaste.RefreshBlueprintUI(); _bPaste.RefreshBlueprintUI();
} }
private void Init_OnUIOpen() private void Init_OnUIOpen()
{ {
UIManager.Instance.CanvasMonoEvent.onEnableEvent.AddListener(OnReset); UIManager.Instance.CanvasMonoEvent.onEnableEvent.AddListener(OnReset);
} }
private void OnReset() private void OnReset()
{ {
Player = GameMain.mainPlayer; Player = GameMain.mainPlayer;
var flag = Player == null; var flag = Player == null;
if (flag) if (flag)
{ {
_data.Enable = false; _data.Enable = false;
} }
else else
{ {
_playerController = Player.controller; _playerController = Player.controller;
_actionBuild = PlayerController.actionBuild; _actionBuild = PlayerController.actionBuild;
var flag2 = _actionBuild != null; var flag2 = _actionBuild != null;
if (flag2) if (flag2)
{ {
_activeTool = _actionBuild.activeTool; _activeTool = _actionBuild.activeTool;
var buildToolBlueprintPaste = _activeTool as BuildTool_BlueprintPaste; var buildToolBlueprintPaste = _activeTool as BuildTool_BlueprintPaste;
var flag3 = buildToolBlueprintPaste != null; var flag3 = buildToolBlueprintPaste != null;
if (flag3) if (flag3)
{ {
_bPaste = buildToolBlueprintPaste; _bPaste = buildToolBlueprintPaste;
var mouseRay = _actionBuild.activeTool.mouseRay; var mouseRay = _actionBuild.activeTool.mouseRay;
_defaultMouseRay = new Ray(mouseRay.origin, mouseRay.direction); _defaultMouseRay = new Ray(mouseRay.origin, mouseRay.direction);
var flag4 = buildToolBlueprintPaste.blueprint != _blueprint; var flag4 = buildToolBlueprintPaste.blueprint != _blueprint;
if (flag4) if (flag4)
{ {
_templateBlueTu = buildToolBlueprintPaste.blueprint.Clone(); _templateBlueTu = buildToolBlueprintPaste.blueprint.Clone();
_blueprint = buildToolBlueprintPaste.blueprint; _blueprint = buildToolBlueprintPaste.blueprint;
} }
_oldData = new BlueTuUIData(); _oldData = new BlueTuUIData();
_data.Reset(); _data.Reset();
_data.Enable = true; _data.Enable = true;
return; return;
} }
} }
_data.Enable = false; _data.Enable = false;
} }
} }
private Player Player { get; set; } private Player Player { get; set; }
private void OnUserBuildDetermine() private void OnUserBuildDetermine()
{ {
var flag = _actionBuild.activeTool != null; var flag = _actionBuild.activeTool != null;
if (flag) if (flag)
{ {
var buildToolBlueprintPaste = _actionBuild.activeTool as BuildTool_BlueprintPaste; var buildToolBlueprintPaste = _actionBuild.activeTool as BuildTool_BlueprintPaste;
var flag2 = buildToolBlueprintPaste != null; var flag2 = buildToolBlueprintPaste != null;
if (flag2) if (flag2)
{ {
var flag3 = buildToolBlueprintPaste.CheckBuildConditionsPrestage(); var flag3 = buildToolBlueprintPaste.CheckBuildConditionsPrestage();
if (flag3) if (flag3)
{ {
ResetBuildDuiDie(); ResetBuildDuiDie();
Build(buildToolBlueprintPaste); Build(buildToolBlueprintPaste);
} }
} }
} }
} }
private void ResetBuildDuiDie() private void ResetBuildDuiDie()
{ {
var buildToolBlueprintPaste = _bPaste; var buildToolBlueprintPaste = _bPaste;
BlueprintBuilding blueprintBuilding = null; BlueprintBuilding blueprintBuilding = null;
foreach (var blueprintBuilding2 in buildToolBlueprintPaste.blueprint.buildings) foreach (var blueprintBuilding2 in buildToolBlueprintPaste.blueprint.buildings)
{ {
var flag = Math.Abs(blueprintBuilding2.localOffset_z) < 1.5f; var flag = Math.Abs(blueprintBuilding2.localOffset_z) < 1.5f;
if (flag) if (flag)
{ {
var itemProto = LDB.items.Select(blueprintBuilding2.itemId); var itemProto = LDB.items.Select(blueprintBuilding2.itemId);
Debug.Log($"基底查验:{itemProto.name}.{itemProto.ID}:{blueprintBuilding2.localOffset_x:2f}, {blueprintBuilding2.localOffset_y:2f}, {blueprintBuilding2.localOffset_z:2f}"); Debug.Log($"基底查验:{itemProto.name}.{itemProto.ID}:{blueprintBuilding2.localOffset_x:2f}, {blueprintBuilding2.localOffset_y:2f}, {blueprintBuilding2.localOffset_z:2f}");
blueprintBuilding = blueprintBuilding2; blueprintBuilding = blueprintBuilding2;
break; break;
} }
} }
var flag2 = blueprintBuilding == null; var flag2 = blueprintBuilding == null;
if (flag2) if (flag2)
{ {
Debug.Log("没有基底"); Debug.Log("没有基底");
} }
var flag3 = blueprintBuilding == null; var flag3 = blueprintBuilding == null;
if (flag3) if (flag3)
{ {
var buildings2 = _bPaste.blueprint.buildings; var buildings2 = _bPaste.blueprint.buildings;
var array = new BlueprintBuilding[_bPaste.blueprint.buildings.Length + 1]; var array = new BlueprintBuilding[_bPaste.blueprint.buildings.Length + 1];
_bPaste.blueprint.buildings = array; _bPaste.blueprint.buildings = array;
buildings2.CopyTo(array, 0); buildings2.CopyTo(array, 0);
blueprintBuilding = _foundation; blueprintBuilding = _foundation;
blueprintBuilding.index = buildings2.Length; blueprintBuilding.index = buildings2.Length;
blueprintBuilding.localOffset_z = -0.5f; blueprintBuilding.localOffset_z = -0.5f;
array[buildings2.Length] = blueprintBuilding; array[buildings2.Length] = blueprintBuilding;
} }
foreach (var blueprintBuilding3 in _bPaste.blueprint.buildings) foreach (var blueprintBuilding3 in _bPaste.blueprint.buildings)
{ {
var flag4 = blueprintBuilding3.IsBelt(); var flag4 = blueprintBuilding3.IsBelt();
if (!flag4) if (!flag4)
{ {
var flag5 = blueprintBuilding3.IsSlot(); var flag5 = blueprintBuilding3.IsSlot();
if (!flag5) if (!flag5)
{ {
var flag6 = blueprintBuilding3 == blueprintBuilding; var flag6 = blueprintBuilding3 == blueprintBuilding;
if (!flag6) if (!flag6)
{ {
blueprintBuilding3.inputToSlot = 14; blueprintBuilding3.inputToSlot = 14;
blueprintBuilding3.outputFromSlot = 15; blueprintBuilding3.outputFromSlot = 15;
blueprintBuilding3.inputFromSlot = 15; blueprintBuilding3.inputFromSlot = 15;
blueprintBuilding3.outputToSlot = 14; blueprintBuilding3.outputToSlot = 14;
blueprintBuilding3.inputObj = blueprintBuilding; blueprintBuilding3.inputObj = blueprintBuilding;
blueprintBuilding3.inputFromSlot = -1; blueprintBuilding3.inputFromSlot = -1;
} }
} }
} }
} }
_bPaste.bpCursor = _bPaste.blueprint.buildings.Length; _bPaste.bpCursor = _bPaste.blueprint.buildings.Length;
_bPaste.buildPreviews.Clear(); _bPaste.buildPreviews.Clear();
_bPaste.ResetStates(); _bPaste.ResetStates();
_BuildTool_BluePrint_OnTick(); _BuildTool_BluePrint_OnTick();
} }
private void Build(BuildTool_BlueprintPaste bp) private void Build(BuildTool_BlueprintPaste bp)
{ {
if (bp.CheckBuildConditionsPrestage()) if (bp.CheckBuildConditionsPrestage())
{ {
PlayerController.cmd.stage = 1; PlayerController.cmd.stage = 1;
bp.GenerateBlueprintGratBoxes(); bp.GenerateBlueprintGratBoxes();
bp.DeterminePreviewsPrestage(true, false); bp.DeterminePreviewsPrestage(true, false);
bp.ActiveColliders(_actionBuild.model); bp.ActiveColliders(_actionBuild.model);
var buildCondition = bp.CheckBuildConditions(); var buildCondition = bp.CheckBuildConditions();
bp.DeterminePreviews(); bp.DeterminePreviews();
bp.result = (buildCondition ? (bp.result & ~EBlueprintPasteResult.HasError) : (bp.result | EBlueprintPasteResult.HasError)); bp.result = (buildCondition ? (bp.result & ~EBlueprintPasteResult.HasError) : (bp.result | EBlueprintPasteResult.HasError));
bp.DeactiveColliders(_actionBuild.model); bp.DeactiveColliders(_actionBuild.model);
bp.CalculateReformData(); bp.CalculateReformData();
if (buildCondition && bp.quickPaste && (bp.result & EBlueprintPasteResult.HasReform) == EBlueprintPasteResult.None) if (buildCondition && bp.quickPaste && (bp.result & EBlueprintPasteResult.HasReform) == EBlueprintPasteResult.None)
{ {
bp.CreatePrebuilds(); bp.CreatePrebuilds();
bp.ResetStates(); bp.ResetStates();
} }
} }
bp.isDragging = false; bp.isDragging = false;
bp.startGroundPosSnapped = bp.castGroundPosSnapped; bp.startGroundPosSnapped = bp.castGroundPosSnapped;
bp.ErrorGridClustering(); bp.ErrorGridClustering();
_BuildTool_BluePrint_OnTick(); _BuildTool_BluePrint_OnTick();
} }
private void OnUserChangeData() private void OnUserChangeData()
{ {
var flag = !_data.Enable; var flag = !_data.Enable;
if (!flag) if (!flag)
{ {
var flag2 = PlayerController == null; var flag2 = PlayerController == null;
if (!flag2) if (!flag2)
{ {
var flag3 = _actionBuild == null; var flag3 = _actionBuild == null;
if (!flag3) if (!flag3)
{ {
var flag4 = _bPaste == null; var flag4 = _bPaste == null;
if (!flag4) if (!flag4)
{ {
var vector = _data.Bias - _oldData.Bias; var vector = _data.Bias - _oldData.Bias;
var num = _data.LayerHeight - _oldData.LayerHeight; var num = _data.LayerHeight - _oldData.LayerHeight;
var num2 = _data.LayerNumber - _oldData.LayerNumber; var num2 = _data.LayerNumber - _oldData.LayerNumber;
var num3 = _data.Rotate - _oldData.Rotate; var num3 = _data.Rotate - _oldData.Rotate;
var flag5 = _actionBuild != null; var flag5 = _actionBuild != null;
if (flag5) if (flag5)
{ {
CtrlLayerNumber(num2); CtrlLayerNumber(num2);
CtrlLayerHeight(num); CtrlLayerHeight(num);
CtrlRotate(num3); CtrlRotate(num3);
CtrlBiasData(vector); CtrlBiasData(vector);
CtrlScale(); CtrlScale();
_BuildTool_BluePrint_OnTick(); _BuildTool_BluePrint_OnTick();
} }
_oldData.Scale = _data.Scale; _oldData.Scale = _data.Scale;
_oldData.Pivot = _data.Pivot; _oldData.Pivot = _data.Pivot;
_oldData.LayerHeight = _data.LayerHeight; _oldData.LayerHeight = _data.LayerHeight;
_oldData.LayerNumber = _data.LayerNumber; _oldData.LayerNumber = _data.LayerNumber;
_oldData.Rotate = _data.Rotate; _oldData.Rotate = _data.Rotate;
_oldData.Bias = _data.Bias; _oldData.Bias = _data.Bias;
} }
} }
} }
} }
} }
private void CtrlLayerNumber(int bLayerNumber) private void CtrlLayerNumber(int bLayerNumber)
{ {
var flag = bLayerNumber == 0; var flag = bLayerNumber == 0;
if (!flag) if (!flag)
{ {
var num = _data.LayerNumber * _templateBlueTu.buildings.Length; var num = _data.LayerNumber * _templateBlueTu.buildings.Length;
var buildings = _bPaste.blueprint.buildings; var buildings = _bPaste.blueprint.buildings;
var array = new BlueprintBuilding[num]; var array = new BlueprintBuilding[num];
var flag2 = buildings.Length > num; var flag2 = buildings.Length > num;
if (flag2) if (flag2)
{ {
Array.Copy(buildings, array, num); Array.Copy(buildings, array, num);
} }
else else
{ {
buildings.CopyTo(array, 0); buildings.CopyTo(array, 0);
var num2 = _templateBlueTu.buildings.Length; var num2 = _templateBlueTu.buildings.Length;
for (var i = _bPaste.bpCursor; i < array.Length; i += num2) for (var i = _bPaste.bpCursor; i < array.Length; i += num2)
{ {
_templateBlueTu.Clone().buildings.CopyTo(array, i); _templateBlueTu.Clone().buildings.CopyTo(array, i);
} }
for (var j = _bPaste.bpCursor; j < array.Length; j++) for (var j = _bPaste.bpCursor; j < array.Length; j++)
{ {
array[j].localOffset_z = array[j - num2].localOffset_z + _data.LayerHeight; array[j].localOffset_z = array[j - num2].localOffset_z + _data.LayerHeight;
array[j].localOffset_z2 = array[j - num2].localOffset_z2 + _data.LayerHeight; array[j].localOffset_z2 = array[j - num2].localOffset_z2 + _data.LayerHeight;
} }
for (var k = _bPaste.bpCursor; k < array.Length; k++) for (var k = _bPaste.bpCursor; k < array.Length; k++)
{ {
array[k].index = k; array[k].index = k;
} }
} }
_bPaste.blueprint.buildings = array; _bPaste.blueprint.buildings = array;
_bPaste.bpCursor = _bPaste.blueprint.buildings.Length; _bPaste.bpCursor = _bPaste.blueprint.buildings.Length;
_bPaste.buildPreviews.Clear(); _bPaste.buildPreviews.Clear();
_bPaste.ResetStates(); _bPaste.ResetStates();
} }
} }
private void CtrlLayerHeight(float bLayerHeight) private void CtrlLayerHeight(float bLayerHeight)
{ {
var flag = bLayerHeight == 0f; var flag = bLayerHeight == 0f;
if (!flag) if (!flag)
{ {
var num = _templateBlueTu.buildings.Length; var num = _templateBlueTu.buildings.Length;
var num2 = 0; var num2 = 0;
var buildings = _bPaste.blueprint.buildings; var buildings = _bPaste.blueprint.buildings;
for (var i = 0; i < _bPaste.bpCursor; i++) for (var i = 0; i < _bPaste.bpCursor; i++)
{ {
var flag2 = i == num * (num2 + 1); var flag2 = i == num * (num2 + 1);
if (flag2) if (flag2)
{ {
num2++; num2++;
} }
buildings[i].localOffset_z += bLayerHeight * num2; buildings[i].localOffset_z += bLayerHeight * num2;
buildings[i].localOffset_z2 += bLayerHeight * num2; buildings[i].localOffset_z2 += bLayerHeight * num2;
} }
} }
} }
private void CtrlScale() private void CtrlScale()
{ {
var flag = _oldData.Scale == _data.Scale; var flag = _oldData.Scale == _data.Scale;
if (!flag) if (!flag)
{ {
var buildings = _templateBlueTu.buildings; var buildings = _templateBlueTu.buildings;
var vector = _data.Scale - _oldData.Scale; var vector = _data.Scale - _oldData.Scale;
var pivot = _data.Pivot; var pivot = _data.Pivot;
var num = 0; var num = 0;
for (var i = 0; i < _bPaste.bpCursor; i++) for (var i = 0; i < _bPaste.bpCursor; i++)
{ {
var flag2 = num == buildings.Length; var flag2 = num == buildings.Length;
if (flag2) if (flag2)
{ {
num = 0; num = 0;
} }
var blueprintBuilding = buildings[num]; var blueprintBuilding = buildings[num];
var blueprintBuilding2 = _bPaste.blueprint.buildings[i]; var blueprintBuilding2 = _bPaste.blueprint.buildings[i];
blueprintBuilding2.localOffset_x += (blueprintBuilding.localOffset_x - pivot.x) * vector.x + pivot.x; blueprintBuilding2.localOffset_x += (blueprintBuilding.localOffset_x - pivot.x) * vector.x + pivot.x;
blueprintBuilding2.localOffset_y += (blueprintBuilding.localOffset_y - pivot.y) * vector.y + pivot.y; blueprintBuilding2.localOffset_y += (blueprintBuilding.localOffset_y - pivot.y) * vector.y + pivot.y;
blueprintBuilding2.localOffset_z += blueprintBuilding.localOffset_z * vector.z; blueprintBuilding2.localOffset_z += blueprintBuilding.localOffset_z * vector.z;
blueprintBuilding2.localOffset_x2 += (blueprintBuilding.localOffset_x2 - pivot.x) * vector.x + pivot.x; blueprintBuilding2.localOffset_x2 += (blueprintBuilding.localOffset_x2 - pivot.x) * vector.x + pivot.x;
blueprintBuilding2.localOffset_y2 += (blueprintBuilding.localOffset_y2 - pivot.y) * vector.y + pivot.y; blueprintBuilding2.localOffset_y2 += (blueprintBuilding.localOffset_y2 - pivot.y) * vector.y + pivot.y;
blueprintBuilding2.localOffset_z2 += blueprintBuilding.localOffset_z2 * vector.z; blueprintBuilding2.localOffset_z2 += blueprintBuilding.localOffset_z2 * vector.z;
num++; num++;
} }
} }
} }
private void CtrlRotate(float bRotate) private void CtrlRotate(float bRotate)
{ {
var flag = Math.Abs(bRotate) < 0.001f; var flag = Math.Abs(bRotate) < 0.001f;
if (!flag) if (!flag)
{ {
var buildToolBlueprintPaste = _actionBuild.activeTool as BuildTool_BlueprintPaste; var buildToolBlueprintPaste = _actionBuild.activeTool as BuildTool_BlueprintPaste;
var flag2 = buildToolBlueprintPaste != null; var flag2 = buildToolBlueprintPaste != null;
if (flag2) if (flag2)
{ {
var pivot = _data.Pivot; var pivot = _data.Pivot;
var buildings = buildToolBlueprintPaste.blueprint.buildings; var buildings = buildToolBlueprintPaste.blueprint.buildings;
var quaternion = Quaternion.AngleAxis(bRotate, Vector3.forward); var quaternion = Quaternion.AngleAxis(bRotate, Vector3.forward);
for (var i = 0; i < _bPaste.bpCursor; i++) for (var i = 0; i < _bPaste.bpCursor; i++)
{ {
var blueprintBuilding = buildings[i]; var blueprintBuilding = buildings[i];
var vector = new Vector3(blueprintBuilding.localOffset_x - pivot.x, blueprintBuilding.localOffset_y - pivot.y, 0f); var vector = new Vector3(blueprintBuilding.localOffset_x - pivot.x, blueprintBuilding.localOffset_y - pivot.y, 0f);
vector = quaternion * vector; vector = quaternion * vector;
blueprintBuilding.localOffset_x = vector.x + pivot.x; blueprintBuilding.localOffset_x = vector.x + pivot.x;
blueprintBuilding.localOffset_y = vector.y + pivot.y; blueprintBuilding.localOffset_y = vector.y + pivot.y;
blueprintBuilding.yaw -= bRotate; blueprintBuilding.yaw -= bRotate;
vector = new Vector3(blueprintBuilding.localOffset_x2 - pivot.x, blueprintBuilding.localOffset_y2 - pivot.y, 0f); vector = new Vector3(blueprintBuilding.localOffset_x2 - pivot.x, blueprintBuilding.localOffset_y2 - pivot.y, 0f);
vector = quaternion * vector; vector = quaternion * vector;
blueprintBuilding.localOffset_x2 = vector.x + pivot.x; blueprintBuilding.localOffset_x2 = vector.x + pivot.x;
blueprintBuilding.localOffset_y2 = vector.y + pivot.y; blueprintBuilding.localOffset_y2 = vector.y + pivot.y;
blueprintBuilding.yaw2 -= bRotate; blueprintBuilding.yaw2 -= bRotate;
} }
} }
} }
} }
private PlayerController PlayerController => _playerController; private PlayerController PlayerController => _playerController;
private void CtrlBiasData(Vector3 bBias) private void CtrlBiasData(Vector3 bBias)
{ {
var flag = bBias == Vector3.zero; var flag = bBias == Vector3.zero;
if (!flag) if (!flag)
{ {
var playerActionBuild = _actionBuild; var playerActionBuild = _actionBuild;
var buildTool = playerActionBuild.activeTool; var buildTool = playerActionBuild.activeTool;
var buildToolBlueprintPaste = buildTool as BuildTool_BlueprintPaste; var buildToolBlueprintPaste = buildTool as BuildTool_BlueprintPaste;
var flag2 = buildToolBlueprintPaste != null; var flag2 = buildToolBlueprintPaste != null;
if (flag2) if (flag2)
{ {
for (var i = 0; i < buildToolBlueprintPaste.bpCursor; i++) for (var i = 0; i < buildToolBlueprintPaste.bpCursor; i++)
{ {
var blueprintBuilding = buildToolBlueprintPaste.blueprint.buildings[i]; var blueprintBuilding = buildToolBlueprintPaste.blueprint.buildings[i];
blueprintBuilding.localOffset_x += bBias.x; blueprintBuilding.localOffset_x += bBias.x;
blueprintBuilding.localOffset_x2 += bBias.x; blueprintBuilding.localOffset_x2 += bBias.x;
blueprintBuilding.localOffset_y += bBias.y; blueprintBuilding.localOffset_y += bBias.y;
blueprintBuilding.localOffset_y2 += bBias.y; blueprintBuilding.localOffset_y2 += bBias.y;
blueprintBuilding.localOffset_z += bBias.z; blueprintBuilding.localOffset_z += bBias.z;
blueprintBuilding.localOffset_z2 += bBias.z; blueprintBuilding.localOffset_z2 += bBias.z;
} }
} }
} }
} }
private void _BuildTool_BluePrint_OnTick() private void _BuildTool_BluePrint_OnTick()
{ {
VFInput.onGUI = false; VFInput.onGUI = false;
_bPaste.mouseRay = _defaultMouseRay; _bPaste.mouseRay = _defaultMouseRay;
var buildToolBlueprintPaste = _activeTool as BuildTool_BlueprintPaste; var buildToolBlueprintPaste = _activeTool as BuildTool_BlueprintPaste;
var flag = buildToolBlueprintPaste != null; var flag = buildToolBlueprintPaste != null;
if (flag) if (flag)
{ {
buildToolBlueprintPaste.ClearErrorMessage(); buildToolBlueprintPaste.ClearErrorMessage();
buildToolBlueprintPaste.UpdateRaycast(); buildToolBlueprintPaste.UpdateRaycast();
buildToolBlueprintPaste.CheckBuildConditionsPrestage(); buildToolBlueprintPaste.CheckBuildConditionsPrestage();
switch (PlayerController.cmd.stage) switch (PlayerController.cmd.stage)
{ {
case 0: case 0:
@@ -385,28 +385,28 @@ namespace XianTu.Scripts.DataController
break; break;
} }
buildToolBlueprintPaste.UpdatePreviewModels(_actionBuild.model); buildToolBlueprintPaste.UpdatePreviewModels(_actionBuild.model);
buildToolBlueprintPaste.TranslateErrorType(false); buildToolBlueprintPaste.TranslateErrorType(false);
} }
} }
private readonly BlueTuUIData _data; private readonly BlueTuUIData _data;
private BlueTuUIData _oldData; private BlueTuUIData _oldData;
private PlayerController _playerController; private PlayerController _playerController;
private Ray _defaultMouseRay; private Ray _defaultMouseRay;
private BlueprintData _templateBlueTu; private BlueprintData _templateBlueTu;
private PlayerAction_Build _actionBuild; private PlayerAction_Build _actionBuild;
private BuildTool _activeTool; private BuildTool _activeTool;
private BuildTool_BlueprintPaste _bPaste; private BuildTool_BlueprintPaste _bPaste;
private readonly BlueprintBuilding _foundation; private readonly BlueprintBuilding _foundation;
private BlueprintData _blueprint; private BlueprintData _blueprint;
} }
} }

View File

@@ -2,34 +2,34 @@
namespace XianTu.Scripts.DataController namespace XianTu.Scripts.DataController
{ {
internal static class BlueTuDatabase internal static class BlueTuDatabase
{ {
public static BlueprintData Load(string path) public static BlueprintData Load(string path)
{ {
var flag = !path.EndsWith(".txt"); var flag = !path.EndsWith(".txt");
if (flag) if (flag)
{ {
path += ".txt"; path += ".txt";
} }
var text = Singleton<LoadManager>.Instance.LoadText(path); var text = Singleton<LoadManager>.Instance.LoadText(path);
var flag2 = text == ""; var flag2 = text == "";
BlueprintData blueprintData; BlueprintData blueprintData;
if (flag2) if (flag2)
{ {
Debug.Log("没有找到蓝图文件"); Debug.Log("没有找到蓝图文件");
blueprintData = null; blueprintData = null;
} }
else else
{ {
var blueprintData2 = BlueprintData.CreateNew(text); var blueprintData2 = BlueprintData.CreateNew(text);
var flag3 = blueprintData2 == null; var flag3 = blueprintData2 == null;
if (flag3) if (flag3)
{ {
Debug.Log("蓝图文件加载失败"); Debug.Log("蓝图文件加载失败");
} }
blueprintData = blueprintData2; blueprintData = blueprintData2;
} }
return blueprintData; return blueprintData;
} }
} }
} }

View File

@@ -3,19 +3,19 @@ using UnityEngine.EventSystems;
namespace ToolScripts namespace ToolScripts
{ {
internal static class EventTriggerExpand internal static class EventTriggerExpand
{ {
public static void Add(this EventTrigger trigger, EventTriggerType eventID, UnityAction<BaseEventData> callback) public static void Add(this EventTrigger trigger, EventTriggerType eventID, UnityAction<BaseEventData> callback)
{ {
var flag = trigger.triggers == null; var flag = trigger.triggers == null;
if (flag) if (flag)
{ {
trigger.triggers = []; trigger.triggers = [];
} }
var entry = new EventTrigger.Entry(); var entry = new EventTrigger.Entry();
entry.eventID = eventID; entry.eventID = eventID;
entry.callback.AddListener(callback); entry.callback.AddListener(callback);
trigger.triggers.Add(entry); trigger.triggers.Add(entry);
} }
} }
} }

View File

@@ -2,74 +2,74 @@
namespace ToolScripts namespace ToolScripts
{ {
public static class GameObjectExpand public static class GameObjectExpand
{ {
public static T Find<T>(this GameObject obj, string name) where T : class public static T Find<T>(this GameObject obj, string name) where T : class
{ {
var gameObject = GameObject.Find(name); var gameObject = GameObject.Find(name);
bool flag = gameObject; bool flag = gameObject;
T t; T t;
if (flag) if (flag)
{ {
t = gameObject.GetComponent<T>(); t = gameObject.GetComponent<T>();
} }
else else
{ {
t = default(T); t = default(T);
} }
return t; return t;
} }
public static T Find<T>(this Transform obj, string name) where T : class public static T Find<T>(this Transform obj, string name) where T : class
{ {
var transform = obj.Find(name); var transform = obj.Find(name);
bool flag = transform; bool flag = transform;
T t; T t;
if (flag) if (flag)
{ {
t = transform.GetComponent<T>(); t = transform.GetComponent<T>();
} }
else else
{ {
t = default(T); t = default(T);
} }
return t; return t;
} }
public static bool TryFind<T>(this GameObject obj, string name, out T result) where T : class public static bool TryFind<T>(this GameObject obj, string name, out T result) where T : class
{ {
var gameObject = GameObject.Find(name); var gameObject = GameObject.Find(name);
bool flag = gameObject; bool flag = gameObject;
bool flag2; bool flag2;
if (flag) if (flag)
{ {
result = gameObject.GetComponent<T>(); result = gameObject.GetComponent<T>();
flag2 = true; flag2 = true;
} }
else else
{ {
result = default(T); result = default(T);
flag2 = false; flag2 = false;
} }
return flag2; return flag2;
} }
public static bool TryFind<T>(this Transform obj, string name, out T result) where T : class public static bool TryFind<T>(this Transform obj, string name, out T result) where T : class
{ {
var transform = obj.Find(name); var transform = obj.Find(name);
bool flag = transform; bool flag = transform;
bool flag2; bool flag2;
if (flag) if (flag)
{ {
result = transform.GetComponent<T>(); result = transform.GetComponent<T>();
flag2 = true; flag2 = true;
} }
else else
{ {
result = default(T); result = default(T);
flag2 = false; flag2 = false;
} }
return flag2; return flag2;
} }
} }
} }

View File

@@ -2,31 +2,31 @@
namespace ToolScripts namespace ToolScripts
{ {
public static class _BlueprintBuildingExpands public static class _BlueprintBuildingExpands
{ {
static _BlueprintBuildingExpands() static _BlueprintBuildingExpands()
{ {
BeltProtoDict.Add(2001, null); BeltProtoDict.Add(2001, null);
BeltProtoDict.Add(2002, null); BeltProtoDict.Add(2002, null);
BeltProtoDict.Add(2003, null); BeltProtoDict.Add(2003, null);
SoltProtoDict.Add(2011, null); SoltProtoDict.Add(2011, null);
SoltProtoDict.Add(2012, null); SoltProtoDict.Add(2012, null);
SoltProtoDict.Add(2013, null); SoltProtoDict.Add(2013, null);
SoltProtoDict.Add(2014, null); SoltProtoDict.Add(2014, null);
} }
public static bool IsBelt(this BlueprintBuilding bb) public static bool IsBelt(this BlueprintBuilding bb)
{ {
return BeltProtoDict.ContainsKey(bb.itemId); return BeltProtoDict.ContainsKey(bb.itemId);
} }
public static bool IsSlot(this BlueprintBuilding bb) public static bool IsSlot(this BlueprintBuilding bb)
{ {
return SoltProtoDict.ContainsKey(bb.itemId); return SoltProtoDict.ContainsKey(bb.itemId);
} }
private static readonly Dictionary<int, ItemProto> BeltProtoDict = new(); private static readonly Dictionary<int, ItemProto> BeltProtoDict = new();
private static readonly Dictionary<int, ItemProto> SoltProtoDict = new(); private static readonly Dictionary<int, ItemProto> SoltProtoDict = new();
} }
} }

View File

@@ -2,39 +2,39 @@
namespace XianTu.UI namespace XianTu.UI
{ {
internal class BasePanel : MonoBehaviour internal class BasePanel : MonoBehaviour
{ {
public virtual void OnEnter() public virtual void OnEnter()
{ {
} }
public virtual void OnPause() public virtual void OnPause()
{ {
UITool.GameObject.SetActive(false); UITool.GameObject.SetActive(false);
} }
public virtual void OnResume() public virtual void OnResume()
{ {
UITool.GameObject.SetActive(true); UITool.GameObject.SetActive(true);
} }
public virtual void OnExit() public virtual void OnExit()
{ {
Destroy(UITool.GameObject); Destroy(UITool.GameObject);
} }
public void Init(PanelManager panelManager) public void Init(PanelManager panelManager)
{ {
PanelManager = panelManager; PanelManager = panelManager;
} }
public PanelManager PanelManager { get; private set; } public PanelManager PanelManager { get; private set; }
public void Init(UITool uiTool) public void Init(UITool uiTool)
{ {
UITool = uiTool; UITool = uiTool;
} }
public UITool UITool { get; private set; } public UITool UITool { get; private set; }
} }
} }

View File

@@ -6,339 +6,339 @@ using Debug = UnityEngine.Debug;
namespace XianTu.UI namespace XianTu.UI
{ {
internal class BlueTuPatchUI : XianTuBasePanel internal class BlueTuPatchUI : XianTuBasePanel
{ {
public BlueTuUIData Data { get; private set; } public BlueTuUIData Data { get; private set; }
public static BlueTuPatchUI Instance { get; private set; } public static BlueTuPatchUI Instance { get; private set; }
public override void OnEnter() public override void OnEnter()
{ {
base.OnEnter(); base.OnEnter();
Data = BlueTuUIData.Instance; Data = BlueTuUIData.Instance;
enableToggle = UITool.GetComponentInChild<Toggle>("XianTuEnableTg"); enableToggle = UITool.GetComponentInChild<Toggle>("XianTuEnableTg");
enableToggle.isOn = Data.Enable; enableToggle.isOn = Data.Enable;
enableToggle.onValueChanged.AddListener(delegate(bool value) enableToggle.onValueChanged.AddListener(delegate (bool value)
{ {
Data.Enable = value; Data.Enable = value;
}); });
_tipText = UITool.GetComponentInChild<Button>("Tx_Tip"); _tipText = UITool.GetComponentInChild<Button>("Tx_Tip");
_buildButton = UITool.GetComponentInChild<Button>("Btn_Build"); _buildButton = UITool.GetComponentInChild<Button>("Btn_Build");
_buildButton.onClick.AddListener(delegate _buildButton.onClick.AddListener(delegate
{ {
var onBuildBtn = Data.OnBuildBtn; var onBuildBtn = Data.OnBuildBtn;
if (onBuildBtn != null) if (onBuildBtn != null)
{ {
onBuildBtn(); onBuildBtn();
} }
}); });
_resetButton = UITool.GetComponentInChild<Button>("Btn_Reset"); _resetButton = UITool.GetComponentInChild<Button>("Btn_Reset");
_resetButton.onClick.AddListener(delegate _resetButton.onClick.AddListener(delegate
{ {
var onResetBtn = Data.OnResetBtn; var onResetBtn = Data.OnResetBtn;
if (onResetBtn != null) if (onResetBtn != null)
{ {
onResetBtn(); onResetBtn();
} }
ResetValue(); ResetValue();
}); });
_copyButton = UITool.GetComponentInChild<Button>("Btn_Copy"); _copyButton = UITool.GetComponentInChild<Button>("Btn_Copy");
_copyButton.onClick.AddListener(delegate _copyButton.onClick.AddListener(delegate
{ {
var onCopyBtn = Data.OnCopyBtn; var onCopyBtn = Data.OnCopyBtn;
if (onCopyBtn != null) if (onCopyBtn != null)
{ {
onCopyBtn(); onCopyBtn();
} }
}); });
LayerNumber = CreateUIValue(Data.LayerNumber, "LayerNumber"); LayerNumber = CreateUIValue(Data.LayerNumber, "LayerNumber");
LayerHeight = CreateUIValue(Data.LayerHeight, "LayerHeight", 20f); LayerHeight = CreateUIValue(Data.LayerHeight, "LayerHeight", 20f);
var text = "ScaleGroup/Group/ScaleX"; var text = "ScaleGroup/Group/ScaleX";
var text2 = "ScaleGroup/Group/ScaleY"; var text2 = "ScaleGroup/Group/ScaleY";
ScaleX = CreateUIValue(Data.Scale.x, text); ScaleX = CreateUIValue(Data.Scale.x, text);
ScaleY = CreateUIValue(Data.Scale.y, text2); ScaleY = CreateUIValue(Data.Scale.y, text2);
var text3 = "ScaleGroup/Group/ScaleZ"; var text3 = "ScaleGroup/Group/ScaleZ";
ScaleZ = CreateUIValue(Data.Scale.z, text3); ScaleZ = CreateUIValue(Data.Scale.z, text3);
var text4 = "BiasGroup/Group/BiasX"; var text4 = "BiasGroup/Group/BiasX";
var text5 = "BiasGroup/Group/BiasY"; var text5 = "BiasGroup/Group/BiasY";
var text6 = "BiasGroup/Group/BiasZ"; var text6 = "BiasGroup/Group/BiasZ";
_biasX = CreateUIValue(Data.Bias.x, text4, 20f); _biasX = CreateUIValue(Data.Bias.x, text4, 20f);
_biasY = CreateUIValue(Data.Bias.y, text5, 20f); _biasY = CreateUIValue(Data.Bias.y, text5, 20f);
BiasZ = CreateUIValue(Data.Bias.z, text6, 20f); BiasZ = CreateUIValue(Data.Bias.z, text6, 20f);
Rotate = CreateUIValue(Data.Rotate, "Rotate", 180f); Rotate = CreateUIValue(Data.Rotate, "Rotate", 180f);
_pivotX = CreateUIValue(Data.Pivot.x, "PivotX"); _pivotX = CreateUIValue(Data.Pivot.x, "PivotX");
_pivotY = CreateUIValue(Data.Pivot.y, "PivotY"); _pivotY = CreateUIValue(Data.Pivot.y, "PivotY");
AddDragControl(Rotate, "Name"); AddDragControl(Rotate, "Name");
AddDragControl(LayerNumber, "Name"); AddDragControl(LayerNumber, "Name");
AddDragControl(LayerHeight, "Name"); AddDragControl(LayerHeight, "Name");
AddDragControl(ScaleX, "Name"); AddDragControl(ScaleX, "Name");
AddDragControl(ScaleY, "Name"); AddDragControl(ScaleY, "Name");
AddDragControl(ScaleZ, "Name"); AddDragControl(ScaleZ, "Name");
AddDragControl(_pivotX, _pivotY, "Name"); AddDragControl(_pivotX, _pivotY, "Name");
AddDragControl(_biasX, "Name"); AddDragControl(_biasX, "Name");
AddDragControl(_biasY, "Name"); AddDragControl(_biasY, "Name");
AddDragControl(BiasZ, "Name"); AddDragControl(BiasZ, "Name");
BindScaleData(); BindScaleData();
BindBiasData(); BindBiasData();
BindPivot(); BindPivot();
BindLayerNumber(); BindLayerNumber();
BindLayerHeight(); BindLayerHeight();
BindRotate(); BindRotate();
Instance = this; Instance = this;
var initFinish = InitFinish; var initFinish = InitFinish;
if (initFinish != null) if (initFinish != null)
{ {
initFinish(this); initFinish(this);
} }
BindOnEnable_MoveCenter(); BindOnEnable_MoveCenter();
}
private void ResetValue()
{
_biasX.Value = Data.Bias.x;
_biasY.Value = Data.Bias.y;
BiasZ.Value = Data.Bias.z;
ScaleX.Value = Data.Scale.x;
ScaleY.Value = Data.Scale.y;
ScaleZ.Value = Data.Scale.z;
_pivotX.Value = Data.Pivot.x;
_pivotY.Value = Data.Pivot.y;
Rotate.Value = Data.Rotate;
enableToggle.isOn = Data.Enable;
LayerHeight.Value = Data.LayerHeight;
LayerNumber.Value = Data.LayerNumber;
}
private void BindOnEnable_MoveCenter()
{
var canvasMonoEvent = UIManager.CanvasMonoEvent;
var rectTransform = (RectTransform)transform;
var centerBias = new Vector3(-rectTransform.rect.width / 2f, rectTransform.rect.height / 2f);
canvasMonoEvent.onEnableEvent.AddListener(delegate
{
var isOn = enableToggle.isOn;
if (isOn)
{
UITool.GameObject.transform.position = Input.mousePosition + centerBias;
}
});
}
private void BindRotate()
{
Rotate.OnValueChange += delegate(float f)
{
Data.Rotate = f;
};
}
private void BindLayerHeight()
{
LayerHeight.OnValueChange += delegate(float f)
{
Data.LayerHeight = f;
};
}
private void BindLayerNumber()
{
LayerNumber.OnValueChange += delegate(int i)
{
Data.LayerNumber = i;
};
}
private void BindPivot()
{
var tempPivot = Data.Pivot;
var cd = Time.time;
_pivotX.OnValueChange += delegate(float f)
{
var flag = Time.time - cd < Time.fixedDeltaTime;
if (!flag)
{
cd = Time.time;
tempPivot.x = f;
Data.Pivot = tempPivot;
}
};
_pivotY.OnValueChange += delegate(float f)
{
var flag2 = Time.time - cd < Time.fixedDeltaTime;
if (!flag2)
{
cd = Time.time;
tempPivot.y = f;
Data.Pivot = tempPivot;
}
};
}
private void BindBiasData()
{
var tempBias = Data.Bias;
_biasX.OnValueChange += delegate(float f)
{
tempBias.x = f;
Data.Bias = tempBias;
};
_biasY.OnValueChange += delegate(float f)
{
tempBias.y = f;
Data.Bias = tempBias;
};
BiasZ.OnValueChange += delegate(float f)
{
tempBias.z = f;
Data.Bias = tempBias;
};
}
private void BindScaleData()
{
var tempScale = Data.Scale;
ScaleX.OnValueChange += delegate(float f)
{
tempScale.x = f;
Data.Scale = tempScale;
};
ScaleY.OnValueChange += delegate(float f)
{
tempScale.y = f;
Data.Scale = tempScale;
};
ScaleZ.OnValueChange += delegate(float f)
{
tempScale.z = f;
Data.Scale = tempScale;
};
}
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
private static event Action<BlueTuPatchUI> InitFinish;
public static event Action<BlueTuPatchUI> OnInitFinish
{
add
{
InitFinish += value;
var flag = Instance != null;
if (flag)
{
value(Instance);
}
}
remove => InitFinish -= value;
} }
private void AddDragControl<T>(UIValue<T> uiValue, string childrenName) where T : IComparable private void ResetValue()
{ {
var flag = uiValue.Components.Length != 0; _biasX.Value = Data.Bias.x;
if (flag) _biasY.Value = Data.Bias.y;
{ BiasZ.Value = Data.Bias.z;
var parent = uiValue.Components[0].gameObject.transform.parent; ScaleX.Value = Data.Scale.x;
var transform = parent.Find(childrenName); ScaleY.Value = Data.Scale.y;
bool flag2 = transform; ScaleZ.Value = Data.Scale.z;
if (flag2) _pivotX.Value = Data.Pivot.x;
{ _pivotY.Value = Data.Pivot.y;
uiValue.BindDragControl(transform.gameObject); Rotate.Value = Data.Rotate;
} enableToggle.isOn = Data.Enable;
} LayerHeight.Value = Data.LayerHeight;
} LayerNumber.Value = Data.LayerNumber;
}
private void AddDragControl<T>(UIValue<T> uiValueX, UIValue<T> uiValueY, string childrenName) where T : IComparable private void BindOnEnable_MoveCenter()
{ {
var flag = uiValueX.Components.Length != 0; var canvasMonoEvent = UIManager.CanvasMonoEvent;
if (flag) var rectTransform = (RectTransform)transform;
{ var centerBias = new Vector3(-rectTransform.rect.width / 2f, rectTransform.rect.height / 2f);
var parent = uiValueX.Components[0].gameObject.transform.parent; canvasMonoEvent.onEnableEvent.AddListener(delegate
var transform = parent.Find(childrenName); {
bool flag2 = transform; var isOn = enableToggle.isOn;
if (flag2) if (isOn)
{ {
uiValueX.BindDragControl(transform.gameObject); UITool.GameObject.transform.position = Input.mousePosition + centerBias;
uiValueY.BindDragControl(transform.gameObject); }
UIValue<T>.BindDragControl(transform.gameObject, uiValueX, uiValueY); });
} }
}
var flag3 = uiValueY.Components.Length != 0;
if (flag3)
{
var parent2 = uiValueY.Components[0].gameObject.transform.parent;
var transform2 = parent2.Find(childrenName);
bool flag4 = transform2;
if (flag4)
{
uiValueX.BindDragControl(transform2.gameObject);
uiValueY.BindDragControl(transform2.gameObject);
UIValue<T>.BindDragControl(transform2.gameObject, uiValueX, uiValueY);
}
}
}
private UIValue<T> CreateUIValue<T>(T defaultValue, string groupPath, float maxValue = 10f) where T : IComparable private void BindRotate()
{ {
var uivalue = new UIValue<T>(defaultValue, Array.Empty<Component>()); Rotate.OnValueChange += delegate (float f)
var gameObject = UITool.FindChildGameObject(groupPath); {
var flag = gameObject == null; Data.Rotate = f;
UIValue<T> uivalue2; };
if (flag) }
{
Debug.LogError("没有找到" + groupPath);
uivalue2 = uivalue;
}
else
{
uivalue.Bind(gameObject.GetComponentInChildren<Toggle>());
uivalue.Bind(gameObject.GetComponentInChildren<Slider>());
uivalue.Bind(gameObject.GetComponentInChildren<Scrollbar>());
var componentsInChildren = gameObject.GetComponentsInChildren<Text>();
for (var i = 0; i < componentsInChildren.Length; i++)
{
var flag2 = componentsInChildren[i].name == "ValueText";
if (flag2)
{
uivalue.Bind(componentsInChildren[i]);
break;
}
}
uivalue.Bind(gameObject.GetComponentInChildren<InputField>());
uivalue.MaxValue = maxValue;
uivalue2 = uivalue;
}
return uivalue2;
}
public Toggle enableToggle; private void BindLayerHeight()
{
LayerHeight.OnValueChange += delegate (float f)
{
Data.LayerHeight = f;
};
}
private Button _tipText; private void BindLayerNumber()
{
LayerNumber.OnValueChange += delegate (int i)
{
Data.LayerNumber = i;
};
}
private Button _buildButton; private void BindPivot()
{
var tempPivot = Data.Pivot;
var cd = Time.time;
_pivotX.OnValueChange += delegate (float f)
{
var flag = Time.time - cd < Time.fixedDeltaTime;
if (!flag)
{
cd = Time.time;
tempPivot.x = f;
Data.Pivot = tempPivot;
}
};
_pivotY.OnValueChange += delegate (float f)
{
var flag2 = Time.time - cd < Time.fixedDeltaTime;
if (!flag2)
{
cd = Time.time;
tempPivot.y = f;
Data.Pivot = tempPivot;
}
};
}
private Button _resetButton; private void BindBiasData()
{
var tempBias = Data.Bias;
_biasX.OnValueChange += delegate (float f)
{
tempBias.x = f;
Data.Bias = tempBias;
};
_biasY.OnValueChange += delegate (float f)
{
tempBias.y = f;
Data.Bias = tempBias;
};
BiasZ.OnValueChange += delegate (float f)
{
tempBias.z = f;
Data.Bias = tempBias;
};
}
public UIValue<int> LayerNumber; private void BindScaleData()
{
var tempScale = Data.Scale;
ScaleX.OnValueChange += delegate (float f)
{
tempScale.x = f;
Data.Scale = tempScale;
};
ScaleY.OnValueChange += delegate (float f)
{
tempScale.y = f;
Data.Scale = tempScale;
};
ScaleZ.OnValueChange += delegate (float f)
{
tempScale.z = f;
Data.Scale = tempScale;
};
}
public UIValue<float> LayerHeight; [field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
private static event Action<BlueTuPatchUI> InitFinish;
public UIValue<float> ScaleX; public static event Action<BlueTuPatchUI> OnInitFinish
{
add
{
InitFinish += value;
var flag = Instance != null;
if (flag)
{
value(Instance);
}
}
remove => InitFinish -= value;
}
public UIValue<float> ScaleY; private void AddDragControl<T>(UIValue<T> uiValue, string childrenName) where T : IComparable
{
var flag = uiValue.Components.Length != 0;
if (flag)
{
var parent = uiValue.Components[0].gameObject.transform.parent;
var transform = parent.Find(childrenName);
bool flag2 = transform;
if (flag2)
{
uiValue.BindDragControl(transform.gameObject);
}
}
}
public UIValue<float> ScaleZ; private void AddDragControl<T>(UIValue<T> uiValueX, UIValue<T> uiValueY, string childrenName) where T : IComparable
{
var flag = uiValueX.Components.Length != 0;
if (flag)
{
var parent = uiValueX.Components[0].gameObject.transform.parent;
var transform = parent.Find(childrenName);
bool flag2 = transform;
if (flag2)
{
uiValueX.BindDragControl(transform.gameObject);
uiValueY.BindDragControl(transform.gameObject);
UIValue<T>.BindDragControl(transform.gameObject, uiValueX, uiValueY);
}
}
var flag3 = uiValueY.Components.Length != 0;
if (flag3)
{
var parent2 = uiValueY.Components[0].gameObject.transform.parent;
var transform2 = parent2.Find(childrenName);
bool flag4 = transform2;
if (flag4)
{
uiValueX.BindDragControl(transform2.gameObject);
uiValueY.BindDragControl(transform2.gameObject);
UIValue<T>.BindDragControl(transform2.gameObject, uiValueX, uiValueY);
}
}
}
public UIValue<float> BiasZ; private UIValue<T> CreateUIValue<T>(T defaultValue, string groupPath, float maxValue = 10f) where T : IComparable
{
var uivalue = new UIValue<T>(defaultValue, Array.Empty<Component>());
var gameObject = UITool.FindChildGameObject(groupPath);
var flag = gameObject == null;
UIValue<T> uivalue2;
if (flag)
{
Debug.LogError("没有找到" + groupPath);
uivalue2 = uivalue;
}
else
{
uivalue.Bind(gameObject.GetComponentInChildren<Toggle>());
uivalue.Bind(gameObject.GetComponentInChildren<Slider>());
uivalue.Bind(gameObject.GetComponentInChildren<Scrollbar>());
var componentsInChildren = gameObject.GetComponentsInChildren<Text>();
for (var i = 0; i < componentsInChildren.Length; i++)
{
var flag2 = componentsInChildren[i].name == "ValueText";
if (flag2)
{
uivalue.Bind(componentsInChildren[i]);
break;
}
}
uivalue.Bind(gameObject.GetComponentInChildren<InputField>());
uivalue.MaxValue = maxValue;
uivalue2 = uivalue;
}
return uivalue2;
}
public UIValue<float> Rotate; public Toggle enableToggle;
private UIValue<float> _pivotX; private Button _tipText;
private UIValue<float> _pivotY; private Button _buildButton;
private UIValue<float> _biasX; private Button _resetButton;
private UIValue<float> _biasY; public UIValue<int> LayerNumber;
private Button _copyButton; public UIValue<float> LayerHeight;
}
public UIValue<float> ScaleX;
public UIValue<float> ScaleY;
public UIValue<float> ScaleZ;
public UIValue<float> BiasZ;
public UIValue<float> Rotate;
private UIValue<float> _pivotX;
private UIValue<float> _pivotY;
private UIValue<float> _biasX;
private UIValue<float> _biasY;
private Button _copyButton;
}
} }

View File

@@ -4,22 +4,22 @@ using UnityEngine.Serialization;
namespace XianTu.UI namespace XianTu.UI
{ {
public class CanvasMonoEvent : MonoBehaviour public class CanvasMonoEvent : MonoBehaviour
{ {
private void Awake() private void Awake()
{ {
onEnableEvent = new UnityEvent(); onEnableEvent = new UnityEvent();
} }
private void OnEnable() private void OnEnable()
{ {
var onEnableEvent = this.onEnableEvent; var onEnableEvent = this.onEnableEvent;
if (onEnableEvent != null) if (onEnableEvent != null)
{ {
onEnableEvent.Invoke(); onEnableEvent.Invoke();
} }
} }
[FormerlySerializedAs("OnEnableEvent")] public UnityEvent onEnableEvent; [FormerlySerializedAs("OnEnableEvent")] public UnityEvent onEnableEvent;
} }
} }

View File

@@ -7,93 +7,93 @@ using Object = UnityEngine.Object;
namespace XianTu.UI namespace XianTu.UI
{ {
public class PanelManager public class PanelManager
{ {
public LoadManager Loader { get; private set; } public LoadManager Loader { get; private set; }
public PanelManager(GameObject rootCanvas) public PanelManager(GameObject rootCanvas)
{ {
_panelStack = new Stack<BasePanel>(); _panelStack = new Stack<BasePanel>();
_panelDict = new Dictionary<string, BasePanel>(); _panelDict = new Dictionary<string, BasePanel>();
this._rootCanvas = rootCanvas; this._rootCanvas = rootCanvas;
Loader = Singleton<LoadManager>.Instance; Loader = Singleton<LoadManager>.Instance;
_uiAssembly = GetType().Assembly; _uiAssembly = GetType().Assembly;
} }
public void Push(string nextPanelName) public void Push(string nextPanelName)
{ {
var flag = _panelStack.Count > 0; var flag = _panelStack.Count > 0;
if (flag) if (flag)
{ {
_panelStack.Peek().OnPause(); _panelStack.Peek().OnPause();
} }
var flag2 = _panelDict.ContainsKey(nextPanelName); var flag2 = _panelDict.ContainsKey(nextPanelName);
BasePanel basePanel; BasePanel basePanel;
if (flag2) if (flag2)
{ {
basePanel = _panelDict[nextPanelName]; basePanel = _panelDict[nextPanelName];
basePanel.OnResume(); basePanel.OnResume();
} }
else else
{ {
var text = Path.Combine(UIPrefabDir, nextPanelName); var text = Path.Combine(UIPrefabDir, nextPanelName);
var gameObject = Loader.LoadPrefab(text); var gameObject = Loader.LoadPrefab(text);
var flag3 = gameObject == null; var flag3 = gameObject == null;
if (flag3) if (flag3)
{ {
Debug.LogError("没有找到" + text); Debug.LogError("没有找到" + text);
var flag4 = _panelStack.Count > 0; var flag4 = _panelStack.Count > 0;
if (flag4) if (flag4)
{ {
_panelStack.Peek().OnResume(); _panelStack.Peek().OnResume();
} }
return; return;
} }
gameObject = Object.Instantiate(gameObject, _rootCanvas.transform); gameObject = Object.Instantiate(gameObject, _rootCanvas.transform);
var type = _uiAssembly.GetType(_panelNameSapce + "." + nextPanelName); var type = _uiAssembly.GetType(_panelNameSapce + "." + nextPanelName);
basePanel = (BasePanel)gameObject.AddComponent(type); basePanel = (BasePanel)gameObject.AddComponent(type);
var uitool = new UITool(gameObject); var uitool = new UITool(gameObject);
basePanel.Init(this); basePanel.Init(this);
basePanel.Init(uitool); basePanel.Init(uitool);
_panelDict.Add(nextPanelName, basePanel); _panelDict.Add(nextPanelName, basePanel);
basePanel.OnEnter(); basePanel.OnEnter();
} }
_panelStack.Push(basePanel); _panelStack.Push(basePanel);
} }
public void Pop() public void Pop()
{ {
var flag = _panelStack.Count > 0; var flag = _panelStack.Count > 0;
if (flag) if (flag)
{ {
var basePanel = _panelStack.Pop(); var basePanel = _panelStack.Pop();
basePanel.OnPause(); basePanel.OnPause();
} }
var flag2 = _panelStack.Count > 0; var flag2 = _panelStack.Count > 0;
if (flag2) if (flag2)
{ {
_panelStack.Peek().OnResume(); _panelStack.Peek().OnResume();
} }
} }
public void Exit() public void Exit()
{ {
for (var i = 0; i < _panelDict.Count; i++) for (var i = 0; i < _panelDict.Count; i++)
{ {
_panelDict.ElementAt(i).Value.OnExit(); _panelDict.ElementAt(i).Value.OnExit();
} }
} }
private Stack<BasePanel> _panelStack; private Stack<BasePanel> _panelStack;
private Dictionary<string, BasePanel> _panelDict; private Dictionary<string, BasePanel> _panelDict;
private GameObject _rootCanvas; private GameObject _rootCanvas;
private Assembly _uiAssembly; private Assembly _uiAssembly;
private string _panelNameSapce = "XianTu.UI"; private string _panelNameSapce = "XianTu.UI";
public readonly string UIPrefabDir = "Prefabs/UI"; public readonly string UIPrefabDir = "Prefabs/UI";
} }
} }

View File

@@ -4,69 +4,69 @@ using Object = UnityEngine.Object;
namespace XianTu.UI namespace XianTu.UI
{ {
public class UIManager public class UIManager
{ {
public GameObject CanvasObj { get; private set; } public GameObject CanvasObj { get; private set; }
public bool ActiveSelf => CanvasObj.activeSelf; public bool ActiveSelf => CanvasObj.activeSelf;
public void SetActive(bool value) public void SetActive(bool value)
{ {
CanvasObj.SetActive(value); CanvasObj.SetActive(value);
} }
public void SwitchDisplay() public void SwitchDisplay()
{ {
CanvasObj.SetActive(CanvasObj.activeSelf); CanvasObj.SetActive(CanvasObj.activeSelf);
} }
public UIManager(Action<object> debugLog = null) public UIManager(Action<object> debugLog = null)
{ {
Instance = this; Instance = this;
var flag = debugLog == null; var flag = debugLog == null;
if (flag) if (flag)
{ {
DebugLog = new Action<object>(Debug.Log); DebugLog = new Action<object>(Debug.Log);
} }
var flag2 = !LoadCanvas(); var flag2 = !LoadCanvas();
if (flag2) if (flag2)
{ {
DebugLog("UI管理器加载失败"); DebugLog("UI管理器加载失败");
} }
else else
{ {
PanelManager = new PanelManager(CanvasObj); PanelManager = new PanelManager(CanvasObj);
} }
} }
public PanelManager PanelManager { get; private set; } public PanelManager PanelManager { get; private set; }
public static UIManager Instance { get; private set; } public static UIManager Instance { get; private set; }
public CanvasMonoEvent CanvasMonoEvent { get; private set; } public CanvasMonoEvent CanvasMonoEvent { get; private set; }
private bool LoadCanvas() private bool LoadCanvas()
{ {
var gameObject = Singleton<LoadManager>.Instance.LoadPrefab("Prefabs/XianTuCanvas"); var gameObject = Singleton<LoadManager>.Instance.LoadPrefab("Prefabs/XianTuCanvas");
var flag = gameObject != null; var flag = gameObject != null;
bool flag2; bool flag2;
if (flag) if (flag)
{ {
var gameObject2 = Object.Instantiate(gameObject); var gameObject2 = Object.Instantiate(gameObject);
CanvasObj = gameObject2; CanvasObj = gameObject2;
CanvasMonoEvent = gameObject2.AddComponent<CanvasMonoEvent>(); CanvasMonoEvent = gameObject2.AddComponent<CanvasMonoEvent>();
gameObject2.SetActive(false); gameObject2.SetActive(false);
flag2 = true; flag2 = true;
} }
else else
{ {
flag2 = false; flag2 = false;
} }
return flag2; return flag2;
} }
private const string CanvasPrefabPath = "Prefabs/XianTuCanvas"; private const string CanvasPrefabPath = "Prefabs/XianTuCanvas";
public readonly Action<object> DebugLog; public readonly Action<object> DebugLog;
} }
} }

View File

@@ -5,144 +5,144 @@ using UnityEngine;
namespace XianTu.UI namespace XianTu.UI
{ {
internal class UITool internal class UITool
{ {
public UITool(GameObject uiGameObject) public UITool(GameObject uiGameObject)
{ {
GameObject = uiGameObject; GameObject = uiGameObject;
Transform = GameObject.transform; Transform = GameObject.transform;
} }
public T GetComponentInChild<T>(string path) where T : class public T GetComponentInChild<T>(string path) where T : class
{ {
var gameObject = FindChildGameObject(path); var gameObject = FindChildGameObject(path);
bool flag = gameObject; bool flag = gameObject;
T t; T t;
if (flag) if (flag)
{ {
t = gameObject.GetComponent<T>(); t = gameObject.GetComponent<T>();
} }
else else
{ {
t = default(T); t = default(T);
} }
return t; return t;
} }
public GameObject FindChildGameObject(string path) public GameObject FindChildGameObject(string path)
{ {
var array = path.Split(['/']); var array = path.Split(['/']);
var flag = array.Length == 0; var flag = array.Length == 0;
GameObject gameObject; GameObject gameObject;
if (flag) if (flag)
{ {
Debug.LogError("空路径"); Debug.LogError("空路径");
gameObject = null; gameObject = null;
} }
else else
{ {
var flag2 = array[0] == ""; var flag2 = array[0] == "";
GameObject gameObject2; GameObject gameObject2;
if (flag2) if (flag2)
{ {
gameObject2 = StepByStepFindChild(Transform, array.Skip(1).ToArray()); gameObject2 = StepByStepFindChild(Transform, array.Skip(1).ToArray());
var flag3 = gameObject2 != null; var flag3 = gameObject2 != null;
if (flag3) if (flag3)
{ {
return gameObject2.gameObject; return gameObject2.gameObject;
} }
} }
else else
{ {
gameObject2 = BreadthFindChild(Transform, array[0]); gameObject2 = BreadthFindChild(Transform, array[0]);
var flag4 = gameObject2 != null && array.Length > 1; var flag4 = gameObject2 != null && array.Length > 1;
if (flag4) if (flag4)
{ {
gameObject2 = StepByStepFindChild(gameObject2.transform, array.Skip(1).ToArray()); gameObject2 = StepByStepFindChild(gameObject2.transform, array.Skip(1).ToArray());
} }
} }
var flag5 = gameObject2 == null; var flag5 = gameObject2 == null;
if (flag5) if (flag5)
{ {
Debug.LogError("找不到" + path); Debug.LogError("找不到" + path);
} }
gameObject = gameObject2; gameObject = gameObject2;
} }
return gameObject; return gameObject;
} }
private static GameObject BreadthFindChild(Transform parent, string name) private static GameObject BreadthFindChild(Transform parent, string name)
{ {
var flag = parent == null; var flag = parent == null;
GameObject gameObject; GameObject gameObject;
if (flag) if (flag)
{ {
Debug.LogError("不要传个空的过来!"); Debug.LogError("不要传个空的过来!");
gameObject = null; gameObject = null;
} }
else else
{ {
var queue = new Queue<Transform>(); var queue = new Queue<Transform>();
queue.Enqueue(parent); queue.Enqueue(parent);
while (queue.Count > 0) while (queue.Count > 0)
{ {
var transform = queue.Dequeue(); var transform = queue.Dequeue();
var transform2 = transform.Find(name); var transform2 = transform.Find(name);
var flag2 = transform2 != null; var flag2 = transform2 != null;
if (flag2) if (flag2)
{ {
return transform2.gameObject; return transform2.gameObject;
} }
for (var i = 0; i < transform.childCount; i++) for (var i = 0; i < transform.childCount; i++)
{ {
queue.Enqueue(transform.GetChild(i)); queue.Enqueue(transform.GetChild(i));
} }
} }
gameObject = null; gameObject = null;
} }
return gameObject; return gameObject;
} }
public T GetOrAddComponentInChildren<T>(string name) where T : Component public T GetOrAddComponentInChildren<T>(string name) where T : Component
{ {
var gameObject = FindChildGameObject(name); var gameObject = FindChildGameObject(name);
var flag = gameObject != null; var flag = gameObject != null;
T t2; T t2;
if (flag) if (flag)
{ {
var t = gameObject.GetComponent<T>(); var t = gameObject.GetComponent<T>();
var flag2 = t == null; var flag2 = t == null;
if (flag2) if (flag2)
{ {
t = gameObject.AddComponent<T>(); t = gameObject.AddComponent<T>();
} }
t2 = t; t2 = t;
} }
else else
{ {
t2 = default(T); t2 = default(T);
} }
return t2; return t2;
} }
[CompilerGenerated] [CompilerGenerated]
internal static GameObject StepByStepFindChild(Transform parent, string[] filepaths) internal static GameObject StepByStepFindChild(Transform parent, string[] filepaths)
{ {
var transform = parent; var transform = parent;
for (var i = 0; i < filepaths.Length; i++) for (var i = 0; i < filepaths.Length; i++)
{ {
transform = transform.Find(filepaths[i]); transform = transform.Find(filepaths[i]);
var flag = transform == null; var flag = transform == null;
if (flag) if (flag)
{ {
return null; return null;
} }
} }
return transform.gameObject; return transform.gameObject;
} }
public readonly GameObject GameObject; public readonly GameObject GameObject;
public readonly Transform Transform; public readonly Transform Transform;
} }
} }

View File

@@ -1,15 +1,15 @@
namespace XianTu.UI namespace XianTu.UI
{ {
internal class UIType internal class UIType
{ {
public UIType(string prefabPath) public UIType(string prefabPath)
{ {
this.PrefabPath = prefabPath; this.PrefabPath = prefabPath;
Name = prefabPath.Substring(prefabPath.LastIndexOf('/') + 1); Name = prefabPath.Substring(prefabPath.LastIndexOf('/') + 1);
} }
public string PrefabPath; public string PrefabPath;
public string Name; public string Name;
} }
} }

View File

@@ -8,414 +8,414 @@ using UnityEngine.UI;
namespace XianTu.UI namespace XianTu.UI
{ {
internal class UIValue<T> where T : IComparable internal class UIValue<T> where T : IComparable
{ {
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)] [field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
private event Action<object> ValueUpdate; private event Action<object> ValueUpdate;
[field: DebuggerBrowsable(DebuggerBrowsableState.Never)] [field: DebuggerBrowsable(DebuggerBrowsableState.Never)]
public event Action<T> OnValueChange; public event Action<T> OnValueChange;
public T Value public T Value
{ {
get => _value; get => _value;
set set
{ {
var publicValueLock = _publicValueLock; var publicValueLock = _publicValueLock;
if (!publicValueLock) if (!publicValueLock)
{ {
_publicValueLock = true; _publicValueLock = true;
ValueUpdate(value); ValueUpdate(value);
_publicValueLock = false; _publicValueLock = false;
} }
} }
} }
public float MaxValue public float MaxValue
{ {
get => _maxValue; get => _maxValue;
set set
{ {
_maxValue = value; _maxValue = value;
for (var i = 0; i < Components.Length; i++) for (var i = 0; i < Components.Length; i++)
{ {
var component = Components[i]; var component = Components[i];
var component2 = component; var component2 = component;
var slider = component2 as Slider; var slider = component2 as Slider;
if (slider != null) if (slider != null)
{ {
slider.maxValue = value; slider.maxValue = value;
} }
} }
} }
} }
public UIValue(T defaultValue, params Component[] components) public UIValue(T defaultValue, params Component[] components)
{ {
var flag = typeof(T) == typeof(bool); var flag = typeof(T) == typeof(bool);
if (flag) if (flag)
{ {
_valueType = EValueType.Bool; _valueType = EValueType.Bool;
} }
else else
{ {
var flag2 = typeof(T) == typeof(int); var flag2 = typeof(T) == typeof(int);
if (flag2) if (flag2)
{ {
_valueType = EValueType.Int; _valueType = EValueType.Int;
} }
else else
{ {
var flag3 = typeof(T) == typeof(float); var flag3 = typeof(T) == typeof(float);
if (flag3) if (flag3)
{ {
_valueType = EValueType.Float; _valueType = EValueType.Float;
} }
else else
{ {
var flag4 = typeof(T) == typeof(string); var flag4 = typeof(T) == typeof(string);
if (flag4) if (flag4)
{ {
_valueType = EValueType.String; _valueType = EValueType.String;
} }
else else
{ {
var flag5 = typeof(T) == typeof(double); var flag5 = typeof(T) == typeof(double);
if (flag5) if (flag5)
{ {
_valueType = EValueType.Double; _valueType = EValueType.Double;
} }
} }
} }
} }
} }
ValueUpdate = delegate(object v) ValueUpdate = delegate (object v)
{ {
switch (_valueType) switch (_valueType)
{ {
case EValueType.Bool: case EValueType.Bool:
_value = (T)((object)Convert.ToBoolean(v)); _value = (T)((object)Convert.ToBoolean(v));
break; break;
case EValueType.Int: case EValueType.Int:
_value = (T)((object)Convert.ToInt32(v)); _value = (T)((object)Convert.ToInt32(v));
break; break;
case EValueType.Float: case EValueType.Float:
_value = (T)((object)Convert.ToSingle(v)); _value = (T)((object)Convert.ToSingle(v));
break; break;
case EValueType.Double: case EValueType.Double:
_value = (T)((object)Convert.ToDouble(v)); _value = (T)((object)Convert.ToDouble(v));
break; break;
case EValueType.String: case EValueType.String:
_value = (T)((object)_valueType.ToString()); _value = (T)((object)_valueType.ToString());
break; break;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
var onValueChange = OnValueChange; var onValueChange = OnValueChange;
if (onValueChange != null) if (onValueChange != null)
{ {
onValueChange(_value); onValueChange(_value);
} }
}; };
foreach (var component in components) foreach (var component in components)
{ {
var component2 = component; var component2 = component;
var component3 = component2; var component3 = component2;
var inputField = component3 as InputField; var inputField = component3 as InputField;
if (inputField == null) if (inputField == null)
{ {
var toggle = component3 as Toggle; var toggle = component3 as Toggle;
if (toggle == null) if (toggle == null)
{ {
var slider = component3 as Slider; var slider = component3 as Slider;
if (slider == null) if (slider == null)
{ {
var text = component3 as Text; var text = component3 as Text;
if (text == null) if (text == null)
{ {
var scrollbar = component3 as Scrollbar; var scrollbar = component3 as Scrollbar;
if (scrollbar != null) if (scrollbar != null)
{ {
Bind(scrollbar); Bind(scrollbar);
} }
} }
else else
{ {
Bind(text); Bind(text);
} }
} }
else else
{ {
Bind(slider); Bind(slider);
} }
} }
else else
{ {
Bind(toggle); Bind(toggle);
} }
} }
else else
{ {
Bind(inputField); Bind(inputField);
} }
} }
} }
public void Bind(Scrollbar scrollBar) public void Bind(Scrollbar scrollBar)
{ {
var flag = scrollBar == null; var flag = scrollBar == null;
if (!flag) if (!flag)
{ {
Components = Components.Append(scrollBar).ToArray(); Components = Components.Append(scrollBar).ToArray();
var hasSet = false; var hasSet = false;
var justUpdate = false; var justUpdate = false;
ValueUpdate += delegate(object value) ValueUpdate += delegate (object value)
{ {
var hasSet2 = hasSet; var hasSet2 = hasSet;
if (!hasSet2) if (!hasSet2)
{ {
justUpdate = true; justUpdate = true;
scrollBar.value = Convert.ToSingle(value); scrollBar.value = Convert.ToSingle(value);
justUpdate = false; justUpdate = false;
} }
}; };
scrollBar.onValueChanged.AddListener(delegate(float value) scrollBar.onValueChanged.AddListener(delegate (float value)
{ {
var justUpdate2 = justUpdate; var justUpdate2 = justUpdate;
if (!justUpdate2) if (!justUpdate2)
{ {
hasSet = true; hasSet = true;
ValueUpdate(value); ValueUpdate(value);
hasSet = false; hasSet = false;
} }
}); });
} }
} }
public void Bind(Text text) public void Bind(Text text)
{ {
var flag = text == null; var flag = text == null;
if (!flag) if (!flag)
{ {
Components = Components.Append(text).ToArray(); Components = Components.Append(text).ToArray();
var justUpdate = false; var justUpdate = false;
ValueUpdate += delegate(object value) ValueUpdate += delegate (object value)
{ {
var justUpdate2 = justUpdate; var justUpdate2 = justUpdate;
if (!justUpdate2) if (!justUpdate2)
{ {
justUpdate = true; justUpdate = true;
text.text = string.Format("{0:f2}", value); text.text = string.Format("{0:f2}", value);
justUpdate = false; justUpdate = false;
} }
}; };
} }
} }
public void Bind(Slider slider) public void Bind(Slider slider)
{ {
var flag = slider == null; var flag = slider == null;
if (!flag) if (!flag)
{ {
Components = Components.Append(slider).ToArray(); Components = Components.Append(slider).ToArray();
var hasSet = false; var hasSet = false;
var justUpdate = false; var justUpdate = false;
ValueUpdate += delegate(object value) ValueUpdate += delegate (object value)
{ {
var hasSet2 = hasSet; var hasSet2 = hasSet;
if (!hasSet2) if (!hasSet2)
{ {
justUpdate = true; justUpdate = true;
slider.value = Convert.ToSingle(value); slider.value = Convert.ToSingle(value);
justUpdate = false; justUpdate = false;
} }
}; };
slider.onValueChanged.AddListener(delegate(float value) slider.onValueChanged.AddListener(delegate (float value)
{ {
var justUpdate2 = justUpdate; var justUpdate2 = justUpdate;
if (!justUpdate2) if (!justUpdate2)
{ {
hasSet = true; hasSet = true;
ValueUpdate(value); ValueUpdate(value);
hasSet = false; hasSet = false;
} }
}); });
} }
} }
public void Bind(Toggle toggle) public void Bind(Toggle toggle)
{ {
var flag = toggle == null; var flag = toggle == null;
if (!flag) if (!flag)
{ {
Components = Components.Append(toggle).ToArray(); Components = Components.Append(toggle).ToArray();
var hasSet = false; var hasSet = false;
var justUpdate = false; var justUpdate = false;
ValueUpdate += delegate(object value) ValueUpdate += delegate (object value)
{ {
var hasSet2 = hasSet; var hasSet2 = hasSet;
if (!hasSet2) if (!hasSet2)
{ {
justUpdate = true; justUpdate = true;
toggle.isOn = Convert.ToBoolean(value); toggle.isOn = Convert.ToBoolean(value);
justUpdate = false; justUpdate = false;
} }
}; };
toggle.onValueChanged.AddListener(delegate(bool value) toggle.onValueChanged.AddListener(delegate (bool value)
{ {
var justUpdate2 = justUpdate; var justUpdate2 = justUpdate;
if (!justUpdate2) if (!justUpdate2)
{ {
hasSet = true; hasSet = true;
ValueUpdate(value); ValueUpdate(value);
hasSet = false; hasSet = false;
} }
}); });
} }
} }
public void Bind(InputField inputField) public void Bind(InputField inputField)
{ {
var flag = inputField == null; var flag = inputField == null;
if (!flag) if (!flag)
{ {
Components = Components.Append(inputField).ToArray(); Components = Components.Append(inputField).ToArray();
var hasSet = false; var hasSet = false;
var justUpdate = false; var justUpdate = false;
ValueUpdate += delegate(object value) ValueUpdate += delegate (object value)
{ {
var hasSet2 = hasSet; var hasSet2 = hasSet;
if (!hasSet2) if (!hasSet2)
{ {
justUpdate = true; justUpdate = true;
inputField.text = string.Format("{0:f2}", value); inputField.text = string.Format("{0:f2}", value);
justUpdate = false; justUpdate = false;
} }
}; };
inputField.onValueChanged.AddListener(delegate(string value) inputField.onValueChanged.AddListener(delegate (string value)
{ {
var justUpdate2 = justUpdate; var justUpdate2 = justUpdate;
if (!justUpdate2) if (!justUpdate2)
{ {
var flag2 = value == "-" || value == ""; var flag2 = value == "-" || value == "";
if (!flag2) if (!flag2)
{ {
hasSet = true; hasSet = true;
switch (_valueType) switch (_valueType)
{ {
case EValueType.Bool: case EValueType.Bool:
ValueUpdate(Convert.ToBoolean(value)); ValueUpdate(Convert.ToBoolean(value));
break; break;
case EValueType.Int: case EValueType.Int:
ValueUpdate(Convert.ToInt32(value)); ValueUpdate(Convert.ToInt32(value));
break; break;
case EValueType.Float: case EValueType.Float:
ValueUpdate(Convert.ToSingle(value)); ValueUpdate(Convert.ToSingle(value));
break; break;
case EValueType.Double: case EValueType.Double:
ValueUpdate(Convert.ToDouble(value)); ValueUpdate(Convert.ToDouble(value));
break; break;
case EValueType.String: case EValueType.String:
ValueUpdate(value); ValueUpdate(value);
break; break;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
hasSet = false; hasSet = false;
} }
} }
}); });
} }
} }
public void BindDragControl(GameObject gameObject) public void BindDragControl(GameObject gameObject)
{ {
var startPosition = default(Vector2); var startPosition = default(Vector2);
var defaultValue = 0f; var defaultValue = 0f;
var eventTrigger = gameObject.GetComponent<EventTrigger>(); var eventTrigger = gameObject.GetComponent<EventTrigger>();
var flag = eventTrigger == null; var flag = eventTrigger == null;
if (flag) if (flag)
{ {
eventTrigger = gameObject.AddComponent<EventTrigger>(); eventTrigger = gameObject.AddComponent<EventTrigger>();
} }
var speed = 0f; var speed = 0f;
eventTrigger.Add(EventTriggerType.BeginDrag, delegate(BaseEventData edata) eventTrigger.Add(EventTriggerType.BeginDrag, delegate (BaseEventData edata)
{ {
var pointerEventData = edata as PointerEventData; var pointerEventData = edata as PointerEventData;
var flag2 = pointerEventData != null; var flag2 = pointerEventData != null;
if (flag2) if (flag2)
{ {
startPosition = pointerEventData.position; startPosition = pointerEventData.position;
defaultValue = Convert.ToSingle(Value); defaultValue = Convert.ToSingle(Value);
speed = _maxValue / Screen.width * 4f; speed = _maxValue / Screen.width * 4f;
} }
}); });
eventTrigger.Add(EventTriggerType.Drag, delegate(BaseEventData edata) eventTrigger.Add(EventTriggerType.Drag, delegate (BaseEventData edata)
{ {
var pointerEventData2 = edata as PointerEventData; var pointerEventData2 = edata as PointerEventData;
var flag3 = pointerEventData2 != null; var flag3 = pointerEventData2 != null;
if (flag3) if (flag3)
{ {
var num = (pointerEventData2.position.x - startPosition.x) * speed; var num = (pointerEventData2.position.x - startPosition.x) * speed;
ValueUpdate(defaultValue + num); ValueUpdate(defaultValue + num);
} }
}); });
} }
public static void BindDragControl(GameObject controller, UIValue<T> uiValueX, UIValue<T> uiValueY) public static void BindDragControl(GameObject controller, UIValue<T> uiValueX, UIValue<T> uiValueY)
{ {
var startPosition = default(Vector2); var startPosition = default(Vector2);
var defaultValue1 = 0f; var defaultValue1 = 0f;
var defaultValue2 = 0f; var defaultValue2 = 0f;
var eventTrigger = controller.GetComponent<EventTrigger>(); var eventTrigger = controller.GetComponent<EventTrigger>();
var flag = eventTrigger == null; var flag = eventTrigger == null;
if (flag) if (flag)
{ {
eventTrigger = controller.AddComponent<EventTrigger>(); eventTrigger = controller.AddComponent<EventTrigger>();
} }
var speed = 0f; var speed = 0f;
eventTrigger.Add(EventTriggerType.BeginDrag, delegate(BaseEventData edata) eventTrigger.Add(EventTriggerType.BeginDrag, delegate (BaseEventData edata)
{ {
var pointerEventData = edata as PointerEventData; var pointerEventData = edata as PointerEventData;
var flag2 = pointerEventData != null; var flag2 = pointerEventData != null;
if (flag2) if (flag2)
{ {
startPosition = pointerEventData.position; startPosition = pointerEventData.position;
defaultValue1 = Convert.ToSingle(uiValueX.Value); defaultValue1 = Convert.ToSingle(uiValueX.Value);
defaultValue2 = Convert.ToSingle(uiValueY.Value); defaultValue2 = Convert.ToSingle(uiValueY.Value);
speed = uiValueX._maxValue / Screen.width * 4f; speed = uiValueX._maxValue / Screen.width * 4f;
} }
}); });
eventTrigger.Add(EventTriggerType.Drag, delegate(BaseEventData edata) eventTrigger.Add(EventTriggerType.Drag, delegate (BaseEventData edata)
{ {
var pointerEventData2 = edata as PointerEventData; var pointerEventData2 = edata as PointerEventData;
var flag3 = pointerEventData2 != null; var flag3 = pointerEventData2 != null;
if (flag3) if (flag3)
{ {
var vector = (pointerEventData2.position - startPosition) * speed; var vector = (pointerEventData2.position - startPosition) * speed;
uiValueX.ValueUpdate(defaultValue1 + vector.x); uiValueX.ValueUpdate(defaultValue1 + vector.x);
uiValueY.ValueUpdate(defaultValue2 + vector.y); uiValueY.ValueUpdate(defaultValue2 + vector.y);
} }
}); });
} }
private T _value; private T _value;
private float _maxValue = 1f; private float _maxValue = 1f;
private readonly EValueType _valueType; private readonly EValueType _valueType;
public Component[] Components = new Component[0]; public Component[] Components = new Component[0];
private bool _publicValueLock = false; private bool _publicValueLock = false;
private enum EValueType private enum EValueType
{ {
Bool, Bool,
Int, Int,
Float, Float,
Double, Double,
String String
} }
} }
} }

View File

@@ -6,144 +6,144 @@ using UnityEngine.UI;
namespace XianTu.UI namespace XianTu.UI
{ {
internal class XianTuBasePanel : BasePanel internal class XianTuBasePanel : BasePanel
{ {
public override void OnEnter() public override void OnEnter()
{ {
base.OnEnter(); base.OnEnter();
UIManager = UIManager.Instance; UIManager = UIManager.Instance;
BindBaseEvent(); BindBaseEvent();
_uRect = UITool.GameObject.GetComponent<RectTransform>(); _uRect = UITool.GameObject.GetComponent<RectTransform>();
_defaultRect = _uRect.rect; _defaultRect = _uRect.rect;
} }
public UIManager UIManager { get; set; } public UIManager UIManager { get; set; }
private void BindBaseEvent() private void BindBaseEvent()
{ {
BindCloseWindowBtn(); BindCloseWindowBtn();
var eventTrigger = UITool.GameObject.AddComponent<EventTrigger>(); var eventTrigger = UITool.GameObject.AddComponent<EventTrigger>();
eventTrigger.triggers = []; eventTrigger.triggers = [];
var transform = UITool.Transform; var transform = UITool.Transform;
TriggerAdd(eventTrigger, EventTriggerType.Drag, delegate(BaseEventData x) TriggerAdd(eventTrigger, EventTriggerType.Drag, delegate (BaseEventData x)
{ {
var pointerEventData = x as PointerEventData; var pointerEventData = x as PointerEventData;
var flag = pointerEventData != null; var flag = pointerEventData != null;
if (flag) if (flag)
{ {
var vector = pointerEventData.position - _dragBias; var vector = pointerEventData.position - _dragBias;
var width = _defaultRect.width; var width = _defaultRect.width;
var height = _defaultRect.height; var height = _defaultRect.height;
switch (_dragMode) switch (_dragMode)
{ {
case EDragMode.Drag: case EDragMode.Drag:
transform.position = _sourceDragPoint + vector; transform.position = _sourceDragPoint + vector;
break; break;
case EDragMode.ScaleX: case EDragMode.ScaleX:
_uRect.sizeDelta = new Vector2(width + vector.x, height); _uRect.sizeDelta = new Vector2(width + vector.x, height);
break; break;
case EDragMode.ScaleY: case EDragMode.ScaleY:
_uRect.sizeDelta = new Vector2(width, height - vector.y); _uRect.sizeDelta = new Vector2(width, height - vector.y);
break; break;
case EDragMode.ScaleXY: case EDragMode.ScaleXY:
_uRect.sizeDelta = new Vector2(width + vector.x, height - vector.y); _uRect.sizeDelta = new Vector2(width + vector.x, height - vector.y);
break; break;
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
} }
} }
}); });
TriggerAdd(eventTrigger, EventTriggerType.PointerDown, delegate(BaseEventData x) TriggerAdd(eventTrigger, EventTriggerType.PointerDown, delegate (BaseEventData x)
{ {
var pointerEventData2 = x as PointerEventData; var pointerEventData2 = x as PointerEventData;
_sourceDragPoint = transform.position; _sourceDragPoint = transform.position;
_dragBias = pointerEventData2.position; _dragBias = pointerEventData2.position;
var position = pointerEventData2.position; var position = pointerEventData2.position;
var position2 = transform.position; var position2 = transform.position;
var num = position.x - position2.x; var num = position.x - position2.x;
var num2 = position.y - position2.y; var num2 = position.y - position2.y;
var rect = _uRect.rect; var rect = _uRect.rect;
var flag2 = rect.height - 20f < num2; var flag2 = rect.height - 20f < num2;
var flag3 = flag2; var flag3 = flag2;
if (flag3) if (flag3)
{ {
_dragMode = EDragMode.Drag; _dragMode = EDragMode.Drag;
} }
else else
{ {
var flag4 = num > rect.width - 20f; var flag4 = num > rect.width - 20f;
var flag5 = -num2 > rect.height - 20f; var flag5 = -num2 > rect.height - 20f;
var flag6 = flag4 && flag5; var flag6 = flag4 && flag5;
if (flag6) if (flag6)
{ {
_dragMode = EDragMode.ScaleXY; _dragMode = EDragMode.ScaleXY;
} }
else else
{ {
var flag7 = flag4; var flag7 = flag4;
if (flag7) if (flag7)
{ {
_dragMode = EDragMode.ScaleX; _dragMode = EDragMode.ScaleX;
} }
else else
{ {
var flag8 = flag5; var flag8 = flag5;
if (flag8) if (flag8)
{ {
_dragMode = EDragMode.ScaleY; _dragMode = EDragMode.ScaleY;
} }
else else
{ {
_dragMode = EDragMode.Drag; _dragMode = EDragMode.Drag;
} }
} }
} }
} }
}); });
} }
private void BindCloseWindowBtn() private void BindCloseWindowBtn()
{ {
var orAddComponentInChildren = UITool.GetOrAddComponentInChildren<Button>("Btn_Close"); var orAddComponentInChildren = UITool.GetOrAddComponentInChildren<Button>("Btn_Close");
var flag = orAddComponentInChildren != null; var flag = orAddComponentInChildren != null;
if (flag) if (flag)
{ {
var component = orAddComponentInChildren.gameObject.GetComponent<Button>(); var component = orAddComponentInChildren.gameObject.GetComponent<Button>();
component.onClick.AddListener(delegate component.onClick.AddListener(delegate
{ {
UIManager.SetActive(false); UIManager.SetActive(false);
}); });
} }
else else
{ {
Debug.LogError("没有找到关闭按钮"); Debug.LogError("没有找到关闭按钮");
} }
} }
private static void TriggerAdd(EventTrigger trigger, EventTriggerType eventID, UnityAction<BaseEventData> callback) private static void TriggerAdd(EventTrigger trigger, EventTriggerType eventID, UnityAction<BaseEventData> callback)
{ {
var entry = new EventTrigger.Entry(); var entry = new EventTrigger.Entry();
entry.eventID = eventID; entry.eventID = eventID;
entry.callback.AddListener(callback); entry.callback.AddListener(callback);
trigger.triggers.Add(entry); trigger.triggers.Add(entry);
} }
private Vector2 _dragBias; private Vector2 _dragBias;
private Vector2 _sourceDragPoint; private Vector2 _sourceDragPoint;
private RectTransform _uRect; private RectTransform _uRect;
private EDragMode _dragMode = EDragMode.Drag; private EDragMode _dragMode = EDragMode.Drag;
private Rect _defaultRect; private Rect _defaultRect;
private enum EDragMode private enum EDragMode
{ {
Drag, Drag,
ScaleX, ScaleX,
ScaleY, ScaleY,
ScaleXY ScaleXY
} }
} }
} }

View File

@@ -8,40 +8,40 @@ using XianTu.UI;
namespace XianTu namespace XianTu
{ {
[BepInPlugin("me.GammaChineYov.plugin.Dyson.XianTu", "XianTu", "1.0.5")] [BepInPlugin("me.GammaChineYov.plugin.Dyson.XianTu", "XianTu", "1.0.5")]
internal class XianTuPlugin : BaseUnityPlugin internal class XianTuPlugin : BaseUnityPlugin
{ {
private static KeyCode HotKey => _hotKey.Value; private static KeyCode HotKey => _hotKey.Value;
private void Awake() private void Awake()
{ {
_logger = Logger; _logger = Logger;
_hotKey = Config.Bind("config", "HotKey", KeyCode.F2, "显示UI的快捷键"); _hotKey = Config.Bind("config", "HotKey", KeyCode.F2, "显示UI的快捷键");
var abload = ABLoader.LoadFromEmbeddedAssets("xiantu"); var abload = ABLoader.LoadFromEmbeddedAssets("xiantu");
Singleton<LoadManager>.Instance.SetLoader(abload); Singleton<LoadManager>.Instance.SetLoader(abload);
Singleton<LoadManager>.Instance.AddLoader(new EmbeddedFileLoad()); Singleton<LoadManager>.Instance.AddLoader(new EmbeddedFileLoad());
UIManager = new UIManager(); UIManager = new UIManager();
UIManager.SetActive(false); UIManager.SetActive(false);
UIManager.PanelManager.Push("BlueTuPatchUI"); UIManager.PanelManager.Push("BlueTuPatchUI");
new BlueTuController(); new BlueTuController();
_logger.LogInfo("仙图加载完毕"); _logger.LogInfo("仙图加载完毕");
} }
public UIManager UIManager { get; set; } public UIManager UIManager { get; set; }
private void Update() private void Update()
{ {
var keyDown = Input.GetKeyDown(HotKey); var keyDown = Input.GetKeyDown(HotKey);
if (keyDown) if (keyDown)
{ {
UIManager.SetActive(!UIManager.ActiveSelf); UIManager.SetActive(!UIManager.ActiveSelf);
} }
} }
private static ManualLogSource _logger; private static ManualLogSource _logger;
private static ConfigEntry<KeyCode> _hotKey; private static ConfigEntry<KeyCode> _hotKey;
} }
} }

View File

@@ -5,31 +5,31 @@ using XianTu.UI;
namespace XianTu namespace XianTu
{ {
internal class XianTuTest : MonoBehaviour internal class XianTuTest : MonoBehaviour
{ {
private void Awake() private void Awake()
{ {
var abload = ABLoader.LoadFromFile("xiantu", "Assets/AB"); var abload = ABLoader.LoadFromFile("xiantu", "Assets/AB");
Singleton<LoadManager>.Instance.SetLoader(abload); Singleton<LoadManager>.Instance.SetLoader(abload);
_canvas = new UIManager(); _canvas = new UIManager();
cube = GameObject.Find("Cube"); cube = GameObject.Find("Cube");
_canvas.PanelManager.Push("BlueTuPatchUI"); _canvas.PanelManager.Push("BlueTuPatchUI");
var data = BlueTuUIData.Instance; var data = BlueTuUIData.Instance;
var trans = cube.transform; var trans = cube.transform;
BlueTuUIData.Instance.OnValueChange += delegate BlueTuUIData.Instance.OnValueChange += delegate
{ {
trans.localScale = data.Scale; trans.localScale = data.Scale;
trans.position = data.Bias; trans.position = data.Bias;
trans.eulerAngles = new Vector3(0f, data.Rotate, 0f); trans.eulerAngles = new Vector3(0f, data.Rotate, 0f);
}; };
} }
private static void LoadTest() private static void LoadTest()
{ {
var text = Path.Combine("Assets/XianTu/AB", "xiantu"); var text = Path.Combine("Assets/XianTu/AB", "xiantu");
var assetBundle = AssetBundle.LoadFromFile(text); var assetBundle = AssetBundle.LoadFromFile(text);
var allAssetNames = assetBundle.GetAllAssetNames(); var allAssetNames = assetBundle.GetAllAssetNames();
foreach (var text2 in allAssetNames) foreach (var text2 in allAssetNames)
{ {
Debug.Log("全路径: " + text2); Debug.Log("全路径: " + text2);
var text3 = text2.Substring(0, text2.IndexOf("prefabs")); var text3 = text2.Substring(0, text2.IndexOf("prefabs"));
@@ -45,24 +45,24 @@ namespace XianTu
gameObject2.name = "路径: " + text4; gameObject2.name = "路径: " + text4;
} }
} }
Debug.Log("路径streamingAssetsPath" + Application.streamingAssetsPath); Debug.Log("路径streamingAssetsPath" + Application.streamingAssetsPath);
Debug.Log("dataPath" + Application.dataPath); Debug.Log("dataPath" + Application.dataPath);
Debug.Log("persistentDataPath" + Application.persistentDataPath); Debug.Log("persistentDataPath" + Application.persistentDataPath);
} }
private void Update() private void Update()
{ {
var keyDown = Input.GetKeyDown(hotKey); var keyDown = Input.GetKeyDown(hotKey);
if (keyDown) if (keyDown)
{ {
_canvas.SetActive(!_canvas.ActiveSelf); _canvas.SetActive(!_canvas.ActiveSelf);
} }
} }
private UIManager _canvas; private UIManager _canvas;
public KeyCode hotKey = KeyCode.F2; public KeyCode hotKey = KeyCode.F2;
public GameObject cube; public GameObject cube;
} }
} }