Files
Delta-v/Content.Shared/Power/SharedPowerMonitoringConsoleSystem.cs
T
Leon Friedrich 381ee31ef5 Replace NavMap dictionaries with int[] (#27602)
* Replace NavMap dictionaries with int[]

* Remove badly named const

* Remove unnecessary offset

* Prioritize airlocks

Signed-off-by: null <56081759+NullWanderer@users.noreply.github.com>
2024-05-04 17:59:37 +02:00

29 lines
835 B
C#

using System.Runtime.CompilerServices;
using JetBrains.Annotations;
namespace Content.Shared.Power;
[UsedImplicitly]
public abstract class SharedPowerMonitoringConsoleSystem : EntitySystem
{
// Chunk size is limited as we require ChunkSize^2 <= 32 (number of bits in an int)
public const int ChunkSize = 5;
/// <summary>
/// Converts the chunk's tile into a bitflag for the slot.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int GetFlag(Vector2i relativeTile)
{
return 1 << (relativeTile.X * ChunkSize + relativeTile.Y);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Vector2i GetTileFromIndex(int index)
{
var x = index / ChunkSize;
var y = index % ChunkSize;
return new Vector2i(x, y);
}
}