wip
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
using NLog;
|
||||
using Ragon.Common;
|
||||
using Ragon.Core.Game;
|
||||
|
||||
|
||||
namespace Ragon.Core.Handlers;
|
||||
|
||||
public sealed class EntityCreateHandler: IHandler
|
||||
{
|
||||
private Logger _logger = LogManager.GetCurrentClassLogger();
|
||||
public void Handle(PlayerContext context, RagonSerializer reader, RagonSerializer writer)
|
||||
{
|
||||
var entityType = reader.ReadUShort();
|
||||
var eventAuthority = (RagonAuthority) reader.ReadByte();
|
||||
var propertiesCount = reader.ReadUShort();
|
||||
|
||||
var entity = new Entity(context.RoomPlayer, entityType, 0, eventAuthority);
|
||||
for (var i = 0; i < propertiesCount; i++)
|
||||
{
|
||||
var propertyType = reader.ReadBool();
|
||||
var propertySize = reader.ReadUShort();
|
||||
entity.State.AddProperty(new EntityStateProperty(propertySize, propertyType));
|
||||
}
|
||||
|
||||
var entityPayload = reader.ReadData(reader.Size);
|
||||
entity.SetPayload(entityPayload.ToArray());
|
||||
|
||||
context.Room.AttachEntity(context.RoomPlayer, entity);
|
||||
|
||||
_logger.Trace($"Player {context.Connection.Id}|{context.LobbyPlayer.Name} created entity {entity.Id}:{entity.Type}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user