-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbomberman_server.rkt
65 lines (54 loc) · 1.65 KB
/
bomberman_server.rkt
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#lang racket
;; import
(require 2htdp/universe)
(require "game/sv_network_waiting.rkt")
(require "game/sv_network_ingame.rkt")
(require "game/sv_connect.rkt")
(require "game/sv_disconnect.rkt")
(require "game/sh_structs.rkt")
(require "game/sv_tick.rkt")
(require "game/sh_config.rkt")
;; exports
(provide launch-server)
;; [message] is called whenever we receive a message f rom a client
(define (message currentWorld connection msg)
(if (worldWaitingForPlayers currentWorld)
(messageWaiting currentWorld connection msg)
(messageIngame currentWorld connection msg)
)
)
;;[launch-server] calls universe to create the server
(define (launch-server)
(universe (serversideWorld '() #t (+ (current-seconds) (* 60 5)) "" '() '() 0)
(on-new connect-client)
(on-disconnect disconnect-client)
(on-msg message)
(on-tick gameTick (/ 1 gameServerFPS))
)
)
;;[launch-server] calls universe to create the server with port
(define (launch-server-withport ourport)
(universe (serversideWorld '() #t (+ (current-seconds) (* 60 5)) "" '() '() 0)
(on-new connect-client)
(on-disconnect disconnect-client)
(on-msg message)
(port ourport)
(on-tick gameTick (/ 1 gameServerFPS))
)
)
(define (launch-server-cmdline)
(define cmdline (current-command-line-arguments))
(if (vector-empty? cmdline)
(and
(println "Launching server for local playing")
(launch-server)
)
(and
(println "Launching server with port")
(println (vector-ref cmdline 0))
(launch-server-withport (string->number (vector-ref cmdline 0)))
)
)
)
;(launch-server-cmdline)
;(launch-server-withport 27015)