载入中...
搜索中...
未找到
Social.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Module.h"
5
6#include <string>
7
8namespace eve::social {
9
11class Social : public Module {
12public:
15 Social() = default;
17 ~Social() override = default;
18
20 std::string idFromInt(int id) const;
21
23 bool setOwner(const std::string& entity, const std::string& owner);
25 bool setOwnerInt(int entity, int owner);
27 std::string ownerOf(const std::string& entity) const;
29 std::string ownerOfInt(int entity) const;
31 int ownedCount(const std::string& owner) const;
33 std::string ownedAt(const std::string& owner, int index) const;
34
36 bool setController(const std::string& entity, const std::string& controller);
38 bool setControllerInt(int entity, int controller);
40 std::string controllerOf(const std::string& entity) const;
42 std::string controllerOfInt(int entity) const;
44 int controlledCount(const std::string& controller) const;
46 std::string controlledAt(const std::string& controller, int index) const;
47
49 bool assign(const std::string& source, const std::string& role, const std::string& target);
51 bool assignInt(int source, const std::string& role, int target);
53 bool unassign(const std::string& source, const std::string& role, const std::string& target);
55 bool isAssigned(const std::string& source, const std::string& role, const std::string& target) const;
57 int targetCount(const std::string& source, const std::string& role) const;
59 std::string targetAt(const std::string& source, const std::string& role, int index) const;
61 int assigneeCount(const std::string& target, const std::string& role) const;
63 std::string assigneeAt(const std::string& target, const std::string& role, int index) const;
64
66 bool setRelation(const std::string& source, const std::string& target, const std::string& type, float value);
68 bool setRelationInt(int source, int target, const std::string& type, float value);
70 float addRelation(const std::string& source, const std::string& target, const std::string& type, float delta);
72 bool link(const std::string& source, const std::string& target, const std::string& type);
74 bool removeRelation(const std::string& source, const std::string& target, const std::string& type);
76 bool hasRelation(const std::string& source, const std::string& target, const std::string& type) const;
78 float relation(const std::string& source, const std::string& target, const std::string& type, float fallback) const;
80 int relationTargetCount(const std::string& source, const std::string& type, float minimum) const;
82 std::string relationTargetAt(const std::string& source, const std::string& type, float minimum, int index) const;
84 int relationSourceCount(const std::string& target, const std::string& type, float minimum) const;
86 std::string relationSourceAt(const std::string& target, const std::string& type, float minimum, int index) const;
87
89 bool removeEntity(const std::string& entity);
91 bool removeEntityInt(int entity);
93 void clear();
94
96 int eventCount() const;
98 int eventSequence(int index) const;
100 std::string eventAction(int index) const;
102 std::string eventSource(int index) const;
104 std::string eventTarget(int index) const;
106 std::string eventType(int index) const;
108 float eventOldValue(int index) const;
110 float eventNewValue(int index) const;
112 void clearEvents();
113
115 SocialGraph& graph() { return graph_; }
116
117private:
118 SocialGraph graph_;
119};
120
121} // namespace eve::social
LogicalId target
double value
float minimum[3]
uint32_t index
const UnitySourceAsset & source
EVENGINE_API_FOUNDATION public API.
Definition Module.h:46
Indexed ownership, control, assignment, and typed-relation graph.
Definition SocialGraph.h:34
Script-facing module for generic social graph composition.
Definition Social.h:11
bool removeEntityInt(int entity)
Removes an integer-ID entity and every graph reference to it.
Definition Social.cpp:110
std::string controllerOfInt(int entity) const
Gets controller of an integer ID as a canonical key.
Definition Social.cpp:39
std::string relationSourceAt(const std::string &target, const std::string &type, float minimum, int index) const
Gets incoming relation source by deterministic filtered index.
Definition Social.cpp:104
Social()=default
Constructs a Social.
int ownedCount(const std::string &owner) const
Gets count of deterministically ordered entities owned by owner.
Definition Social.cpp:29
bool unassign(const std::string &source, const std::string &role, const std::string &target)
Removes an exact assignment.
Definition Social.cpp:53
int relationTargetCount(const std::string &source, const std::string &type, float minimum) const
Gets outgoing relation target count after threshold filtering.
Definition Social.cpp:94
std::string relationTargetAt(const std::string &source, const std::string &type, float minimum, int index) const
Gets outgoing relation target by deterministic filtered index.
Definition Social.cpp:97
int eventCount() const
Gets queued change event count.
Definition Social.cpp:113
float eventNewValue(int index) const
Gets event new numeric value by index.
Definition Social.cpp:138
std::string ownerOf(const std::string &entity) const
Gets owner of a string ID.
Definition Social.cpp:27
bool assign(const std::string &source, const std::string &role, const std::string &target)
Adds a role-based assignment between string IDs.
Definition Social.cpp:47
std::string targetAt(const std::string &source, const std::string &role, int index) const
Gets an assignment target by deterministic index.
Definition Social.cpp:62
void clearEvents()
Clears queued events only.
Definition Social.cpp:142
std::string controllerOf(const std::string &entity) const
Gets controller of a string ID.
Definition Social.cpp:38
bool setController(const std::string &entity, const std::string &controller)
Sets control between string IDs.
Definition Social.cpp:32
SocialGraph & graph()
Gives C++ callers direct access to this module's graph.
Definition Social.h:115
bool setRelation(const std::string &source, const std::string &target, const std::string &type, float value)
Sets a directed typed relation between string IDs.
Definition Social.cpp:72
bool setRelationInt(int source, int target, const std::string &type, float value)
Sets a directed typed relation between integer IDs.
Definition Social.cpp:75
float eventOldValue(int index) const
Gets event old numeric value by index.
Definition Social.cpp:134
int eventSequence(int index) const
Gets event sequence by index, or zero when out of range.
Definition Social.cpp:114
std::string controlledAt(const std::string &controller, int index) const
Gets a controlled entity by deterministic index.
Definition Social.cpp:43
bool removeEntity(const std::string &entity)
Removes a string-ID entity and every graph reference to it.
Definition Social.cpp:109
int targetCount(const std::string &source, const std::string &role) const
Gets target count for source and role.
Definition Social.cpp:59
bool isAssigned(const std::string &source, const std::string &role, const std::string &target) const
Tests an exact assignment.
Definition Social.cpp:56
bool setOwnerInt(int entity, int owner)
Sets ownership between integer IDs.
Definition Social.cpp:24
bool hasRelation(const std::string &source, const std::string &target, const std::string &type) const
Tests an exact relation.
Definition Social.cpp:87
~Social() override=default
Releases Social resources.
std::string eventType(int index) const
Gets event type/role by index.
Definition Social.cpp:130
std::string eventSource(int index) const
Gets event source by index.
Definition Social.cpp:122
bool removeRelation(const std::string &source, const std::string &target, const std::string &type)
Removes an exact relation.
Definition Social.cpp:84
int assigneeCount(const std::string &target, const std::string &role) const
Gets assignee count for target and role.
Definition Social.cpp:65
int relationSourceCount(const std::string &target, const std::string &type, float minimum) const
Gets incoming relation source count after threshold filtering.
Definition Social.cpp:101
int controlledCount(const std::string &controller) const
Gets count of deterministically ordered controlled entities.
Definition Social.cpp:40
std::string assigneeAt(const std::string &target, const std::string &role, int index) const
Gets an assignee by deterministic index.
Definition Social.cpp:68
bool assignInt(int source, const std::string &role, int target)
Adds a role-based assignment between integer IDs.
Definition Social.cpp:50
std::string eventTarget(int index) const
Gets event target by index.
Definition Social.cpp:126
std::string ownedAt(const std::string &owner, int index) const
Gets an owned entity by deterministic index.
Definition Social.cpp:30
bool setControllerInt(int entity, int controller)
Sets control between integer IDs.
Definition Social.cpp:35
std::string idFromInt(int id) const
Returns the canonical graph key for an integer entity ID.
Definition Social.cpp:21
std::string eventAction(int index) const
Gets event action by index.
Definition Social.cpp:118
float relation(const std::string &source, const std::string &target, const std::string &type, float fallback) const
Gets relation value or fallback.
Definition Social.cpp:90
std::string ownerOfInt(int entity) const
Gets owner of an integer ID as a canonical key.
Definition Social.cpp:28
bool setOwner(const std::string &entity, const std::string &owner)
Sets ownership between string IDs.
Definition Social.cpp:23
float addRelation(const std::string &source, const std::string &target, const std::string &type, float delta)
Adds to a relation and returns its new value.
Definition Social.cpp:78
void clear()
Clears all graph state and events.
Definition Social.cpp:111
bool link(const std::string &source, const std::string &target, const std::string &type)
Creates a weight-one directed typed relation.
Definition Social.cpp:81