@include "base.fgd"

@PointClass base(Targetname) = event_timing_entity : "Entity for event timing and time measurement"
[
	input GetTime(integer) : "Get the execution time of a particular event."
]

@PointClass base(Targetname) = cs_headtracker : "Headtracker entity."
[
	input RawHeadPosition(vector) : "Input Gazepoint."
	input RawHeadOrientation(vector) : "Input Gazepoint."
]

@PointClass base(Targetname) = cs_send : "Entity to send messages channels to CS."
[
	input Command_CS(string) : "Send Command_CS to CS."
	input CS_Console(string) : "Send Message to CS-console (via Command_CS-IPC-channel)."
	input Script(string) : "Send Message to CS-Script (via Command_CS-IPC-channel)."
	input App(string) : "Send Message to CS-Remote-App (via Command_CS-IPC-channel)."
	input CS_Send(string) : "Input to cs_send channel (ICS full format messages)."
]

@PointClass base(Targetname)  iconsprite( "materials/sprites/vive_controller.vmt" ) = cs_vive_tracker : "Move Entities based on Vive Controllers, dont forget to call mod_vive_tracker_parent_to_player"
[
	input settracked(string) : "Set movable Object"

	controllerindex(integer) : "Controller Index" : 0

	trackedentity(target_destination) : "Target Entity" : "entity_to_move"

	thinkdelay(float) : "Think delay" : 0
]

@PointClass base(Targetname) = cs_tracker : "Move Entities based on Tracking-Data, transmitted over IPC-Channel (new version)"
[
	input settracked(string) : "Set movable Object"

	cschannel(choices) : "Quaternion IPC Channel" : "qtr_nav" =
	[
		"qtr_head" : "qtr_head (sensor1)"
		"qtr_nav" : "qtr_nav (sensor2)"
		"qtr_sensor3" : "qtr_sensor3"
		"qtr_sensor4" : "qtr_sensor4"
	]

	trackedentity(target_destination) : "Target Entity" : "entity_to_move"

	thinkdelay(float) : "Think delay" : 0
]

@PointClass base(Targetname) = cs_sensor : "Move Entities based on Tracking-Data, transmitted over IPC-Channel"
[
	input settracked(string) : "Set movable Object"

	cschannel(choices) : "Quaternion IPC Channel" : "qtr_nav" =
	[
		"qtr_head" : "qtr_head (sensor1)"
		"qtr_nav" : "qtr_nav (sensor2)"
		"qtr_sensor3" : "qtr_sensor3"
		"qtr_sensor4" : "qtr_sensor4"
	]

	trackedentity(target_destination) : "Target Entity" : "entity_to_move"

	thinkdelay(float) : "Think delay" : 0
]

@PointClass base(Targetname) = cs_chan_in : "Read 7 Double CS Channel"
[
	cschannel(string) : "Channel" : "Channel"
	thinkdelay(float) : "think delay" : 0
]

@PointClass base(Targetname) = cs_adapter_originprint : "Route Output from cs_chan_in"
[
	src(target_destination) : "SRC" : "A"
	dst(target_destination) : "DST" : "B"

	src_chan_0(integer) : "print x" : -1
	src_chan_1(integer) : "print y" : -1
	src_chan_2(integer) : "print z" : -1
]

@PointClass base(Targetname) = cs_adapter_color : "Route Output from cs_chan_in"
[
	src(target_destination) : "Source entity" : "A"
	dst(target_destination) : "Target entity" : "B"

	src_chan_0(integer) : "Channel for Red" : -1
	src_chan_1(integer) : "Channel for Green" : -1
	src_chan_2(integer) : "Channel for Blue" : -1
	src_chan_3(integer) : "Channel for Brightness" : -1
]

@PointClass base(Targetname) iconsprite( "materials/sprites/birdflock.vmt" ) = cs_birdflock : "Flock of birds entity."
[
	input Enable(void) : "Enable flock movement."
	input Disable(void) : "Disable flock movement."
	
	active(choices) : "Enabled" : "1" : "Start enabled or disabled. You can use the Enable/Disable Inputs." = 
	[
		0 : "No"
		1 : "Yes"
	]

	maxFlySpeed(float) : "Max Fly Speed" : 250 : "220 is default speed of a crow, 250 is recommended to keep up with the leader."
	minDist(float) : "Min Dist to Avoid" : 100 : "Birds will try to avoid lower distances to other birds in the flock."

	leader(target_destination) : "Leader" : : "Leader bird to follow. This bird should usually follow a path."
	
	bird0(target_destination) : "Bird0" : : "Follower bird for simulated flocking."
	bird1(target_destination) : "Bird1" : : "Follower bird for simulated flocking."
	bird2(target_destination) : "Bird2" : : "Follower bird for simulated flocking."
	bird3(target_destination) : "Bird3" : : "Follower bird for simulated flocking."
	bird4(target_destination) : "Bird4" : : "Follower bird for simulated flocking."
	bird5(target_destination) : "Bird5" : : "Follower bird for simulated flocking."
	bird6(target_destination) : "Bird6" : : "Follower bird for simulated flocking."
	bird7(target_destination) : "Bird7" : : "Follower bird for simulated flocking."
	bird8(target_destination) : "Bird8" : : "Follower bird for simulated flocking."
	bird9(target_destination) : "Bird9" : : "Follower bird for simulated flocking."
	
	bird10(target_destination) : "Bird10" : : "Follower bird for simulated flocking."
	bird11(target_destination) : "Bird11" : : "Follower bird for simulated flocking."
	bird12(target_destination) : "Bird12" : : "Follower bird for simulated flocking."
	bird13(target_destination) : "Bird13" : : "Follower bird for simulated flocking."
	bird14(target_destination) : "Bird14" : : "Follower bird for simulated flocking."
	bird15(target_destination) : "Bird15" : : "Follower bird for simulated flocking."
	bird16(target_destination) : "Bird16" : : "Follower bird for simulated flocking."
	bird17(target_destination) : "Bird17" : : "Follower bird for simulated flocking."
	bird18(target_destination) : "Bird18" : : "Follower bird for simulated flocking."
	bird19(target_destination) : "Bird19" : : "Follower bird for simulated flocking."
	
	bird20(target_destination) : "Bird20" : : "Follower bird for simulated flocking."
	bird21(target_destination) : "Bird21" : : "Follower bird for simulated flocking."
	bird22(target_destination) : "Bird22" : : "Follower bird for simulated flocking."
	bird23(target_destination) : "Bird23" : : "Follower bird for simulated flocking."
	bird24(target_destination) : "Bird24" : : "Follower bird for simulated flocking."
	bird25(target_destination) : "Bird25" : : "Follower bird for simulated flocking."
	bird26(target_destination) : "Bird26" : : "Follower bird for simulated flocking."
	bird27(target_destination) : "Bird27" : : "Follower bird for simulated flocking."
	bird28(target_destination) : "Bird28" : : "Follower bird for simulated flocking."
	bird29(target_destination) : "Bird29" : : "Follower bird for simulated flocking."
	
	bird30(target_destination) : "Bird30" : : "Follower bird for simulated flocking."
	bird31(target_destination) : "Bird31" : : "Follower bird for simulated flocking."

]