Signed-off-by: TRADER_FOER <lhf190@outlook.com>
This commit is contained in:
2026-06-12 16:25:52 +08:00
parent c99c10fd37
commit 4b7f25e47a
51 changed files with 449934 additions and 8525 deletions

View File

@@ -6,7 +6,6 @@ using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Ichni.NodeScript;
using Ichni.RhythmGame;
using Ichni.RhythmGame.Beatmap;
using Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse;
@@ -1135,79 +1134,5 @@ namespace Ichni.Editor
return fieldVal.Equals(targetVal);
}
#endregion
#region NodeScript Console Commands ()
/// <summary>
/// 新建 NodeScript 编辑器,从当前选中 GameElement 开始 Init
/// </summary>
public static void newNode()
{
if (NodeManager.Instance == null)
{
var prefab = EditorManager.instance.basePrefabs.NodeEditor;
if (prefab == null)
{
LogWindow.Log("NodeEditor prefab is null, check BasePrefabsCollection!", Color.red);
return;
}
var go = UnityEngine.Object.Instantiate(prefab,
EditorManager.instance.uiManager.WindowsCanvas.gameObject.transform);
var mgr = go.GetComponent<NodeManager>();
if (mgr != null && EditorManager.instance.operationManager.currentSelectedElements.Count > 0)
mgr.Init(EditorManager.instance.operationManager.currentSelectedElements[0]);
LogWindow.Log("NodeScript Editor created.", Color.green);
}
else
{
UnityEngine.Object.Destroy(NodeManager.Instance.gameObject);
LogWindow.Log("NodeScript Editor destroyed.", Color.yellow);
}
}
/// <summary>
/// 另存为指定文件名到 StreamingAssets/NodeScript/{name}.json
/// </summary>
public static void saveNode(string name)
{
if (NodeManager.Instance == null)
{
LogWindow.Log("No NodeScript Editor active. Use newNode first.", Color.red);
return;
}
NodeManager.Instance.SaveToFile(name);
LogWindow.Log($"NodeScript graph saved as {name}.", Color.green);
}
/// <summary>
/// 从 StreamingAssets/NodeScript/{name}.json 读取 NodeScript 图
/// </summary>
public static void loadNode(string name)
{
if (string.IsNullOrEmpty(name))
{
LogWindow.Log("Usage: loadNode <name> — loads StreamingAssets/NodeScript/<name>.json", Color.yellow);
return;
}
// 确保 NodeManager 存在
if (NodeManager.Instance == null)
{
var prefab = EditorManager.instance.basePrefabs.NodeEditor;
if (prefab == null)
{
LogWindow.Log("NodeEditor prefab is null, check BasePrefabsCollection!", Color.red);
return;
}
UnityEngine.Object.Instantiate(prefab,
EditorManager.instance.uiManager.WindowsCanvas.gameObject.transform);
}
NodeManager.Instance.LoadFromFile(name);
LogWindow.Log($"NodeScript graph loaded from {name}.", Color.green);
}
}
}
#endregion
}

View File

@@ -5,7 +5,6 @@ using System.IO;
using System.Linq;
using Ichni;
using Ichni.Editor;
using Ichni.NodeScript;
using Ichni.RhythmGame;
using TMPro;
using UnityEngine;
@@ -20,17 +19,6 @@ public class consoleOnMono : MonoBehaviour
StartCoroutine(read());
}
if (Keyboard.current.f3Key.wasPressedThisFrame)
{
if (NodeManager.Instance == null)
{
Instantiate(EditorManager.instance.basePrefabs.NodeEditor,
EditorManager.instance.uiManager.WindowsCanvas.gameObject.transform);
if (EditorManager.instance.operationManager.currentSelectedElements.Count > 0)
NodeManager.Instance.Init(EditorManager.instance.operationManager.currentSelectedElements[0]);
}
else Destroy(NodeManager.Instance.gameObject);
}
}
public IEnumerator read()
{