50 lines
1.9 KiB
C#
50 lines
1.9 KiB
C#
using FIMSpace.Generating.Checker;
|
|
using FIMSpace.Graph;
|
|
using UnityEngine;
|
|
|
|
// !!!!! NAMESPACE IS DEFINING PATH TO THE NODE IN GRAP NODE CREATION MENU
|
|
namespace FIMSpace.Generating.Planning.PlannerNodes.CustomNodes
|
|
{
|
|
|
|
public class BPNode_RectShape : PlannerRuleBase
|
|
{
|
|
public override string GetDisplayName(float maxWidth = 120) { return "Rect Shape"; }
|
|
public override string GetNodeTooltipDescription { get { return "Your custom tooltip which will appear after entering on the node header"; } }
|
|
public override Color GetNodeColor() { return new Color(0.2f, 0.72f, 0.9f, 0.9f); }
|
|
|
|
|
|
// Enable connectors if you will use node 'Execute()' override
|
|
public override bool DrawInputConnector { get { return false; } }
|
|
public override bool DrawOutputConnector { get { return false; } }
|
|
|
|
|
|
// You need to adjust node size manually!
|
|
public override Vector2 NodeSize { get { return new Vector2(230, 104); } }
|
|
|
|
|
|
// Basic exmaple ports
|
|
public Vector2Int Size;
|
|
[Port(EPortPinType.Output, EPortValueDisplay.HideValue, 1)] public PGGPlannerPort Shape;
|
|
|
|
|
|
// HERE PUT CODE FOR NODES WHICH ARE NOT EXECUTED BUT ONLY ARE
|
|
// GIVING ACCESS TO SOME VARIABLES WITH OUTPUT NODE PORTS
|
|
// EXECUTE() IS NOT NEEDED WHEN YOU'RE NOT USING TOP/BOTTOM CONNECTORS
|
|
public override void OnStartReadingNode()
|
|
{
|
|
var currentPlannerExecuting = CurrentExecutingPlanner;
|
|
if (currentPlannerExecuting == null) return;
|
|
|
|
CheckerField3D checker = new CheckerField3D();
|
|
checker.SetSize(Size.x, 1, Size.y);
|
|
checker.CenterizeOrigin();
|
|
|
|
checker.RootScale = currentPlannerExecuting.LatestChecker.RootScale;
|
|
checker.RootPosition = currentPlannerExecuting.LatestChecker.RootPosition;
|
|
|
|
Shape.Output_Provide_Checker(checker);
|
|
}
|
|
|
|
}
|
|
}
|