Adding event support to items
This commit is contained in:
parent
513244ae1f
commit
ee612f6585
11 changed files with 253 additions and 36 deletions
10
back/src/Model/Websocket/ItemEventMessage.ts
Normal file
10
back/src/Model/Websocket/ItemEventMessage.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
import * as tg from "generic-type-guard";
|
||||
|
||||
export const isItemEventMessageInterface =
|
||||
new tg.IsInterface().withProperties({
|
||||
itemId: tg.isNumber,
|
||||
event: tg.isString,
|
||||
state: tg.isUnknown,
|
||||
parameters: tg.isUnknown,
|
||||
}).get();
|
||||
export type ItemEventMessageInterface = tg.GuardedType<typeof isItemEventMessageInterface>;
|
|
@ -27,6 +27,8 @@ export class World {
|
|||
private readonly groupUpdatedCallback: GroupUpdatedCallback;
|
||||
private readonly groupDeletedCallback: GroupDeletedCallback;
|
||||
|
||||
private itemsState: Map<number, unknown> = new Map<number, unknown>();
|
||||
|
||||
constructor(connectCallback: ConnectCallback,
|
||||
disconnectCallback: DisconnectCallback,
|
||||
minDistance: number,
|
||||
|
@ -227,6 +229,14 @@ export class World {
|
|||
return Math.sqrt(Math.pow(position2.x - position1.x, 2) + Math.pow(position2.y - position1.y, 2));
|
||||
}
|
||||
|
||||
public setItemState(itemId: number, state: unknown) {
|
||||
this.itemsState.set(itemId, state);
|
||||
}
|
||||
|
||||
public getItemsState(): Map<number, unknown> {
|
||||
return this.itemsState;
|
||||
}
|
||||
|
||||
/*getDistancesBetweenGroupUsers(group: Group): Distance[]
|
||||
{
|
||||
let i = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue