import "networkbasetypes.proto";

option cc_generic_services = false;

message ChangeMapToolEvent {
	optional string mapname = 1;
}

message TraceRayServerToolEvent {
	optional .CMsgVector start = 1;
	optional .CMsgVector end = 2;
}

message ToolTraceRayResult {
	optional bool hit = 1;
	optional .CMsgVector impact = 2;
	optional .CMsgVector normal = 3;
	optional float distance = 4;
	optional float fraction = 5;
	optional int32 ehandle = 6;
}

message SpawnEntityToolEvent {
	optional bytes entity_keyvalues = 1;
	optional bool clientsideentity = 2;
}

message SpawnEntityToolEventResult {
	optional int32 ehandle = 1;
}

message DestroyEntityToolEvent {
	optional int32 ehandle = 1;
}

message DestroyAllEntitiesToolEvent {
}

message RestartMapToolEvent {
}

message ToolEvent_GetEntityInfo {
	optional int32 ehandle = 1;
	optional bool clientsideentity = 2;
}

message ToolEvent_GetEntityInfoResult {
	optional string cppclass = 1 [default = "shithead"];
	optional string classname = 2;
	optional string name = 3;
	optional .CMsgVector origin = 4;
	optional .CMsgVector mins = 5;
	optional .CMsgVector maxs = 6;
}

message ToolEvent_GetEntityInputs {
	optional int32 ehandle = 1;
	optional bool clientsideentity = 2;
}

message ToolEvent_GetEntityInputsResult {
	repeated string input_list = 1;
}

message ToolEvent_FireEntityInput {
	optional int32 ehandle = 1;
	optional bool clientsideentity = 2;
	optional string input_name = 3;
	optional string input_param = 4;
}

message ToolEvent_SFMRecordingStateChanged {
	optional bool isrecording = 1;
}

message ToolEvent_SFMToolActiveStateChanged {
	optional bool isactive = 1;
}
