|
@@ -1,5 +1,6 @@
|
|
|
#include <iostream>
|
|
|
|
|
|
+#include "common/network/Packets.h"
|
|
|
#include "server/GameServer.h"
|
|
|
#include "server/commands/CommandManager.h"
|
|
|
#include "server/commands/CommandTypes.h"
|
|
@@ -8,6 +9,7 @@
|
|
|
GameServer::GameServer(Server& server) : state(server), reader(0, "> ") {
|
|
|
worlds.add(new World(blocks));
|
|
|
WorldGenerator wg(blocks, *(worlds[0]));
|
|
|
+ wg.generate();
|
|
|
}
|
|
|
|
|
|
void GameServer::tick() {
|
|
@@ -28,8 +30,21 @@ void GameServer::handleCommands() {
|
|
|
}
|
|
|
|
|
|
void GameServer::onConnect(Server::Client& client) {
|
|
|
- (void)client;
|
|
|
std::cout << "connected\n";
|
|
|
+
|
|
|
+ World& w = *(worlds[0]);
|
|
|
+ OutPacket out = OutPacket::reliable(
|
|
|
+ w.getHeight() * w.getSize() * w.getSize() * sizeof(BlockId) + 2);
|
|
|
+ out.writeU16(ServerPacket::WORLD);
|
|
|
+ for(int x = 0; x < w.getSize(); x++) {
|
|
|
+ for(int y = 0; y < w.getHeight(); y++) {
|
|
|
+ for(int z = 0; z < w.getSize(); z++) {
|
|
|
+ out.writeU16(w.getBlock(x, y, z).getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ client.send(out);
|
|
|
}
|
|
|
|
|
|
void GameServer::onDisconnect(Server::Client& client) {
|