EVERYTHING
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "NewNode", menuName = "Block Space/Nodes/Node Definition")]
|
||||
public class NodeDefinition : ScriptableObject
|
||||
{
|
||||
[Header("Ports")]
|
||||
public List<NodePortDefinition> InputPorts = new List<NodePortDefinition>();
|
||||
|
||||
public List<NodePortDefinition> OutputPorts = new List<NodePortDefinition>();
|
||||
|
||||
public string NodeName => base.name;
|
||||
|
||||
public string BehaviorClassName => GetSanitizedBehaviorBaseName(base.name) + "Behavior";
|
||||
|
||||
public NodeBoardSize GetBoardSize()
|
||||
{
|
||||
int num = Mathf.Max(InputPorts.Count, OutputPorts.Count);
|
||||
if (num <= 3)
|
||||
{
|
||||
return NodeBoardSize.Small;
|
||||
}
|
||||
if (num <= 4)
|
||||
{
|
||||
return NodeBoardSize.Medium;
|
||||
}
|
||||
if (num <= 5)
|
||||
{
|
||||
return NodeBoardSize.Large;
|
||||
}
|
||||
return NodeBoardSize.ExtraLarge;
|
||||
}
|
||||
|
||||
private static string GetSanitizedBehaviorBaseName(string sourceName)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(sourceName))
|
||||
{
|
||||
return "Node";
|
||||
}
|
||||
StringBuilder stringBuilder = new StringBuilder(sourceName.Length);
|
||||
foreach (char c in sourceName)
|
||||
{
|
||||
if (char.IsLetterOrDigit(c) || c == '_')
|
||||
{
|
||||
stringBuilder.Append(c);
|
||||
}
|
||||
}
|
||||
if (stringBuilder.Length <= 0)
|
||||
{
|
||||
return "Node";
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user