Huge refactoring v3
parent
005869bc87
commit
61427ff2fd
|
@ -77,14 +77,12 @@ void Shooter::start() {
|
||||||
|
|
||||||
world->loadMap(ShooterConsts::MAP_OBJ, Vec3D{5, 5, 5});
|
world->loadMap(ShooterConsts::MAP_OBJ, Vec3D{5, 5, 5});
|
||||||
|
|
||||||
player = std::make_shared<Player>(ObjectNameTag("Player"));
|
|
||||||
player->scale(Vec3D(3, 1, 3));
|
player->scale(Vec3D(3, 1, 3));
|
||||||
playerController = std::make_shared<PlayerController>(player, keyboard, mouse);
|
|
||||||
|
|
||||||
// TODO: encapsulate call backs inside Player
|
// TODO: encapsulate call backs inside Player
|
||||||
player->setAddTraceCallBack([this](const Vec3D& from, const Vec3D& to){ client->addTrace(from, to); addFireTrace(from, to); });
|
player->setAddTraceCallBack([this](const Vec3D& from, const Vec3D& to){ client->addTrace(from, to); addFireTrace(from, to); });
|
||||||
player->setDamagePlayerCallBack([this] (sf::Uint16 targetId, double damage) { client->damagePlayer(targetId, damage); });
|
player->setDamagePlayerCallBack([this] (sf::Uint16 targetId, double damage) { client->damagePlayer(targetId, damage); });
|
||||||
player->setRayCastFunction([this](const Vec3D& from, const Vec3D& to) { return world->rayCast(from, to, "weapon Player"); });
|
player->setRayCastFunction([this](const Vec3D& from, const Vec3D& to) { return world->rayCast(from, to, "Player Weapon"); });
|
||||||
player->setTakeBonusCallBack([this] (const string& bonusName) { client->takeBonus(bonusName); });
|
player->setTakeBonusCallBack([this] (const string& bonusName) { client->takeBonus(bonusName); });
|
||||||
player->setAddWeaponCallBack([this](std::shared_ptr<Weapon> weapon){ addWeapon(std::move(weapon)); });
|
player->setAddWeaponCallBack([this](std::shared_ptr<Weapon> weapon){ addWeapon(std::move(weapon)); });
|
||||||
player->setRemoveWeaponCallBack([this](std::shared_ptr<Weapon> weapon){ removeWeapon(std::move(weapon)); });
|
player->setRemoveWeaponCallBack([this](std::shared_ptr<Weapon> weapon){ removeWeapon(std::move(weapon)); });
|
||||||
|
@ -97,9 +95,6 @@ void Shooter::start() {
|
||||||
world->addBody(player);
|
world->addBody(player);
|
||||||
player->translate(Vec3D{0, 10, 0});
|
player->translate(Vec3D{0, 10, 0});
|
||||||
|
|
||||||
client = std::make_shared<ShooterClient>(player);
|
|
||||||
server = std::make_shared<ShooterServer>();
|
|
||||||
|
|
||||||
// connecting to the server
|
// connecting to the server
|
||||||
InitNetwork();
|
InitNetwork();
|
||||||
// Waiting for connect and updating server if it's same window
|
// Waiting for connect and updating server if it's same window
|
||||||
|
|
10
Shooter.h
10
Shooter.h
|
@ -17,15 +17,13 @@
|
||||||
|
|
||||||
class Shooter final : public Engine {
|
class Shooter final : public Engine {
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<Player> player;
|
std::shared_ptr<Player> player = std::make_shared<Player>(ObjectNameTag("Player"));;
|
||||||
std::shared_ptr<PlayerController> playerController;
|
std::shared_ptr<PlayerController> playerController = std::make_shared<PlayerController>(player, keyboard, mouse);
|
||||||
|
|
||||||
sf::Sound backgroundNoise;
|
|
||||||
|
|
||||||
Window mainMenu;
|
Window mainMenu;
|
||||||
|
|
||||||
std::shared_ptr<ShooterServer> server;
|
std::shared_ptr<ShooterServer> server = std::make_shared<ShooterServer>();
|
||||||
std::shared_ptr<ShooterClient> client;
|
std::shared_ptr<ShooterClient> client = std::make_shared<ShooterClient>(player);
|
||||||
|
|
||||||
bool inGame = false;
|
bool inGame = false;
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,12 @@ void World::loadBody(const ObjectNameTag& tag, const string &filename, const Vec
|
||||||
IntersectionInformation World::rayCast(const Vec3D& from, const Vec3D& to, const std::string& skipTags) {
|
IntersectionInformation World::rayCast(const Vec3D& from, const Vec3D& to, const std::string& skipTags) {
|
||||||
|
|
||||||
// make vector of tags, that we are going to escape
|
// make vector of tags, that we are going to escape
|
||||||
vector <string> tagsToSkip;
|
vector <std::string> tagsToSkip;
|
||||||
stringstream s(skipTags);
|
stringstream s(skipTags);
|
||||||
std::string t;
|
std::string t;
|
||||||
while (s >> t) tagsToSkip.push_back(t);
|
while (s >> t) {
|
||||||
|
tagsToSkip.push_back(t);
|
||||||
|
}
|
||||||
|
|
||||||
bool intersected = false;
|
bool intersected = false;
|
||||||
Vec3D point{};
|
Vec3D point{};
|
||||||
|
@ -38,13 +40,13 @@ IntersectionInformation World::rayCast(const Vec3D& from, const Vec3D& to, const
|
||||||
|
|
||||||
for(auto& [name, body] : _objects) {
|
for(auto& [name, body] : _objects) {
|
||||||
|
|
||||||
|
bool escapeThisBody = false;
|
||||||
// TODO: check this stuff:
|
for (auto& escapeTag : tagsToSkip) {
|
||||||
//for (auto& escapeTag : tagsToSkip)
|
if (name.str().find(escapeTag) != std::string::npos) {
|
||||||
// if(name.str().find(escapeTag) != std::string::npos)
|
escapeThisBody = true;
|
||||||
// continue;
|
}
|
||||||
|
}
|
||||||
if(name.str().find("Player") != std::string::npos || name.str().find("weapon") != std::string::npos) {
|
if(escapeThisBody) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue