improving game
This commit is contained in:
18
backend/lib/backend_web/channels/cluster_status_channel.ex
Normal file
18
backend/lib/backend_web/channels/cluster_status_channel.ex
Normal file
@@ -0,0 +1,18 @@
|
||||
defmodule BackendWeb.ClusterStatusChannel do
|
||||
@moduledoc """
|
||||
Channel for cluster status information
|
||||
"""
|
||||
use BackendWeb, :channel
|
||||
require Logger
|
||||
|
||||
@impl true
|
||||
def join("clusterstatus", _params, socket) do
|
||||
Logger.info("Client joined clusterstatus channel")
|
||||
{:ok, %{status: "connected"}, socket}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_in(_event, _payload, socket) do
|
||||
{:noreply, socket}
|
||||
end
|
||||
end
|
||||
@@ -20,7 +20,7 @@ defmodule BackendWeb.ConnectedUserChannel do
|
||||
:new_browser_connection
|
||||
)
|
||||
|
||||
current_state = Backend.GameState.get_state()
|
||||
current_state = Backend.GameRunner.get_state()
|
||||
{:ok, %{game_state: current_state}, socket}
|
||||
end
|
||||
|
||||
@@ -55,7 +55,7 @@ defmodule BackendWeb.ConnectedUserChannel do
|
||||
|> assign(:player_name, name)
|
||||
|> assign(:keys_pressed, MapSet.new())
|
||||
|
||||
Backend.GameState.add_player(name)
|
||||
Backend.GameRunner.add_player(name)
|
||||
|
||||
{:reply, :ok, socket}
|
||||
end
|
||||
@@ -75,7 +75,7 @@ defmodule BackendWeb.ConnectedUserChannel do
|
||||
"Player '#{player_name}' key down: #{key}, keys: #{inspect(MapSet.to_list(keys_pressed))}"
|
||||
)
|
||||
|
||||
Backend.GameState.update_player_keys(player_name, MapSet.to_list(keys_pressed))
|
||||
Backend.GameRunner.update_player_keys(player_name, MapSet.to_list(keys_pressed))
|
||||
|
||||
{:noreply, socket}
|
||||
end
|
||||
@@ -96,7 +96,7 @@ defmodule BackendWeb.ConnectedUserChannel do
|
||||
"Player '#{player_name}' key up: #{key}, keys: #{inspect(MapSet.to_list(keys_pressed))}"
|
||||
)
|
||||
|
||||
Backend.GameState.update_player_keys(player_name, MapSet.to_list(keys_pressed))
|
||||
Backend.GameRunner.update_player_keys(player_name, MapSet.to_list(keys_pressed))
|
||||
|
||||
{:noreply, socket}
|
||||
end
|
||||
@@ -110,7 +110,7 @@ defmodule BackendWeb.ConnectedUserChannel do
|
||||
|
||||
player_name ->
|
||||
Logger.info("Player '#{player_name}' disconnected from #{node()}")
|
||||
Backend.GameState.remove_player(player_name)
|
||||
Backend.GameRunner.remove_player(player_name)
|
||||
end
|
||||
|
||||
:ok
|
||||
|
||||
@@ -5,6 +5,7 @@ defmodule BackendWeb.UserSocket do
|
||||
|
||||
## Channels
|
||||
channel("user:*", BackendWeb.ConnectedUserChannel)
|
||||
channel("clusterstatus", BackendWeb.ClusterStatusChannel)
|
||||
|
||||
@impl true
|
||||
def connect(%{"user_name" => user_name}, socket, _connect_info) do
|
||||
|
||||
@@ -24,7 +24,6 @@ defmodule BackendWeb.Router do
|
||||
pipe_through([:fetch_session, :protect_from_forgery])
|
||||
|
||||
live_dashboard("/dashboard", metrics: BackendWeb.Telemetry)
|
||||
forward("/mailbox", Plug.Swoosh.MailboxPreview)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user