mirror of
https://github.com/devZoGok/PlanetFleet.git
synced 2026-08-26 19:43:29 +00:00
factored out GameObjectFrame
refactored GameObject/Unit- Factory class
This commit is contained in:
+2
-2
@@ -24,8 +24,8 @@ set(CORE gameManager.cpp defConfigs.cpp ${CONSOLE} ${CONTROLLERS})
|
||||
set(PROJECTILES projectile.cpp)
|
||||
set(FX explosion.cpp)
|
||||
set(VEHICLES vehicle.cpp engineer.cpp)
|
||||
set(UNITS unitFactory.cpp unit.cpp structure.cpp ${VEHICLES})
|
||||
set(CONTENT player.cpp pathfinder.cpp map.cpp gameObject.cpp resourceDeposit.cpp ${UNITS} ${PROJECTILES} ${FX})
|
||||
set(UNITS gameObjectFactory.cpp unit.cpp structure.cpp ${VEHICLES})
|
||||
set(CONTENT player.cpp pathfinder.cpp map.cpp gameObject.cpp gameObjectFrame.h resourceDeposit.cpp ${UNITS} ${PROJECTILES} ${FX})
|
||||
set(GAME_SRC ${STATES} ${GUI} ${CORE} ${CONTENT} ${UTIL})
|
||||
|
||||
set(SFML_DIR external/SFML)
|
||||
|
||||
+1
-1
@@ -291,7 +291,7 @@ namespace battleship{
|
||||
GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton();
|
||||
|
||||
if(ufCtr->isPlacingFrames()){
|
||||
GameObjectFrameController::GameObjectFrame goFr= ufCtr->getGameObjectFrame(0);
|
||||
GameObjectFrame goFr = ufCtr->getGameObjectFrame(0);
|
||||
unit = new Structure(mainPlayer, goFr.getId(), goFr.getModel()->getPosition(), goFr.getModel()->getOrientation());
|
||||
mainPlayer->addUnit(unit);
|
||||
}
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
#include "addUnitCommand.h"
|
||||
#include "inGameAppState.h"
|
||||
#include "player.h"
|
||||
#include "unitFactory.h"
|
||||
#include "gameObjectFactory.h"
|
||||
|
||||
namespace battleship{
|
||||
using namespace gameBase;
|
||||
@@ -48,7 +48,7 @@ namespace battleship{
|
||||
|
||||
void AddUnitCommand::addUnit(){
|
||||
Player* player = Map::getSingleton()->getPlayer(playerId);
|
||||
player->addUnit(UnitFactory::createUnit(player, unitId, pos, rot));
|
||||
player->addUnit(GameObjectFactory::createUnit(player, unitId, pos, rot));
|
||||
}
|
||||
|
||||
void AddUnitCommand::execute(){
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ namespace battleship{
|
||||
|
||||
void BuildButton::onClick(){
|
||||
GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton();
|
||||
ufCtr->addGameObjectFrame(GameObjectFrameController::GameObjectFrame(structureId, (int)UnitType::LAND));
|
||||
ufCtr->addGameObjectFrame(GameObjectFrame(structureId, GameObjectFrame::UNIT));
|
||||
ufCtr->setPlacingFrames(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#include "gameObjectFactory.h"
|
||||
#include "player.h"
|
||||
#include "vehicle.h"
|
||||
#include "engineer.h"
|
||||
#include "projectile.h"
|
||||
#include "resourceDeposit.h"
|
||||
#include "defConfigs.h"
|
||||
|
||||
#include <solUtil.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace battleship{
|
||||
using namespace std;
|
||||
using namespace vb01;
|
||||
using namespace gameBase;
|
||||
|
||||
Unit* GameObjectFactory::createUnit(Player *player, int id, Vector3 pos, Quaternion rot){
|
||||
sol::state_view SOL_LUA_STATE = generateView();
|
||||
int unitClass = SOL_LUA_STATE["unitClass"][id + 1];
|
||||
|
||||
switch((UnitClass)unitClass){
|
||||
case UnitClass::ENGINEER:
|
||||
return new Engineer(player, id, pos, rot);
|
||||
default:
|
||||
return new Vehicle(player, id, pos, rot);
|
||||
}
|
||||
}
|
||||
|
||||
Projectile* createProjectile(Unit*, int, vb01::Vector3, vb01::Quaternion){
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ResourceDeposit* createResourceDeposit(int, vb01::Vector3, vb01::Quaternion){
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef GAME_OBJECT_FACTORY_H
|
||||
#define GAME_OBJECT_FACTORY_H
|
||||
|
||||
#include <vector.h>
|
||||
#include <quaternion.h>
|
||||
|
||||
namespace battleship{
|
||||
class Unit;
|
||||
class Projectile;
|
||||
class ResourceDeposit;
|
||||
class Player;
|
||||
|
||||
class GameObjectFactory{
|
||||
public:
|
||||
enum GameObjectType{UNIT, PROJECTILE, RESOURCE_DEPOSIT};
|
||||
static Unit* createUnit(Player*, int, vb01::Vector3, vb01::Quaternion);
|
||||
static Projectile* createProjectile(Player*, Unit*, int, vb01::Vector3, vb01::Quaternion);
|
||||
static ResourceDeposit* createResourceDeposit(int, vb01::Vector3, vb01::Quaternion);
|
||||
private:
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,5 @@
|
||||
#include "gameObjectFrame.h"
|
||||
|
||||
namespace battleship{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef GAME_OBJECT_FRAME_H
|
||||
#define GAME_OBJECT_FRAME_H
|
||||
|
||||
#include "gameObject.h"
|
||||
|
||||
#include <vector.h>
|
||||
#include <quaternion.h>
|
||||
|
||||
namespace battleship{
|
||||
struct GameObjectFrame : public GameObject{
|
||||
enum Status{PLACEABLE, NOT_PLACEABLE, PLACED};
|
||||
enum Type {UNIT, RESOURCE_DEPOSIT};
|
||||
|
||||
GameObjectFrame(int i, Type t, vb01::Vector3 pos = vb01::Vector3::VEC_ZERO, vb01::Quaternion rot = vb01::Quaternion::QUAT_W) : GameObject(i, nullptr, pos, rot), type(t) {
|
||||
initModel(false);
|
||||
}
|
||||
~GameObjectFrame(){}
|
||||
|
||||
Type type;
|
||||
Status status;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1,6 +1,6 @@
|
||||
#include <solUtil.h>
|
||||
|
||||
#include "unitFrameController.h"
|
||||
#include "gameObjectFrameController.h"
|
||||
#include "unit.h"
|
||||
#include "util.h"
|
||||
#include "map.h"
|
||||
@@ -21,10 +21,6 @@ namespace battleship{
|
||||
|
||||
static GameObjectFrameController *gameObjectFrameController = nullptr;
|
||||
|
||||
GameObjectFrameController::GameObjectFrame::GameObjectFrame(int i, int t, Vector3 pos, Quaternion rot) : GameObject(i, nullptr, pos, rot), type(t) {
|
||||
initModel(false);
|
||||
}
|
||||
|
||||
GameObjectFrameController* GameObjectFrameController::getSingleton(){
|
||||
if(!gameObjectFrameController)
|
||||
gameObjectFrameController = new GameObjectFrameController();
|
||||
@@ -49,7 +45,7 @@ namespace battleship{
|
||||
buildDir = gameObjectFrames[1].getModel()->getPosition() - gameObjectFrames[0].getModel()->getPosition();
|
||||
|
||||
Vector3 pos = paintSelectRowStart + buildDir.norm() * hypothenuse * gameObjectFrames.size();
|
||||
addGameObjectFrame(GameObjectFrame(structureId, (int)UnitType::LAND, pos));
|
||||
addGameObjectFrame(GameObjectFrame(structureId, GameObjectFrame::UNIT, pos));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef UNIT_FRAME_CONTROLLER_H
|
||||
#define UNIT_FRAME_CONTROLLER_H
|
||||
#ifndef GAME_OBJECT_FRAME_CONTROLLER_H
|
||||
#define GAME_OBJECT_FRAME_CONTROLLER_H
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
@@ -7,7 +7,7 @@
|
||||
#include <vector.h>
|
||||
#include <quaternion.h>
|
||||
|
||||
#include "gameObject.h"
|
||||
#include "gameObjectFrame.h"
|
||||
|
||||
namespace vb01{
|
||||
class Model;
|
||||
@@ -16,16 +16,6 @@ namespace vb01{
|
||||
namespace battleship{
|
||||
class GameObjectFrameController{
|
||||
public:
|
||||
struct GameObjectFrame : public GameObject{
|
||||
enum Status{PLACEABLE, NOT_PLACEABLE, PLACED};
|
||||
|
||||
GameObjectFrame(int, int, vb01::Vector3 = vb01::Vector3::VEC_ZERO, vb01::Quaternion = vb01::Quaternion::QUAT_W);
|
||||
~GameObjectFrame(){}
|
||||
|
||||
int type;
|
||||
Status status;
|
||||
};
|
||||
|
||||
static GameObjectFrameController* getSingleton();
|
||||
void update();
|
||||
void removeGameObjectFrame(int);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#include "map.h"
|
||||
#include "player.h"
|
||||
#include "unitFactory.h"
|
||||
#include "gameObjectFactory.h"
|
||||
#include "pathfinder.h"
|
||||
#include "gameManager.h"
|
||||
#include "defConfigs.h"
|
||||
@@ -149,7 +149,7 @@ namespace battleship{
|
||||
|
||||
int id = unitTable["id"];
|
||||
|
||||
players[i]->addUnit(UnitFactory::createUnit(players[i], id, pos, rot));
|
||||
players[i]->addUnit(GameObjectFactory::createUnit(players[i], id, pos, rot));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -584,7 +584,7 @@ namespace battleship{
|
||||
case Bind::LOOK_AROUND:
|
||||
if(ufCtr->isPlacingFrames()){
|
||||
Player *player = Map::getSingleton()->getPlayer(0);
|
||||
GameObjectFrameController::GameObjectFrame &frame = ufCtr->getGameObjectFrame(0);
|
||||
GameObjectFrame &frame = ufCtr->getGameObjectFrame(0);
|
||||
player->addUnit(new Unit(player, frame.getId(), frame.getModel()->getPosition(), frame.getModel()->getOrientation()));
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
#include "unitFactory.h"
|
||||
#include "player.h"
|
||||
#include "vehicle.h"
|
||||
#include "engineer.h"
|
||||
#include "defConfigs.h"
|
||||
|
||||
#include <solUtil.h>
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace battleship{
|
||||
using namespace std;
|
||||
using namespace vb01;
|
||||
using namespace gameBase;
|
||||
|
||||
Unit* UnitFactory::createUnit(Player *player, int id, Vector3 pos, Quaternion rot){
|
||||
sol::state_view SOL_LUA_STATE = generateView();
|
||||
int unitClass = SOL_LUA_STATE["unitClass"][id + 1];
|
||||
Unit *unit = nullptr;
|
||||
|
||||
switch((UnitClass)unitClass){
|
||||
case UnitClass::ENGINEER:
|
||||
unit = new Engineer(player, id, pos, rot);
|
||||
break;
|
||||
default:
|
||||
unit = new Vehicle(player, id, pos, rot);
|
||||
break;
|
||||
}
|
||||
|
||||
return unit;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
#ifndef UNIT_FACTORY_H
|
||||
#define UNIT_FACTORY_H
|
||||
|
||||
#include <vector.h>
|
||||
#include <quaternion.h>
|
||||
|
||||
namespace battleship{
|
||||
class Unit;
|
||||
class Player;
|
||||
|
||||
class UnitFactory{
|
||||
public:
|
||||
static Unit* createUnit(Player*, int, vb01::Vector3, vb01::Quaternion);
|
||||
private:
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
+1
-2
@@ -14,9 +14,8 @@ namespace battleship{
|
||||
}
|
||||
|
||||
void UnitListbox::onClose(){
|
||||
int id = selectedOption;
|
||||
GameObjectFrameController *ufCtr = GameObjectFrameController::getSingleton();
|
||||
ufCtr->addGameObjectFrame(GameObjectFrameController::GameObjectFrame(id, (int)UnitType::LAND));
|
||||
ufCtr->addGameObjectFrame(GameObjectFrame(selectedOption, GameObjectFrame::UNIT));
|
||||
ufCtr->setPlacingFrames(true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user