feat(wip): room properties

This commit is contained in:
2024-05-05 15:45:28 +03:00
parent b4cba20d82
commit 6886808132
8 changed files with 43 additions and 13 deletions
+2
View File
@@ -14,6 +14,7 @@
* limitations under the License.
*/
using Ragon.Server.Data;
using Ragon.Server.Entity;
using Ragon.Server.IO;
@@ -26,6 +27,7 @@ public interface IRagonRoom
public int PlayerMin { get; }
public int PlayerMax { get; }
public int PlayerCount { get; }
public RagonData UserData { get; }
RagonRoomPlayer GetPlayerByConnection(INetworkConnection connection);
RagonRoomPlayer GetPlayerById(string id);
+15 -1
View File
@@ -30,7 +30,7 @@ public class RagonRoom : IRagonRoom, IRagonAction
public int PlayerMax { get; private set; }
public int PlayerMin { get; private set; }
public int PlayerCount => WaitPlayersList.Count;
public RagonData UserData { get; set; }
public RagonRoomPlayer Owner { get; private set; }
public RagonBuffer Writer { get; }
@@ -110,6 +110,20 @@ public class RagonRoom : IRagonRoom, IRagonAction
foreach (var roomPlayer in ReadyPlayersList)
roomPlayer.Connection.Unreliable.Send(sendData);
}
if (UserData.IsDirty)
{
Writer.Clear();
Writer.WriteOperation(RagonOperation.ROOM_DATA_UPDATED);
Writer.WriteUShort((ushort)UserData.Data.Length);
Writer.WriteBytes(UserData.Data);
var sendData = Writer.ToArray();
foreach (var roomPlayer in ReadyPlayersList)
roomPlayer.Connection.Reliable.Send(sendData);
UserData.IsDirty = false;
}
}
public void AttachPlayer(RagonRoomPlayer player)