Tons of fixes

Added movement updates
Updated how entities are checked
Events sending between packet service all the way to the logic service
This commit is contained in:
2025-06-25 12:30:07 -04:00
parent f75782885b
commit d906cd8d64
34 changed files with 3550 additions and 186 deletions

View File

@@ -7,6 +7,12 @@ service WorldService {
rpc ChangeMap(ChangeMapRequest) returns (ChangeMapResponse);
rpc MoveCharacter(CharacterMoveRequest) returns (CharacterMoveResponse);
rpc GetTargetHp(ObjectHpRequest) returns (ObjectHpResponse);
rpc GetNearbyObjects(NearbyObjectsRequest) returns (NearbyObjectsResponse);
rpc StreamClientEvents(stream ClientEvent) returns (stream WorldEvent);
}
service WorldGameLogicService {
rpc StreamGameEvents(stream GameLogicEvent) returns (stream GameLogicEvent);
}
message CharacterRequest {
@@ -66,3 +72,154 @@ message ObjectHpResponse {
uint32 target_id = 1;
int32 hp = 2;
}
message NearbyObjectsRequest {
string session_id = 1;
float x = 2;
float y = 3;
float z = 4;
int32 map_id = 5;
float radius = 6;
}
message NearbyObjectsResponse {
repeated WorldObject objects = 1;
}
message WorldObject {
uint32 id = 1;
int32 object_type = 2;
float x = 3;
float y = 4;
float z = 5;
int32 map_id = 6;
string name = 7;
int32 hp = 8;
int32 max_hp = 9;
}
message ClientEvent {
string session_id = 1;
string client_id = 2;
int32 map_id = 3;
oneof event {
ClientConnectEvent connect = 4;
ClientDisconnectEvent disconnect = 5;
ClientMoveEvent move = 6;
ClientMapChangeEvent map_change = 7;
}
}
message ClientConnectEvent {
float x = 1;
float y = 2;
float z = 3;
}
message ClientDisconnectEvent {
// Empty for now
}
message ClientMoveEvent {
float x = 1;
float y = 2;
float z = 3;
}
message ClientMapChangeEvent {
int32 old_map_id = 1;
int32 new_map_id = 2;
float x = 3;
float y = 4;
float z = 5;
}
message WorldEvent {
repeated string client_ids = 1;
oneof event {
NpcSpawnEvent npc_spawn = 2;
MobSpawnEvent mob_spawn = 3;
ObjectDespawnEvent object_despawn = 4;
NearbyObjectsUpdate nearby_update = 5;
}
}
message GameLogicEvent {
repeated string client_ids = 1;
int32 map_id = 2;
oneof event {
NpcSpawnEvent npc_spawn = 3;
MobSpawnEvent mob_spawn = 4;
ObjectDespawnEvent object_despawn = 5;
PlayerMoveEvent player_move = 6;
PlayerConnectEvent player_connect = 7;
PlayerDisconnectEvent player_disconnect = 8;
}
}
message NpcSpawnEvent {
uint32 id = 1;
float pos_x = 2;
float pos_y = 3;
float dest_pos_x = 4;
float dest_pos_y = 5;
int32 command = 6;
uint32 target_id = 7;
int32 move_mode = 8;
int32 hp = 9;
int32 team_id = 10;
int32 status_flag = 11;
uint32 npc_id = 12;
uint32 quest_id = 13;
float angle = 14;
int32 event_status = 15;
}
message MobSpawnEvent {
uint32 id = 1;
float pos_x = 2;
float pos_y = 3;
float dest_pos_x = 4;
float dest_pos_y = 5;
int32 command = 6;
uint32 target_id = 7;
int32 move_mode = 8;
int32 hp = 9;
int32 team_id = 10;
int32 status_flag = 11;
uint32 npc_id = 12;
uint32 quest_id = 13;
}
message ObjectDespawnEvent {
uint32 object_id = 1;
}
message PlayerMoveEvent {
string session_id = 1;
string client_id = 2;
float x = 3;
float y = 4;
float z = 5;
}
message PlayerConnectEvent {
string session_id = 1;
string client_id = 2;
int32 map_id = 3;
float x = 4;
float y = 5;
float z = 6;
}
message PlayerDisconnectEvent {
string session_id = 1;
string client_id = 2;
}
message NearbyObjectsUpdate {
repeated WorldObject objects = 1;
}