~ruther/NosSmooth

c076813783b2051c6bdf20dd8862d4e322ec88ef — František Boháček 3 years ago ba49ad7
feat: split packets definitions into separate assembly
162 files changed, 280 insertions(+), 200 deletions(-)

M Core/NosSmooth.Core/Client/BaseNostaleClient.cs
M Core/NosSmooth.Core/Client/INostaleClient.cs
M Core/NosSmooth.Core/NosSmooth.Core.csproj
M Core/NosSmooth.Core/Packets/IPacketHandler.cs
M Core/NosSmooth.Core/Packets/IPacketResponder.cs
M Core/NosSmooth.Core/Packets/PacketEventArgs.cs
M Core/NosSmooth.Core/Packets/PacketHandler.cs
M Core/NosSmooth.Core/Packets/ParsingFailedPacket.cs
D Core/NosSmooth.Packets/Converters/TypeConverterRepository.cs
M Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkPacketResponder.cs
M Local/NosSmooth.LocalClient/NostaleLocalClient.cs
M NosSmooth.sln
R Core/NosSmooth.Packets/Attributes/GenerateSerializerAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/GenerateSerializerAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketConditionalIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketConditionalIndexAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketContextListAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketContextListAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketGreedyIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketGreedyIndexAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketHeaderAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketHeaderAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketIndexAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketListIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketListIndexAttribute.cs
R Core/NosSmooth.Packets/Attributes/PacketSource.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketSource.cs
R Core/NosSmooth.Packets/Converters/BaseStringConverter.cs => Packets/NosSmooth.PacketSerializer.Abstractions/BaseStringConverter.cs
R Core/NosSmooth.Packets/Common/NameString.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Common/NameString.cs
R Core/NosSmooth.Packets/Errors/CouldNotConvertError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/CouldNotConvertError.cs
R Core/NosSmooth.Packets/Errors/DeserializedValueNullError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/DeserializedValueNullError.cs
R Core/NosSmooth.Packets/Errors/ListSerializerError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/ListSerializerError.cs
R Core/NosSmooth.Packets/Errors/PacketEndNotExpectedError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/PacketEndNotExpectedError.cs
R Core/NosSmooth.Packets/Errors/PacketEndReachedError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/PacketEndReachedError.cs
R Core/NosSmooth.Packets/Errors/PacketParameterSerializerError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/PacketParameterSerializerError.cs
R Core/NosSmooth.Packets/Errors/WrongTypeError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/WrongTypeError.cs
R Core/NosSmooth.Packets/Converters/IStringConverter.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverter.cs
R Core/NosSmooth.Packets/Converters/IStringConverterRepository.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverterRepository.cs
R Core/NosSmooth.Packets/Converters/IStringSerializer.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IStringSerializer.cs
A Packets/NosSmooth.PacketSerializer.Abstractions/IsExternalInit.cs
A Packets/NosSmooth.PacketSerializer.Abstractions/NosSmooth.PacketSerializer.Abstractions.csproj
R Core/NosSmooth.Packets/PacketStringBuilder.cs => Packets/NosSmooth.PacketSerializer.Abstractions/PacketStringBuilder.cs
R Core/NosSmooth.Packets/PacketStringEnumerator.cs => Packets/NosSmooth.PacketSerializer.Abstractions/PacketStringEnumerator.cs
R Core/NosSmooth.Packets/PacketToken.cs => Packets/NosSmooth.PacketSerializer.Abstractions/PacketToken.cs
R Core/NosSmooth.Packets/Converters/Basic/BasicTypeConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/BasicTypeConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/BoolStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/BoolStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/ByteStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/ByteStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/CharStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/CharStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/IntStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/IntStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/LongStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/LongStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/ShortStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/ShortStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/StringTypeConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/StringTypeConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/UIntStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/UIntStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/ULongStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/ULongStringConverter.cs
R Core/NosSmooth.Packets/Converters/Basic/UShortStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/UShortStringConverter.cs
R Core/NosSmooth.Packets/Converters/Common/NameStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Common/NameStringConverter.cs
R Core/NosSmooth.Packets/Converters/Packets/UpgradeRareSubPacketConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Packets/UpgradeRareSubPacketConverter.cs
R Core/NosSmooth.Packets/Converters/Special/Converters/EnumStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/EnumStringConverter.cs
R Core/NosSmooth.Packets/Converters/Special/Converters/ListStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/ListStringConverter.cs
R Core/NosSmooth.Packets/Converters/Special/Converters/NullableStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/NullableStringConverter.cs
R Core/NosSmooth.Packets/Converters/Special/EnumStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/EnumStringConverterFactory.cs
R Core/NosSmooth.Packets/Converters/Special/IStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/IStringConverterFactory.cs
R Core/NosSmooth.Packets/Converters/Special/ListStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/ListStringConverterFactory.cs
R Core/NosSmooth.Packets/Converters/Special/NullableStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/NullableStringConverterFactory.cs
R Core/NosSmooth.Packets/Converters/Special/StringSerializer.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/StringSerializer.cs
R Core/NosSmooth.Packets/Converters/StringConverterRepository.cs => Packets/NosSmooth.PacketSerializer/Converters/StringConverterRepository.cs
R Core/NosSmooth.Packets/Errors/AmbiguousHeaderError.cs => Packets/NosSmooth.PacketSerializer/Errors/AmbiguousHeaderError.cs
R Core/NosSmooth.Packets/Errors/PacketConverterNotFoundError.cs => Packets/NosSmooth.PacketSerializer/Errors/PacketConverterNotFoundError.cs
R Core/NosSmooth.Packets/Errors/PacketMissingHeaderError.cs => Packets/NosSmooth.PacketSerializer/Errors/PacketMissingHeaderError.cs
R Core/NosSmooth.Packets/Errors/TypeConverterNotFoundError.cs => Packets/NosSmooth.PacketSerializer/Errors/TypeConverterNotFoundError.cs
R Core/NosSmooth.Packets/Extensions/ConcurrentDictionaryExtensions.cs => Packets/NosSmooth.PacketSerializer/Extensions/ConcurrentDictionaryExtensions.cs
R Core/NosSmooth.Packets/Extensions/ResultExtensions.cs => Packets/NosSmooth.PacketSerializer/Extensions/ResultExtensions.cs
R Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs => Packets/NosSmooth.PacketSerializer/Extensions/ServiceCollectionExtensions.cs
R Core/NosSmooth.Packets/IPacketSerializer.cs => Packets/NosSmooth.PacketSerializer/IPacketSerializer.cs
R Core/NosSmooth.PacketSerializersGenerator/IsExternalInit.cs => Packets/NosSmooth.PacketSerializer/IsExternalInit.cs
R Core/NosSmooth.Packets/NosCore.Packets.csproj.DotSettings => Packets/NosSmooth.PacketSerializer/NosCore.Packets.csproj.DotSettings
R Core/NosSmooth.Packets/NosSmooth.Packets.csproj => Packets/NosSmooth.PacketSerializer/NosSmooth.PacketSerializer.csproj
R Core/NosSmooth.Packets/PacketSerializer.cs => Packets/NosSmooth.PacketSerializer/PacketSerializer.cs
R Core/NosSmooth.Packets/Packets/IPacketTypesRepository.cs => Packets/NosSmooth.PacketSerializer/Packets/IPacketTypesRepository.cs
R Core/NosSmooth.Packets/Packets/PacketInfo.cs => Packets/NosSmooth.PacketSerializer/Packets/PacketInfo.cs
R Core/NosSmooth.Packets/Packets/PacketTypesRepository.cs => Packets/NosSmooth.PacketSerializer/Packets/PacketTypesRepository.cs
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/IParameterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/IParameterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketConditionalIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketConditionalIndexAttributeGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketGreedyIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketGreedyIndexAttributeGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketIndexAttributeGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/Constants.cs => Packets/NosSmooth.PacketSerializersGenerator/Constants.cs
R Core/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/ConverterSerializationGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/ConverterSerializationGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/Data/AttributeInfo.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/AttributeInfo.cs
R Core/NosSmooth.PacketSerializersGenerator/Data/PacketInfo.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/PacketInfo.cs
R Core/NosSmooth.PacketSerializersGenerator/Data/ParameterInfo.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/ParameterInfo.cs
R Core/NosSmooth.PacketSerializersGenerator/Data/Parameters.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/Parameters.cs
R Core/NosSmooth.PacketSerializersGenerator/Errors/DiagnosticError.cs => Packets/NosSmooth.PacketSerializersGenerator/Errors/DiagnosticError.cs
R Core/NosSmooth.PacketSerializersGenerator/Errors/IError.cs => Packets/NosSmooth.PacketSerializersGenerator/Errors/IError.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeArgumentSyntaxExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/AttributeArgumentSyntaxExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeInfoExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/AttributeInfoExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeListSyntaxExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/AttributeListSyntaxExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/IndentedTextWriterExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/IndentedTextWriterExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/ParameterInfoExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/ParameterInfoExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/SyntaxNodeExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/SyntaxNodeExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/TypeSymbolExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/TypeSymbolExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/Extensions/TypeSyntaxExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/TypeSyntaxExtensions.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/IInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/IInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/InlineTypeConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineTypeConverterGenerator.cs
R Core/NosSmooth.Packets/IsExternalInit.cs => Packets/NosSmooth.PacketSerializersGenerator/IsExternalInit.cs
R Core/NosSmooth.PacketSerializersGenerator/NosSmooth.PacketSerializersGenerator.csproj => Packets/NosSmooth.PacketSerializersGenerator/NosSmooth.PacketSerializersGenerator.csproj
R Core/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs
R Core/NosSmooth.PacketSerializersGenerator/ParameterChecker.cs => Packets/NosSmooth.PacketSerializersGenerator/ParameterChecker.cs
R Core/NosSmooth.PacketSerializersGenerator/SourceGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/SourceGenerator.cs
R Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs => Packets/NosSmooth.Packets/Client/Battle/NcifPacket.cs
R Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs => Packets/NosSmooth.Packets/Client/Battle/UseAOESkillPacket.cs
R Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs => Packets/NosSmooth.Packets/Client/Battle/UseSkillPacket.cs
R Core/NosSmooth.Packets/Packets/Client/Chat/SayPacket.cs => Packets/NosSmooth.Packets/Client/Chat/SayPacket.cs
R Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs => Packets/NosSmooth.Packets/Client/Misc/PulsePacket.cs
R Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs => Packets/NosSmooth.Packets/Client/Movement/WalkPacket.cs
R Core/NosSmooth.Packets/Enums/Act4Mode.cs => Packets/NosSmooth.Packets/Enums/Act4Mode.cs
R Core/NosSmooth.Packets/Enums/Chat/MessageType.cs => Packets/NosSmooth.Packets/Enums/Chat/MessageType.cs
R Core/NosSmooth.Packets/Enums/Chat/SayColor.cs => Packets/NosSmooth.Packets/Enums/Chat/SayColor.cs
R Core/NosSmooth.Packets/Enums/Element.cs => Packets/NosSmooth.Packets/Enums/Element.cs
R Core/NosSmooth.Packets/Enums/Entities/EntityType.cs => Packets/NosSmooth.Packets/Enums/Entities/EntityType.cs
R Core/NosSmooth.Packets/Enums/Entities/FactionType.cs => Packets/NosSmooth.Packets/Enums/Entities/FactionType.cs
R Core/NosSmooth.Packets/Enums/Entities/SpawnEffect.cs => Packets/NosSmooth.Packets/Enums/Entities/SpawnEffect.cs
R Core/NosSmooth.Packets/Enums/Players/AuthorityType.cs => Packets/NosSmooth.Packets/Enums/Players/AuthorityType.cs
R Core/NosSmooth.Packets/Enums/Players/HairColor.cs => Packets/NosSmooth.Packets/Enums/Players/HairColor.cs
R Core/NosSmooth.Packets/Enums/Players/HairStyle.cs => Packets/NosSmooth.Packets/Enums/Players/HairStyle.cs
R Core/NosSmooth.Packets/Enums/Players/PlayerClass.cs => Packets/NosSmooth.Packets/Enums/Players/PlayerClass.cs
R Core/NosSmooth.Packets/Enums/Players/SexType.cs => Packets/NosSmooth.Packets/Enums/Players/SexType.cs
R Core/NosSmooth.Packets/Packets/IPacket.cs => Packets/NosSmooth.Packets/IPacket.cs
A Packets/NosSmooth.Packets/IsExternalInit.cs
A Packets/NosSmooth.Packets/NosSmooth.Packets.csproj
R Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs => Packets/NosSmooth.Packets/Server/Act4/FcPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs => Packets/NosSmooth.Packets/Server/Act4/FcSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs => Packets/NosSmooth.Packets/Server/Chat/MsgPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs => Packets/NosSmooth.Packets/Server/Chat/SayPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InEquipmentSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InItemSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InNonPlayerSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InPlayerSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs => Packets/NosSmooth.Packets/Server/Entities/MovePacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs => Packets/NosSmooth.Packets/Server/Entities/StPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs => Packets/NosSmooth.Packets/Server/Entities/StatPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs => Packets/NosSmooth.Packets/Server/Groups/PinitPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs => Packets/NosSmooth.Packets/Server/Groups/PinitSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs => Packets/NosSmooth.Packets/Server/Maps/CMapPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs => Packets/NosSmooth.Packets/Server/Players/CInfoPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs => Packets/NosSmooth.Packets/Server/Players/CModePacket.cs
R Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs => Packets/NosSmooth.Packets/Server/Players/FamilySubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs => Packets/NosSmooth.Packets/Server/Players/LevPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs => Packets/NosSmooth.Packets/Server/Skills/SkiPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs => Packets/NosSmooth.Packets/Server/Skills/SkiSubPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs => Packets/NosSmooth.Packets/Server/Skills/SrPacket.cs
R Core/NosSmooth.Packets/Packets/Server/Weapons/UpgradeRareSubPacket.cs => Packets/NosSmooth.Packets/Server/Weapons/UpgradeRareSubPacket.cs
R Core/NosSmooth.Packets/Packets/UnresolvedPacket.cs => Packets/NosSmooth.Packets/UnresolvedPacket.cs
M Tests/NosSmooth.Packets.Tests/Converters/Packets/FcPacketConverterTests.cs
M Tests/NosSmooth.Packets.Tests/Converters/Packets/InPacketConverterTests.cs
M Tests/NosSmooth.Packets.Tests/Converters/Packets/MovePacketConverterTests.cs
M Tests/NosSmooth.Packets.Tests/Converters/Packets/PinitPacketConverterTest.cs
M Tests/NosSmooth.Packets.Tests/NosSmooth.Packets.Tests.csproj
M Tests/NosSmooth.Packets.Tests/PacketStringBuilderTests.cs
M Tests/NosSmooth.Packets.Tests/PacketStringEnumeratorTests.cs
M Core/NosSmooth.Core/Client/BaseNostaleClient.cs => Core/NosSmooth.Core/Client/BaseNostaleClient.cs +0 -2
@@ 7,9 7,7 @@
using System.Threading;
using System.Threading.Tasks;
using NosSmooth.Core.Commands;
using NosSmooth.Core.Packets;
using NosSmooth.Packets;
using NosSmooth.Packets.Packets;
using Remora.Results;

