-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMap.h
More file actions
82 lines (65 loc) · 2.07 KB
/
Copy pathMap.h
File metadata and controls
82 lines (65 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#pragma once
#include <vector>
#include <list>
#include <unordered_map>
#include <memory>
#include "NavMap.h"
#include "syncnet_generated.h"
class GameSession;
class Monster;
class GameObject;
class Character;
class Player;
class GridManager;
class Actor;
class GameObjectFactory;
class TimeStamp;
class send_message;
class RandomUtil;
class IGridActor;
namespace engine {
class SystemManager;
}
class World;
class NavMap;
class Map
{
private:
World* world_;
NavMap* map_;
std::list<std::shared_ptr<Actor>> actorList_;
std::unordered_map<int, std::list<std::shared_ptr<Actor>>::iterator> actorMap_;
std::vector<syncnet::Vec3> raycasts_;
std::shared_ptr<send_message> builderPtr_;
std::vector<flatbuffers::Offset<syncnet::ActorInfo>> agentInfoVector_;
std::vector<int> removedAgents_;
GridManager* gridManager_;
engine::SystemManager* systemManager_;
std::unordered_map<long, std::shared_ptr<Player>> players_;
public:
Map(World* world);
virtual ~Map();
void Init();
void update(float deltaTime);
World* world() { return world_; }
NavMap* GetNavMap() { return map_; }
void SendWorldState();
void SendTreeDebugSync();
void SendBroadcast(std::shared_ptr<send_message> msg);
void SendBroadcast(std::shared_ptr<send_message> msg, std::shared_ptr<Player>& except);
void OnRemoveAgent(int agent_id);
std::shared_ptr<Actor> OnAddAgent(std::shared_ptr<Player> player, syncnet::GameObjectType type, const syncnet::Vec3* pos);
void OnSetMoveTarget(int agent_id, const syncnet::Vec3* pos);
void OnSetRaycast(const syncnet::Vec3* pos);
int DetectEnemy(Actor* actor);
std::vector<IGridActor*> get_actors_in_range(Actor* actor, float range, float dirDeg, float angle);
void GetAgentsInfo(std::shared_ptr<send_message>& msg, std::vector<flatbuffers::Offset<syncnet::ActorInfo>>& agent_info_vector);
void join(std::shared_ptr<Player> player);
void leave(std::shared_ptr<Player> player);
std::shared_ptr<Player> FindPlayer(long player_id);
std::shared_ptr<Actor> FindActor(int actor_id);
friend class Actor;
friend class ActorFactory;
friend class Monster;
friend class Character;
};