diff --git a/frontend/src/components/team/HullColorInput.vue b/frontend/src/components/team/HullColorInput.vue new file mode 100644 index 00000000..3deefadb --- /dev/null +++ b/frontend/src/components/team/HullColorInput.vue @@ -0,0 +1,38 @@ + + + diff --git a/frontend/src/helpers/ChangeDetails.ts b/frontend/src/helpers/ChangeDetails.ts index eba679e3..bdafc775 100644 --- a/frontend/src/helpers/ChangeDetails.ts +++ b/frontend/src/helpers/ChangeDetails.ts @@ -226,6 +226,8 @@ function teamStateChangeTitle(change: Change_UpdateTeamStateJson): string { return `Remove foul ${change.removeFoul}` } else if (change.botSubstitutionsLeft !== undefined) { return `Bot substitutions left: ${change.botSubstitutionsLeft}` + } else if (change.hullColor !== undefined) { + return `Change hull color: ${change.hullColor}` } return "Unknown team state change: " + JSON.stringify(change) } diff --git a/frontend/src/proto/state/ssl_gc_referee_message_pb.ts b/frontend/src/proto/state/ssl_gc_referee_message_pb.ts index 3bd7ec76..72eb5502 100644 --- a/frontend/src/proto/state/ssl_gc_referee_message_pb.ts +++ b/frontend/src/proto/state/ssl_gc_referee_message_pb.ts @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file state/ssl_gc_referee_message.proto. */ export const file_state_ssl_gc_referee_message: GenFile = /*@__PURE__*/ - fileDesc("CiJzdGF0ZS9zc2xfZ2NfcmVmZXJlZV9tZXNzYWdlLnByb3RvIrUOCgdSZWZlcmVlEhkKEXNvdXJjZV9pZGVudGlmaWVyGBIgASgJEi0KCm1hdGNoX3R5cGUYEyABKA4yCi5NYXRjaFR5cGU6DVVOS05PV05fTUFUQ0gSGAoQcGFja2V0X3RpbWVzdGFtcBgBIAIoBBIdCgVzdGFnZRgCIAIoDjIOLlJlZmVyZWUuU3RhZ2USFwoPc3RhZ2VfdGltZV9sZWZ0GAMgASgSEiEKB2NvbW1hbmQYBCACKA4yEC5SZWZlcmVlLkNvbW1hbmQSFwoPY29tbWFuZF9jb3VudGVyGAUgAigNEhkKEWNvbW1hbmRfdGltZXN0YW1wGAYgAigEEiEKBnllbGxvdxgHIAIoCzIRLlJlZmVyZWUuVGVhbUluZm8SHwoEYmx1ZRgIIAIoCzIRLlJlZmVyZWUuVGVhbUluZm8SKwoTZGVzaWduYXRlZF9wb3NpdGlvbhgJIAEoCzIOLlJlZmVyZWUuUG9pbnQSIgoaYmx1ZV90ZWFtX29uX3Bvc2l0aXZlX2hhbGYYCiABKAgSJgoMbmV4dF9jb21tYW5kGAwgASgOMhAuUmVmZXJlZS5Db21tYW5kEh8KC2dhbWVfZXZlbnRzGBAgAygLMgouR2FtZUV2ZW50EjUKFGdhbWVfZXZlbnRfcHJvcG9zYWxzGBEgAygLMhcuR2FtZUV2ZW50UHJvcG9zYWxHcm91cBIlCh1jdXJyZW50X2FjdGlvbl90aW1lX3JlbWFpbmluZxgPIAEoAxIWCg5zdGF0dXNfbWVzc2FnZRgUIAEoCRrEAwoIVGVhbUluZm8SDAoEbmFtZRgBIAIoCRINCgVzY29yZRgCIAIoDRIRCglyZWRfY2FyZHMYAyACKA0SHQoReWVsbG93X2NhcmRfdGltZXMYBCADKA1CAhABEhQKDHllbGxvd19jYXJkcxgFIAIoDRIQCgh0aW1lb3V0cxgGIAIoDRIUCgx0aW1lb3V0X3RpbWUYByACKA0SEgoKZ29hbGtlZXBlchgIIAIoDRIUCgxmb3VsX2NvdW50ZXIYCSABKA0SHwoXYmFsbF9wbGFjZW1lbnRfZmFpbHVyZXMYCiABKA0SFgoOY2FuX3BsYWNlX2JhbGwYDCABKAgSGAoQbWF4X2FsbG93ZWRfYm90cxgNIAEoDRIfChdib3Rfc3Vic3RpdHV0aW9uX2ludGVudBgOIAEoCBInCh9iYWxsX3BsYWNlbWVudF9mYWlsdXJlc19yZWFjaGVkGA8gASgIEiAKGGJvdF9zdWJzdGl0dXRpb25fYWxsb3dlZBgQIAEoCBIeChZib3Rfc3Vic3RpdHV0aW9uc19sZWZ0GBEgASgNEiIKGmJvdF9zdWJzdGl0dXRpb25fdGltZV9sZWZ0GBIgASgNGh0KBVBvaW50EgkKAXgYASACKAISCQoBeRgCIAIoAiLRAgoFU3RhZ2USGQoVTk9STUFMX0ZJUlNUX0hBTEZfUFJFEAASFQoRTk9STUFMX0ZJUlNUX0hBTEYQARIUChBOT1JNQUxfSEFMRl9USU1FEAISGgoWTk9STUFMX1NFQ09ORF9IQUxGX1BSRRADEhYKEk5PUk1BTF9TRUNPTkRfSEFMRhAEEhQKEEVYVFJBX1RJTUVfQlJFQUsQBRIYChRFWFRSQV9GSVJTVF9IQUxGX1BSRRAGEhQKEEVYVFJBX0ZJUlNUX0hBTEYQBxITCg9FWFRSQV9IQUxGX1RJTUUQCBIZChVFWFRSQV9TRUNPTkRfSEFMRl9QUkUQCRIVChFFWFRSQV9TRUNPTkRfSEFMRhAKEhoKFlBFTkFMVFlfU0hPT1RPVVRfQlJFQUsQCxIUChBQRU5BTFRZX1NIT09UT1VUEAwSDQoJUE9TVF9HQU1FEA0ilgMKB0NvbW1hbmQSCAoESEFMVBAAEggKBFNUT1AQARIQCgxOT1JNQUxfU1RBUlQQAhIPCgtGT1JDRV9TVEFSVBADEhoKFlBSRVBBUkVfS0lDS09GRl9ZRUxMT1cQBBIYChRQUkVQQVJFX0tJQ0tPRkZfQkxVRRAFEhoKFlBSRVBBUkVfUEVOQUxUWV9ZRUxMT1cQBhIYChRQUkVQQVJFX1BFTkFMVFlfQkxVRRAHEhYKEkRJUkVDVF9GUkVFX1lFTExPVxAIEhQKEERJUkVDVF9GUkVFX0JMVUUQCRIcChRJTkRJUkVDVF9GUkVFX1lFTExPVxAKGgIIARIaChJJTkRJUkVDVF9GUkVFX0JMVUUQCxoCCAESEgoOVElNRU9VVF9ZRUxMT1cQDBIQCgxUSU1FT1VUX0JMVUUQDRITCgtHT0FMX1lFTExPVxAOGgIIARIRCglHT0FMX0JMVUUQDxoCCAESGQoVQkFMTF9QTEFDRU1FTlRfWUVMTE9XEBASFwoTQkFMTF9QTEFDRU1FTlRfQkxVRRARSgQICxAMSgQIDRAOSgQIDhAPIlcKFkdhbWVFdmVudFByb3Bvc2FsR3JvdXASCgoCaWQYAyABKAkSHwoLZ2FtZV9ldmVudHMYASADKAsyCi5HYW1lRXZlbnQSEAoIYWNjZXB0ZWQYAiABKAgqVAoJTWF0Y2hUeXBlEhEKDVVOS05PV05fTUFUQ0gQABIPCgtHUk9VUF9QSEFTRRABEhUKEUVMSU1JTkFUSU9OX1BIQVNFEAISDAoIRlJJRU5ETFkQA0JbQhhTc2xHY1JlZmVyZWVNZXNzYWdlUHJvdG9QAVo9Z2l0aHViLmNvbS9Sb2JvQ3VwLVNTTC9zc2wtZ2FtZS1jb250cm9sbGVyL2ludGVybmFsL2FwcC9zdGF0ZQ", [file_state_ssl_gc_game_event]); + fileDesc("CiJzdGF0ZS9zc2xfZ2NfcmVmZXJlZV9tZXNzYWdlLnByb3RvItUOCgdSZWZlcmVlEhkKEXNvdXJjZV9pZGVudGlmaWVyGBIgASgJEi0KCm1hdGNoX3R5cGUYEyABKA4yCi5NYXRjaFR5cGU6DVVOS05PV05fTUFUQ0gSGAoQcGFja2V0X3RpbWVzdGFtcBgBIAIoBBIdCgVzdGFnZRgCIAIoDjIOLlJlZmVyZWUuU3RhZ2USFwoPc3RhZ2VfdGltZV9sZWZ0GAMgASgSEiEKB2NvbW1hbmQYBCACKA4yEC5SZWZlcmVlLkNvbW1hbmQSFwoPY29tbWFuZF9jb3VudGVyGAUgAigNEhkKEWNvbW1hbmRfdGltZXN0YW1wGAYgAigEEiEKBnllbGxvdxgHIAIoCzIRLlJlZmVyZWUuVGVhbUluZm8SHwoEYmx1ZRgIIAIoCzIRLlJlZmVyZWUuVGVhbUluZm8SKwoTZGVzaWduYXRlZF9wb3NpdGlvbhgJIAEoCzIOLlJlZmVyZWUuUG9pbnQSIgoaYmx1ZV90ZWFtX29uX3Bvc2l0aXZlX2hhbGYYCiABKAgSJgoMbmV4dF9jb21tYW5kGAwgASgOMhAuUmVmZXJlZS5Db21tYW5kEh8KC2dhbWVfZXZlbnRzGBAgAygLMgouR2FtZUV2ZW50EjUKFGdhbWVfZXZlbnRfcHJvcG9zYWxzGBEgAygLMhcuR2FtZUV2ZW50UHJvcG9zYWxHcm91cBIlCh1jdXJyZW50X2FjdGlvbl90aW1lX3JlbWFpbmluZxgPIAEoAxIWCg5zdGF0dXNfbWVzc2FnZRgUIAEoCRrkAwoIVGVhbUluZm8SDAoEbmFtZRgBIAIoCRINCgVzY29yZRgCIAIoDRIRCglyZWRfY2FyZHMYAyACKA0SHQoReWVsbG93X2NhcmRfdGltZXMYBCADKA1CAhABEhQKDHllbGxvd19jYXJkcxgFIAIoDRIQCgh0aW1lb3V0cxgGIAIoDRIUCgx0aW1lb3V0X3RpbWUYByACKA0SEgoKZ29hbGtlZXBlchgIIAIoDRIUCgxmb3VsX2NvdW50ZXIYCSABKA0SHwoXYmFsbF9wbGFjZW1lbnRfZmFpbHVyZXMYCiABKA0SFgoOY2FuX3BsYWNlX2JhbGwYDCABKAgSGAoQbWF4X2FsbG93ZWRfYm90cxgNIAEoDRIfChdib3Rfc3Vic3RpdHV0aW9uX2ludGVudBgOIAEoCBInCh9iYWxsX3BsYWNlbWVudF9mYWlsdXJlc19yZWFjaGVkGA8gASgIEiAKGGJvdF9zdWJzdGl0dXRpb25fYWxsb3dlZBgQIAEoCBIeChZib3Rfc3Vic3RpdHV0aW9uc19sZWZ0GBEgASgNEiIKGmJvdF9zdWJzdGl0dXRpb25fdGltZV9sZWZ0GBIgASgNEh4KCmh1bGxfY29sb3IYEyABKA4yCi5IdWxsQ29sb3IaHQoFUG9pbnQSCQoBeBgBIAIoAhIJCgF5GAIgAigCItECCgVTdGFnZRIZChVOT1JNQUxfRklSU1RfSEFMRl9QUkUQABIVChFOT1JNQUxfRklSU1RfSEFMRhABEhQKEE5PUk1BTF9IQUxGX1RJTUUQAhIaChZOT1JNQUxfU0VDT05EX0hBTEZfUFJFEAMSFgoSTk9STUFMX1NFQ09ORF9IQUxGEAQSFAoQRVhUUkFfVElNRV9CUkVBSxAFEhgKFEVYVFJBX0ZJUlNUX0hBTEZfUFJFEAYSFAoQRVhUUkFfRklSU1RfSEFMRhAHEhMKD0VYVFJBX0hBTEZfVElNRRAIEhkKFUVYVFJBX1NFQ09ORF9IQUxGX1BSRRAJEhUKEUVYVFJBX1NFQ09ORF9IQUxGEAoSGgoWUEVOQUxUWV9TSE9PVE9VVF9CUkVBSxALEhQKEFBFTkFMVFlfU0hPT1RPVVQQDBINCglQT1NUX0dBTUUQDSKWAwoHQ29tbWFuZBIICgRIQUxUEAASCAoEU1RPUBABEhAKDE5PUk1BTF9TVEFSVBACEg8KC0ZPUkNFX1NUQVJUEAMSGgoWUFJFUEFSRV9LSUNLT0ZGX1lFTExPVxAEEhgKFFBSRVBBUkVfS0lDS09GRl9CTFVFEAUSGgoWUFJFUEFSRV9QRU5BTFRZX1lFTExPVxAGEhgKFFBSRVBBUkVfUEVOQUxUWV9CTFVFEAcSFgoSRElSRUNUX0ZSRUVfWUVMTE9XEAgSFAoQRElSRUNUX0ZSRUVfQkxVRRAJEhwKFElORElSRUNUX0ZSRUVfWUVMTE9XEAoaAggBEhoKEklORElSRUNUX0ZSRUVfQkxVRRALGgIIARISCg5USU1FT1VUX1lFTExPVxAMEhAKDFRJTUVPVVRfQkxVRRANEhMKC0dPQUxfWUVMTE9XEA4aAggBEhEKCUdPQUxfQkxVRRAPGgIIARIZChVCQUxMX1BMQUNFTUVOVF9ZRUxMT1cQEBIXChNCQUxMX1BMQUNFTUVOVF9CTFVFEBFKBAgLEAxKBAgNEA5KBAgOEA8iVwoWR2FtZUV2ZW50UHJvcG9zYWxHcm91cBIKCgJpZBgDIAEoCRIfCgtnYW1lX2V2ZW50cxgBIAMoCzIKLkdhbWVFdmVudBIQCghhY2NlcHRlZBgCIAEoCCpUCglNYXRjaFR5cGUSEQoNVU5LTk9XTl9NQVRDSBAAEg8KC0dST1VQX1BIQVNFEAESFQoRRUxJTUlOQVRJT05fUEhBU0UQAhIMCghGUklFTkRMWRADKk4KCUh1bGxDb2xvchIWChJIVUxMX0NPTE9SX1VOS05PV04QABITCg9IVUxMX0NPTE9SX0RBUksQARIUChBIVUxMX0NPTE9SX0xJR0hUEAJCW0IYU3NsR2NSZWZlcmVlTWVzc2FnZVByb3RvUAFaPWdpdGh1Yi5jb20vUm9ib0N1cC1TU0wvc3NsLWdhbWUtY29udHJvbGxlci9pbnRlcm5hbC9hcHAvc3RhdGU", [file_state_ssl_gc_game_event]); /** * Each UDP packet contains one of these messages. @@ -422,6 +422,13 @@ export type Referee_TeamInfo = Message<"Referee.TeamInfo"> & { * @generated from field: optional uint32 bot_substitution_time_left = 18; */ botSubstitutionTimeLeft: number; + + /** + * The color of the hull of the robots of this team + * + * @generated from field: optional HullColor hull_color = 19; + */ + hullColor: HullColor; }; /** @@ -551,6 +558,13 @@ export type Referee_TeamInfoJson = { * @generated from field: optional uint32 bot_substitution_time_left = 18; */ botSubstitutionTimeLeft?: number; + + /** + * The color of the hull of the robots of this team + * + * @generated from field: optional HullColor hull_color = 19; + */ + hullColor?: HullColorJson; }; /** @@ -998,3 +1012,44 @@ export type MatchTypeJson = "UNKNOWN_MATCH" | "GROUP_PHASE" | "ELIMINATION_PHASE export const MatchTypeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_state_ssl_gc_referee_message, 0); +/** + * HullColor is the color of the hull of the robots of a team + * + * @generated from enum HullColor + */ +export enum HullColor { + /** + * not set + * + * @generated from enum value: HULL_COLOR_UNKNOWN = 0; + */ + UNKNOWN = 0, + + /** + * dark hull color + * + * @generated from enum value: HULL_COLOR_DARK = 1; + */ + DARK = 1, + + /** + * light hull color + * + * @generated from enum value: HULL_COLOR_LIGHT = 2; + */ + LIGHT = 2, +} + +/** + * HullColor is the color of the hull of the robots of a team + * + * @generated from enum HullColor + */ +export type HullColorJson = "HULL_COLOR_UNKNOWN" | "HULL_COLOR_DARK" | "HULL_COLOR_LIGHT"; + +/** + * Describes the enum HullColor. + */ +export const HullColorSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_state_ssl_gc_referee_message, 1); + diff --git a/frontend/src/proto/state/ssl_gc_state_pb.ts b/frontend/src/proto/state/ssl_gc_state_pb.ts index aa3b4b2a..dece51ec 100644 --- a/frontend/src/proto/state/ssl_gc_state_pb.ts +++ b/frontend/src/proto/state/ssl_gc_state_pb.ts @@ -10,7 +10,7 @@ import type { Vector2, Vector2Json } from "../geom/ssl_gc_geometry_pb"; import { file_geom_ssl_gc_geometry } from "../geom/ssl_gc_geometry_pb"; import type { GameEvent, GameEventJson } from "./ssl_gc_game_event_pb"; import { file_state_ssl_gc_game_event } from "./ssl_gc_game_event_pb"; -import type { MatchType, MatchTypeJson, Referee_Stage, Referee_StageJson } from "./ssl_gc_referee_message_pb"; +import type { HullColor, HullColorJson, MatchType, MatchTypeJson, Referee_Stage, Referee_StageJson } from "./ssl_gc_referee_message_pb"; import { file_state_ssl_gc_referee_message } from "./ssl_gc_referee_message_pb"; import type { Duration, DurationJson, Timestamp, TimestampJson } from "@bufbuild/protobuf/wkt"; import { file_google_protobuf_duration, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt"; @@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file state/ssl_gc_state.proto. */ export const file_state_ssl_gc_state: GenFile = /*@__PURE__*/ - fileDesc("ChhzdGF0ZS9zc2xfZ2Nfc3RhdGUucHJvdG8idQoKWWVsbG93Q2FyZBIKCgJpZBgBIAEoDRIoChRjYXVzZWRfYnlfZ2FtZV9ldmVudBgCIAEoCzIKLkdhbWVFdmVudBIxCg50aW1lX3JlbWFpbmluZxgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiI/CgdSZWRDYXJkEgoKAmlkGAEgASgNEigKFGNhdXNlZF9ieV9nYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50ImsKBEZvdWwSCgoCaWQYASABKA0SKAoUY2F1c2VkX2J5X2dhbWVfZXZlbnQYAiABKAsyCi5HYW1lRXZlbnQSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLZAQoHQ29tbWFuZBIbCgR0eXBlGAEgAigOMg0uQ29tbWFuZC5UeXBlEhcKCGZvcl90ZWFtGAIgAigOMgUuVGVhbSKXAQoEVHlwZRILCgdVTktOT1dOEAASCAoESEFMVBABEggKBFNUT1AQAhIQCgxOT1JNQUxfU1RBUlQQAxIPCgtGT1JDRV9TVEFSVBAEEgoKBkRJUkVDVBAFEgsKB0tJQ0tPRkYQBxILCgdQRU5BTFRZEAgSCwoHVElNRU9VVBAJEhIKDkJBTExfUExBQ0VNRU5UEAoiBAgGEAYiwwEKCUdhbWVTdGF0ZRIdCgR0eXBlGAEgAigOMg8uR2FtZVN0YXRlLlR5cGUSFwoIZm9yX3RlYW0YAiABKA4yBS5UZWFtIn4KBFR5cGUSCwoHVU5LTk9XThAAEggKBEhBTFQQARIICgRTVE9QEAISCwoHUlVOTklORxADEg0KCUZSRUVfS0lDSxAEEgsKB0tJQ0tPRkYQBRILCgdQRU5BTFRZEAYSCwoHVElNRU9VVBAHEhIKDkJBTExfUExBQ0VNRU5UEAgiWQoIUHJvcG9zYWwSLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIeCgpnYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50IlEKDVByb3Bvc2FsR3JvdXASCgoCaWQYBCABKAkSHAoJcHJvcG9zYWxzGAEgAygLMgkuUHJvcG9zYWwSEAoIYWNjZXB0ZWQYAiABKAhKBAgDEAQi0gUKCFRlYW1JbmZvEgwKBG5hbWUYASABKAkSDQoFZ29hbHMYAiABKAUSEgoKZ29hbGtlZXBlchgDIAEoBRIhCgx5ZWxsb3dfY2FyZHMYBCADKAsyCy5ZZWxsb3dDYXJkEhsKCXJlZF9jYXJkcxgFIAMoCzIILlJlZENhcmQSFQoNdGltZW91dHNfbGVmdBgGIAEoBRI0ChF0aW1lb3V0X3RpbWVfbGVmdBgHIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIYChBvbl9wb3NpdGl2ZV9oYWxmGAggASgIEhQKBWZvdWxzGAkgAygLMgUuRm91bBIfChdiYWxsX3BsYWNlbWVudF9mYWlsdXJlcxgKIAEoBRInCh9iYWxsX3BsYWNlbWVudF9mYWlsdXJlc19yZWFjaGVkGAsgASgIEhYKDmNhbl9wbGFjZV9iYWxsGAwgASgIEhgKEG1heF9hbGxvd2VkX2JvdHMYDSABKAUSQwofcmVxdWVzdHNfYm90X3N1YnN0aXR1dGlvbl9zaW5jZRgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoWcmVxdWVzdHNfdGltZW91dF9zaW5jZRgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQodcmVxdWVzdHNfZW1lcmdlbmN5X3N0b3Bfc2luY2UYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NoYWxsZW5nZV9mbGFncxgRIAEoBRIgChhib3Rfc3Vic3RpdHV0aW9uX2FsbG93ZWQYEiABKAgSHgoWYm90X3N1YnN0aXR1dGlvbnNfbGVmdBgTIAEoBRI9Chpib3Rfc3Vic3RpdHV0aW9uX3RpbWVfbGVmdBgUIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiKxBgoFU3RhdGUSHQoFc3RhZ2UYASABKA4yDi5SZWZlcmVlLlN0YWdlEhkKB2NvbW1hbmQYAiABKAsyCC5Db21tYW5kEh4KCmdhbWVfc3RhdGUYEyABKAsyCi5HYW1lU3RhdGUSNQoSc3RhZ2VfdGltZV9lbGFwc2VkGAQgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjIKD3N0YWdlX3RpbWVfbGVmdBgFIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhI0ChBtYXRjaF90aW1lX3N0YXJ0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIpCgp0ZWFtX3N0YXRlGAggAygLMhUuU3RhdGUuVGVhbVN0YXRlRW50cnkSHwoNcGxhY2VtZW50X3BvcxgJIAEoCzIILlZlY3RvcjISHgoMbmV4dF9jb21tYW5kGAogASgLMgguQ29tbWFuZBJACh1jdXJyZW50X2FjdGlvbl90aW1lX3JlbWFpbmluZxgMIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIfCgtnYW1lX2V2ZW50cxgNIAMoCzIKLkdhbWVFdmVudBInCg9wcm9wb3NhbF9ncm91cHMYDiADKAsyDi5Qcm9wb3NhbEdyb3VwEhsKCGRpdmlzaW9uGA8gASgOMgkuRGl2aXNpb24SIQoSZmlyc3Rfa2lja29mZl90ZWFtGBEgASgOMgUuVGVhbRIeCgptYXRjaF90eXBlGBIgASgOMgouTWF0Y2hUeXBlEjcKE3JlYWR5X2NvbnRpbnVlX3RpbWUYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKDnNob290b3V0X3N0YXRlGBUgASgLMg4uU2hvb3RvdXRTdGF0ZRIWCg5zdGF0dXNfbWVzc2FnZRgWIAEoCRIZChFtYXhfYm90c19wZXJfdGVhbRgXIAEoBRo7Cg5UZWFtU3RhdGVFbnRyeRILCgNrZXkYASABKAkSGAoFdmFsdWUYAiABKAsyCS5UZWFtSW5mbzoCOAFKBAgQEBEipAEKDVNob290b3V0U3RhdGUSGAoJbmV4dF90ZWFtGAEgASgOMgUuVGVhbRJAChJudW1iZXJfb2ZfYXR0ZW1wdHMYAiADKAsyJC5TaG9vdG91dFN0YXRlLk51bWJlck9mQXR0ZW1wdHNFbnRyeRo3ChVOdW1iZXJPZkF0dGVtcHRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4AUJSQg9Tc2xHY1N0YXRlUHJvdG9QAVo9Z2l0aHViLmNvbS9Sb2JvQ3VwLVNTTC9zc2wtZ2FtZS1jb250cm9sbGVyL2ludGVybmFsL2FwcC9zdGF0ZQ", [file_state_ssl_gc_common, file_geom_ssl_gc_geometry, file_state_ssl_gc_game_event, file_state_ssl_gc_referee_message, file_google_protobuf_duration, file_google_protobuf_timestamp]); + fileDesc("ChhzdGF0ZS9zc2xfZ2Nfc3RhdGUucHJvdG8idQoKWWVsbG93Q2FyZBIKCgJpZBgBIAEoDRIoChRjYXVzZWRfYnlfZ2FtZV9ldmVudBgCIAEoCzIKLkdhbWVFdmVudBIxCg50aW1lX3JlbWFpbmluZxgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiI/CgdSZWRDYXJkEgoKAmlkGAEgASgNEigKFGNhdXNlZF9ieV9nYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50ImsKBEZvdWwSCgoCaWQYASABKA0SKAoUY2F1c2VkX2J5X2dhbWVfZXZlbnQYAiABKAsyCi5HYW1lRXZlbnQSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLZAQoHQ29tbWFuZBIbCgR0eXBlGAEgAigOMg0uQ29tbWFuZC5UeXBlEhcKCGZvcl90ZWFtGAIgAigOMgUuVGVhbSKXAQoEVHlwZRILCgdVTktOT1dOEAASCAoESEFMVBABEggKBFNUT1AQAhIQCgxOT1JNQUxfU1RBUlQQAxIPCgtGT1JDRV9TVEFSVBAEEgoKBkRJUkVDVBAFEgsKB0tJQ0tPRkYQBxILCgdQRU5BTFRZEAgSCwoHVElNRU9VVBAJEhIKDkJBTExfUExBQ0VNRU5UEAoiBAgGEAYiwwEKCUdhbWVTdGF0ZRIdCgR0eXBlGAEgAigOMg8uR2FtZVN0YXRlLlR5cGUSFwoIZm9yX3RlYW0YAiABKA4yBS5UZWFtIn4KBFR5cGUSCwoHVU5LTk9XThAAEggKBEhBTFQQARIICgRTVE9QEAISCwoHUlVOTklORxADEg0KCUZSRUVfS0lDSxAEEgsKB0tJQ0tPRkYQBRILCgdQRU5BTFRZEAYSCwoHVElNRU9VVBAHEhIKDkJBTExfUExBQ0VNRU5UEAgiWQoIUHJvcG9zYWwSLQoJdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIeCgpnYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50IlEKDVByb3Bvc2FsR3JvdXASCgoCaWQYBCABKAkSHAoJcHJvcG9zYWxzGAEgAygLMgkuUHJvcG9zYWwSEAoIYWNjZXB0ZWQYAiABKAhKBAgDEAQi8gUKCFRlYW1JbmZvEgwKBG5hbWUYASABKAkSDQoFZ29hbHMYAiABKAUSEgoKZ29hbGtlZXBlchgDIAEoBRIhCgx5ZWxsb3dfY2FyZHMYBCADKAsyCy5ZZWxsb3dDYXJkEhsKCXJlZF9jYXJkcxgFIAMoCzIILlJlZENhcmQSFQoNdGltZW91dHNfbGVmdBgGIAEoBRI0ChF0aW1lb3V0X3RpbWVfbGVmdBgHIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIYChBvbl9wb3NpdGl2ZV9oYWxmGAggASgIEhQKBWZvdWxzGAkgAygLMgUuRm91bBIfChdiYWxsX3BsYWNlbWVudF9mYWlsdXJlcxgKIAEoBRInCh9iYWxsX3BsYWNlbWVudF9mYWlsdXJlc19yZWFjaGVkGAsgASgIEhYKDmNhbl9wbGFjZV9iYWxsGAwgASgIEhgKEG1heF9hbGxvd2VkX2JvdHMYDSABKAUSQwofcmVxdWVzdHNfYm90X3N1YnN0aXR1dGlvbl9zaW5jZRgOIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOgoWcmVxdWVzdHNfdGltZW91dF9zaW5jZRgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQodcmVxdWVzdHNfZW1lcmdlbmN5X3N0b3Bfc2luY2UYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NoYWxsZW5nZV9mbGFncxgRIAEoBRIgChhib3Rfc3Vic3RpdHV0aW9uX2FsbG93ZWQYEiABKAgSHgoWYm90X3N1YnN0aXR1dGlvbnNfbGVmdBgTIAEoBRI9Chpib3Rfc3Vic3RpdHV0aW9uX3RpbWVfbGVmdBgUIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIeCgpodWxsX2NvbG9yGBUgASgOMgouSHVsbENvbG9yIrEGCgVTdGF0ZRIdCgVzdGFnZRgBIAEoDjIOLlJlZmVyZWUuU3RhZ2USGQoHY29tbWFuZBgCIAEoCzIILkNvbW1hbmQSHgoKZ2FtZV9zdGF0ZRgTIAEoCzIKLkdhbWVTdGF0ZRI1ChJzdGFnZV90aW1lX2VsYXBzZWQYBCABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SMgoPc3RhZ2VfdGltZV9sZWZ0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjQKEG1hdGNoX3RpbWVfc3RhcnQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEikKCnRlYW1fc3RhdGUYCCADKAsyFS5TdGF0ZS5UZWFtU3RhdGVFbnRyeRIfCg1wbGFjZW1lbnRfcG9zGAkgASgLMgguVmVjdG9yMhIeCgxuZXh0X2NvbW1hbmQYCiABKAsyCC5Db21tYW5kEkAKHWN1cnJlbnRfYWN0aW9uX3RpbWVfcmVtYWluaW5nGAwgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEh8KC2dhbWVfZXZlbnRzGA0gAygLMgouR2FtZUV2ZW50EicKD3Byb3Bvc2FsX2dyb3VwcxgOIAMoCzIOLlByb3Bvc2FsR3JvdXASGwoIZGl2aXNpb24YDyABKA4yCS5EaXZpc2lvbhIhChJmaXJzdF9raWNrb2ZmX3RlYW0YESABKA4yBS5UZWFtEh4KCm1hdGNoX3R5cGUYEiABKA4yCi5NYXRjaFR5cGUSNwoTcmVhZHlfY29udGludWVfdGltZRgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoOc2hvb3RvdXRfc3RhdGUYFSABKAsyDi5TaG9vdG91dFN0YXRlEhYKDnN0YXR1c19tZXNzYWdlGBYgASgJEhkKEW1heF9ib3RzX3Blcl90ZWFtGBcgASgFGjsKDlRlYW1TdGF0ZUVudHJ5EgsKA2tleRgBIAEoCRIYCgV2YWx1ZRgCIAEoCzIJLlRlYW1JbmZvOgI4AUoECBAQESKkAQoNU2hvb3RvdXRTdGF0ZRIYCgluZXh0X3RlYW0YASABKA4yBS5UZWFtEkAKEm51bWJlcl9vZl9hdHRlbXB0cxgCIAMoCzIkLlNob290b3V0U3RhdGUuTnVtYmVyT2ZBdHRlbXB0c0VudHJ5GjcKFU51bWJlck9mQXR0ZW1wdHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAU6AjgBQlJCD1NzbEdjU3RhdGVQcm90b1ABWj1naXRodWIuY29tL1JvYm9DdXAtU1NML3NzbC1nYW1lLWNvbnRyb2xsZXIvaW50ZXJuYWwvYXBwL3N0YXRl", [file_state_ssl_gc_common, file_geom_ssl_gc_geometry, file_state_ssl_gc_game_event, file_state_ssl_gc_referee_message, file_google_protobuf_duration, file_google_protobuf_timestamp]); /** * @generated from message YellowCard @@ -561,6 +561,11 @@ export type TeamInfo = Message<"TeamInfo"> & { * @generated from field: optional google.protobuf.Duration bot_substitution_time_left = 20; */ botSubstitutionTimeLeft?: Duration; + + /** + * @generated from field: optional HullColor hull_color = 21; + */ + hullColor: HullColor; }; /** @@ -666,6 +671,11 @@ export type TeamInfoJson = { * @generated from field: optional google.protobuf.Duration bot_substitution_time_left = 20; */ botSubstitutionTimeLeft?: DurationJson; + + /** + * @generated from field: optional HullColor hull_color = 21; + */ + hullColor?: HullColorJson; }; /** diff --git a/frontend/src/proto/statemachine/ssl_gc_change_pb.ts b/frontend/src/proto/statemachine/ssl_gc_change_pb.ts index eb110f9e..5c13888f 100644 --- a/frontend/src/proto/statemachine/ssl_gc_change_pb.ts +++ b/frontend/src/proto/statemachine/ssl_gc_change_pb.ts @@ -12,7 +12,7 @@ import type { Vector2, Vector2Json } from "../geom/ssl_gc_geometry_pb"; import { file_geom_ssl_gc_geometry } from "../geom/ssl_gc_geometry_pb"; import type { GameEvent, GameEventJson } from "../state/ssl_gc_game_event_pb"; import { file_state_ssl_gc_game_event } from "../state/ssl_gc_game_event_pb"; -import type { MatchType, MatchTypeJson, Referee_Stage, Referee_StageJson } from "../state/ssl_gc_referee_message_pb"; +import type { HullColor, HullColorJson, MatchType, MatchTypeJson, Referee_Stage, Referee_StageJson } from "../state/ssl_gc_referee_message_pb"; import { file_state_ssl_gc_referee_message } from "../state/ssl_gc_referee_message_pb"; import type { BoolValueJson, Int32ValueJson, StringValueJson, Timestamp, TimestampJson, UInt32ValueJson } from "@bufbuild/protobuf/wkt"; import { file_google_protobuf_timestamp, file_google_protobuf_wrappers } from "@bufbuild/protobuf/wkt"; @@ -22,7 +22,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file statemachine/ssl_gc_change.proto. */ export const file_statemachine_ssl_gc_change: GenFile = /*@__PURE__*/ - fileDesc("CiBzdGF0ZW1hY2hpbmUvc3NsX2djX2NoYW5nZS5wcm90byKTAQoLU3RhdGVDaGFuZ2USCgoCaWQYASABKAUSGQoJc3RhdGVfcHJlGAIgASgLMgYuU3RhdGUSFQoFc3RhdGUYAyABKAsyBi5TdGF0ZRIXCgZjaGFuZ2UYBCABKAsyBy5DaGFuZ2USLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLUFgoGQ2hhbmdlEg4KBm9yaWdpbhgBIAEoCRISCgpyZXZlcnRpYmxlGBAgASgIEjAKEm5ld19jb21tYW5kX2NoYW5nZRgCIAEoCzISLkNoYW5nZS5OZXdDb21tYW5kSAASMgoTY2hhbmdlX3N0YWdlX2NoYW5nZRgDIAEoCzITLkNoYW5nZS5DaGFuZ2VTdGFnZUgAEkQKHXNldF9iYWxsX3BsYWNlbWVudF9wb3NfY2hhbmdlGAQgASgLMhsuQ2hhbmdlLlNldEJhbGxQbGFjZW1lbnRQb3NIABI3ChZhZGRfeWVsbG93X2NhcmRfY2hhbmdlGAUgASgLMhUuQ2hhbmdlLkFkZFllbGxvd0NhcmRIABIxChNhZGRfcmVkX2NhcmRfY2hhbmdlGAYgASgLMhIuQ2hhbmdlLkFkZFJlZENhcmRIABI5Chd5ZWxsb3dfY2FyZF9vdmVyX2NoYW5nZRgHIAEoCzIWLkNoYW5nZS5ZZWxsb3dDYXJkT3ZlckgAEjUKFWFkZF9nYW1lX2V2ZW50X2NoYW5nZRgIIAEoCzIULkNoYW5nZS5BZGRHYW1lRXZlbnRIABJECh1hZGRfcGFzc2l2ZV9nYW1lX2V2ZW50X2NoYW5nZRgTIAEoCzIbLkNoYW5nZS5BZGRQYXNzaXZlR2FtZUV2ZW50SAASMgoTYWRkX3Byb3Bvc2FsX2NoYW5nZRgJIAEoCzITLkNoYW5nZS5BZGRQcm9wb3NhbEgAEjQKFHVwZGF0ZV9jb25maWdfY2hhbmdlGAwgASgLMhQuQ2hhbmdlLlVwZGF0ZUNvbmZpZ0gAEjsKGHVwZGF0ZV90ZWFtX3N0YXRlX2NoYW5nZRgNIAEoCzIXLkNoYW5nZS5VcGRhdGVUZWFtU3RhdGVIABI0ChRzd2l0Y2hfY29sb3JzX2NoYW5nZRgOIAEoCzIULkNoYW5nZS5Td2l0Y2hDb2xvcnNIABInCg1yZXZlcnRfY2hhbmdlGA8gASgLMg4uQ2hhbmdlLlJldmVydEgAEjUKFW5ld19nYW1lX3N0YXRlX2NoYW5nZRgRIAEoCzIULkNoYW5nZS5OZXdHYW1lU3RhdGVIABJDChxhY2NlcHRfcHJvcG9zYWxfZ3JvdXBfY2hhbmdlGBIgASgLMhsuQ2hhbmdlLkFjY2VwdFByb3Bvc2FsR3JvdXBIABI9ChlzZXRfc3RhdHVzX21lc3NhZ2VfY2hhbmdlGBQgASgLMhguQ2hhbmdlLlNldFN0YXR1c01lc3NhZ2VIABonCgpOZXdDb21tYW5kEhkKB2NvbW1hbmQYASABKAsyCC5Db21tYW5kGjAKC0NoYW5nZVN0YWdlEiEKCW5ld19zdGFnZRgBIAEoDjIOLlJlZmVyZWUuU3RhZ2UaLAoTU2V0QmFsbFBsYWNlbWVudFBvcxIVCgNwb3MYASABKAsyCC5WZWN0b3IyGlIKDUFkZFllbGxvd0NhcmQSFwoIZm9yX3RlYW0YASABKA4yBS5UZWFtEigKFGNhdXNlZF9ieV9nYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50Gk8KCkFkZFJlZENhcmQSFwoIZm9yX3RlYW0YASABKA4yBS5UZWFtEigKFGNhdXNlZF9ieV9nYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50GikKDlllbGxvd0NhcmRPdmVyEhcKCGZvcl90ZWFtGAEgASgOMgUuVGVhbRouCgxBZGRHYW1lRXZlbnQSHgoKZ2FtZV9ldmVudBgBIAEoCzIKLkdhbWVFdmVudBo1ChNBZGRQYXNzaXZlR2FtZUV2ZW50Eh4KCmdhbWVfZXZlbnQYASABKAsyCi5HYW1lRXZlbnQaKgoLQWRkUHJvcG9zYWwSGwoIcHJvcG9zYWwYASABKAsyCS5Qcm9wb3NhbBo8ChNBY2NlcHRQcm9wb3NhbEdyb3VwEhAKCGdyb3VwX2lkGAMgASgJEhMKC2FjY2VwdGVkX2J5GAIgASgJGq4BCgxVcGRhdGVDb25maWcSGwoIZGl2aXNpb24YASABKA4yCS5EaXZpc2lvbhIhChJmaXJzdF9raWNrb2ZmX3RlYW0YAiABKA4yBS5UZWFtEh4KCm1hdGNoX3R5cGUYBCABKA4yCi5NYXRjaFR5cGUSOAoTbWF4X3JvYm90c19wZXJfdGVhbRgFIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSgQIAxAEGqYICg9VcGRhdGVUZWFtU3RhdGUSFwoIZm9yX3RlYW0YASABKA4yBS5UZWFtEi8KCXRlYW1fbmFtZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIqCgVnb2FscxgDIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEi8KCmdvYWxrZWVwZXIYBCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRIyCg10aW1lb3V0c19sZWZ0GAUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNwoRdGltZW91dF90aW1lX2xlZnQYBiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNAoQb25fcG9zaXRpdmVfaGFsZhgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSPAoXYmFsbF9wbGFjZW1lbnRfZmFpbHVyZXMYCCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRIyCg5jYW5fcGxhY2VfYmFsbBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoUY2hhbGxlbmdlX2ZsYWdzX2xlZnQYFSABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRI7ChZib3Rfc3Vic3RpdHV0aW9uc19sZWZ0GBYgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSPQoZcmVxdWVzdHNfYm90X3N1YnN0aXR1dGlvbhgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSNAoQcmVxdWVzdHNfdGltZW91dBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSNgoScmVxdWVzdHNfY2hhbGxlbmdlGBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRI7ChdyZXF1ZXN0c19lbWVyZ2VuY3lfc3RvcBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSIAoLeWVsbG93X2NhcmQYFCABKAsyCy5ZZWxsb3dDYXJkEhoKCHJlZF9jYXJkGAwgASgLMgguUmVkQ2FyZBITCgRmb3VsGA0gASgLMgUuRm91bBI4ChJyZW1vdmVfeWVsbG93X2NhcmQYDiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSNQoPcmVtb3ZlX3JlZF9jYXJkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlEjEKC3JlbW92ZV9mb3VsGBAgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlGg4KDFN3aXRjaENvbG9ycxobCgZSZXZlcnQSEQoJY2hhbmdlX2lkGAEgASgFGi4KDE5ld0dhbWVTdGF0ZRIeCgpnYW1lX3N0YXRlGAEgASgLMgouR2FtZVN0YXRlGioKEFNldFN0YXR1c01lc3NhZ2USFgoOc3RhdHVzX21lc3NhZ2UYASABKAlCCAoGY2hhbmdlQlpCEFNzbEdjQ2hhbmdlUHJvdG9QAVpEZ2l0aHViLmNvbS9Sb2JvQ3VwLVNTTC9zc2wtZ2FtZS1jb250cm9sbGVyL2ludGVybmFsL2FwcC9zdGF0ZW1hY2hpbmU", [file_state_ssl_gc_state, file_state_ssl_gc_common, file_geom_ssl_gc_geometry, file_state_ssl_gc_game_event, file_state_ssl_gc_referee_message, file_google_protobuf_timestamp, file_google_protobuf_wrappers]); + fileDesc("CiBzdGF0ZW1hY2hpbmUvc3NsX2djX2NoYW5nZS5wcm90byKTAQoLU3RhdGVDaGFuZ2USCgoCaWQYASABKAUSGQoJc3RhdGVfcHJlGAIgASgLMgYuU3RhdGUSFQoFc3RhdGUYAyABKAsyBi5TdGF0ZRIXCgZjaGFuZ2UYBCABKAsyBy5DaGFuZ2USLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL0FgoGQ2hhbmdlEg4KBm9yaWdpbhgBIAEoCRISCgpyZXZlcnRpYmxlGBAgASgIEjAKEm5ld19jb21tYW5kX2NoYW5nZRgCIAEoCzISLkNoYW5nZS5OZXdDb21tYW5kSAASMgoTY2hhbmdlX3N0YWdlX2NoYW5nZRgDIAEoCzITLkNoYW5nZS5DaGFuZ2VTdGFnZUgAEkQKHXNldF9iYWxsX3BsYWNlbWVudF9wb3NfY2hhbmdlGAQgASgLMhsuQ2hhbmdlLlNldEJhbGxQbGFjZW1lbnRQb3NIABI3ChZhZGRfeWVsbG93X2NhcmRfY2hhbmdlGAUgASgLMhUuQ2hhbmdlLkFkZFllbGxvd0NhcmRIABIxChNhZGRfcmVkX2NhcmRfY2hhbmdlGAYgASgLMhIuQ2hhbmdlLkFkZFJlZENhcmRIABI5Chd5ZWxsb3dfY2FyZF9vdmVyX2NoYW5nZRgHIAEoCzIWLkNoYW5nZS5ZZWxsb3dDYXJkT3ZlckgAEjUKFWFkZF9nYW1lX2V2ZW50X2NoYW5nZRgIIAEoCzIULkNoYW5nZS5BZGRHYW1lRXZlbnRIABJECh1hZGRfcGFzc2l2ZV9nYW1lX2V2ZW50X2NoYW5nZRgTIAEoCzIbLkNoYW5nZS5BZGRQYXNzaXZlR2FtZUV2ZW50SAASMgoTYWRkX3Byb3Bvc2FsX2NoYW5nZRgJIAEoCzITLkNoYW5nZS5BZGRQcm9wb3NhbEgAEjQKFHVwZGF0ZV9jb25maWdfY2hhbmdlGAwgASgLMhQuQ2hhbmdlLlVwZGF0ZUNvbmZpZ0gAEjsKGHVwZGF0ZV90ZWFtX3N0YXRlX2NoYW5nZRgNIAEoCzIXLkNoYW5nZS5VcGRhdGVUZWFtU3RhdGVIABI0ChRzd2l0Y2hfY29sb3JzX2NoYW5nZRgOIAEoCzIULkNoYW5nZS5Td2l0Y2hDb2xvcnNIABInCg1yZXZlcnRfY2hhbmdlGA8gASgLMg4uQ2hhbmdlLlJldmVydEgAEjUKFW5ld19nYW1lX3N0YXRlX2NoYW5nZRgRIAEoCzIULkNoYW5nZS5OZXdHYW1lU3RhdGVIABJDChxhY2NlcHRfcHJvcG9zYWxfZ3JvdXBfY2hhbmdlGBIgASgLMhsuQ2hhbmdlLkFjY2VwdFByb3Bvc2FsR3JvdXBIABI9ChlzZXRfc3RhdHVzX21lc3NhZ2VfY2hhbmdlGBQgASgLMhguQ2hhbmdlLlNldFN0YXR1c01lc3NhZ2VIABonCgpOZXdDb21tYW5kEhkKB2NvbW1hbmQYASABKAsyCC5Db21tYW5kGjAKC0NoYW5nZVN0YWdlEiEKCW5ld19zdGFnZRgBIAEoDjIOLlJlZmVyZWUuU3RhZ2UaLAoTU2V0QmFsbFBsYWNlbWVudFBvcxIVCgNwb3MYASABKAsyCC5WZWN0b3IyGlIKDUFkZFllbGxvd0NhcmQSFwoIZm9yX3RlYW0YASABKA4yBS5UZWFtEigKFGNhdXNlZF9ieV9nYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50Gk8KCkFkZFJlZENhcmQSFwoIZm9yX3RlYW0YASABKA4yBS5UZWFtEigKFGNhdXNlZF9ieV9nYW1lX2V2ZW50GAIgASgLMgouR2FtZUV2ZW50GikKDlllbGxvd0NhcmRPdmVyEhcKCGZvcl90ZWFtGAEgASgOMgUuVGVhbRouCgxBZGRHYW1lRXZlbnQSHgoKZ2FtZV9ldmVudBgBIAEoCzIKLkdhbWVFdmVudBo1ChNBZGRQYXNzaXZlR2FtZUV2ZW50Eh4KCmdhbWVfZXZlbnQYASABKAsyCi5HYW1lRXZlbnQaKgoLQWRkUHJvcG9zYWwSGwoIcHJvcG9zYWwYASABKAsyCS5Qcm9wb3NhbBo8ChNBY2NlcHRQcm9wb3NhbEdyb3VwEhAKCGdyb3VwX2lkGAMgASgJEhMKC2FjY2VwdGVkX2J5GAIgASgJGq4BCgxVcGRhdGVDb25maWcSGwoIZGl2aXNpb24YASABKA4yCS5EaXZpc2lvbhIhChJmaXJzdF9raWNrb2ZmX3RlYW0YAiABKA4yBS5UZWFtEh4KCm1hdGNoX3R5cGUYBCABKA4yCi5NYXRjaFR5cGUSOAoTbWF4X3JvYm90c19wZXJfdGVhbRgFIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSgQIAxAEGsYICg9VcGRhdGVUZWFtU3RhdGUSFwoIZm9yX3RlYW0YASABKA4yBS5UZWFtEi8KCXRlYW1fbmFtZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZRIqCgVnb2FscxgDIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlEi8KCmdvYWxrZWVwZXIYBCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRIyCg10aW1lb3V0c19sZWZ0GAUgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSNwoRdGltZW91dF90aW1lX2xlZnQYBiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUSNAoQb25fcG9zaXRpdmVfaGFsZhgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSPAoXYmFsbF9wbGFjZW1lbnRfZmFpbHVyZXMYCCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRIyCg5jYW5fcGxhY2VfYmFsbBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSOQoUY2hhbGxlbmdlX2ZsYWdzX2xlZnQYFSABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZRI7ChZib3Rfc3Vic3RpdHV0aW9uc19sZWZ0GBYgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUSPQoZcmVxdWVzdHNfYm90X3N1YnN0aXR1dGlvbhgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSNAoQcmVxdWVzdHNfdGltZW91dBgRIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSNgoScmVxdWVzdHNfY2hhbGxlbmdlGBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRI7ChdyZXF1ZXN0c19lbWVyZ2VuY3lfc3RvcBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWUSIAoLeWVsbG93X2NhcmQYFCABKAsyCy5ZZWxsb3dDYXJkEhoKCHJlZF9jYXJkGAwgASgLMgguUmVkQ2FyZBITCgRmb3VsGA0gASgLMgUuRm91bBI4ChJyZW1vdmVfeWVsbG93X2NhcmQYDiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSNQoPcmVtb3ZlX3JlZF9jYXJkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlEjEKC3JlbW92ZV9mb3VsGBAgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlEh4KCmh1bGxfY29sb3IYFyABKA4yCi5IdWxsQ29sb3IaDgoMU3dpdGNoQ29sb3JzGhsKBlJldmVydBIRCgljaGFuZ2VfaWQYASABKAUaLgoMTmV3R2FtZVN0YXRlEh4KCmdhbWVfc3RhdGUYASABKAsyCi5HYW1lU3RhdGUaKgoQU2V0U3RhdHVzTWVzc2FnZRIWCg5zdGF0dXNfbWVzc2FnZRgBIAEoCUIICgZjaGFuZ2VCWkIQU3NsR2NDaGFuZ2VQcm90b1ABWkRnaXRodWIuY29tL1JvYm9DdXAtU1NML3NzbC1nYW1lLWNvbnRyb2xsZXIvaW50ZXJuYWwvYXBwL3N0YXRlbWFjaGluZQ", [file_state_ssl_gc_state, file_state_ssl_gc_common, file_geom_ssl_gc_geometry, file_state_ssl_gc_game_event, file_state_ssl_gc_referee_message, file_google_protobuf_timestamp, file_google_protobuf_wrappers]); /** * A state change @@ -966,6 +966,13 @@ export type Change_UpdateTeamState = Message<"Change.UpdateTeamState"> & { * @generated from field: optional google.protobuf.UInt32Value remove_foul = 16; */ removeFoul?: number; + + /** + * The color of the hull + * + * @generated from field: optional HullColor hull_color = 23; + */ + hullColor: HullColor; }; /** @@ -1120,6 +1127,13 @@ export type Change_UpdateTeamStateJson = { * @generated from field: optional google.protobuf.UInt32Value remove_foul = 16; */ removeFoul?: UInt32ValueJson; + + /** + * The color of the hull + * + * @generated from field: optional HullColor hull_color = 23; + */ + hullColor?: HullColorJson; }; /** diff --git a/frontend/src/views/StartView.vue b/frontend/src/views/StartView.vue index dab60349..4d4ef3de 100644 --- a/frontend/src/views/StartView.vue +++ b/frontend/src/views/StartView.vue @@ -15,6 +15,7 @@ import FieldHalfInput from "@/components/team/FieldHalfInput.vue"; import StageInput from "@/components/start/StageInput.vue"; import {teams} from "@/helpers"; import MaxRobotsPerTeamInput from "@/components/start/MaxRobotsPerTeamInput.vue"; +import HullColorInput from "@/components/team/HullColorInput.vue";