File tree Expand file tree Collapse file tree 2 files changed +39
-13
lines changed Expand file tree Collapse file tree 2 files changed +39
-13
lines changed Original file line number Diff line number Diff line change 183
183
(mortar-model)))))
184
184
185
185
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
+
186
198
(defmethod scene-pass ((this dude-model) (pass simulation-pass) input)
187
199
(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 )))
198
202
199
203
200
204
(defmethod scene-pass ((this dude-model) pass input)
205
209
(translation-mat4 (x pos) 0.0 (- (y pos)))
206
210
(euler-angles->mat4 (vec3 0.0 (y rot) 0.0 )))))
207
211
(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)))
Original file line number Diff line number Diff line change 49
49
(server (make-game-server new-arena)))
50
50
(run (>> (register-game-stream server (server-identity-id identity ))
51
51
(create-arena remote-server name)
52
- (-> ((mortar-combat)) ()
52
+ (assembly-flow ' player-node :player (player-of new-arena))
53
+ (-> ((mortar-combat)) (player)
53
54
(setf arena new-arena
54
55
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))
56
58
(-> ((host)) ()
57
59
(lock-cursor)))))))
58
60
67
69
(client (make-game-client new-arena)))
68
70
(run (>> (register-game-stream client (server-identity-id identity ))
69
71
(join-arena remote-server name)
70
- (-> ((mortar-combat)) ()
72
+ (assembly-flow ' player-node :player (player-of new-arena))
73
+ (-> ((mortar-combat)) (player)
71
74
(setf arena new-arena
72
75
game-client client)
73
76
(update-player-camera scene arena)
77
+ (adopt (find-node (root-of scene) :dude-group ) player)
74
78
(register-player client (server-identity-name identity )))
75
79
(-> ((host)) ()
76
80
(lock-cursor)))))))
You can’t perform that action at this time.
0 commit comments