All files / Hungry-Hippo-Game/src/game/scenes MovementStore.ts

0% Statements 0/29
0% Branches 0/1
0% Functions 0/1
0% Lines 0/29

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                           
// MovementStore.ts
type MovementPayload = {
    userId: string;
    x: number;
    y: number;
  };
  
  type MoveListener = (move: MovementPayload) => void;
  
  class MovementStore {
    private listeners: MoveListener[] = [];
  
    subscribe(listener: MoveListener) {
      this.listeners.push(listener);
      return () => {
      this.unsubscribe(listener);
    };
    }
  
    unsubscribe(listener: MoveListener) {
      this.listeners = this.listeners.filter(l => l !== listener);
    }
  
    notifyMove(payload: MovementPayload) {
      this.listeners.forEach(listener => listener(payload));
    }
  }
  
  export const movementStore = new MovementStore();