Using Command pattern andEntityX

This commit is contained in:
Julian Nießner
2019-06-02 12:57:53 +02:00
parent e024ef3f0c
commit e43d142f6a
10 changed files with 298 additions and 120 deletions

44
src/messages/Command.h Normal file
View File

@@ -0,0 +1,44 @@
#pragma once
//Vendor
#include <yojimbo.h>
#include "../GameServer.h"
// ---- Interface:
class Command
{
public:
// Create Commands from Network messages (Limited list)
static Command *create(int clientIndex, yojimbo::Message *message);
// Create Commands from Strings (Limited list)
virtual void execute(GameServer *server) = 0;
};
// --- implemented Classes:
class TestCommand : public Command
{
public:
TestCommand(int clientIndex, yojimbo::Message *message)
: m_clientIndex(clientIndex), m_message((TestMessage *)message) {}
virtual void execute(GameServer *server) override;
private:
int m_clientIndex;
TestMessage *m_message;
};
class SetNameCommand : public Command
{
public:
SetNameCommand(int clientIndex, yojimbo::Message *message)
: m_clientIndex(clientIndex), m_message((SetNameMessage *)message) {}
virtual void execute(GameServer *server) override;
private:
int m_clientIndex;
SetNameMessage *m_message;
};