<?xml version="1.0" encoding="UTF-8" ?>
<class name="LimboUtility" inherits="Object" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../doc/class.xsd">
	<brief_description>
		Helper functions for LimboAI.
	</brief_description>
	<description>
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="decorate_output_var" qualifiers="const">
			<return type="String" />
			<param index="0" name="variable" type="String" />
			<description>
				Just like [method decorate_var], produces a string with a [Blackboard] variable name that is formatted for display, and also adds an additional symbol to indicate that the variable is used as an output.
			</description>
		</method>
		<method name="decorate_var" qualifiers="const">
			<return type="String" />
			<param index="0" name="variable" type="String" />
			<description>
				Produces a string with a [Blackboard] variable name that is formatted for display or console output.
			</description>
		</method>
		<method name="get_check_operator_string" qualifiers="const">
			<return type="String" />
			<param index="0" name="check" type="int" enum="LimboUtility.CheckType" />
			<description>
				Returns an operator string for a [enum CheckType] enum value. For example, [constant CHECK_EQUAL] returns "==".
			</description>
		</method>
		<method name="get_operation_string" qualifiers="const">
			<return type="String" />
			<param index="0" name="operation" type="int" enum="LimboUtility.Operation" />
			<description>
				Returns a string representation of an [enum Operation] enum value.
			</description>
		</method>
		<method name="get_status_name" qualifiers="const">
			<return type="String" />
			<param index="0" name="status" type="int" />
			<description>
				Returns a name of a [BTTask] status code.
			</description>
		</method>
		<method name="get_task_icon" qualifiers="const">
			<return type="Texture2D" />
			<param index="0" name="class_or_script_path" type="String" />
			<description>
				Returns the icon texture associated with a task based on its class name or script resource path.
			</description>
		</method>
		<method name="perform_check">
			<return type="bool" />
			<param index="0" name="check" type="int" enum="LimboUtility.CheckType" />
			<param index="1" name="a" type="Variant" />
			<param index="2" name="b" type="Variant" />
			<description>
				Performs a [param check] on two values, [param a] and [param b], and returns [code]true[/code] if the check passes.
			</description>
		</method>
		<method name="perform_operation">
			<return type="Variant" />
			<param index="0" name="operation" type="int" enum="LimboUtility.Operation" />
			<param index="1" name="a" type="Variant" />
			<param index="2" name="b" type="Variant" />
			<description>
				Performs an [param operation] on two values, [param a] and [param b], and returns the result.
			</description>
		</method>
	</methods>
	<constants>
		<constant name="CHECK_EQUAL" value="0" enum="CheckType">
			Equality Check.
		</constant>
		<constant name="CHECK_LESS_THAN" value="1" enum="CheckType">
			Less Than Check.
		</constant>
		<constant name="CHECK_LESS_THAN_OR_EQUAL" value="2" enum="CheckType">
			Less Than or Equal To Check.
		</constant>
		<constant name="CHECK_GREATER_THAN" value="3" enum="CheckType">
			Greater Than Check.
		</constant>
		<constant name="CHECK_GREATER_THAN_OR_EQUAL" value="4" enum="CheckType">
			Greater Than or Equal To Check
		</constant>
		<constant name="CHECK_NOT_EQUAL" value="5" enum="CheckType">
			Inequality Check.
		</constant>
		<constant name="OPERATION_NONE" value="0" enum="Operation">
			No operation.
		</constant>
		<constant name="OPERATION_ADDITION" value="1" enum="Operation">
			Arithmetic addition.
		</constant>
		<constant name="OPERATION_SUBTRACTION" value="2" enum="Operation">
			Arithmetic subtraction.
		</constant>
		<constant name="OPERATION_MULTIPLICATION" value="3" enum="Operation">
			Arithmetic multiplication.
		</constant>
		<constant name="OPERATION_DIVISION" value="4" enum="Operation">
			Arithmetic division.
		</constant>
		<constant name="OPERATION_MODULO" value="5" enum="Operation">
			Produces the remainder of an integer division.
		</constant>
		<constant name="OPERATION_POWER" value="6" enum="Operation">
			Multiply [code]a[/code] by itself [code]b[/code] times.
		</constant>
		<constant name="OPERATION_BIT_SHIFT_LEFT" value="7" enum="Operation">
			Bitwise left shift.
		</constant>
		<constant name="OPERATION_BIT_SHIFT_RIGHT" value="8" enum="Operation">
			Bitwise right shift.
		</constant>
		<constant name="OPERATION_BIT_AND" value="9" enum="Operation">
			Bitwise AND.
		</constant>
		<constant name="OPERATION_BIT_OR" value="10" enum="Operation">
			Bitwise OR.
		</constant>
		<constant name="OPERATION_BIT_XOR" value="11" enum="Operation">
			Bitwise XOR.
		</constant>
	</constants>
</class>
