@loova/game-sdk 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime_pb.d.ts","sourceRoot":"","sources":["../../../../src/gen/realtime/v1/realtime_pb.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,OACqlM,CAAC;AAE9nM;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,sCAAsC,CAAC,GAAG;IAC5E;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,KAAK,EAAE,IAAI,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,IAAI,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,OAAO,CAAC;KACf,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,IAAI,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,SAAS,CAAC;QACjB,IAAI,EAAE,WAAW,CAAC;KACnB,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CAC5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,aAAa,CACf,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,sCAAsC,CAAC,GAAG;IAC5E;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,SAAS,CAAC;KACjB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,YAAY,CAAC;QACpB,IAAI,EAAE,cAAc,CAAC;KACtB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,YAAY,CAAC;KACpB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,YAAY,CAAC;QACpB,IAAI,EAAE,cAAc,CAAC;KACtB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,YAAY,CAAC;KACpB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,SAAS,CAAC;QACjB,IAAI,EAAE,WAAW,CAAC;KACnB,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,gBAAgB,CAAC;QACxB,IAAI,EAAE,kBAAkB,CAAC;KAC1B,GAAG;QACF;;WAEG;QACH,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,YAAY,CAAC;KACpB,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CAC5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,aAAa,CACf,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IAC1D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,IAAI,CACG,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IAC1D;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,IAAI,CACG,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC,8BAA8B,CAAC,GAAG;IAC5D;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,KAAK,CACC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IAC1D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,IAAI,CACG,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,kCAAkC,CAAC,GAAG;IACpE;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,SAAS,CACP,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC,GAAG;IAChE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,OAAO,CACH,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,CAAC,GAAG;IAChE;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IAEV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,OAAO,CACH,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,oCAAoC,CAAC,GAAG;IACxE;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,WAAW,CACX,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,oCAAoC,CAAC,GAAG;IACxE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,WAAW,CACV,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,oCAAoC,CAAC,GAAG;IACxE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,WAAW,CACV,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,qCAAqC,CAAC,GAAG;IAC1E;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IAEvB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,YAAY,CACZ,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,mCAAmC,CAAC,GAAG;IACtE;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,EAAE,WAAW,EAAE,CAAC;IAE9B;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,UAAU,CACR,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,qCAAqC,CAAC,GAAG;IAC1E;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,YAAY,CACZ,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,mCAAmC,CAAC,GAAG;IACtE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,UAAU,CACR,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,kCAAkC,CAAC,GAAG;IACpE;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,aAAa,CAAC;IAEzB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,SAAS,CACN,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,yCAAyC,CAAC,GAAG;IAClF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,yBAAyB,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,mBAAmB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE9C;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,gBAAgB,CACpB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,0CAA0C,CAAC,GAAG;IACpF;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,UAAU,CAAC,iBAAiB,CACtB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,mCAAmC,CAAC,GAAG;IACtE;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,UAAU,CACR,CAAC;AAE7C;;;;;GAKG;AACH,oBAAY,WAAW;IACrB;;OAEG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,IAAI,IAAI;IAER;;OAEG;IACH,OAAO,IAAI;IAEX;;OAEG;IACH,KAAK,IAAI;IAET;;OAEG;IACH,aAAa,IAAI;IAEjB;;;OAGG;IACH,QAAQ,IAAI;IAEZ;;;OAGG;IACH,KAAK,IAAI;IAET;;OAEG;IACH,IAAI,IAAI;IAER;;;OAGG;IACH,IAAI,IAAI;IAER;;OAEG;IACH,aAAa,IAAI;IAEjB;;OAEG;IACH,WAAW,IAAI;IAEf;;;OAGG;IACH,cAAc,KAAK;IAEnB;;;OAGG;IACH,aAAa,KAAK;IAElB;;OAEG;IACH,WAAW,KAAK;IAEhB;;OAEG;IACH,IAAI,KAAK;IAET;;OAEG;IACH,SAAS,KAAK;IAEd;;OAEG;IACH,WAAW,KAAK;IAEhB;;OAEG;IACH,UAAU,KAAK;IAEf;;OAEG;IACH,iBAAiB,KAAK;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,WAAW,CACX,CAAC;AAEzC;;GAEG;AACH,oBAAY,WAAW;IACrB;;OAEG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,cAAc,IAAI;IAElB;;OAEG;IACH,YAAY,IAAI;IAEhB;;OAEG;IACH,OAAO,IAAI;IAEX;;OAEG;IACH,MAAM,IAAI;CACX;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,WAAW,CACX,CAAC;AAEzC;;GAEG;AACH,oBAAY,aAAa;IACvB;;OAEG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,YAAY,IAAI;IAEhB;;OAEG;IACH,UAAU,IAAI;IAEd;;OAEG;IACH,cAAc,IAAI;IAElB;;OAEG;IACH,aAAa,IAAI;IAEjB;;OAEG;IACH,IAAI,IAAI;CACT;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,aAAa,CACf,CAAC;AAEzC;;GAEG;AACH,oBAAY,gBAAgB;IAC1B;;OAEG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,mBAAmB,IAAI;IAEvB;;OAEG;IACH,aAAa,IAAI;IAEjB;;OAEG;IACH,SAAS,IAAI;CACd;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,gBAAgB,CACrB,CAAC;AAEzC;;GAEG;AACH,oBAAY,cAAc;IACxB;;OAEG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,iBAAiB,IAAI;IAErB;;OAEG;IACH,UAAU,IAAI;IAEd;;OAEG;IACH,OAAO,IAAI;CACZ;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,CAAC,cAAc,CACjB,CAAC"}
@@ -0,0 +1,319 @@
1
+ // @generated by protoc-gen-es v2.12.1 with parameter "target=ts,import_extension=js"
2
+ // @generated from file realtime/v1/realtime.proto (package loova.game.realtime.v1, syntax proto3)
3
+ /* eslint-disable */
4
+ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
5
+ /**
6
+ * Describes the file realtime/v1/realtime.proto.
7
+ */
8
+ export const file_realtime_v1_realtime = /*@__PURE__*/ fileDesc("ChpyZWFsdGltZS92MS9yZWFsdGltZS5wcm90bxIWbG9vdmEuZ2FtZS5yZWFsdGltZS52MSKIAwoNQ2xpZW50TWVzc2FnZRIYChBwcm90b2NvbF92ZXJzaW9uGAEgASgNEjkKDG1lc3NhZ2VfdHlwZRgCIAEoDjIjLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuTWVzc2FnZVR5cGUSEAoIc2VxdWVuY2UYAyABKAQSEwoLc2VydmVyX3RpY2sYBCABKAQSLAoEYXV0aBgKIAEoCzIcLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuQXV0aEgAEiwKBGpvaW4YCyABKAsyHC5sb292YS5nYW1lLnJlYWx0aW1lLnYxLkpvaW5IABIuCgVpbnB1dBgMIAEoCzIdLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuSW5wdXRIABIsCgRwaW5nGA0gASgLMhwubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5QaW5nSAASNgoJcmVjb25uZWN0GA4gASgLMiEubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5SZWNvbm5lY3RIAEIJCgdwYXlsb2FkIvkECg1TZXJ2ZXJNZXNzYWdlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SOQoMbWVzc2FnZV90eXBlGAIgASgOMiMubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5NZXNzYWdlVHlwZRIQCghzZXF1ZW5jZRgDIAEoBBITCgtzZXJ2ZXJfdGljaxgEIAEoBBIyCgd3ZWxjb21lGAogASgLMh8ubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5XZWxjb21lSAASPQoNZnVsbF9zbmFwc2hvdBgLIAEoCzIkLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuRnVsbFNuYXBzaG90SAASOQoLc3RhdGVfZGVsdGEYDCABKAsyIi5sb292YS5nYW1lLnJlYWx0aW1lLnYxLlN0YXRlRGVsdGFIABI9Cg1wbGF5ZXJfam9pbmVkGA0gASgLMiQubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5QbGF5ZXJKb2luZWRIABI5CgtwbGF5ZXJfbGVmdBgOIAEoCzIiLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuUGxheWVyTGVmdEgAEjcKCmdhbWVfZXZlbnQYDyABKAsyIS5sb292YS5nYW1lLnJlYWx0aW1lLnYxLkdhbWVFdmVudEgAEkUKEXNlcnZlcl9jb3JyZWN0aW9uGBAgASgLMigubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5TZXJ2ZXJDb3JyZWN0aW9uSAASOQoLbWF0Y2hfZW5kZWQYESABKAsyIi5sb292YS5nYW1lLnJlYWx0aW1lLnYxLk1hdGNoRW5kZWRIAEIJCgdwYXlsb2FkIlQKBEF1dGgSDgoGdGlja2V0GAEgASgJEhEKCXBsYXllcl9pZBgCIAEoCRIPCgdyb29tX2lkGAMgASgJEhgKEHByb3RvY29sX3ZlcnNpb24YBCABKA0iKgoESm9pbhIPCgdyb29tX2lkGAEgASgJEhEKCXBsYXllcl9pZBgCIAEoCSKHAQoFSW5wdXQSGgoOaW5wdXRfc2VxdWVuY2UYASABKARCAhgBEhMKC2NsaWVudF90aWNrGAIgASgEEg4KBm1vdmVfeBgDIAEoAhIOCgZtb3ZlX3kYBCABKAISDQoFYWltX3gYBSABKAISDQoFYWltX3kYBiABKAISDwoHYWN0aW9ucxgHIAEoDSItCgRQaW5nEg0KBW5vbmNlGAEgASgEEhYKDmNsaWVudF90aW1lX21zGAIgASgDImgKCVJlY29ubmVjdBIXCg9yZWNvbm5lY3RfdG9rZW4YASABKAkSEQoJcGxheWVyX2lkGAIgASgJEg8KB3Jvb21faWQYAyABKAkSHgoWbGFzdF9yZWNlaXZlZF9zZXF1ZW5jZRgEIAEoBCJzCgdXZWxjb21lEg8KB3Jvb21faWQYASABKAkSEQoJcGxheWVyX2lkGAIgASgJEhEKCXRpY2tfcmF0ZRgDIAEoDRIVCg1zbmFwc2hvdF9yYXRlGAQgASgNEhoKEnNpbXVsYXRpb25fcHJvZmlsZRgFIAEoCSIfCgdWZWN0b3IyEgkKAXgYASABKAISCQoBeRgCIAEoAiIbCgtXZWFwb25TdGF0ZRIMCgRhbW1vGAEgASgFIqICCgtQbGF5ZXJTdGF0ZRIRCglwbGF5ZXJfaWQYASABKAkSMQoIcG9zaXRpb24YAiABKAsyHy5sb292YS5nYW1lLnJlYWx0aW1lLnYxLlZlY3RvcjISEAoIcm90YXRpb24YAyABKAISMQoIdmVsb2NpdHkYBCABKAsyHy5sb292YS5nYW1lLnJlYWx0aW1lLnYxLlZlY3RvcjISDgoGaGVhbHRoGAUgASgFEg0KBWFsaXZlGAYgASgIEg0KBXN0YXRlGAcgASgJEiUKHWxhc3RfcHJvY2Vzc2VkX2lucHV0X3NlcXVlbmNlGAggASgEEjMKBndlYXBvbhgJIAEoCzIjLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuV2VhcG9uU3RhdGUi0gEKC0J1bGxldFN0YXRlEhEKCWJ1bGxldF9pZBgBIAEoCRIXCg9vd25lcl9wbGF5ZXJfaWQYAiABKAkSLwoGb3JpZ2luGAMgASgLMh8ubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5WZWN0b3IyEjIKCWRpcmVjdGlvbhgEIAEoCzIfLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuVmVjdG9yMhIVCg1oaXRfcGxheWVyX2lkGAUgASgJEhsKE2NyZWF0ZWRfc2VydmVyX3RpY2sYBiABKAQiugEKDEZ1bGxTbmFwc2hvdBIPCgdyb29tX2lkGAEgASgJEhIKCnJvb21fc3RhdGUYAiABKAkSNAoHcGxheWVycxgDIAMoCzIjLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuUGxheWVyU3RhdGUSNAoHYnVsbGV0cxgEIAMoCzIjLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuQnVsbGV0U3RhdGUSGQoRcmVtYWluaW5nX3RpbWVfbXMYBSABKAMigAEKClN0YXRlRGVsdGESGAoQYmFzZV9zZXJ2ZXJfdGljaxgBIAEoBBI8Cg9jaGFuZ2VkX3BsYXllcnMYAiADKAsyIy5sb292YS5nYW1lLnJlYWx0aW1lLnYxLlBsYXllclN0YXRlEhoKEnJlbW92ZWRfZW50aXR5X2lkcxgDIAMoCSJDCgxQbGF5ZXJKb2luZWQSMwoGcGxheWVyGAEgASgLMiMubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5QbGF5ZXJTdGF0ZSJUCgpQbGF5ZXJMZWZ0EhEKCXBsYXllcl9pZBgBIAEoCRIzCgZyZWFzb24YAiABKA4yIy5sb292YS5nYW1lLnJlYWx0aW1lLnYxLkxlYXZlUmVhc29uIvQBCglHYW1lRXZlbnQSEAoIZXZlbnRfaWQYASABKAkSOQoKZXZlbnRfdHlwZRgCIAEoDjIlLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuR2FtZUV2ZW50VHlwZRIXCg9hY3Rvcl9wbGF5ZXJfaWQYAyABKAkSGAoQdGFyZ2V0X3BsYXllcl9pZBgEIAEoCRIRCglidWxsZXRfaWQYBSABKAkSDgoGZGFtYWdlGAYgASgFEhgKEHJlbWFpbmluZ19oZWFsdGgYByABKAUSEgoKcGluZ19ub25jZRgIIAEoBBIWCg5zZXJ2ZXJfdGltZV9tcxgJIAEoAyLHAQoQU2VydmVyQ29ycmVjdGlvbhIRCglwbGF5ZXJfaWQYASABKAkSIwobYWNrbm93bGVkZ2VkX2lucHV0X3NlcXVlbmNlGAIgASgEEkEKFGF1dGhvcml0YXRpdmVfcGxheWVyGAMgASgLMiMubG9vdmEuZ2FtZS5yZWFsdGltZS52MS5QbGF5ZXJTdGF0ZRI4CgZyZWFzb24YBCABKA4yKC5sb292YS5nYW1lLnJlYWx0aW1lLnYxLkNvcnJlY3Rpb25SZWFzb24iRQoRTWF0Y2hQbGF5ZXJSZXN1bHQSEQoJcGxheWVyX2lkGAEgASgJEg0KBXNjb3JlGAIgASgFEg4KBndpbm5lchgDIAEoCCKaAQoKTWF0Y2hFbmRlZBIYChB3aW5uZXJfcGxheWVyX2lkGAEgASgJEjYKBnJlYXNvbhgCIAEoDjImLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuTWF0Y2hFbmRSZWFzb24SOgoHcGxheWVycxgDIAMoCzIpLmxvb3ZhLmdhbWUucmVhbHRpbWUudjEuTWF0Y2hQbGF5ZXJSZXN1bHQqvAQKC01lc3NhZ2VUeXBlEhwKGE1FU1NBR0VfVFlQRV9VTlNQRUNJRklFRBAAEhUKEU1FU1NBR0VfVFlQRV9BVVRIEAESGAoUTUVTU0FHRV9UWVBFX1dFTENPTUUQAhIWChJNRVNTQUdFX1RZUEVfSU5QVVQQAxIeChpNRVNTQUdFX1RZUEVfRlVMTF9TTkFQU0hPVBAEEh0KFU1FU1NBR0VfVFlQRV9TTkFQU0hPVBAEGgIIARIaChJNRVNTQUdFX1RZUEVfRVJST1IQBRoCCAESFQoRTUVTU0FHRV9UWVBFX1BJTkcQBhIZChFNRVNTQUdFX1RZUEVfUE9ORxAHGgIIARIeChpNRVNTQUdFX1RZUEVfUExBWUVSX0pPSU5FRBAIEhwKGE1FU1NBR0VfVFlQRV9QTEFZRVJfTEVGVBAJEiMKG01FU1NBR0VfVFlQRV9QTEFZRVJfREFNQUdFRBAKGgIIARIiChpNRVNTQUdFX1RZUEVfUExBWUVSX0tJTExFRBALGgIIARIcChhNRVNTQUdFX1RZUEVfTUFUQ0hfRU5ERUQQDBIVChFNRVNTQUdFX1RZUEVfSk9JThANEhoKFk1FU1NBR0VfVFlQRV9SRUNPTk5FQ1QQDhIcChhNRVNTQUdFX1RZUEVfU1RBVEVfREVMVEEQDxIbChdNRVNTQUdFX1RZUEVfR0FNRV9FVkVOVBAQEiIKHk1FU1NBR0VfVFlQRV9TRVJWRVJfQ09SUkVDVElPThARGgIQASqeAQoLTGVhdmVSZWFzb24SHAoYTEVBVkVfUkVBU09OX1VOU1BFQ0lGSUVEEAASHwobTEVBVkVfUkVBU09OX0NMSUVOVF9SRVFVRVNUEAESHQoZTEVBVkVfUkVBU09OX0RJU0NPTk5FQ1RFRBACEhgKFExFQVZFX1JFQVNPTl9USU1FT1VUEAMSFwoTTEVBVkVfUkVBU09OX0tJQ0tFRBAEKtMBCg1HYW1lRXZlbnRUeXBlEh8KG0dBTUVfRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEiAKHEdBTUVfRVZFTlRfVFlQRV9XRUFQT05fRklSRUQQARIeChpHQU1FX0VWRU5UX1RZUEVfQlVMTEVUX0hJVBACEiIKHkdBTUVfRVZFTlRfVFlQRV9QTEFZRVJfREFNQUdFRBADEiEKHUdBTUVfRVZFTlRfVFlQRV9QTEFZRVJfS0lMTEVEEAQSGAoUR0FNRV9FVkVOVF9UWVBFX1BPTkcQBSqmAQoQQ29ycmVjdGlvblJlYXNvbhIhCh1DT1JSRUNUSU9OX1JFQVNPTl9VTlNQRUNJRklFRBAAEikKJUNPUlJFQ1RJT05fUkVBU09OX1BSRURJQ1RJT05fRElWRVJHRUQQARIjCh9DT1JSRUNUSU9OX1JFQVNPTl9JTlZBTElEX0lOUFVUEAISHwobQ09SUkVDVElPTl9SRUFTT05fUkVDT05ORUNUEAMqmQEKDk1hdGNoRW5kUmVhc29uEiAKHE1BVENIX0VORF9SRUFTT05fVU5TUEVDSUZJRUQQABImCiJNQVRDSF9FTkRfUkVBU09OX0xBU1RfUExBWUVSX0FMSVZFEAESHwobTUFUQ0hfRU5EX1JFQVNPTl9USU1FX0xJTUlUEAISHAoYTUFUQ0hfRU5EX1JFQVNPTl9BQk9SVEVEEANCQUgBWj1naXRodWIuY29tL2xvb3ZhLWFpL2xvb3ZhLWdhbWUtcmVhbHRpbWUvcGtnL3Byb3RvY29sO3Byb3RvY29sYgZwcm90bzM");
9
+ /**
10
+ * Describes the message loova.game.realtime.v1.ClientMessage.
11
+ * Use `create(ClientMessageSchema)` to create a new message.
12
+ */
13
+ export const ClientMessageSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 0);
14
+ /**
15
+ * Describes the message loova.game.realtime.v1.ServerMessage.
16
+ * Use `create(ServerMessageSchema)` to create a new message.
17
+ */
18
+ export const ServerMessageSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 1);
19
+ /**
20
+ * Describes the message loova.game.realtime.v1.Auth.
21
+ * Use `create(AuthSchema)` to create a new message.
22
+ */
23
+ export const AuthSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 2);
24
+ /**
25
+ * Describes the message loova.game.realtime.v1.Join.
26
+ * Use `create(JoinSchema)` to create a new message.
27
+ */
28
+ export const JoinSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 3);
29
+ /**
30
+ * Describes the message loova.game.realtime.v1.Input.
31
+ * Use `create(InputSchema)` to create a new message.
32
+ */
33
+ export const InputSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 4);
34
+ /**
35
+ * Describes the message loova.game.realtime.v1.Ping.
36
+ * Use `create(PingSchema)` to create a new message.
37
+ */
38
+ export const PingSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 5);
39
+ /**
40
+ * Describes the message loova.game.realtime.v1.Reconnect.
41
+ * Use `create(ReconnectSchema)` to create a new message.
42
+ */
43
+ export const ReconnectSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 6);
44
+ /**
45
+ * Describes the message loova.game.realtime.v1.Welcome.
46
+ * Use `create(WelcomeSchema)` to create a new message.
47
+ */
48
+ export const WelcomeSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 7);
49
+ /**
50
+ * Describes the message loova.game.realtime.v1.Vector2.
51
+ * Use `create(Vector2Schema)` to create a new message.
52
+ */
53
+ export const Vector2Schema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 8);
54
+ /**
55
+ * Describes the message loova.game.realtime.v1.WeaponState.
56
+ * Use `create(WeaponStateSchema)` to create a new message.
57
+ */
58
+ export const WeaponStateSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 9);
59
+ /**
60
+ * Describes the message loova.game.realtime.v1.PlayerState.
61
+ * Use `create(PlayerStateSchema)` to create a new message.
62
+ */
63
+ export const PlayerStateSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 10);
64
+ /**
65
+ * Describes the message loova.game.realtime.v1.BulletState.
66
+ * Use `create(BulletStateSchema)` to create a new message.
67
+ */
68
+ export const BulletStateSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 11);
69
+ /**
70
+ * Describes the message loova.game.realtime.v1.FullSnapshot.
71
+ * Use `create(FullSnapshotSchema)` to create a new message.
72
+ */
73
+ export const FullSnapshotSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 12);
74
+ /**
75
+ * Describes the message loova.game.realtime.v1.StateDelta.
76
+ * Use `create(StateDeltaSchema)` to create a new message.
77
+ */
78
+ export const StateDeltaSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 13);
79
+ /**
80
+ * Describes the message loova.game.realtime.v1.PlayerJoined.
81
+ * Use `create(PlayerJoinedSchema)` to create a new message.
82
+ */
83
+ export const PlayerJoinedSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 14);
84
+ /**
85
+ * Describes the message loova.game.realtime.v1.PlayerLeft.
86
+ * Use `create(PlayerLeftSchema)` to create a new message.
87
+ */
88
+ export const PlayerLeftSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 15);
89
+ /**
90
+ * Describes the message loova.game.realtime.v1.GameEvent.
91
+ * Use `create(GameEventSchema)` to create a new message.
92
+ */
93
+ export const GameEventSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 16);
94
+ /**
95
+ * Describes the message loova.game.realtime.v1.ServerCorrection.
96
+ * Use `create(ServerCorrectionSchema)` to create a new message.
97
+ */
98
+ export const ServerCorrectionSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 17);
99
+ /**
100
+ * Describes the message loova.game.realtime.v1.MatchPlayerResult.
101
+ * Use `create(MatchPlayerResultSchema)` to create a new message.
102
+ */
103
+ export const MatchPlayerResultSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 18);
104
+ /**
105
+ * Describes the message loova.game.realtime.v1.MatchEnded.
106
+ * Use `create(MatchEndedSchema)` to create a new message.
107
+ */
108
+ export const MatchEndedSchema = /*@__PURE__*/ messageDesc(file_realtime_v1_realtime, 19);
109
+ /**
110
+ * MessageType values are permanent wire identifiers.
111
+ * Never renumber or reuse a value. New values must only be appended.
112
+ *
113
+ * @generated from enum loova.game.realtime.v1.MessageType
114
+ */
115
+ export var MessageType;
116
+ (function (MessageType) {
117
+ /**
118
+ * @generated from enum value: MESSAGE_TYPE_UNSPECIFIED = 0;
119
+ */
120
+ MessageType[MessageType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
121
+ /**
122
+ * @generated from enum value: MESSAGE_TYPE_AUTH = 1;
123
+ */
124
+ MessageType[MessageType["AUTH"] = 1] = "AUTH";
125
+ /**
126
+ * @generated from enum value: MESSAGE_TYPE_WELCOME = 2;
127
+ */
128
+ MessageType[MessageType["WELCOME"] = 2] = "WELCOME";
129
+ /**
130
+ * @generated from enum value: MESSAGE_TYPE_INPUT = 3;
131
+ */
132
+ MessageType[MessageType["INPUT"] = 3] = "INPUT";
133
+ /**
134
+ * @generated from enum value: MESSAGE_TYPE_FULL_SNAPSHOT = 4;
135
+ */
136
+ MessageType[MessageType["FULL_SNAPSHOT"] = 4] = "FULL_SNAPSHOT";
137
+ /**
138
+ * @generated from enum value: MESSAGE_TYPE_SNAPSHOT = 4 [deprecated = true];
139
+ * @deprecated
140
+ */
141
+ MessageType[MessageType["SNAPSHOT"] = 4] = "SNAPSHOT";
142
+ /**
143
+ * @generated from enum value: MESSAGE_TYPE_ERROR = 5 [deprecated = true];
144
+ * @deprecated
145
+ */
146
+ MessageType[MessageType["ERROR"] = 5] = "ERROR";
147
+ /**
148
+ * @generated from enum value: MESSAGE_TYPE_PING = 6;
149
+ */
150
+ MessageType[MessageType["PING"] = 6] = "PING";
151
+ /**
152
+ * @generated from enum value: MESSAGE_TYPE_PONG = 7 [deprecated = true];
153
+ * @deprecated
154
+ */
155
+ MessageType[MessageType["PONG"] = 7] = "PONG";
156
+ /**
157
+ * @generated from enum value: MESSAGE_TYPE_PLAYER_JOINED = 8;
158
+ */
159
+ MessageType[MessageType["PLAYER_JOINED"] = 8] = "PLAYER_JOINED";
160
+ /**
161
+ * @generated from enum value: MESSAGE_TYPE_PLAYER_LEFT = 9;
162
+ */
163
+ MessageType[MessageType["PLAYER_LEFT"] = 9] = "PLAYER_LEFT";
164
+ /**
165
+ * @generated from enum value: MESSAGE_TYPE_PLAYER_DAMAGED = 10 [deprecated = true];
166
+ * @deprecated
167
+ */
168
+ MessageType[MessageType["PLAYER_DAMAGED"] = 10] = "PLAYER_DAMAGED";
169
+ /**
170
+ * @generated from enum value: MESSAGE_TYPE_PLAYER_KILLED = 11 [deprecated = true];
171
+ * @deprecated
172
+ */
173
+ MessageType[MessageType["PLAYER_KILLED"] = 11] = "PLAYER_KILLED";
174
+ /**
175
+ * @generated from enum value: MESSAGE_TYPE_MATCH_ENDED = 12;
176
+ */
177
+ MessageType[MessageType["MATCH_ENDED"] = 12] = "MATCH_ENDED";
178
+ /**
179
+ * @generated from enum value: MESSAGE_TYPE_JOIN = 13;
180
+ */
181
+ MessageType[MessageType["JOIN"] = 13] = "JOIN";
182
+ /**
183
+ * @generated from enum value: MESSAGE_TYPE_RECONNECT = 14;
184
+ */
185
+ MessageType[MessageType["RECONNECT"] = 14] = "RECONNECT";
186
+ /**
187
+ * @generated from enum value: MESSAGE_TYPE_STATE_DELTA = 15;
188
+ */
189
+ MessageType[MessageType["STATE_DELTA"] = 15] = "STATE_DELTA";
190
+ /**
191
+ * @generated from enum value: MESSAGE_TYPE_GAME_EVENT = 16;
192
+ */
193
+ MessageType[MessageType["GAME_EVENT"] = 16] = "GAME_EVENT";
194
+ /**
195
+ * @generated from enum value: MESSAGE_TYPE_SERVER_CORRECTION = 17;
196
+ */
197
+ MessageType[MessageType["SERVER_CORRECTION"] = 17] = "SERVER_CORRECTION";
198
+ })(MessageType || (MessageType = {}));
199
+ /**
200
+ * Describes the enum loova.game.realtime.v1.MessageType.
201
+ */
202
+ export const MessageTypeSchema = /*@__PURE__*/ enumDesc(file_realtime_v1_realtime, 0);
203
+ /**
204
+ * @generated from enum loova.game.realtime.v1.LeaveReason
205
+ */
206
+ export var LeaveReason;
207
+ (function (LeaveReason) {
208
+ /**
209
+ * @generated from enum value: LEAVE_REASON_UNSPECIFIED = 0;
210
+ */
211
+ LeaveReason[LeaveReason["UNSPECIFIED"] = 0] = "UNSPECIFIED";
212
+ /**
213
+ * @generated from enum value: LEAVE_REASON_CLIENT_REQUEST = 1;
214
+ */
215
+ LeaveReason[LeaveReason["CLIENT_REQUEST"] = 1] = "CLIENT_REQUEST";
216
+ /**
217
+ * @generated from enum value: LEAVE_REASON_DISCONNECTED = 2;
218
+ */
219
+ LeaveReason[LeaveReason["DISCONNECTED"] = 2] = "DISCONNECTED";
220
+ /**
221
+ * @generated from enum value: LEAVE_REASON_TIMEOUT = 3;
222
+ */
223
+ LeaveReason[LeaveReason["TIMEOUT"] = 3] = "TIMEOUT";
224
+ /**
225
+ * @generated from enum value: LEAVE_REASON_KICKED = 4;
226
+ */
227
+ LeaveReason[LeaveReason["KICKED"] = 4] = "KICKED";
228
+ })(LeaveReason || (LeaveReason = {}));
229
+ /**
230
+ * Describes the enum loova.game.realtime.v1.LeaveReason.
231
+ */
232
+ export const LeaveReasonSchema = /*@__PURE__*/ enumDesc(file_realtime_v1_realtime, 1);
233
+ /**
234
+ * @generated from enum loova.game.realtime.v1.GameEventType
235
+ */
236
+ export var GameEventType;
237
+ (function (GameEventType) {
238
+ /**
239
+ * @generated from enum value: GAME_EVENT_TYPE_UNSPECIFIED = 0;
240
+ */
241
+ GameEventType[GameEventType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
242
+ /**
243
+ * @generated from enum value: GAME_EVENT_TYPE_WEAPON_FIRED = 1;
244
+ */
245
+ GameEventType[GameEventType["WEAPON_FIRED"] = 1] = "WEAPON_FIRED";
246
+ /**
247
+ * @generated from enum value: GAME_EVENT_TYPE_BULLET_HIT = 2;
248
+ */
249
+ GameEventType[GameEventType["BULLET_HIT"] = 2] = "BULLET_HIT";
250
+ /**
251
+ * @generated from enum value: GAME_EVENT_TYPE_PLAYER_DAMAGED = 3;
252
+ */
253
+ GameEventType[GameEventType["PLAYER_DAMAGED"] = 3] = "PLAYER_DAMAGED";
254
+ /**
255
+ * @generated from enum value: GAME_EVENT_TYPE_PLAYER_KILLED = 4;
256
+ */
257
+ GameEventType[GameEventType["PLAYER_KILLED"] = 4] = "PLAYER_KILLED";
258
+ /**
259
+ * @generated from enum value: GAME_EVENT_TYPE_PONG = 5;
260
+ */
261
+ GameEventType[GameEventType["PONG"] = 5] = "PONG";
262
+ })(GameEventType || (GameEventType = {}));
263
+ /**
264
+ * Describes the enum loova.game.realtime.v1.GameEventType.
265
+ */
266
+ export const GameEventTypeSchema = /*@__PURE__*/ enumDesc(file_realtime_v1_realtime, 2);
267
+ /**
268
+ * @generated from enum loova.game.realtime.v1.CorrectionReason
269
+ */
270
+ export var CorrectionReason;
271
+ (function (CorrectionReason) {
272
+ /**
273
+ * @generated from enum value: CORRECTION_REASON_UNSPECIFIED = 0;
274
+ */
275
+ CorrectionReason[CorrectionReason["UNSPECIFIED"] = 0] = "UNSPECIFIED";
276
+ /**
277
+ * @generated from enum value: CORRECTION_REASON_PREDICTION_DIVERGED = 1;
278
+ */
279
+ CorrectionReason[CorrectionReason["PREDICTION_DIVERGED"] = 1] = "PREDICTION_DIVERGED";
280
+ /**
281
+ * @generated from enum value: CORRECTION_REASON_INVALID_INPUT = 2;
282
+ */
283
+ CorrectionReason[CorrectionReason["INVALID_INPUT"] = 2] = "INVALID_INPUT";
284
+ /**
285
+ * @generated from enum value: CORRECTION_REASON_RECONNECT = 3;
286
+ */
287
+ CorrectionReason[CorrectionReason["RECONNECT"] = 3] = "RECONNECT";
288
+ })(CorrectionReason || (CorrectionReason = {}));
289
+ /**
290
+ * Describes the enum loova.game.realtime.v1.CorrectionReason.
291
+ */
292
+ export const CorrectionReasonSchema = /*@__PURE__*/ enumDesc(file_realtime_v1_realtime, 3);
293
+ /**
294
+ * @generated from enum loova.game.realtime.v1.MatchEndReason
295
+ */
296
+ export var MatchEndReason;
297
+ (function (MatchEndReason) {
298
+ /**
299
+ * @generated from enum value: MATCH_END_REASON_UNSPECIFIED = 0;
300
+ */
301
+ MatchEndReason[MatchEndReason["UNSPECIFIED"] = 0] = "UNSPECIFIED";
302
+ /**
303
+ * @generated from enum value: MATCH_END_REASON_LAST_PLAYER_ALIVE = 1;
304
+ */
305
+ MatchEndReason[MatchEndReason["LAST_PLAYER_ALIVE"] = 1] = "LAST_PLAYER_ALIVE";
306
+ /**
307
+ * @generated from enum value: MATCH_END_REASON_TIME_LIMIT = 2;
308
+ */
309
+ MatchEndReason[MatchEndReason["TIME_LIMIT"] = 2] = "TIME_LIMIT";
310
+ /**
311
+ * @generated from enum value: MATCH_END_REASON_ABORTED = 3;
312
+ */
313
+ MatchEndReason[MatchEndReason["ABORTED"] = 3] = "ABORTED";
314
+ })(MatchEndReason || (MatchEndReason = {}));
315
+ /**
316
+ * Describes the enum loova.game.realtime.v1.MatchEndReason.
317
+ */
318
+ export const MatchEndReasonSchema = /*@__PURE__*/ enumDesc(file_realtime_v1_realtime, 4);
319
+ //# sourceMappingURL=realtime_pb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime_pb.js","sourceRoot":"","sources":["../../../../src/gen/realtime/v1/realtime_pb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { InputAction, LoovaGameClient, PROTOCOL_VERSION, type ConnectOptions, type DamageEvent, type DeathEvent, type LoovaGameClientOptions, type MatchEndEvent, type PlayerInput, type PlayerJoinEvent, type PlayerLeaveEvent, type SnapshotEvent, } from "./runtime-client.js";
2
+ export { InputBuffer, SnapshotInterpolator, predictPlayer, type BufferedInput, type PlayerView, type PredictionConfig, type Vector2, } from "./prediction.js";
3
+ export { RoomApi, type CreateRoomOptions, type CreateRoomResult, type JoinRoomOptions, type JoinRoomResult, } from "./room-api.js";
4
+ export type { Unsubscribe } from "./events.js";
5
+ import { LoovaGameClient, type LoovaGameClientOptions } from "./runtime-client.js";
6
+ export declare function createLoovaGameSDK(options: LoovaGameClientOptions): LoovaGameClient;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,OAAO,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,sBAAsB,GAC9B,eAAe,CAEjB"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { InputAction, LoovaGameClient, PROTOCOL_VERSION, } from "./runtime-client.js";
2
+ export { InputBuffer, SnapshotInterpolator, predictPlayer, } from "./prediction.js";
3
+ export { RoomApi, } from "./room-api.js";
4
+ import { LoovaGameClient, } from "./runtime-client.js";
5
+ export function createLoovaGameSDK(options) {
6
+ return new LoovaGameClient(options);
7
+ }
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,GAUjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,aAAa,GAKd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,GAKR,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,GAEhB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,kBAAkB,CAChC,OAA+B;IAE/B,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,44 @@
1
+ export interface Vector2 {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export interface PlayerView {
6
+ playerId: string;
7
+ position: Vector2;
8
+ rotation: number;
9
+ velocity: Vector2;
10
+ health: number;
11
+ alive: boolean;
12
+ state: string;
13
+ ammo: number;
14
+ lastProcessedInputSequence: bigint;
15
+ }
16
+ export interface BufferedInput {
17
+ sequence: bigint;
18
+ moveX: number;
19
+ moveY: number;
20
+ aimX: number;
21
+ aimY: number;
22
+ actions: number;
23
+ }
24
+ export interface PredictionConfig {
25
+ tickRate: number;
26
+ playerSpeed: number;
27
+ worldLimit: number;
28
+ }
29
+ export declare class InputBuffer {
30
+ #private;
31
+ constructor(capacity?: number);
32
+ push(input: BufferedInput): void;
33
+ acknowledge(sequence: bigint): void;
34
+ pending(): readonly BufferedInput[];
35
+ clear(): void;
36
+ }
37
+ export declare function predictPlayer(authoritative: PlayerView, inputs: readonly BufferedInput[], config: PredictionConfig): PlayerView;
38
+ export declare class SnapshotInterpolator {
39
+ #private;
40
+ constructor(delayMs?: number);
41
+ push(serverTick: bigint, receivedAtMs: number, players: readonly PlayerView[]): void;
42
+ sample(nowMs: number): readonly PlayerView[];
43
+ }
44
+ //# sourceMappingURL=prediction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prediction.d.ts","sourceRoot":"","sources":["../src/prediction.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;;gBAIV,QAAQ,SAAM;IAO1B,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIhC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,OAAO,IAAI,SAAS,aAAa,EAAE;IAInC,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,aAAa,CAC3B,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,MAAM,EAAE,gBAAgB,GACvB,UAAU,CAsBZ;AAQD,qBAAa,oBAAoB;;gBAKnB,OAAO,SAAM;IAIzB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI;IAYpF,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE;CA4B7C"}
@@ -0,0 +1,111 @@
1
+ export class InputBuffer {
2
+ #capacity;
3
+ #inputs = [];
4
+ constructor(capacity = 256) {
5
+ if (!Number.isInteger(capacity) || capacity < 1) {
6
+ throw new RangeError("input buffer capacity must be a positive integer");
7
+ }
8
+ this.#capacity = capacity;
9
+ }
10
+ push(input) {
11
+ this.#inputs = [...this.#inputs, { ...input }].slice(-this.#capacity);
12
+ }
13
+ acknowledge(sequence) {
14
+ this.#inputs = this.#inputs.filter((input) => input.sequence > sequence);
15
+ }
16
+ pending() {
17
+ return this.#inputs.map((input) => ({ ...input }));
18
+ }
19
+ clear() {
20
+ this.#inputs = [];
21
+ }
22
+ }
23
+ export function predictPlayer(authoritative, inputs, config) {
24
+ const delta = 1 / config.tickRate;
25
+ return inputs.reduce((player, input) => {
26
+ const length = Math.hypot(input.moveX, input.moveY);
27
+ const scale = length > 1 ? 1 / length : 1;
28
+ const velocity = {
29
+ x: input.moveX * scale * config.playerSpeed,
30
+ y: input.moveY * scale * config.playerSpeed,
31
+ };
32
+ const rotation = input.aimX !== 0 || input.aimY !== 0
33
+ ? Math.atan2(input.aimY, input.aimX)
34
+ : player.rotation;
35
+ return {
36
+ ...player,
37
+ position: {
38
+ x: clamp(player.position.x + velocity.x * delta, -config.worldLimit, config.worldLimit),
39
+ y: clamp(player.position.y + velocity.y * delta, -config.worldLimit, config.worldLimit),
40
+ },
41
+ rotation,
42
+ velocity,
43
+ };
44
+ }, clonePlayer(authoritative));
45
+ }
46
+ export class SnapshotInterpolator {
47
+ #delayMs;
48
+ #previous;
49
+ #latest;
50
+ constructor(delayMs = 100) {
51
+ this.#delayMs = Math.max(0, delayMs);
52
+ }
53
+ push(serverTick, receivedAtMs, players) {
54
+ if (this.#latest && serverTick <= this.#latest.serverTick) {
55
+ return;
56
+ }
57
+ this.#previous = this.#latest;
58
+ this.#latest = {
59
+ serverTick,
60
+ receivedAtMs,
61
+ players: players.map(clonePlayer),
62
+ };
63
+ }
64
+ sample(nowMs) {
65
+ if (!this.#latest) {
66
+ return [];
67
+ }
68
+ if (!this.#previous) {
69
+ return this.#latest.players.map(clonePlayer);
70
+ }
71
+ const targetTime = nowMs - this.#delayMs;
72
+ const duration = this.#latest.receivedAtMs - this.#previous.receivedAtMs;
73
+ const alpha = duration <= 0
74
+ ? 1
75
+ : clamp((targetTime - this.#previous.receivedAtMs) / duration, 0, 1);
76
+ const previousByID = new Map(this.#previous.players.map((player) => [player.playerId, player]));
77
+ return this.#latest.players.map((latest) => {
78
+ const previous = previousByID.get(latest.playerId);
79
+ if (!previous) {
80
+ return clonePlayer(latest);
81
+ }
82
+ return {
83
+ ...latest,
84
+ position: lerpVector(previous.position, latest.position, alpha),
85
+ velocity: lerpVector(previous.velocity, latest.velocity, alpha),
86
+ rotation: lerpAngle(previous.rotation, latest.rotation, alpha),
87
+ };
88
+ });
89
+ }
90
+ }
91
+ function clonePlayer(player) {
92
+ return {
93
+ ...player,
94
+ position: { ...player.position },
95
+ velocity: { ...player.velocity },
96
+ };
97
+ }
98
+ function lerpVector(from, to, alpha) {
99
+ return {
100
+ x: from.x + (to.x - from.x) * alpha,
101
+ y: from.y + (to.y - from.y) * alpha,
102
+ };
103
+ }
104
+ function lerpAngle(from, to, alpha) {
105
+ const difference = Math.atan2(Math.sin(to - from), Math.cos(to - from));
106
+ return from + difference * alpha;
107
+ }
108
+ function clamp(value, minimum, maximum) {
109
+ return Math.min(maximum, Math.max(minimum, value));
110
+ }
111
+ //# sourceMappingURL=prediction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prediction.js","sourceRoot":"","sources":["../src/prediction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface CreateRoomOptions {
2
+ gameId: string;
3
+ releaseId?: string;
4
+ maxPlayers?: number;
5
+ metadata?: Readonly<Record<string, string>>;
6
+ }
7
+ export interface CreateRoomResult {
8
+ roomId: string;
9
+ }
10
+ export interface JoinRoomOptions {
11
+ playerId: string;
12
+ displayName?: string;
13
+ }
14
+ export interface JoinRoomResult {
15
+ roomId: string;
16
+ playerId: string;
17
+ ticket: string;
18
+ websocketUrl: string;
19
+ reconnectToken?: string;
20
+ }
21
+ export declare class RoomApi {
22
+ #private;
23
+ constructor(baseUrl: string, fetcher?: typeof fetch);
24
+ createRoom(options: CreateRoomOptions): Promise<CreateRoomResult>;
25
+ joinRoom(roomId: string, options: JoinRoomOptions): Promise<JoinRoomResult>;
26
+ }
27
+ //# sourceMappingURL=room-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-api.d.ts","sourceRoot":"","sources":["../src/room-api.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,OAAO;;gBAIN,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,KAAa;IAKpD,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIjE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAqBlF"}
@@ -0,0 +1,29 @@
1
+ export class RoomApi {
2
+ #baseUrl;
3
+ #fetcher;
4
+ constructor(baseUrl, fetcher = fetch) {
5
+ this.#baseUrl = baseUrl.replace(/\/+$/, "");
6
+ this.#fetcher = fetcher;
7
+ }
8
+ async createRoom(options) {
9
+ return this.#request("/rooms", options);
10
+ }
11
+ async joinRoom(roomId, options) {
12
+ if (!roomId) {
13
+ throw new TypeError("roomId is required");
14
+ }
15
+ return this.#request(`/rooms/${encodeURIComponent(roomId)}/join`, options);
16
+ }
17
+ async #request(path, body) {
18
+ const response = await this.#fetcher(`${this.#baseUrl}${path}`, {
19
+ method: "POST",
20
+ headers: { "content-type": "application/json" },
21
+ body: JSON.stringify(body),
22
+ });
23
+ if (!response.ok) {
24
+ throw new Error(`Loova room API failed: HTTP ${response.status}`);
25
+ }
26
+ return await response.json();
27
+ }
28
+ }
29
+ //# sourceMappingURL=room-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-api.js","sourceRoot":"","sources":["../src/room-api.ts"],"names":[],"mappings":"AAwBA,MAAM,OAAO,OAAO;IACT,QAAQ,CAAS;IACjB,QAAQ,CAAe;IAEhC,YAAY,OAAe,EAAE,UAAwB,KAAK;QACxD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAA0B;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAmB,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAwB;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAClB,UAAU,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAC3C,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAI,IAAY,EAAE,IAAa;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAO,CAAC;IACpC,CAAC;CACF"}