namespace NosSmooth.Core.Client;

M Core/NosSmooth.Core/Client/INostaleClient.cs => Core/NosSmooth.Core/Client/INostaleClient.cs +1 -1
@@ 7,7 7,7 @@
using System.Threading;
using System.Threading.Tasks;
using NosSmooth.Core.Commands;
using NosSmooth.Packets.Packets;
using NosSmooth.Packets;
using Remora.Results;

namespace NosSmooth.Core.Client;

M Core/NosSmooth.Core/NosSmooth.Core.csproj => Core/NosSmooth.Core/NosSmooth.Core.csproj +2 -1
@@ 12,7 12,8 @@
    </ItemGroup>

    <ItemGroup>
      <ProjectReference Include="..\NosSmooth.Packets\NosSmooth.Packets.csproj" />
      <ProjectReference Include="..\..\Packets\NosSmooth.PacketSerializer\NosSmooth.PacketSerializer.csproj" />
      <ProjectReference Include="..\..\Packets\NosSmooth.Packets\NosSmooth.Packets.csproj" />
    </ItemGroup>

</Project>

M Core/NosSmooth.Core/Packets/IPacketHandler.cs => Core/NosSmooth.Core/Packets/IPacketHandler.cs +1 -1
@@ 6,7 6,7 @@

