# Boolean Node

## ⚙️ BooleanNode Class

A node that executes a custom boolean function.

> Namespace: `Esper.FeelSpeak.Graph`\
> Inherits from: `Node`\
> Type: `class`

***

### 📦 Fields

| Access   | Field           | Type                    | Description                                           |
| -------- | --------------- | ----------------------- | ----------------------------------------------------- |
| `public` | `target`        | `UnityEngine.Object`    | The target object.                                    |
| `public` | `objectType`    | `ObjectType`            | The target object type.                               |
| `public` | `sceneTargetId` | `string`                | The generated ID used to find scene targets.          |
| `public` | `typeName`      | `string`                | The name of the target type.                          |
| `public` | `memberName`    | `string`                | The name of the method, field, or property to invoke. |
| `public` | `parameters`    | `List<MethodParameter>` | A list of parameters generated for the method.        |

***

### 🔍 Properties

| Access   | Property          | Type   | Description                      |
| -------- | ----------------- | ------ | -------------------------------- |
| `public` | `HasTargetObject` | `bool` | If a target object has been set. |

***

### 🧰 Methods

| Access    | Method                                 | Returns                     | Description                                                                                                                       |
| --------- | -------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `public`  | `BooleanNode(int, Vector2)`            | -                           | Constructor that initializes the node with ID and position.                                                                       |
| `public`  | `Execute()`                            | `bool`                      | Executes the target boolean method, property or gets the target field. False is always the result if any issues were encountered. |
| `private` | `TryGetBooleanValue(object, out bool)` | `bool`                      | Attempts to get a boolean value from the target object.                                                                           |
| `private` | `UnwrapNullable(Type)`                 | `Type`                      | Unwraps nullable type.                                                                                                            |
| `public`  | `SetTargetObject(UnityEngine.Object)`  | `void`                      | Sets the target object. Only GameObject's and ScriptableObject's are supported.                                                   |
| `public`  | `SetTargetTypeName(string)`            | `void`                      | Sets the target type.                                                                                                             |
| `public`  | `SetTargetMember(FieldInfo)`           | `void`                      | Sets the target member using field info.                                                                                          |
| `public`  | `SetTargetMember(PropertyInfo)`        | `void`                      | Sets the target member using property info.                                                                                       |
| `public`  | `SetTargetMember(MethodInfo)`          | `void`                      | Sets the target member using method info.                                                                                         |
| `public`  | `GetClassName()`                       | `string`                    | Gets the class name from the typeName.                                                                                            |
| `public`  | `GetParamTypes()`                      | `Type[]`                    | Gets the parameter types as an array.                                                                                             |
| `public`  | `RebuildParameters(MethodInfo)`        | `void`                      | Rebuilds the parameter list.                                                                                                      |
| `public`  | `ConvertToParamType(Type)`             | `MethodParameter.ParamType` | Converts a type to a ParamType.                                                                                                   |
| `public`  | `IsComplete()`                         | `bool`                      | Checks if the node is complete and ready for execution.                                                                           |
| `public`  | `CreateCopy()`                         | `BooleanNode`               | Creates a copy of this node.                                                                                                      |
| `public`  | `InvokeEvent()`                        | `void`                      | Invokes the boolean node triggered event.                                                                                         |

***

### 🧩 Nested Enums

**`public enum ObjectType`**&#x20;

The target object type.

| Value              | Description            |
| ------------------ | ---------------------- |
| `GameObject`       | GameObject type.       |
| `ScriptableObject` | ScriptableObject type. |
