227 lines
6.2 KiB
Protocol Buffer
227 lines
6.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
package dcs.coalition.v0;
|
|
import "dcs/common/v0/common.proto";
|
|
option csharp_namespace = "RurouniJones.Dcs.Grpc.V0.Coalition";
|
|
option go_package = "github.com/DCS-gRPC/go-bindings/dcs/v0/coalition";
|
|
|
|
// https://wiki.hoggitworld.com/view/DCS_singleton_coalition
|
|
service CoalitionService {
|
|
// https://wiki.hoggitworld.com/view/DCS_func_addGroup
|
|
rpc AddGroup(AddGroupRequest) returns (AddGroupResponse) {}
|
|
|
|
// https://wiki.hoggitworld.com/view/DCS_func_getStaticObjects
|
|
rpc GetStaticObjects(GetStaticObjectsRequest)
|
|
returns (GetStaticObjectsResponse) {}
|
|
|
|
// Focussed on statics (linked statics - see `AddLinkedStatic`)
|
|
// https://wiki.hoggitworld.com/view/DCS_func_addStaticObject
|
|
rpc AddStaticObject(AddStaticObjectRequest)
|
|
returns (AddStaticObjectResponse) {}
|
|
|
|
// Focussed on properties relevant to linked static objects
|
|
// https://wiki.hoggitworld.com/view/DCS_func_addStaticObject
|
|
rpc AddLinkedStatic(AddLinkedStaticRequest)
|
|
returns (AddLinkedStaticResponse) {}
|
|
|
|
// https://wiki.hoggitworld.com/view/DCS_func_getGroups
|
|
rpc GetGroups(GetGroupsRequest) returns (GetGroupsResponse) {}
|
|
|
|
/*
|
|
* Get the Bullseye for the coalition
|
|
*
|
|
* This position is set at mission start and does not change for the duration
|
|
* of the mission.
|
|
*
|
|
* See https://wiki.hoggitworld.com/view/DCS_func_getMainRefPoint for more
|
|
* details
|
|
*/
|
|
rpc GetBullseye(GetBullseyeRequest) returns (GetBullseyeResponse) {}
|
|
|
|
// https://wiki.hoggitworld.com/view/DCS_func_getPlayers
|
|
rpc GetPlayerUnits(GetPlayerUnitsRequest) returns (GetPlayerUnitsResponse) {}
|
|
}
|
|
|
|
message AddGroupRequest {
|
|
// The coalition is determined by the provided Country
|
|
// and the coalition setup of the mission
|
|
dcs.common.v0.Country country = 2;
|
|
dcs.common.v0.GroupCategory group_category = 3;
|
|
oneof template {
|
|
GroundGroupTemplate ground_template = 4;
|
|
ShipGroupTemplate ship_template = 5;
|
|
HelicopterGroupTemplate helicopter_template = 6;
|
|
PlaneGroupTemplate plane_template = 7;
|
|
}
|
|
|
|
message GroundGroupTemplate {
|
|
optional uint32 group_id = 1;
|
|
bool hidden = 2;
|
|
bool late_activation = 3;
|
|
string name = 4;
|
|
dcs.common.v0.InputPosition position = 5;
|
|
repeated Point waypoints = 6;
|
|
uint32 start_time = 7;
|
|
string task = 8;
|
|
bool task_selected = 9;
|
|
repeated Task tasks = 10;
|
|
bool uncontrollable = 11;
|
|
repeated GroundUnitTemplate units = 12;
|
|
bool visible = 13;
|
|
}
|
|
message GroundUnitTemplate {
|
|
string name = 1;
|
|
string type = 2;
|
|
dcs.common.v0.InputPosition position = 3;
|
|
optional uint32 unit_id = 4;
|
|
optional uint32 heading = 5;
|
|
Skill skill = 6;
|
|
}
|
|
|
|
message ShipGroupTemplate {
|
|
}
|
|
message ShipUnitTemplate {
|
|
}
|
|
|
|
message HelicopterGroupTemplate {
|
|
}
|
|
message HelicopterUnitTemplate {
|
|
}
|
|
|
|
message PlaneGroupTemplate {
|
|
}
|
|
message PlaneUnitTemplate {
|
|
}
|
|
|
|
message Point {
|
|
enum AltitudeType {
|
|
ALTITUDE_TYPE_UNSPECIFIED = 0;
|
|
ALTITUDE_TYPE_BAROMETRIC = 1;
|
|
ALTITUDE_TYPE_RADIO = 2;
|
|
}
|
|
|
|
enum PointType {
|
|
// protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH
|
|
POINT_TYPE_RANDOM = 0;
|
|
POINT_TYPE_TAKEOFF = 1;
|
|
POINT_TYPE_TAKEOFF_PARKING = 2;
|
|
POINT_TYPE_TURNING_POINT = 3;
|
|
POINT_TYPE_TAKEOFF_PARKING_HOT = 4;
|
|
POINT_TYPE_LAND = 5;
|
|
}
|
|
|
|
dcs.common.v0.InputPosition position = 1;
|
|
AltitudeType altitude_type = 2;
|
|
PointType type = 3;
|
|
string action = 4;
|
|
string form = 5;
|
|
double speed = 6;
|
|
}
|
|
|
|
enum Skill {
|
|
// protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH
|
|
SKILL_RANDOM = 0;
|
|
SKILL_AVERAGE = 1;
|
|
SKILL_GOOD = 2;
|
|
SKILL_HIGH = 3;
|
|
SKILL_EXCELLENT = 4;
|
|
SKILL_PLAYER = 5;
|
|
}
|
|
|
|
message Task {
|
|
}
|
|
}
|
|
|
|
message AddGroupResponse {
|
|
dcs.common.v0.Group group = 1;
|
|
}
|
|
|
|
message GetStaticObjectsRequest {
|
|
// the coalition which the statics belong to
|
|
dcs.common.v0.Coalition coalition = 1;
|
|
}
|
|
|
|
message GetStaticObjectsResponse {
|
|
// the list of statics
|
|
repeated dcs.common.v0.Static statics = 1;
|
|
}
|
|
|
|
message AddStaticObjectRequest {
|
|
// the name of the static; must be unique or would destroy previous object
|
|
string name = 1;
|
|
// country the unit belongs to
|
|
dcs.common.v0.Country country = 2;
|
|
// type of the static object (e.g. "Farm A", "AS32-31A")
|
|
string type = 3;
|
|
// string name of the livery for the aircraft
|
|
string livery = 4;
|
|
// boolean for whether or not the object will appear as a wreck
|
|
bool dead = 5;
|
|
// number value for the "score" of the object when it is killed
|
|
optional uint32 rate = 6;
|
|
|
|
double heading = 7;
|
|
dcs.common.v0.InputPosition position = 8;
|
|
// cargo mass in kilograms
|
|
uint32 cargo_mass = 9;
|
|
}
|
|
|
|
message AddStaticObjectResponse {
|
|
string name = 1;
|
|
}
|
|
|
|
message AddLinkedStaticRequest {
|
|
// the name of the static; must be unique or would destroy previous object
|
|
string name = 1;
|
|
// country the unit belongs to
|
|
dcs.common.v0.Country country = 2;
|
|
// type of the static object (e.g. "Farm A", "AS32-31A")
|
|
string type = 3;
|
|
// string name of the livery for the aircraft
|
|
string livery = 4;
|
|
// boolean for whether or not the object will appear as a wreck
|
|
bool dead = 5;
|
|
// number value for the "score" of the object when it is killed
|
|
optional uint32 rate = 6;
|
|
// the name of the unit to offset from
|
|
string unit = 7;
|
|
// the angle to relative to the linked unit, in a clockwise direction.
|
|
// negative values are anti-clockwise
|
|
double angle = 8;
|
|
// x offset from linked unit center (positive is forward; negative is aft)
|
|
double x = 9;
|
|
// y offset from linked unit center (positive is starboard-side;
|
|
// negative is port-side)
|
|
double y = 10;
|
|
}
|
|
|
|
message AddLinkedStaticResponse {
|
|
string name = 1;
|
|
}
|
|
|
|
message GetGroupsRequest {
|
|
dcs.common.v0.Coalition coalition = 1;
|
|
dcs.common.v0.GroupCategory category = 2;
|
|
}
|
|
|
|
message GetGroupsResponse {
|
|
repeated dcs.common.v0.Group groups = 1;
|
|
}
|
|
|
|
message GetBullseyeRequest {
|
|
// A specific coalition must be used for this API call. Do not use
|
|
// `COALITION_ALL`
|
|
dcs.common.v0.Coalition coalition = 1;
|
|
}
|
|
|
|
message GetBullseyeResponse {
|
|
dcs.common.v0.Position position = 1;
|
|
}
|
|
|
|
message GetPlayerUnitsRequest {
|
|
dcs.common.v0.Coalition coalition = 1;
|
|
}
|
|
|
|
message GetPlayerUnitsResponse {
|
|
repeated dcs.common.v0.Unit units = 1;
|
|
}
|