42 lines
1.0 KiB
Elixir
42 lines
1.0 KiB
Elixir
defmodule Example.Game do
|
|
require Logger
|
|
@behaviour Amethyst.API.Game
|
|
|
|
@impl true
|
|
def instantiate(supervisor) do
|
|
Logger.info("The supervisor for this game is at #{inspect(supervisor)}")
|
|
{:ok, %{}}
|
|
end
|
|
|
|
@impl true
|
|
def login(from, cfg, refs) do
|
|
Logger.info("Player logged in from #{inspect(from)}: #{inspect(cfg)}")
|
|
Logger.info("The refs for this game are #{inspect(refs)}")
|
|
{:accept, {0.0, 0.0, 0.0}, {0.0, 0.0}}
|
|
end
|
|
|
|
@impl true
|
|
@spec player_position(any(), {any(), any(), any()}, any()) :: :ok
|
|
def player_position(from, {x, y, z}, _refs) do
|
|
Logger.info("Player at #{inspect(from)} moved to #{x}, #{y}, #{z}")
|
|
:ok
|
|
end
|
|
|
|
@impl true
|
|
def player_rotation(from, {yaw, pitch}, _refs) do
|
|
Logger.info("Player at #{inspect(from)} rotated to #{yaw}, #{pitch}")
|
|
:ok
|
|
end
|
|
|
|
@impl true
|
|
def accept_teleport(from, id, _state_refs) do
|
|
Logger.info("Player at #{inspect(from)} accepted teleport #{inspect(id)}")
|
|
:ok
|
|
end
|
|
|
|
@impl true
|
|
def joinable?(_refs) do
|
|
true
|
|
end
|
|
end
|