-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgame.thrift
More file actions
274 lines (231 loc) · 6.46 KB
/
Copy pathgame.thrift
File metadata and controls
274 lines (231 loc) · 6.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
namespace csharp Hpmv
namespace netstd Hpmv
struct Point {
1: double x,
2: double y,
3: double z,
}
struct PadDirection {
1: double x,
2: double y,
}
struct Quaternion {
1: double x,
2: double y,
3: double z,
4: double w,
}
struct EntityPathReference {
1: list<i32> ids,
}
struct ButtonInput {
1: bool down,
2: bool justPressed,
3: bool justReleased,
}
struct OneInputData {
1: PadDirection pad,
7: ButtonInput pickup,
8: ButtonInput interact,
9: ButtonInput dash,
}
struct ChefSpecificData {
4: i32 highlightedForPickup,
5: i32 highlightedForUse,
6: i32 highlightedForPlacement,
7: double dashTimer,
8: i32 interactingEntity,
9: Point lastVelocity,
10: bool aimingThrow,
11: bool movementInputSuppressed,
12: Point lastMoveInputDirection,
13: double impactStartTime,
14: double impactTimer,
15: Point impactVelocity,
16: double leftOverTime,
}
struct ItemData {
1: optional Point pos,
// 2: map<i32, binary> data,
4: optional Quaternion rotation,
3: optional Point velocity,
6: optional Point angularVelocity,
// EntityReference passed in via EntityWarpSpec.
5: optional EntityPathReference entityPathReference,
}
struct EntityRegistryData {
1: i32 entityId,
2: string name,
3: Point pos,
4: list<string> components,
5: list<i32> syncEntityTypes,
6: list<string> spawnNames,
}
struct ServerMessage {
1: i32 type,
2: binary message,
}
struct OutputData {
1: map<i32, ChefSpecificData> chefs,
2: map<i32, ItemData> items,
3: list<ServerMessage> serverMessages,
4: list<EntityRegistryData> entityRegistry,
6: bool lastFramePaused,
7: bool nextFramePaused,
8: i32 frameNumber,
9: optional string invalidStateReason,
10: i32 physicsFramesElapsed,
11: i32 framesSinceLastNoPhysicsFrame,
}
struct EntityIdOrRef {
1: optional i32 entityId,
2: optional EntityPathReference entityPathReference,
}
struct PlatePendingReturnWarpData {
1: i32 returnStationEntityId,
2: double timer,
3: i32 platingStepData,
}
struct PlateStationWarpData {
1: list<PlatePendingReturnWarpData> plates,
}
struct IngredientContainerWarpData {
1: binary msgData, // encoded IngredientContainerMessage
}
struct CannonWarpData {
1: binary modData, // encoded CannonModMessage
}
struct WorkstationInteracterWarpData {
1: i32 chefEntityId,
4: double actionTimer,
}
struct WorkstationWarpData {
1: list<WorkstationInteracterWarpData> interacters,
2: optional EntityIdOrRef item,
}
struct WorkableItemWarpData {
1: i32 progress,
2: i32 subProgress,
3: bool onWorkstation,
}
struct ColliderRef {
1: EntityIdOrRef entity,
2: i32 colliderIndex,
}
struct ThrowableItemWarpData {
1: bool isFlying,
2: double flightTimer,
3: i32 throwerEntityId,
4: list<ColliderRef> throwStartColliders,
}
struct TerminalWarpData {
1: optional i32 interacterEntityId,
}
struct PilotRotationWarpData {
1: double angle,
}
struct MixingHandlerWarpData {
1: double progress,
}
struct CookingHandlerWarpData {
1: double progress,
}
struct ChefCarryWarpData {
1: optional EntityIdOrRef carriedItem,
}
struct AttachStationWarpData {
1: optional EntityIdOrRef item,
}
struct PickupItemSwitcherWarpData {
1: i32 index,
}
struct TriggerColourCycleWarpData {
1: i32 index,
}
struct PlatePendingReturnData {
1: i32 returnStationEntityId,
2: double timer,
}
struct PlateReturnControllerWarpData {
1: list<PlatePendingReturnData> plates,
}
struct StackWarpData {
1: list<EntityIdOrRef> stackContents,
}
struct WashingStationWarpData {
1: i32 plateCount,
2: double progress,
}
struct KitchenControllerWarpData {
1: double roundTime,
2: list<binary> activeOrders,
3: i32 nextOrderId,
4: i32 lastComboIndex,
5: double timeSinceLastOrder,
6: binary teamScore,
}
struct CookingStationWarpData {
1: bool isTurnedOn,
2: bool isCooking,
}
struct PlateReturnStationWarpData {
1: optional EntityIdOrRef stack,
}
struct EntityWarpSpec {
// Either entityId or spawningPath is specified. If the former, the entity
// already exists in the game; if the latter, the entity is to be created
// using the spawningPath, whose first element is the source entity ID, and
// subsequent elements are the spawnable object indices.
1: optional i32 entityId,
2: list<i32> spawningPath,
// If this is specified, the reference should be attached to the GameObject
// so that the controller may identify it.
3: optional EntityPathReference entityPathReference,
// Physics data.
4: optional Point position,
5: optional Quaternion rotation,
6: optional Point velocity,
11: optional Point angularVelocity,
// Zero or more of the following can be present.
8: optional PlateStationWarpData plateStation,
9: optional ChefSpecificData chef,
10: optional IngredientContainerWarpData ingredientContainer,
12: optional CannonWarpData cannon,
13: optional WorkstationWarpData workstation,
14: optional WorkableItemWarpData workableItem,
15: optional ThrowableItemWarpData throwableItem,
16: optional TerminalWarpData terminal,
17: optional PilotRotationWarpData pilotRotation,
18: optional MixingHandlerWarpData mixingHandler,
19: optional CookingHandlerWarpData cookingHandler,
20: optional ChefCarryWarpData chefCarry,
21: optional AttachStationWarpData attachStation,
22: optional PickupItemSwitcherWarpData pickupItemSwitcher,
23: optional TriggerColourCycleWarpData triggerColourCycle,
24: optional PlateReturnControllerWarpData plateReturnController,
25: optional StackWarpData stack,
26: optional WashingStationWarpData washingStation,
27: optional KitchenControllerWarpData kitchenController,
28: optional CookingStationWarpData cookingStation,
29: optional PlateReturnStationWarpData plateReturnStation,
// TODO: more entity types
}
struct WarpSpec {
1: list<EntityWarpSpec> entities,
2: list<i32> entitiesToDelete,
3: i32 frame,
4: string invalidStateReason,
}
struct InputData {
1: map<i32, OneInputData> input,
2: i32 resetOrderSeed,
3: optional double gameSpeed,
4: optional WarpSpec warp,
5: optional bool requestPause,
6: optional bool requestResume,
7: optional i32 nextFrame,
8: bool preventInvalidState,
}
service Interceptor {
InputData getNext(1: OutputData output),
}