Flowgraph Plugin - Iterator1
Author: Kevin "Cry-Vlok" Kirst
RenEvo Sofware & Designs
http://www.renevo.com/

Version: 1.0.1.2
Date: August 27, 2008

------------------------------------------------------------------------------
- 1. About
------------------------------------------------------------------------------
This Plugin adds four (4) custom Flowgraph Nodes that allow you to iterate through
a dynamic list of entities generated at runtime given some search criteria.
Each of the entites found are outputted through the same line, allowing you to
execute the same set of Flowgraph logic on each returned entity.

------------------------------------------------------------------------------
- 2. Usage
------------------------------------------------------------------------------
To use this Plugin you will need to have installed the Flowgraph Plugin System
into your Crysis mod folder. Extract the Plugin Dll into your FGPlugins' bin32 and bin64
folders, according to the Dll version. Note that the Plugin's installer will
correctly copy the Plugin Dll files to the right folders. Once copied, just launch
your mod in the Sandbox Editor and the included nodes will appear in the Flowgraph
Editor.

------------------------------------------------------------------------------
- 3. Node Definitions
------------------------------------------------------------------------------
Name:		Iterator:GetEntitiesInSphere

Purpose: 	Generates a list of entities contained in the defined sphere.

In:		Start - (Any) Call to generate the list and start iterating.
		Next - (Any) Call to get the next entity in the list.
		Limit - (Int) Limit how many entities are put in the list.
		Immediate - (Bool) TRUE to iterate through immediately.
		Type - (Enum) Specify which types of entities to gather.
		Center - (Vec3) Center point of the sphere.
		Range - (Float) Range i.e., radius of the sphere.

Out:		Entity - (EntityId) Next entity in the list.
		Count - (Int) Current count of iteration.
		Done - (Int) Called when last entity is returned, total count.

Remarks:	Limit allows you to control how many entities are gathered into
		the generated list. A limit of '0' means "give me all."

		Immediate means you want to have all of the entities found to
		be outputted right after you call Start. This is a shortcut to
		avoid having to call Next each time you want to handle the next
		entity in the list.



Name:		Iterator:GetEntitiesInBox

Purpose: 	Generates a list of entities contained in the defined AABB.

In:		Start - (Any) Call to generate the list and start iterating.
		Next - (Any) Call to get the next entity in the list.
		Limit - (Int) Limit how many entities are put in the list.
		Immediate - (Bool) TRUE to iterate through immediately.
		Type - (Enum) Specify which types of entities to gather.
		Min - (Vec3) Minimum point of AABB.
		MaX - (Vec3) Maximum point of AABB.

Out:		Entity - (EntityId) Next entity in the list.
		Count - (Int) Current count of iteration.
		Done - (Int) Called when last entity is returned, total count.

Remarks:	Limit allows you to control how many entities are gathered into
		the generated list. A limit of '0' means "give me all."

		Immediate means you want to have all of the entities found to
		be outputted right after you call Start. This is a shortcut to
		avoid having to call Next each time you want to handle the next
		entity in the list.



Name:		Iterator:GetEntitiesInArea

Purpose: 	Generates a list of entities contained in the defined shape.

In:		Start - (Any) Call to generate the list and start iterating.
		Next - (Any) Call to get the next entity in the list.
		Limit - (Int) Limit how many entities are put in the list.
		Immediate - (Bool) TRUE to iterate through immediately.
		Type - (Enum) Specify which types of entities to gather.
		Area - (String) Name of the shape.

Out:		Entity - (EntityId) Next entity in the list.
		Count - (Int) Current count of iteration.
		Done - (Int) Called when last entity is returned, total count.

Remarks:	Limit allows you to control how many entities are gathered into
		the generated list. A limit of '0' means "give me all."

		Immediate means you want to have all of the entities found to
		be outputted right after you call Start. This is a shortcut to
		avoid having to call Next each time you want to handle the next
		entity in the list.

		For the area, you can use either a Shape, AreaBox or AreaSphere.



Name:		Iterator:GetEntities

Purpose: 	Generates a list of all the entities in the world.

In:		Start - (Any) Call to generate the list and start iterating.
		Next - (Any) Call to get the next entity in the list.
		Limit - (Int) Limit how many entities are put in the list.
		Immediate - (Bool) TRUE to iterate through immediately.
		Type - (Enum) Specify which types of entities to gather.

Out:		Entity - (EntityId) Next entity in the list.
		Count - (Int) Current count of iteration.
		Done - (Int) Called when last entity is returned, total count.

Remarks:	Limit allows you to control how many entities are gathered into
		the generated list. A limit of '0' means "give me all."

		Immediate means you want to have all of the entities found to
		be outputted right after you call Start. This is a shortcut to
		avoid having to call Next each time you want to handle the next
		entity in the list.

		Be careful with this one! A large list can be resource intensive
		to iterate through!

------------------------------------------------------------------------------
- 4. Contact
------------------------------------------------------------------------------
Name: Kevin "Cry-Vlok" Kirst
Email: kkirst@gmail.com
