diff --git a/ClassicalSharp/Network/Enums.cs b/ClassicalSharp/Network/Enums.cs index cb96fa891..e3f8e4be7 100644 --- a/ClassicalSharp/Network/Enums.cs +++ b/ClassicalSharp/Network/Enums.cs @@ -41,6 +41,8 @@ namespace ClassicalSharp { CpePlayerClick = 34, CpeDefineBlock = 35, CpeRemoveBlockDefinition = 36, + CpeDefineBlockExt = 37, + CpeBulkBlockUpdate = 38, } public enum CpeMessage { diff --git a/ClassicalSharp/Network/NetworkProcessor.CPE.cs b/ClassicalSharp/Network/NetworkProcessor.CPE.cs index 26ddeb210..ebdb70845 100644 --- a/ClassicalSharp/Network/NetworkProcessor.CPE.cs +++ b/ClassicalSharp/Network/NetworkProcessor.CPE.cs @@ -2,6 +2,7 @@ using ClassicalSharp.Hotkeys; using ClassicalSharp.Network; using ClassicalSharp.TexturePack; +using OpenTK; using OpenTK.Input; namespace ClassicalSharp { @@ -63,7 +64,7 @@ namespace ClassicalSharp { "HackControl", "MessageTypes", "PlayerClick", "FullCP437", "LongerMessages", // proposals - "BlockDefinitions", "BlockDefinitionsExt", "BulkBlockUpdate", + "BlockDefinitions", "BlockDefinitionsExt", }; void HandleCpeExtInfo() { @@ -409,13 +410,17 @@ namespace ClassicalSharp { void HandleCpeDefineBlockExt() { byte block = HandleCpeDefineBlockCommonStart(); BlockInfo info = game.BlockInfo; + Vector3 min, max; - info.MinBB[block].X = Math.Min( 15/16f, reader.ReadUInt8() / 16f ); - info.MinBB[block].Y = Math.Min( 15/16f, reader.ReadUInt8() / 16f ); - info.MinBB[block].Z = Math.Min( 15/16f, reader.ReadUInt8() / 16f ); - info.MaxBB[block].X = Math.Min( 1, reader.ReadUInt8() / 16f ); - info.MaxBB[block].Y = Math.Min( 1, reader.ReadUInt8() / 16f ); - info.MaxBB[block].Z = Math.Min( 1, reader.ReadUInt8() / 16f ); + min.X = reader.ReadUInt8() / 16f; Utils.Clamp( ref min.X, 0, 15/16f ); + min.Y = reader.ReadUInt8() / 16f; Utils.Clamp( ref min.Y, 0, 15/16f ); + min.Z = reader.ReadUInt8() / 16f; Utils.Clamp( ref min.Z, 0, 15/16f ); + max.X = reader.ReadUInt8() / 16f; Utils.Clamp( ref max.X, 1/16f, 1 ); + max.Y = reader.ReadUInt8() / 16f; Utils.Clamp( ref max.Y, 1/16f, 1 ); + max.Z = reader.ReadUInt8() / 16f; Utils.Clamp( ref max.Z, 1/16f, 1 ); + + info.MinBB[block] = min; + info.MaxBB[block] = max; HandleCpeDefineBlockCommonEnd( block ); } diff --git a/ClassicalSharp/Network/NetworkProcessor.cs b/ClassicalSharp/Network/NetworkProcessor.cs index e07a00706..08d4f19d8 100644 --- a/ClassicalSharp/Network/NetworkProcessor.cs +++ b/ClassicalSharp/Network/NetworkProcessor.cs @@ -149,7 +149,8 @@ namespace ClassicalSharp { readonly int[] packetSizes = { 131, 1, 1, 1028, 7, 9, 8, 74, 10, 7, 5, 4, 2, 66, 65, 2, 67, 69, 3, 2, 3, 134, 196, 130, 3, - 8, 86, 2, 4, 66, 69, 2, 8, 138, 0, 80, 2, 1282, + 8, 86, 2, 4, 66, 69, 2, 8, 138, 0, 80, 2, 85, + 1282, }; NetWriter writer;