Skip to content

Commit 11eab86

Browse files
committed
Register when server player is hit
1 parent 9179e6b commit 11eab86

File tree

2 files changed

+39
-13
lines changed

2 files changed

+39
-13
lines changed

client/src/dude.lisp

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,18 +183,22 @@
183183
(mortar-model)))))
184184

185185

186+
(defun move-body (body player)
187+
(let* ((p-pos (position-of player))
188+
(pos (mult *model-matrix* (add *dude-bounds-initial-position*
189+
(vec4 (x p-pos) 0.0 (- (y p-pos))))))
190+
(w (w pos)))
191+
(flet ((w/ (v)
192+
(/ v w)))
193+
(setf (position-of body) (vec3 (w/ (x pos))
194+
(w/ (y pos))
195+
(w/ (z pos)))))))
196+
197+
186198
(defmethod scene-pass ((this dude-model) (pass simulation-pass) input)
187199
(with-slots (body player) this
188-
(let* ((p-pos (position-of player))
189-
(pos (mult *model-matrix* (add *dude-bounds-initial-position*
190-
(vec4 (x p-pos) 0.0 (- (y p-pos))))))
191-
(w (w pos)))
192-
(flet ((w/ (v)
193-
(/ v w)))
194-
(setf (position-of body) (vec3 (w/ (x pos))
195-
(w/ (y pos))
196-
(w/ (z pos)))))))
197-
(call-next-method))
200+
(move-body body player)
201+
(call-next-method)))
198202

199203

200204
(defmethod scene-pass ((this dude-model) pass input)
@@ -205,3 +209,21 @@
205209
(translation-mat4 (x pos) 0.0 (- (y pos)))
206210
(euler-angles->mat4 (vec3 0.0 (y rot) 0.0)))))
207211
(call-next-method))))
212+
213+
214+
;;
215+
(defclass player-node (scene-node)
216+
((body :initform nil)
217+
(player :initarg :player)))
218+
219+
220+
(defmethod initialization-flow ((this player-node) &key)
221+
(with-slots (body player) this
222+
(>> (-> ((physics)) ()
223+
(setf body (make-instance 'dude-body :owner player)))
224+
(call-next-method))))
225+
226+
227+
(defmethod scene-pass ((this player-node) pass input)
228+
(with-slots (body player) this
229+
(move-body body player)))

client/src/main.lisp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,12 @@
4949
(server (make-game-server new-arena)))
5050
(run (>> (register-game-stream server (server-identity-id identity))
5151
(create-arena remote-server name)
52-
(-> ((mortar-combat)) ()
52+
(assembly-flow 'player-node :player (player-of new-arena))
53+
(-> ((mortar-combat)) (player)
5354
(setf arena new-arena
5455
game-server server)
55-
(update-player-camera scene arena))
56+
(update-player-camera scene arena)
57+
(adopt (find-node (root-of scene) :dude-group) player))
5658
(-> ((host)) ()
5759
(lock-cursor)))))))
5860

@@ -67,10 +69,12 @@
6769
(client (make-game-client new-arena)))
6870
(run (>> (register-game-stream client (server-identity-id identity))
6971
(join-arena remote-server name)
70-
(-> ((mortar-combat)) ()
72+
(assembly-flow 'player-node :player (player-of new-arena))
73+
(-> ((mortar-combat)) (player)
7174
(setf arena new-arena
7275
game-client client)
7376
(update-player-camera scene arena)
77+
(adopt (find-node (root-of scene) :dude-group) player)
7478
(register-player client (server-identity-name identity)))
7579
(-> ((host)) ()
7680
(lock-cursor)))))))

0 commit comments

Comments
 (0)