AiMalgam Core 1.1.0
API documentation for the generic Unity3D AI System
Public Member Functions | Protected Member Functions | Protected Attributes | Properties | List of all members
NikosAssets.AiMalgam.AiEditor.AiMalgamNodeGraphEditor Class Reference

Public Member Functions

override Node CopyNode (Node original)
 
override Node CreateNode (Type type, Vector2 position)
 
override bool PositionIsOnGraphGrid (Vector2 pos)
 
override bool ConfirmIsOnGrid (Event e)
 
override void OnDropObjects (UnityEngine.Object[] objects)
 
override void AddContextMenuItems (GenericMenu menu, Type compatibleType=null, NodePort autoConnectToInputPort=null, NodePort.IO direction=NodePort.IO.Input)
 
override void ShowPortContextMenu (NodePort hoveredPort)
 
override string GetNodeMenuName (Type type)
 
override int GetNodeMenuOrder (Type type)
 The order by which the menu items are displayed.
 
override void OnEnable ()
 
override void OnOpen ()
 
override void OnClose ()
 
override void OnDisable ()
 
override void OnWindowFocus ()
 
override void OnGUI ()
 

Protected Member Functions

virtual bool DoesTargetMatchSelectionsGraph (NodeGraph graphFromDecSys, List< NodeGraph > subGraphsFound)
 
virtual void OnPrepareNextDecision ()
 
virtual void OnDecisionMade (AiMalgamDecision decision)
 
virtual void TraverseDecision (AiMalgamDecision decision)
 
virtual void ResetActiveNodeVisuals (bool repaint=true, bool updateEntity=true, bool direct=false)
 
virtual void AddExistingNode (Node existingNode, Vector2 pos)
 
virtual void NodeObjectPicker (string filter="")
 
virtual void OnSelectionChanged ()
 
virtual void OnEditorPlayModeStateChanged (PlayModeStateChange stateChange)
 
virtual void LoadMissingInputs ()
 Loads missing node (input) connections into the graph, checking each current graph node
 
virtual void LoadMissingInputsForNode (Node hostNode)
 Loads missing node (input) connections into the graph
 
virtual void CreateMissingConnectionsOfInputs (Node hostNode, Node.NodeToGraphContainer hostNodeContainer, NodePort inputPort, object[] connectionsOfInputPort)
 If an input field has a value innit but no connection, try to drag the value into the graph and connect it More...
 
virtual void InitAssetsTypes ()
 
virtual void InitStyles ()
 
virtual void DrawNodeInspector ()
 
virtual void DrawAssignedDeciders ()
 
virtual void DrawNodesList ()
 
virtual void DrawRequiredEnginesForActionSettings ()
 
virtual void DrawRequiredDescriptorsForConditionSettings ()
 
virtual void DrawGraphInspector ()
 
virtual void DrawAssetsChunk (string title, List< AiMalgamGEditorSettingType > types)
 
virtual void DrawAssetsInspector ()
 
virtual void DrawFloatingMiniGraphContainer ()
 
virtual void DrawGraphInspectorBody ()
 
virtual void DrawGraphInspectorsContainer ()
 

Protected Attributes

Editor _customInspectorEditor
 
Vector2 _customInspectorScrollPos
 
Vector2 _graphInspectorNodesListScrollPos
 
Vector2 _graphInspectorEnginesListScrollPos
 
Vector2 _graphInspectorDescriptorListScrollPos
 
Vector2 _lastMousePos = Vector2.right * 1000
 The stored mousepos of the current Event, since Unity stores a wrong one on non Mouse Event Types
 
AiMalgamNodeGraph _aiNodeGraph
 
readonly List< AiMalgamNode_draggedNodes = new List<AiMalgamNode>()
 
bool _objectPickerAddNode
 
NodePort _autoConnectPortOnObjectPicked
 
TimingHelper _timingHelper = new TimingHelper(TimingHelper.TimerType.MilliSeconds, new Vector2(30,30))
 
AiMalgamBaseDecisionSystem _selectedDecisionSystem
 
Dictionary< string, List< AiMalgamGEditorSettingType > > _settingTypesOfInterfacesToDisplay = new Dictionary<string, List<AiMalgamGEditorSettingType>>()
 
readonly List< AiMalgamGEditorSettingType_nodesInGraphList = new List<AiMalgamGEditorSettingType>()
 
AiMalgamEditorStyles.IAiMalgamTheme _aiMalgamTheme
 
bool _reloadStyles = true
 
Rect _graphInspectorRect
 
Rect _headerRect
 
Rect _bodyRect
 
string _tabHeaderLabel = "Manage Assets"
 
GUIContent _editIconGUIContent
 
GUIContent _addBoxIconGUIContent
 
GUIContent _searchIconGUIContent
 
GUIContent _chevronLeftIcon
 
GUIContent _chevronRightIcon
 
GUIContent _findFileIcon
 
GUIContent _toggleButtonContent = new GUIContent()
 
GUIContent _graphInspectorToolbarGUIContent
 
GUIContent _nodeInspectorToolbarGUIContent
 
GUIContent _assetsToolbarGUIContent
 
GUIStyle _assetItemTextStyle
 
GUIStyle _assetItemIconStyle
 
GUIStyle _graphHeaderStyle
 
GUIStyle _graphBodyStyle
 
AlternatingListStyleHelper _alternatingListStyleHelper
 

Properties

AiMalgamNodeGraph AINodeGraph [get, protected set]
 
AiMalgamBaseDecisionSystem SelectedDecisionSystem [get]
 
virtual int GraphInspectorWidth [get]
 
virtual int TabSpacing [get]
 
virtual int TabSpacingHalf [get]
 
int ListItemHeight [get]
 
int ListItemIconHeight [get]
 

Member Function Documentation

◆ CreateMissingConnectionsOfInputs()

virtual void NikosAssets.AiMalgam.AiEditor.AiMalgamNodeGraphEditor.CreateMissingConnectionsOfInputs ( Node  hostNode,
Node.NodeToGraphContainer  hostNodeContainer,
NodePort  inputPort,
object[]  connectionsOfInputPort 
)
protectedvirtual

If an input field has a value innit but no connection, try to drag the value into the graph and connect it

Parameters
hostNode
hostNodeContainer
inputPort
connectionsOfInputPort