Minecraft-Console-Client/MinecraftClient/Mapping/DirectionExtensions.cs
copilot-swe-agent[bot] 2ae31e269f Convert switch statements to expressions and adopt collection expressions
- DirectionExtensions.cs: Convert GetOpposite() to switch expression,
  use file-scoped namespace, use collection expression for HORIZONTAL
- McClient.cs: Convert InteractType switch to expression, use collection
  expressions for array literals
- Protocol18.cs: Replace Array.Empty<byte>() with [], use collection
  expressions for byte/int array literals
- DataTypes.cs: Use collection expression for TAG_End byte array
- ChatBot.cs: Use collection expressions for string/char arrays
- Location.cs: Use collection expressions and modernize null check

Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/milutinke/Minecraft-Console-Client/sessions/4e9bd25b-22c5-47c2-98f9-6025d927b1d6
2026-03-24 00:34:00 +00:00

42 lines
1.1 KiB
C#

using System;
namespace MinecraftClient.Mapping;
public static class DirectionExtensions
{
public static Direction GetOpposite(this Direction direction) => direction switch
{
Direction.SouthEast => Direction.NorthEast,
Direction.SouthWest => Direction.NorthWest,
Direction.NorthEast => Direction.SouthEast,
Direction.NorthWest => Direction.SouthWest,
Direction.West => Direction.East,
Direction.East => Direction.West,
Direction.North => Direction.South,
Direction.South => Direction.North,
Direction.Down => Direction.Up,
Direction.Up => Direction.Down,
_ => Direction.Up,
};
public static Direction[] HORIZONTAL =
[
Direction.South,
Direction.West,
Direction.North,
Direction.East,
];
public static Direction FromRotation(double rotation)
{
double floor = Math.Floor((rotation / 90.0) + 0.5);
int value = (int)floor & 3;
return FromHorizontal(value);
}
public static Direction FromHorizontal(int value)
{
return HORIZONTAL[Math.Abs(value % HORIZONTAL.Length)];
}
}