using System.Threading;
using System.Threading.Tasks;
using NosSmooth.Packets.Packets;
using NosSmooth.Packets;
using Remora.Results;

namespace NosSmooth.Core.Packets;

M Core/NosSmooth.Core/Packets/IPacketResponder.cs => Core/NosSmooth.Core/Packets/IPacketResponder.cs +1 -1
@@ 6,7 6,7 @@

using System.Threading;
using System.Threading.Tasks;
using NosSmooth.Packets.Packets;
using NosSmooth.Packets;
using Remora.Results;

namespace NosSmooth.Core.Packets;

M Core/NosSmooth.Core/Packets/PacketEventArgs.cs => Core/NosSmooth.Core/Packets/PacketEventArgs.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Core.Packets;


M Core/NosSmooth.Core/Packets/PacketHandler.cs => Core/NosSmooth.Core/Packets/PacketHandler.cs +2 -2
@@ 11,8 11,8 @@ using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Packets;
using NosSmooth.Packets;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Remora.Results;

namespace NosSmooth.Core.Packets;

M Core/NosSmooth.Core/Packets/ParsingFailedPacket.cs => Core/NosSmooth.Core/Packets/ParsingFailedPacket.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Packets;
using NosSmooth.Packets;
using Remora.Results;

namespace NosSmooth.Core.Packets;

D Core/NosSmooth.Packets/Converters/TypeConverterRepository.cs => Core/NosSmooth.Packets/Converters/TypeConverterRepository.cs +0 -0
M Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkPacketResponder.cs => Local/NosSmooth.LocalClient/CommandHandlers/Walk/WalkPacketResponder.cs +2 -2
@@ 6,8 6,8 @@

using NosSmooth.Core.Commands;
using NosSmooth.Core.Packets;
using NosSmooth.Packets.Packets.Client.Movement;
using NosSmooth.Packets.Packets.Server.Maps;
using NosSmooth.Packets.Client.Movement;
using NosSmooth.Packets.Server.Maps;
using Remora.Results;

namespace NosSmooth.LocalClient.CommandHandlers.Walk;

M Local/NosSmooth.LocalClient/NostaleLocalClient.cs => Local/NosSmooth.LocalClient/NostaleLocalClient.cs +1 -1
@@ 13,8 13,8 @@ using NosSmooth.Core.Extensions;
using NosSmooth.Core.Packets;
using NosSmooth.LocalBinding.Objects;
using NosSmooth.Packets;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Remora.Results;

namespace NosSmooth.LocalClient;

