using RPG.GameCore.Level.Objects; using RPG.Network.Proto; namespace RPG.Services.Gameserver.Game.Entity.Factory; internal class EntityFactory { private uint _entityIdSeed; public AvatarEntity CreateAvatarEntity(uint avatarId, AvatarType type, uint uid) { return new(NextEntityId(), 0, 0, avatarId, type, uid); } public NpcMonsterEntity CreateNpcMonsterEntity(LevelMonsterInfo levelMonster, uint groupId) { return new(NextEntityId(), groupId, levelMonster.ID, levelMonster.NPCMonsterID, levelMonster.EventID); } public void Reset() { _entityIdSeed = 0; } private uint NextEntityId() { return ++_entityIdSeed; } }