70 lines
2.4 KiB
C#
70 lines
2.4 KiB
C#
|
using FIMSpace.Generating.Planning.PlannerNodes;
|
|||
|
using FIMSpace.Graph;
|
|||
|
#if UNITY_EDITOR
|
|||
|
using FIMSpace.FEditor;
|
|||
|
using UnityEditor;
|
|||
|
#endif
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace FIMSpace.Generating.Planning.ModNodes.ModGenerating
|
|||
|
{
|
|||
|
|
|||
|
public class MR_TileDesigner : PlannerRuleBase
|
|||
|
{
|
|||
|
public override string GetDisplayName(float maxWidth = 120) { return wasCreated ? " Tile Designer" : "Tile Designer"; }
|
|||
|
public override string GetNodeTooltipDescription { get { return "Using Tile Designer to generate game object which can be used to be applied to some spawn"; } }
|
|||
|
public override Color GetNodeColor() { return new Color(0.9f, 0.4f, 0.4f, 0.9f); }
|
|||
|
public override bool IsFoldable { get { return false; } }
|
|||
|
public override Vector2 NodeSize { get { return new Vector2(218, _EditorFoldout ? 102 : 104); } }
|
|||
|
public override bool DrawInputConnector { get { return false; } }
|
|||
|
public override bool DrawOutputConnector { get { return false; } }
|
|||
|
public override EPlannerNodeType NodeType { get { return EPlannerNodeType.WholeFieldPlacement; } }
|
|||
|
|
|||
|
[HideInInspector] public TileDesign Design;
|
|||
|
private GameObject generatedDesign = null;
|
|||
|
public PGGUniversalPort Generated;
|
|||
|
|
|||
|
bool generated = false;
|
|||
|
|
|||
|
public override void OnCustomPrepare()
|
|||
|
{
|
|||
|
generated = false;
|
|||
|
}
|
|||
|
|
|||
|
public override void OnStartReadingNode()
|
|||
|
{
|
|||
|
Generated.Variable.SetValue(generatedDesign);
|
|||
|
|
|||
|
if (generated) return;
|
|||
|
|
|||
|
var grid = MG_Grid;
|
|||
|
if (grid == null) return;
|
|||
|
|
|||
|
if (generatedDesign) { FGenerators.DestroyObject(generatedDesign); }
|
|||
|
|
|||
|
Design.FullGenerateStack();
|
|||
|
generatedDesign = Design.GeneratePrefab();
|
|||
|
|
|||
|
generatedDesign.transform.position = new Vector3(10000, -10000, 10000);
|
|||
|
generatedDesign.hideFlags = HideFlags.HideAndDontSave;
|
|||
|
|
|||
|
Generated.Variable.SetValue(generatedDesign);
|
|||
|
generated = true;
|
|||
|
}
|
|||
|
|
|||
|
#if UNITY_EDITOR
|
|||
|
//SerializedProperty sp = null;
|
|||
|
public override void Editor_OnNodeBodyGUI(ScriptableObject setup)
|
|||
|
{
|
|||
|
base.Editor_OnNodeBodyGUI(setup);
|
|||
|
|
|||
|
if (GUILayout.Button(new GUIContent(" Open Tile Designer", FGUI_Resources.Tex_GearSetup), FGUI_Resources.ButtonStyle, GUILayout.Height(24)))
|
|||
|
{
|
|||
|
TileDesignerWindow.Init(Design, this);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
}
|
|||
|
}
|