M NosSmooth.sln => NosSmooth.sln +36 -4
@@ 42,9 42,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WalkCommands", "Samples\Wal
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NosSmooth.Core.Tests", "Tests\NosSmooth.Core.Tests\NosSmooth.Core.Tests.csproj", "{1A10C624-48E5-425D-938E-31A4CC7AC687}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NosSmooth.Packets", "Core\NosSmooth.Packets\NosSmooth.Packets.csproj", "{C4DAFD83-C6DC-4597-AA1F-BA2F3ABB612C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NosSmooth.Packets", "Packets\NosSmooth.PacketSerializer\NosSmooth.PacketSerializer.csproj", "{C4DAFD83-C6DC-4597-AA1F-BA2F3ABB612C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NosSmooth.PacketSerializersGenerator", "Core\NosSmooth.PacketSerializersGenerator\NosSmooth.PacketSerializersGenerator.csproj", "{C61EBDB6-053C-48C3-B896-58642639C93F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NosSmooth.PacketSerializersGenerator", "Packets\NosSmooth.PacketSerializersGenerator\NosSmooth.PacketSerializersGenerator.csproj", "{C61EBDB6-053C-48C3-B896-58642639C93F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NosSmooth.Packets.Tests", "Tests\NosSmooth.Packets.Tests\NosSmooth.Packets.Tests.csproj", "{9BC56B40-64E3-4A8F-AD49-C52857A35026}"
EndProject


@@ 56,6 56,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Injector", "Local
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.LocalBinding", "Local\NosSmooth.LocalBinding\NosSmooth.LocalBinding.csproj", "{BC0DCD32-E917-4187-8CF3-970D17301ED3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Packets", "Packets", "{54A49AC2-55B3-4156-8023-41C56719EBB5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Packets", "Packets\NosSmooth.Packets\NosSmooth.Packets.csproj", "{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.PacketSerializer.Abstractions", "Packets\NosSmooth.PacketSerializer.Abstractions\NosSmooth.PacketSerializer.Abstractions.csproj", "{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU


@@ 282,6 288,30 @@ Global
		{BC0DCD32-E917-4187-8CF3-970D17301ED3}.Release|x64.Build.0 = Release|Any CPU
		{BC0DCD32-E917-4187-8CF3-970D17301ED3}.Release|x86.ActiveCfg = Release|Any CPU
		{BC0DCD32-E917-4187-8CF3-970D17301ED3}.Release|x86.Build.0 = Release|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Debug|x64.ActiveCfg = Debug|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Debug|x64.Build.0 = Debug|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Debug|x86.ActiveCfg = Debug|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Debug|x86.Build.0 = Debug|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Release|Any CPU.Build.0 = Release|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Release|x64.ActiveCfg = Release|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Release|x64.Build.0 = Release|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Release|x86.ActiveCfg = Release|Any CPU
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683}.Release|x86.Build.0 = Release|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Debug|x64.ActiveCfg = Debug|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Debug|x64.Build.0 = Debug|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Debug|x86.ActiveCfg = Debug|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Debug|x86.Build.0 = Debug|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Release|Any CPU.Build.0 = Release|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Release|x64.ActiveCfg = Release|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Release|x64.Build.0 = Release|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Release|x86.ActiveCfg = Release|Any CPU
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC}.Release|x86.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE


@@ 297,14 327,16 @@ Global
		{F96F3AA0-131E-4B6B-AB21-BBE2DEBCEF3A} = {9025731C-084E-4E82-8CD4-0F52D3AA1F54}
		{9025731C-084E-4E82-8CD4-0F52D3AA1F54} = {F20FE754-FDEA-4F3A-93D4-0750CB9EBB33}
		{1A10C624-48E5-425D-938E-31A4CC7AC687} = {C6A8760D-92CB-4307-88A7-36CCAEBA4AD1}
		{C4DAFD83-C6DC-4597-AA1F-BA2F3ABB612C} = {01B5E872-271F-4D30-A1AA-AD48D81840C5}
		{C61EBDB6-053C-48C3-B896-58642639C93F} = {01B5E872-271F-4D30-A1AA-AD48D81840C5}
		{9BC56B40-64E3-4A8F-AD49-C52857A35026} = {C6A8760D-92CB-4307-88A7-36CCAEBA4AD1}
		{CA2873D8-BD0B-4583-818D-B94A3C2ABBA3} = {6078AE6E-7CD0-48E4-84E0-EB164D8881DA}
		{5D351C91-C631-40F6-82D2-F8D68468B076} = {6078AE6E-7CD0-48E4-84E0-EB164D8881DA}
		{7B68DE7D-159B-42A7-8CF8-69F156CD04DE} = {6078AE6E-7CD0-48E4-84E0-EB164D8881DA}
		{18A62EF6-ADDA-4224-90AB-2D5DCFC95D3E} = {F20FE754-FDEA-4F3A-93D4-0750CB9EBB33}
		{BC0DCD32-E917-4187-8CF3-970D17301ED3} = {6078AE6E-7CD0-48E4-84E0-EB164D8881DA}
		{C61EBDB6-053C-48C3-B896-58642639C93F} = {54A49AC2-55B3-4156-8023-41C56719EBB5}
		{C4DAFD83-C6DC-4597-AA1F-BA2F3ABB612C} = {54A49AC2-55B3-4156-8023-41C56719EBB5}
		{86B4ED0C-CD28-4C6C-B58E-B4B1F7AAD683} = {54A49AC2-55B3-4156-8023-41C56719EBB5}
		{CF03BCEA-EB5B-427F-8576-7DA7EB869BDC} = {54A49AC2-55B3-4156-8023-41C56719EBB5}
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {C5F46653-4DEC-429B-8580-4ED18ED9B4CA}

R Core/NosSmooth.Packets/Attributes/GenerateSerializerAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/GenerateSerializerAttribute.cs +1 -3
@@ 4,9 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for marking packets that should have their generator generated using Roslyn code generator.

R Core/NosSmooth.Packets/Attributes/PacketConditionalIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketConditionalIndexAttribute.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for marking packet properties that may appear only in specific conditions.

R Core/NosSmooth.Packets/Attributes/PacketContextListAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketContextListAttribute.cs +1 -3
@@ 4,9 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for marking properties as a contextual list.

R Core/NosSmooth.Packets/Attributes/PacketGreedyIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketGreedyIndexAttribute.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for marking packet parameters greedy (read to the last token).

R Core/NosSmooth.Packets/Attributes/PacketHeaderAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketHeaderAttribute.cs +1 -3
@@ 4,9 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for specifying the header identifier of the packet.

R Core/NosSmooth.Packets/Attributes/PacketIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketIndexAttribute.cs +1 -3
@@ 4,9 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for marking properties in packets with their position in the packet.

R Core/NosSmooth.Packets/Attributes/PacketListIndexAttribute.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketListIndexAttribute.cs +1 -3
@@ 4,9 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Attribute for marking property as a packet list.

R Core/NosSmooth.Packets/Attributes/PacketSource.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Attributes/PacketSource.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Packets.Attributes;
namespace NosSmooth.PacketSerializer.Abstractions.Attributes;

/// <summary>
/// Specifies the source of the packet.

R Core/NosSmooth.Packets/Converters/BaseStringConverter.cs => Packets/NosSmooth.PacketSerializer.Abstractions/BaseStringConverter.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// Base type for converting objects that maps object converting methods to the actual type.

R Core/NosSmooth.Packets/Common/NameString.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Common/NameString.cs +1 -4
@@ 4,10 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Net.NetworkInformation;
using System.Reflection;

namespace NosSmooth.Packets.Common;
namespace NosSmooth.PacketSerializer.Abstractions.Common;

/// <summary>
/// Represents name in the game replacing "^" for " ".

R Core/NosSmooth.Packets/Errors/CouldNotConvertError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/CouldNotConvertError.cs +1 -4
@@ 4,12 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Buffers;
using NosSmooth.Packets.Converters;
using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// The value could not be converted.

R Core/NosSmooth.Packets/Errors/DeserializedValueNullError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/DeserializedValueNullError.cs +1 -2
@@ 4,10 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// Deserialized value is null, but it cannot be.

R Core/NosSmooth.Packets/Errors/ListSerializerError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/ListSerializerError.cs +1 -1
@@ 6,7 6,7 @@

using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// Could not parse an item in the list.

R Core/NosSmooth.Packets/Errors/PacketEndNotExpectedError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/PacketEndNotExpectedError.cs +1 -3
@@ 4,11 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.Packets.Converters;
using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// The end of a packet was not expected.

R Core/NosSmooth.Packets/Errors/PacketEndReachedError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/PacketEndReachedError.cs +1 -1
@@ 6,7 6,7 @@

using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// The end of a packet was reached already.

R Core/NosSmooth.Packets/Errors/PacketParameterSerializerError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/PacketParameterSerializerError.cs +1 -3
@@ 4,11 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.Packets.Converters;
using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// Could not deserialize one of the packet's properties.

R Core/NosSmooth.Packets/Errors/WrongTypeError.cs => Packets/NosSmooth.PacketSerializer.Abstractions/Errors/WrongTypeError.cs +1 -3
@@ 4,11 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.Packets.Converters;
using Remora.Results;

namespace NosSmooth.Packets.Errors;
namespace NosSmooth.PacketSerializer.Abstractions.Errors;

/// <summary>
/// The wrong type was passed to a type converter.

R Core/NosSmooth.Packets/Converters/IStringConverter.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverter.cs +1 -1
@@ 6,7 6,7 @@

using Remora.Results;

namespace NosSmooth.Packets.Converters;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// Base type for converting types.

R Core/NosSmooth.Packets/Converters/IStringConverterRepository.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IStringConverterRepository.cs +1 -4
@@ 4,12 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.Packets.Converters.Special;
using NosSmooth.Packets.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// Repository for <see cref="IStringConverter"/>.

R Core/NosSmooth.Packets/Converters/IStringSerializer.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IStringSerializer.cs +1 -2
@@ 4,10 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using Remora.Results;

namespace NosSmooth.Packets.Converters;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// Serializer of values from NosTale packet strings.

A Packets/NosSmooth.PacketSerializer.Abstractions/IsExternalInit.cs => Packets/NosSmooth.PacketSerializer.Abstractions/IsExternalInit.cs +15 -0
@@ 0,0 1,15 @@
//
//  IsExternalInit.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace System.Runtime.CompilerServices
{
    /// <summary>
    /// Dummy.
    /// </summary>
    public class IsExternalInit
    {
    }
}
\ No newline at end of file

A Packets/NosSmooth.PacketSerializer.Abstractions/NosSmooth.PacketSerializer.Abstractions.csproj => Packets/NosSmooth.PacketSerializer.Abstractions/NosSmooth.PacketSerializer.Abstractions.csproj +14 -0
@@ 0,0 1,14 @@
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>netstandard2.1</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <LangVersion>10</LangVersion>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="Remora.Results" Version="7.1.0" />
    </ItemGroup>

</Project>

R Core/NosSmooth.Packets/PacketStringBuilder.cs => Packets/NosSmooth.PacketSerializer.Abstractions/PacketStringBuilder.cs +1 -3
@@ 4,12 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Collections.Generic;
using System.Text;
using Remora.Results;

namespace NosSmooth.Packets;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// String builder for packets.

R Core/NosSmooth.Packets/PacketStringEnumerator.cs => Packets/NosSmooth.PacketSerializer.Abstractions/PacketStringEnumerator.cs +2 -5
@@ 4,13 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Collections.Generic;
using System.Text;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// Enumerator for packet strings.

R Core/NosSmooth.Packets/PacketToken.cs => Packets/NosSmooth.PacketSerializer.Abstractions/PacketToken.cs +1 -2
@@ 4,10 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Diagnostics.CodeAnalysis;

namespace NosSmooth.Packets;
namespace NosSmooth.PacketSerializer.Abstractions;

/// <summary>
/// The single token from a packet.

R Core/NosSmooth.Packets/Converters/Basic/BasicTypeConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/BasicTypeConverter.cs +1 -0
@@ 5,6 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/BoolStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/BoolStringConverter.cs +1 -0
@@ 5,6 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/ByteStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/ByteStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/CharStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/CharStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/IntStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/IntStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/LongStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/LongStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/ShortStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/ShortStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/StringTypeConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/StringTypeConverter.cs +0 -0
R Core/NosSmooth.Packets/Converters/Basic/UIntStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/UIntStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/ULongStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/ULongStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Basic/UShortStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Basic/UShortStringConverter.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Basic;

R Core/NosSmooth.Packets/Converters/Common/NameStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Common/NameStringConverter.cs +2 -1
@@ 4,8 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Common;
using NosSmooth.Packets.Converters.Basic;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Common;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Common;

R Core/NosSmooth.Packets/Converters/Packets/UpgradeRareSubPacketConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Packets/UpgradeRareSubPacketConverter.cs +3 -1
@@ 5,7 5,9 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Errors;
using NosSmooth.Packets.Packets.Server.Weapons;
using NosSmooth.Packets.Server.Weapons;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Packets;

R Core/NosSmooth.Packets/Converters/Special/Converters/EnumStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/EnumStringConverter.cs +1 -0
@@ 5,6 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special.Converters;

R Core/NosSmooth.Packets/Converters/Special/Converters/ListStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/ListStringConverter.cs +2 -0
@@ 8,6 8,8 @@ using System;
using System.Collections;
using System.Collections.Generic;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special.Converters;

R Core/NosSmooth.Packets/Converters/Special/Converters/NullableStringConverter.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/Converters/NullableStringConverter.cs +1 -0
@@ 5,6 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special.Converters;

R Core/NosSmooth.Packets/Converters/Special/EnumStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/EnumStringConverterFactory.cs +1 -0
@@ 8,6 8,7 @@ using System;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Converters.Special.Converters;
using NosSmooth.Packets.Extensions;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special;

R Core/NosSmooth.Packets/Converters/Special/IStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/IStringConverterFactory.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special;

R Core/NosSmooth.Packets/Converters/Special/ListStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/ListStringConverterFactory.cs +1 -0
@@ 16,6 16,7 @@ using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Converters.Special.Converters;
using NosSmooth.Packets.Errors;
using NosSmooth.Packets.Extensions;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special;

R Core/NosSmooth.Packets/Converters/Special/NullableStringConverterFactory.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/NullableStringConverterFactory.cs +1 -0
@@ 8,6 8,7 @@ using System;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Converters.Special.Converters;
using NosSmooth.Packets.Extensions;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special;

R Core/NosSmooth.Packets/Converters/Special/StringSerializer.cs => Packets/NosSmooth.PacketSerializer/Converters/Special/StringSerializer.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters.Special;

R Core/NosSmooth.Packets/Converters/StringConverterRepository.cs => Packets/NosSmooth.PacketSerializer/Converters/StringConverterRepository.cs +1 -0
@@ 12,6 12,7 @@ using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Converters.Special;
using NosSmooth.Packets.Errors;
using NosSmooth.Packets.Extensions;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;

namespace NosSmooth.Packets.Converters;

R Core/NosSmooth.Packets/Errors/AmbiguousHeaderError.cs => Packets/NosSmooth.PacketSerializer/Errors/AmbiguousHeaderError.cs +1 -1
@@ 7,8 7,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Packets;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Remora.Results;

namespace NosSmooth.Packets.Errors;

R Core/NosSmooth.Packets/Errors/PacketConverterNotFoundError.cs => Packets/NosSmooth.PacketSerializer/Errors/PacketConverterNotFoundError.cs +0 -0
R Core/NosSmooth.Packets/Errors/PacketMissingHeaderError.cs => Packets/NosSmooth.PacketSerializer/Errors/PacketMissingHeaderError.cs +0 -0
R Core/NosSmooth.Packets/Errors/TypeConverterNotFoundError.cs => Packets/NosSmooth.PacketSerializer/Errors/TypeConverterNotFoundError.cs +0 -0
R Core/NosSmooth.Packets/Extensions/ConcurrentDictionaryExtensions.cs => Packets/NosSmooth.PacketSerializer/Extensions/ConcurrentDictionaryExtensions.cs +0 -0
R Core/NosSmooth.Packets/Extensions/ResultExtensions.cs => Packets/NosSmooth.PacketSerializer/Extensions/ResultExtensions.cs +0 -0
R Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs => Packets/NosSmooth.PacketSerializer/Extensions/ServiceCollectionExtensions.cs +3 -2
@@ 14,6 14,7 @@ using NosSmooth.Packets.Converters.Common;
using NosSmooth.Packets.Converters.Packets;
using NosSmooth.Packets.Converters.Special;
using NosSmooth.Packets.Packets;
using NosSmooth.PacketSerializer.Abstractions;

namespace NosSmooth.Packets.Extensions;



@@ 40,7 41,7 @@ public static class ServiceCollectionExtensions
            .AddSingleton<IPacketTypesRepository>(p =>
            {
                var repository = new PacketTypesRepository(p.GetRequiredService<IStringConverterRepository>());
                var packetTypes = typeof(ServiceCollectionExtensions).Assembly
                var packetTypes = typeof(IPacket).Assembly
                    .GetExportedTypes()
                    .Where(x => x != typeof(UnresolvedPacket) && !x.IsAbstract && typeof(IPacket).IsAssignableFrom(x));
                foreach (var packetType in packetTypes)


@@ 55,7 56,7 @@ public static class ServiceCollectionExtensions

                return repository;
            })
            .AddGeneratedSerializers(typeof(ServiceCollectionExtensions).Assembly)
            .AddGeneratedSerializers(typeof(IPacket).Assembly)
            .AddBasicConverters();
    }


R Core/NosSmooth.Packets/IPacketSerializer.cs => Packets/NosSmooth.PacketSerializer/IPacketSerializer.cs +1 -1
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Errors;
using NosSmooth.Packets.Packets;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Remora.Results;

namespace NosSmooth.Packets;

R Core/NosSmooth.PacketSerializersGenerator/IsExternalInit.cs => Packets/NosSmooth.PacketSerializer/IsExternalInit.cs +0 -0
R Core/NosSmooth.Packets/NosCore.Packets.csproj.DotSettings => Packets/NosSmooth.PacketSerializer/NosCore.Packets.csproj.DotSettings +0 -0
R Core/NosSmooth.Packets/NosSmooth.Packets.csproj => Packets/NosSmooth.PacketSerializer/NosSmooth.PacketSerializer.csproj +5 -4
@@ 2,8 2,8 @@

    <PropertyGroup>
        <LangVersion>10</LangVersion>
        <AssemblyName>NosSmooth.Packets</AssemblyName>
        <RootNamespace>NosSmooth.Packets</RootNamespace>
        <AssemblyName>NosSmooth.PacketSerializer</AssemblyName>
        <RootNamespace>NosSmooth.PacketSerializer</RootNamespace>
        <TargetFrameworks>net6.0;netstandard2.1</TargetFrameworks>
    </PropertyGroup>



@@ 11,9 11,10 @@
      <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="6.0.0" />
      <PackageReference Include="Remora.Results" Version="7.1.0" />
    </ItemGroup>
    

    <ItemGroup>
        <ProjectReference Include="..\NosSmooth.PacketSerializersGenerator\NosSmooth.PacketSerializersGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
      <ProjectReference Include="..\NosSmooth.PacketSerializer.Abstractions\NosSmooth.PacketSerializer.Abstractions.csproj" />
      <ProjectReference Include="..\NosSmooth.Packets\NosSmooth.Packets.csproj" />
    </ItemGroup>

</Project>

R Core/NosSmooth.Packets/PacketSerializer.cs => Packets/NosSmooth.PacketSerializer/PacketSerializer.cs +3 -1
@@ 5,10 5,12 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Errors;
using NosSmooth.Packets.Packets;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Packets;

R Core/NosSmooth.Packets/Packets/IPacketTypesRepository.cs => Packets/NosSmooth.PacketSerializer/Packets/IPacketTypesRepository.cs +1 -1
@@ 7,8 7,8 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Remora.Results;

namespace NosSmooth.Packets.Packets;

R Core/NosSmooth.Packets/Packets/PacketInfo.cs => Packets/NosSmooth.PacketSerializer/Packets/PacketInfo.cs +1 -0
@@ 6,6 6,7 @@

using System;
using NosSmooth.Packets.Converters;
using NosSmooth.PacketSerializer.Abstractions;

namespace NosSmooth.Packets.Packets;


R Core/NosSmooth.Packets/Packets/PacketTypesRepository.cs => Packets/NosSmooth.PacketSerializer/Packets/PacketTypesRepository.cs +2 -1
@@ 9,9 9,10 @@ using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Remora.Results;

namespace NosSmooth.Packets.Packets;

R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/IParameterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/IParameterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketConditionalIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketConditionalIndexAttributeGenerator.cs +1 -1
@@ 31,7 31,7 @@ public class PacketConditionalIndexAttributeGenerator : IParameterGenerator
    /// Gets the full name of the packet index attribute.
    /// </summary>
    public static string PacketConditionalIndexAttributeFullName
        => "NosSmooth.Packets.Attributes.PacketConditionalIndexAttribute";
        => "NosSmooth.PacketSerializer.Abstractions.Attributes.PacketConditionalIndexAttribute";

    /// <inheritdoc />
    public bool ShouldHandle(ParameterInfo parameter)

R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketContextListAttributeGenerator.cs +4 -2
@@ 31,7 31,8 @@ public class PacketContextListAttributeGenerator : IParameterGenerator
    /// <summary>
    /// Gets the full name of the packet index attribute.
    /// </summary>
    public static string PacketListIndexAttributeFullName => "NosSmooth.Packets.Attributes.PacketContextListAttribute";
    public static string PacketListIndexAttributeFullName
        => "NosSmooth.PacketSerializer.Abstractions.Attributes.PacketContextListAttribute";

    /// <inheritdoc />
    public bool ShouldHandle(ParameterInfo parameter)


@@ 120,7 121,8 @@ public class PacketContextListAttributeGenerator : IParameterGenerator
        generator.PopLevel();
        if (!parameter.Nullable)
        {
            generator.CheckNullError(parameter.GetNullableVariableName(), parameter.GetResultVariableName(), parameter.Name);
            generator.CheckNullError
                (parameter.GetNullableVariableName(), parameter.GetResultVariableName(), parameter.Name);
        }

        generator.AssignLocalVariable(parameter);

R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketGreedyIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketGreedyIndexAttributeGenerator.cs +4 -2
@@ 30,7 30,8 @@ public class PacketGreedyIndexAttributeGenerator : IParameterGenerator
    /// <summary>
    /// Gets the full name of the packet index attribute.
    /// </summary>
    public static string PacketIndexAttributeFullName => "NosSmooth.Packets.Attributes.PacketGreedyIndexAttribute";
    public static string PacketIndexAttributeFullName
        => "NosSmooth.PacketSerializer.Abstractions.Attributes.PacketGreedyIndexAttribute";

    /// <inheritdoc />
    public bool ShouldHandle(ParameterInfo parameter)


@@ 86,7 87,8 @@ public class PacketGreedyIndexAttributeGenerator : IParameterGenerator

        if (!parameter.Nullable)
        {
            generator.CheckNullError(parameter.GetNullableVariableName(), parameter.GetResultVariableName(), parameter.Name);
            generator.CheckNullError
                (parameter.GetNullableVariableName(), parameter.GetResultVariableName(), parameter.Name);
        }

        generator.AssignLocalVariable(parameter, false);

R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketIndexAttributeGenerator.cs +2 -1
@@ 28,7 28,8 @@ public class PacketIndexAttributeGenerator : IParameterGenerator
    /// <summary>
    /// Gets the full name of the packet index attribute.
    /// </summary>
    public static string PacketIndexAttributeFullName => "NosSmooth.Packets.Attributes.PacketIndexAttribute";
    public static string PacketIndexAttributeFullName
        => "NosSmooth.PacketSerializer.Abstractions.Attributes.PacketIndexAttribute";

    /// <inheritdoc />
    public bool ShouldHandle(ParameterInfo parameter)

R Core/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/AttributeGenerators/PacketListIndexAttributeGenerator.cs +4 -2
@@ 33,7 33,8 @@ public class PacketListIndexAttributeGenerator : IParameterGenerator
    /// <summary>
    /// Gets the full name of the packet index attribute.
    /// </summary>
    public static string PacketListIndexAttributeFullName => "NosSmooth.Packets.Attributes.PacketListIndexAttribute";
    public static string PacketListIndexAttributeFullName
        => "NosSmooth.PacketSerializer.Abstractions.Attributes.PacketListIndexAttribute";

    /// <inheritdoc />
    public bool ShouldHandle(ParameterInfo parameter)


@@ 124,7 125,8 @@ public class PacketListIndexAttributeGenerator : IParameterGenerator
        generator.PopLevel();
        if (!parameter.Nullable)
        {
            generator.CheckNullError(parameter.GetNullableVariableName(), parameter.GetResultVariableName(), parameter.Name);
            generator.CheckNullError
                (parameter.GetNullableVariableName(), parameter.GetResultVariableName(), parameter.Name);
        }

        generator.AssignLocalVariable(parameter, false);

R Core/NosSmooth.PacketSerializersGenerator/Constants.cs => Packets/NosSmooth.PacketSerializersGenerator/Constants.cs +2 -2
@@ 14,12 14,12 @@ public class Constants
    /// <summary>
    /// Gets the full name of the generate source attribute class.
    /// </summary>
    public static string GenerateSourceAttributeClass => "NosSmooth.Packets.Attributes.GenerateSerializerAttribute";
    public static string GenerateSourceAttributeClass => "NosSmooth.PacketSerializer.Abstractions.Attributes.GenerateSerializerAttribute";

    /// <summary>
    /// Gets the full name of the packet attribute classes that are used for the generation.
    /// </summary>
    public static string PacketAttributesClassRegex => @"^NosSmooth\.Packets\.Attributes\.Packet.*";
    public static string PacketAttributesClassRegex => @"^NosSmooth\.PacketSerializer\.Abstractions\.Attributes\.Packet.*";

    /// <summary>
    /// Gets the full name of helper class used for inline type converters.

R Core/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/ConverterDeserializationGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/ConverterSerializationGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/ConverterSerializationGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Data/AttributeInfo.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/AttributeInfo.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Data/PacketInfo.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/PacketInfo.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Data/ParameterInfo.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/ParameterInfo.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Data/Parameters.cs => Packets/NosSmooth.PacketSerializersGenerator/Data/Parameters.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Errors/DiagnosticError.cs => Packets/NosSmooth.PacketSerializersGenerator/Errors/DiagnosticError.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Errors/IError.cs => Packets/NosSmooth.PacketSerializersGenerator/Errors/IError.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeArgumentSyntaxExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/AttributeArgumentSyntaxExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeInfoExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/AttributeInfoExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/AttributeListSyntaxExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/AttributeListSyntaxExtensions.cs +1 -0
@@ 24,6 24,7 @@ public static class AttributeListSyntaxExtensions
    /// <returns>Whether the attribute is present.</returns>
    public static bool ContainsAttribute(this AttributeListSyntax attributeList, SemanticModel semanticModel, string attributeFullName)
    {
        var first = semanticModel.GetTypeInfo(attributeList.Attributes[0]).Type?.ToString()!;
        return attributeList.Attributes.Any(x => Regex.IsMatch(semanticModel.GetTypeInfo(x).Type?.ToString()!, attributeFullName));
    }
}
\ No newline at end of file

R Core/NosSmooth.PacketSerializersGenerator/Extensions/IndentedTextWriterExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/IndentedTextWriterExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/ParameterInfoExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/ParameterInfoExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/SyntaxNodeExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/SyntaxNodeExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/TypeSymbolExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/TypeSymbolExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/Extensions/TypeSyntaxExtensions.cs => Packets/NosSmooth.PacketSerializersGenerator/Extensions/TypeSyntaxExtensions.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BasicInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/BoolInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/EnumInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/FallbackInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/IInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/IInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/ListInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineConverterGenerators/StringInlineConverterGenerator.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/InlineTypeConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/InlineTypeConverterGenerator.cs +0 -0
R Core/NosSmooth.Packets/IsExternalInit.cs => Packets/NosSmooth.PacketSerializersGenerator/IsExternalInit.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/NosSmooth.PacketSerializersGenerator.csproj => Packets/NosSmooth.PacketSerializersGenerator/NosSmooth.PacketSerializersGenerator.csproj +0 -0
R Core/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/PacketConverterGenerator.cs +2 -3
@@ 50,9 50,8 @@ public class PacketConverterGenerator
#pragma warning disable 1591

using {_packetInfo.Namespace};
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Errors;
using NosSmooth.Packets;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using Remora.Results;
{usingsString}


R Core/NosSmooth.PacketSerializersGenerator/ParameterChecker.cs => Packets/NosSmooth.PacketSerializersGenerator/ParameterChecker.cs +0 -0
R Core/NosSmooth.PacketSerializersGenerator/SourceGenerator.cs => Packets/NosSmooth.PacketSerializersGenerator/SourceGenerator.cs +3 -4
@@ 64,7 64,7 @@ public class SourceGenerator : ISourceGenerator
    /// <inheritdoc />
    public void Initialize(GeneratorInitializationContext context)
    {
        // SpinWait.SpinUntil(() => Debugger.IsAttached);
        SpinWait.SpinUntil(() => Debugger.IsAttached);
    }

    private IEnumerable<RecordDeclarationSyntax> GetPacketRecords(Compilation compilation, SyntaxTree tree)


@@ 156,9 156,8 @@ public class SourceGenerator : ISourceGenerator

using System.Collections;
using System.Collections.Generic;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Errors;
using NosSmooth.Packets;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Remora.Results;

namespace NosSmooth.Generated;

R Core/NosSmooth.Packets/Packets/Client/Battle/NcifPacket.cs => Packets/NosSmooth.Packets/Client/Battle/NcifPacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Client.Battle;
namespace NosSmooth.Packets.Client.Battle;

/// <summary>
/// Client sends this when focusing an entity and then every x seconds again.

R Core/NosSmooth.Packets/Packets/Client/Battle/UseAOESkillPacket.cs => Packets/NosSmooth.Packets/Client/Battle/UseAOESkillPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Client.Battle;
namespace NosSmooth.Packets.Client.Battle;

/// <summary>
/// Sent to use a skill that is targeted at position.

R Core/NosSmooth.Packets/Packets/Client/Battle/UseSkillPacket.cs => Packets/NosSmooth.Packets/Client/Battle/UseSkillPacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Client.Battle;
namespace NosSmooth.Packets.Client.Battle;

/// <summary>
/// Sent to use regular skill.

R Core/NosSmooth.Packets/Packets/Client/Chat/SayPacket.cs => Packets/NosSmooth.Packets/Client/Chat/SayPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Client.Chat;
namespace NosSmooth.Packets.Client.Chat;

/// <summary>
/// Sends a message to the map chat.

R Core/NosSmooth.Packets/Packets/Client/Misc/PulsePacket.cs => Packets/NosSmooth.Packets/Client/Misc/PulsePacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Client.Misc;
namespace NosSmooth.Packets.Client.Misc;

/// <summary>
/// Heartbeat packet.

R Core/NosSmooth.Packets/Packets/Client/Movement/WalkPacket.cs => Packets/NosSmooth.Packets/Client/Movement/WalkPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Client.Movement;
namespace NosSmooth.Packets.Client.Movement;

/// <summary>
/// Packet sent when moving.

R Core/NosSmooth.Packets/Enums/Act4Mode.cs => Packets/NosSmooth.Packets/Enums/Act4Mode.cs +0 -0
R Core/NosSmooth.Packets/Enums/Chat/MessageType.cs => Packets/NosSmooth.Packets/Enums/Chat/MessageType.cs +0 -0
R Core/NosSmooth.Packets/Enums/Chat/SayColor.cs => Packets/NosSmooth.Packets/Enums/Chat/SayColor.cs +0 -0
R Core/NosSmooth.Packets/Enums/Element.cs => Packets/NosSmooth.Packets/Enums/Element.cs +0 -0
R Core/NosSmooth.Packets/Enums/Entities/EntityType.cs => Packets/NosSmooth.Packets/Enums/Entities/EntityType.cs +0 -0
R Core/NosSmooth.Packets/Enums/Entities/FactionType.cs => Packets/NosSmooth.Packets/Enums/Entities/FactionType.cs +0 -0
R Core/NosSmooth.Packets/Enums/Entities/SpawnEffect.cs => Packets/NosSmooth.Packets/Enums/Entities/SpawnEffect.cs +0 -0
R Core/NosSmooth.Packets/Enums/Players/AuthorityType.cs => Packets/NosSmooth.Packets/Enums/Players/AuthorityType.cs +0 -0
R Core/NosSmooth.Packets/Enums/Players/HairColor.cs => Packets/NosSmooth.Packets/Enums/Players/HairColor.cs +0 -0
R Core/NosSmooth.Packets/Enums/Players/HairStyle.cs => Packets/NosSmooth.Packets/Enums/Players/HairStyle.cs +0 -0
R Core/NosSmooth.Packets/Enums/Players/PlayerClass.cs => Packets/NosSmooth.Packets/Enums/Players/PlayerClass.cs +0 -0
R Core/NosSmooth.Packets/Enums/Players/SexType.cs => Packets/NosSmooth.Packets/Enums/Players/SexType.cs +0 -0
R Core/NosSmooth.Packets/Packets/IPacket.cs => Packets/NosSmooth.Packets/IPacket.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Packets.Packets;
namespace NosSmooth.Packets;

/// <summary>
/// Base packet interface that must be implemented in every packet.

A Packets/NosSmooth.Packets/IsExternalInit.cs => Packets/NosSmooth.Packets/IsExternalInit.cs +15 -0
@@ 0,0 1,15 @@
//
//  IsExternalInit.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace System.Runtime.CompilerServices
{
    /// <summary>
    /// Dummy.
    /// </summary>
    public class IsExternalInit
    {
    }
}
\ No newline at end of file

A Packets/NosSmooth.Packets/NosSmooth.Packets.csproj => Packets/NosSmooth.Packets/NosSmooth.Packets.csproj +17 -0
@@ 0,0 1,17 @@
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <TargetFramework>netstandard2.1</TargetFramework>
        <LangVersion>10</LangVersion>
    </PropertyGroup>

    <ItemGroup>
        <ProjectReference Include="..\NosSmooth.PacketSerializer.Abstractions\NosSmooth.PacketSerializer.Abstractions.csproj" />
    </ItemGroup>
    
    <ItemGroup>
        <ProjectReference Include="..\NosSmooth.PacketSerializersGenerator\NosSmooth.PacketSerializersGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
    </ItemGroup>
</Project>

R Core/NosSmooth.Packets/Packets/Server/Act4/FcPacket.cs => Packets/NosSmooth.Packets/Server/Act4/FcPacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Act4;
namespace NosSmooth.Packets.Server.Act4;

/// <summary>
/// Contains the state of the act4.

R Core/NosSmooth.Packets/Packets/Server/Act4/FcSubPacket.cs => Packets/NosSmooth.Packets/Server/Act4/FcSubPacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Act4;
namespace NosSmooth.Packets.Server.Act4;

/// <summary>
/// Sub packet of <see cref="FcPacket"/>, containing

R Core/NosSmooth.Packets/Packets/Server/Chat/MsgPacket.cs => Packets/NosSmooth.Packets/Server/Chat/MsgPacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums.Chat;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Chat;
namespace NosSmooth.Packets.Server.Chat;

/// <summary>
/// Contains message that was sent in chat, shouted etc.

R Core/NosSmooth.Packets/Packets/Server/Chat/SayPacket.cs => Packets/NosSmooth.Packets/Server/Chat/SayPacket.cs +2 -2
@@ 4,11 4,11 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Chat;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Chat;
namespace NosSmooth.Packets.Server.Chat;

/// <summary>
/// Sent when someone says something.

R Core/NosSmooth.Packets/Packets/Server/Entities/InEquipmentSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InEquipmentSubPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// Sub packet of <see cref="InPacket"/> present if the in packet

R Core/NosSmooth.Packets/Packets/Server/Entities/InItemSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InItemSubPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// Sub packet of <see cref="InPacket"/> present if the in packet

R Core/NosSmooth.Packets/Packets/Server/Entities/InNonPlayerSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InNonPlayerSubPacket.cs +3 -3
@@ 4,12 4,12 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Common;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Common;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// Sub packet of <see cref="InPacket"/> present if the in packet

R Core/NosSmooth.Packets/Packets/Server/Entities/InPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InPacket.cs +3 -3
@@ 4,11 4,11 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Common;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Common;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// There is a new entity on the map present.

R Core/NosSmooth.Packets/Packets/Server/Entities/InPlayerSubPacket.cs => Packets/NosSmooth.Packets/Server/Entities/InPlayerSubPacket.cs +4 -5
@@ 4,14 4,13 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Generic;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Players;
using NosSmooth.Packets.Packets.Server.Players;
using NosSmooth.Packets.Packets.Server.Weapons;
using NosSmooth.Packets.Server.Players;
using NosSmooth.Packets.Server.Weapons;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// Sub packet for <see cref="InPacket"/>

R Core/NosSmooth.Packets/Packets/Server/Entities/MovePacket.cs => Packets/NosSmooth.Packets/Server/Entities/MovePacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// The entity has moved to the given position.

R Core/NosSmooth.Packets/Packets/Server/Entities/StPacket.cs => Packets/NosSmooth.Packets/Server/Entities/StPacket.cs +2 -3
@@ 4,11 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Generic;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// Sent as a response to "ncif" packet.

R Core/NosSmooth.Packets/Packets/Server/Entities/StatPacket.cs => Packets/NosSmooth.Packets/Server/Entities/StatPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Entities;
namespace NosSmooth.Packets.Server.Entities;

/// <summary>
/// Sent when player takes damage, heals or changes options.

R Core/NosSmooth.Packets/Packets/Server/Groups/PinitPacket.cs => Packets/NosSmooth.Packets/Server/Groups/PinitPacket.cs +2 -3
@@ 4,10 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Generic;
using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Groups;
namespace NosSmooth.Packets.Server.Groups;

/// <summary>
/// Sent for initialization of pets and groups.

R Core/NosSmooth.Packets/Packets/Server/Groups/PinitSubPacket.cs => Packets/NosSmooth.Packets/Server/Groups/PinitSubPacket.cs +3 -3
@@ 4,11 4,11 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Common;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Common;

namespace NosSmooth.Packets.Packets.Server.Groups;
namespace NosSmooth.Packets.Server.Groups;

/// <summary>
/// Sub packet of <see cref="PinitSubPacket"/> containing information

R Core/NosSmooth.Packets/Packets/Server/Maps/CMapPacket.cs => Packets/NosSmooth.Packets/Server/Maps/CMapPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Maps;
namespace NosSmooth.Packets.Server.Maps;

/// <summary>
/// Packet sent when map is changed.

R Core/NosSmooth.Packets/Packets/Server/Players/CInfoPacket.cs => Packets/NosSmooth.Packets/Server/Players/CInfoPacket.cs +1 -3
@@ 4,9 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;

namespace NosSmooth.Packets.Packets.Server.Players;
namespace NosSmooth.Packets.Server.Players;

/// <summary>
/// Character information.

R Core/NosSmooth.Packets/Packets/Server/Players/CModePacket.cs => Packets/NosSmooth.Packets/Server/Players/CModePacket.cs +2 -2
@@ 4,10 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Enums;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Players;
namespace NosSmooth.Packets.Server.Players;

/// <summary>
/// TODO

R Core/NosSmooth.Packets/Packets/Server/Players/FamilySubPacket.cs => Packets/NosSmooth.Packets/Server/Players/FamilySubPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Players;
namespace NosSmooth.Packets.Server.Players;

/// <summary>
/// Sub packet with family information.

R Core/NosSmooth.Packets/Packets/Server/Players/LevPacket.cs => Packets/NosSmooth.Packets/Server/Players/LevPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Players;
namespace NosSmooth.Packets.Server.Players;

/// <summary>
/// Sent on map change.

R Core/NosSmooth.Packets/Packets/Server/Skills/SkiPacket.cs => Packets/NosSmooth.Packets/Server/Skills/SkiPacket.cs +2 -4
@@ 4,11 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Generic;
using System.ComponentModel;
using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Skills;
namespace NosSmooth.Packets.Server.Skills;

/// <summary>
/// Information about skills, sent when changing sp, map etc.

R Core/NosSmooth.Packets/Packets/Server/Skills/SkiSubPacket.cs => Packets/NosSmooth.Packets/Server/Skills/SkiSubPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Skills;
namespace NosSmooth.Packets.Server.Skills;

/// <summary>
/// Sub packet for <see cref="SkiPacket"/> containing information about a skill.

R Core/NosSmooth.Packets/Packets/Server/Skills/SrPacket.cs => Packets/NosSmooth.Packets/Server/Skills/SrPacket.cs +2 -3
@@ 4,10 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.CodeDom.Compiler;
using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Skills;
namespace NosSmooth.Packets.Server.Skills;

/// <summary>
/// Skill cooldown reset.

R Core/NosSmooth.Packets/Packets/Server/Weapons/UpgradeRareSubPacket.cs => Packets/NosSmooth.Packets/Server/Weapons/UpgradeRareSubPacket.cs +2 -2
@@ 4,9 4,9 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Packets.Attributes;
using NosSmooth.PacketSerializer.Abstractions.Attributes;

namespace NosSmooth.Packets.Packets.Server.Weapons;
namespace NosSmooth.Packets.Server.Weapons;

/// <summary>
/// Upgrade and rare of a weapon or an armor.

R Core/NosSmooth.Packets/Packets/UnresolvedPacket.cs => Packets/NosSmooth.Packets/UnresolvedPacket.cs +1 -1
@@ 4,7 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Packets.Packets;
namespace NosSmooth.Packets;

/// <summary>
/// Unresolved packet that is not supported.

M Tests/NosSmooth.Packets.Tests/Converters/Packets/FcPacketConverterTests.cs => Tests/NosSmooth.Packets.Tests/Converters/Packets/FcPacketConverterTests.cs +2 -3
@@ 5,11 5,10 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Extensions;
using NosSmooth.Packets.Packets.Server.Act4;
using NosSmooth.Packets.Server.Act4;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Xunit;

namespace NosSmooth.Packets.Tests.Converters.Packets;

M Tests/NosSmooth.Packets.Tests/Converters/Packets/InPacketConverterTests.cs => Tests/NosSmooth.Packets.Tests/Converters/Packets/InPacketConverterTests.cs +7 -10
@@ 4,19 4,16 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Collections.Generic;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;
using NosSmooth.Packets.Enums.Players;
using NosSmooth.Packets.Extensions;
using NosSmooth.Packets.Packets.Server.Entities;
using NosSmooth.Packets.Packets.Server.Players;
using NosSmooth.Packets.Packets.Server.Skills;
using NosSmooth.Packets.Packets.Server.Weapons;
using NosSmooth.Packets.Server.Entities;
using NosSmooth.Packets.Server.Players;
using NosSmooth.Packets.Server.Weapons;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Xunit;

namespace NosSmooth.Packets.Tests.Converters.Packets;


@@ 91,7 88,7 @@ public class InPacketConverterTests
                0,
                new UpgradeRareSubPacket(10, 8),
                new UpgradeRareSubPacket(10, 8),
                new FamilySubPacket("-1", null),
                new FamilySubPacket(null, null),
                null,
                "26",
                false,


@@ 222,7 219,7 @@ public class InPacketConverterTests
                -1,
                null,
                "0",
                "-1",
                null,
                "0",
                0,
                0,


@@ 271,7 268,7 @@ public class InPacketConverterTests
                -1,
                null,
                "0",
                "-1",
                null,
                "0",
                0,
                0,

M Tests/NosSmooth.Packets.Tests/Converters/Packets/MovePacketConverterTests.cs => Tests/NosSmooth.Packets.Tests/Converters/Packets/MovePacketConverterTests.cs +2 -3
@@ 5,11 5,10 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Extensions;
using NosSmooth.Packets.Packets.Server.Entities;
using NosSmooth.Packets.Server.Entities;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Xunit;

namespace NosSmooth.Packets.Tests.Converters.Packets;

M Tests/NosSmooth.Packets.Tests/Converters/Packets/PinitPacketConverterTest.cs => Tests/NosSmooth.Packets.Tests/Converters/Packets/PinitPacketConverterTest.cs +2 -3
@@ 5,11 5,10 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Packets.Attributes;
using NosSmooth.Packets.Converters;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Extensions;
using NosSmooth.Packets.Packets.Server.Groups;
using NosSmooth.Packets.Server.Groups;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using Xunit;

namespace NosSmooth.Packets.Tests.Converters.Packets;

M Tests/NosSmooth.Packets.Tests/NosSmooth.Packets.Tests.csproj => Tests/NosSmooth.Packets.Tests/NosSmooth.Packets.Tests.csproj +1 -1
@@ 22,7 22,7 @@
    </ItemGroup>

    <ItemGroup>
      <ProjectReference Include="..\..\Core\NosSmooth.Packets\NosSmooth.Packets.csproj" />
      <ProjectReference Include="..\..\Packets\NosSmooth.PacketSerializer\NosSmooth.PacketSerializer.csproj" />
    </ItemGroup>

</Project>

M Tests/NosSmooth.Packets.Tests/PacketStringBuilderTests.cs => Tests/NosSmooth.Packets.Tests/PacketStringBuilderTests.cs +1 -0
@@ 4,6 4,7 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.PacketSerializer.Abstractions;
using Xunit;

namespace NosSmooth.Packets.Tests;

M Tests/NosSmooth.Packets.Tests/PacketStringEnumeratorTests.cs => Tests/NosSmooth.Packets.Tests/PacketStringEnumeratorTests.cs +2 -3
@@ 4,9 4,8 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System;
using System.Linq;
using NosSmooth.Packets.Errors;
using NosSmooth.PacketSerializer.Abstractions;
using NosSmooth.PacketSerializer.Abstractions.Errors;
using Xunit;

namespace NosSmooth.Packets.Tests;

Do not follow this link