Add basic multiplayer
This commit is contained in:
parent
0f0a1eaf67
commit
46a48e7c15
113 changed files with 1362 additions and 754 deletions
|
|
@ -2,11 +2,27 @@ import ioserver, { Socket } from 'socket.io';
|
|||
import express from 'express';
|
||||
import { Server } from 'http';
|
||||
import cors from 'cors';
|
||||
|
||||
import { PlayerContainer } from './players/player-container';
|
||||
import { applyArrayPlugins, Random, TransportEvents, deserializeCommand } from 'shared';
|
||||
import './index.html';
|
||||
import { TransportEvents } from '../../shared/src/transport/transport-events';
|
||||
import { Player } from './players/player';
|
||||
import { PhysicalGameObjectContainer } from './physics/physical-game-object-container';
|
||||
import { createDungeon } from './map/create-dungeon';
|
||||
import { glMatrix } from 'gl-matrix';
|
||||
|
||||
glMatrix.setMatrixArrayType(Array);
|
||||
|
||||
applyArrayPlugins();
|
||||
|
||||
Random.seed = 42;
|
||||
|
||||
const objects = new PhysicalGameObjectContainer();
|
||||
|
||||
createDungeon(objects);
|
||||
createDungeon(objects);
|
||||
createDungeon(objects);
|
||||
createDungeon(objects);
|
||||
|
||||
objects.initialize();
|
||||
|
||||
const app = express();
|
||||
|
||||
|
|
@ -23,8 +39,6 @@ const port = 3000;
|
|||
const server = new Server(app);
|
||||
const io = ioserver(server);
|
||||
|
||||
const players = new PlayerContainer();
|
||||
|
||||
const log = (text: string) => {
|
||||
io.to('insights').emit('insights', text + '\n');
|
||||
};
|
||||
|
|
@ -35,17 +49,15 @@ app.get('/', function (req, res) {
|
|||
|
||||
io.on('connection', (socket: SocketIO.Socket) => {
|
||||
socket.on(TransportEvents.PlayerJoining, () => {
|
||||
log('player joined');
|
||||
const player = new Player(objects, socket);
|
||||
|
||||
const player = new Player(socket);
|
||||
players.addPlayer(player);
|
||||
|
||||
socket.on(TransportEvents.PlayerSendingInfo, () => {});
|
||||
socket.on(TransportEvents.PlayerToServer, (text: string) => {
|
||||
const command = deserializeCommand(JSON.parse(text));
|
||||
player.sendCommand(command);
|
||||
});
|
||||
|
||||
socket.on('disconnect', () => {
|
||||
log('player disconnected');
|
||||
|
||||
players.removePlayerBySocketId(player.socketId);
|
||||
player.destroy();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue