Clean up entity metadata palette

This commit is contained in:
ReinforceZwei 2023-03-24 20:51:10 +08:00
parent c36dec435d
commit 750295b1e3
10 changed files with 67 additions and 139 deletions

View file

@ -11,24 +11,63 @@ public enum EntityMetaDataType
OptionalChat,
Slot,
Boolean,
/// <summary>
/// Float x3
/// </summary>
Rotation,
Position,
OptionalPosition,
/// <summary>
/// VarInt
/// </summary>
Direction,
OptionalUuid,
/// <summary>
/// VarInt
/// </summary>
BlockId,
/// <summary>
/// VarInt (0 for absent)
/// </summary>
OptionalBlockId,
Nbt,
Particle,
/// <summary>
/// VarInt x3
/// </summary>
VillagerData,
OptionalVarInt,
/// <summary>
/// VarInt
/// </summary>
Pose,
/// <summary>
/// VarInt
/// </summary>
CatVariant,
FrogVariant,
/// <summary>
/// String + Position
/// </summary>
GlobalPosition,
/// <summary>
/// Boolean + String + Position
/// </summary>
OptionalGlobalPosition,
/// <summary>
/// VarInt
/// </summary>
PaintingVariant,
/// <summary>
/// VarInt
/// </summary>
SnifferState,
/// <summary>
/// Float x3
/// </summary>
Vector3,
/// <summary>
/// Float x4
/// </summary>
Quaternion
}

View file

@ -16,20 +16,16 @@ public abstract class EntityMetadataPalette
public static EntityMetadataPalette GetPalette(int protocolVersion)
{
if (protocolVersion < Protocol18Handler.MC_1_9_1_Version)
return new EntityMetadataPalette19();
else if (protocolVersion <= Protocol18Handler.MC_1_11_2_Version)
return new EntityMetadataPalette111();
else if (protocolVersion <= Protocol18Handler.MC_1_13_2_Version)
return new EntityMetadataPalette113();
else if (protocolVersion <= Protocol18Handler.MC_1_14_Version)
return new EntityMetadataPalette114();
if (protocolVersion < Protocol18Handler.MC_1_9_Version)
throw new NotImplementedException();
else if (protocolVersion <= Protocol18Handler.MC_1_12_2_Version)
return new EntityMetadataPalette1122(); // 1.9 - 1.12.2
else if (protocolVersion <= Protocol18Handler.MC_1_19_2_Version)
return new EntityMetadataPalette1191();
return new EntityMetadataPalette1191(); // 1.13 - 1.19.2
else if (protocolVersion <= Protocol18Handler.MC_1_19_3_Version)
return new EntityMetadataPalette1193();
return new EntityMetadataPalette1193(); // 1.19.3
else if (protocolVersion <= Protocol18Handler.MC_1_19_4_Version)
return new EntityMetadataPalette1194();
return new EntityMetadataPalette1194(); // 1.19.4
else
throw new NotImplementedException();
}

View file

@ -2,9 +2,9 @@ using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
public class EntityMetadataPalette111 : EntityMetadataPalette
public class EntityMetadataPalette1122 : EntityMetadataPalette
{
// 1.11 : https://wiki.vg/index.php?title=Entity_metadata&oldid=8269
// 1.9 - 1.12.2
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
{
{ 0, EntityMetaDataType.Byte },
@ -19,7 +19,8 @@ public class EntityMetadataPalette111 : EntityMetadataPalette
{ 9, EntityMetaDataType.OptionalPosition },
{ 10, EntityMetaDataType.Direction },
{ 11, EntityMetaDataType.OptionalUuid },
{ 12, EntityMetaDataType.OptionalBlockId }
{ 12, EntityMetaDataType.OptionalBlockId },
{ 13, EntityMetaDataType.Nbt },
};
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()

View file

@ -1,32 +0,0 @@
using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
public class EntityMetadataPalette113 : EntityMetadataPalette
{
// 1.13 : https://wiki.vg/index.php?title=Entity_metadata&oldid=14539
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
{
{ 0, EntityMetaDataType.Byte },
{ 1, EntityMetaDataType.VarInt },
{ 2, EntityMetaDataType.Float },
{ 3, EntityMetaDataType.String },
{ 4, EntityMetaDataType.Chat },
{ 5, EntityMetaDataType.OptionalChat },
{ 6, EntityMetaDataType.Slot },
{ 7, EntityMetaDataType.Boolean },
{ 8, EntityMetaDataType.Rotation },
{ 9, EntityMetaDataType.Position },
{ 10, EntityMetaDataType.OptionalPosition },
{ 11, EntityMetaDataType.Direction },
{ 12, EntityMetaDataType.OptionalUuid },
{ 13, EntityMetaDataType.OptionalBlockId },
{ 14, EntityMetaDataType.Nbt },
{ 15, EntityMetaDataType.Particle }
};
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
{
return entityMetadataMappings;
}
}

View file

@ -1,34 +0,0 @@
using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
public class EntityMetadataPalette114 : EntityMetadataPalette
{
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
{
{ 0, EntityMetaDataType.Byte },
{ 1, EntityMetaDataType.VarInt },
{ 2, EntityMetaDataType.Float },
{ 3, EntityMetaDataType.String },
{ 4, EntityMetaDataType.Chat },
{ 5, EntityMetaDataType.OptionalChat },
{ 6, EntityMetaDataType.Slot },
{ 7, EntityMetaDataType.Boolean },
{ 8, EntityMetaDataType.Rotation },
{ 9, EntityMetaDataType.Position },
{ 10, EntityMetaDataType.OptionalPosition },
{ 11, EntityMetaDataType.Direction },
{ 12, EntityMetaDataType.OptionalUuid },
{ 13, EntityMetaDataType.OptionalBlockId },
{ 14, EntityMetaDataType.Nbt },
{ 15, EntityMetaDataType.Particle },
{ 16, EntityMetaDataType.VillagerData },
{ 17, EntityMetaDataType.OptionalVarInt },
{ 18, EntityMetaDataType.Pose }
};
public override Dictionary<int, EntityMetaDataType> GetEntityMetadataMappingsList()
{
return entityMetadataMappings;
}
}

View file

@ -2,6 +2,9 @@ using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
/// <summary>
/// 1.13 - 1.19.2
/// </summary>
public class EntityMetadataPalette1191 : EntityMetadataPalette
{
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
@ -27,7 +30,7 @@ public class EntityMetadataPalette1191 : EntityMetadataPalette
{ 18, EntityMetaDataType.Pose },
{ 19, EntityMetaDataType.CatVariant },
{ 20, EntityMetaDataType.FrogVariant },
{ 21, EntityMetaDataType.GlobalPosition },
{ 21, EntityMetaDataType.OptionalGlobalPosition },
{ 22, EntityMetaDataType.PaintingVariant }
};

View file

@ -2,6 +2,9 @@ using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
/// <summary>
/// For 1.19.3
/// </summary>
public class EntityMetadataPalette1193 : EntityMetadataPalette
{
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()
@ -28,7 +31,7 @@ public class EntityMetadataPalette1193 : EntityMetadataPalette
{ 19, EntityMetaDataType.Pose },
{ 20, EntityMetaDataType.CatVariant },
{ 21, EntityMetaDataType.FrogVariant },
{ 22, EntityMetaDataType.GlobalPosition },
{ 22, EntityMetaDataType.OptionalGlobalPosition },
{ 23, EntityMetaDataType.PaintingVariant }
};

View file

@ -2,6 +2,9 @@ using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
/// <summary>
/// For 1.19.4
/// </summary>
public class EntityMetadataPalette1194 : EntityMetadataPalette
{
private readonly Dictionary<int, EntityMetaDataType> entityMetadataMappings = new()

View file

@ -2,6 +2,7 @@ using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityMetadataPalettes;
// TODO: Use this for 1.8
public class EntityMetadataPalette19 : EntityMetadataPalette
{
// 1.8 : https://wiki.vg/index.php?title=Entity_metadata&oldid=6220 (Requires a different algorithm)