server.clj
Branches > main > af0a324 > files / src / net / bowmap / server / game / server.clj
(ns net.bowmap.server.game.server
(:require
[clojure.spec.alpha :as s]
[com.wotbrew.relic :as relic]
[net.bowmap.server.game.player :as player]))
(def max-player-count 1000)
(s/def ::players (s/coll-of ::player/player :kind set?))
(s/def ::entity-id pos-int?)
(s/def ::env (s/keys :opt [::entity-id]))
(s/def ::server (s/keys :opt [::players ::env]))
(def players-by-uuid
[[:from ::players]
[:unique ::player/uuid]])
(defonce state (atom (-> (relic/mat {::env #{{::entity-id 0}}}
players-by-uuid))))
(defn env
([state]
(first (::env state)))
([state k]
(req! (env state) k)))