int q = Convert.ToInt32(value * (1 - f * saturation));
int t = Convert.ToInt32(value * (1 - (1 - f) * saturation));
- return hi switch
+ switch (hi)
{
- 0 => Color.FromArgb(255, v, t, p),
- 1 => Color.FromArgb(255, q, v, p),
- 2 => Color.FromArgb(255, p, v, t),
- 3 => Color.FromArgb(255, p, q, v),
- 4 => Color.FromArgb(255, t, p, v),
- _ => Color.FromArgb(255, v, p, q),
+ case 0: return Color.FromArgb(255, v, t, p);
+ case 1: return Color.FromArgb(255, q, v, p);
+ case 2: return Color.FromArgb(255, p, v, t);
+ case 3: return Color.FromArgb(255, p, q, v);
+ case 4: return Color.FromArgb(255, t, p, v);
+ default: return Color.FromArgb(255, v, p, q);
};
}
return whichever;
}
+ public static ushort RainHeight2DMap(this IMapChunk mapChunk, int x, int y, int chunkSize = 32)
+ {
+ int index = y % chunkSize * chunkSize + x % chunkSize;
+ return mapChunk.RainHeightMap[index];
+ }
/// <summary>
return arbBlockIDTable;
}
-
-
- /// <summary>
- /// Chunk local index. Not block position!
- /// </summary>
- /// <remarks>Clamps to 5 bit ranges automagically</remarks>
- public static int ChunkBlockIndicie16(int X_index, int Y_index, int Z_index)
- {
- return ((Y_index & 31) * 32 + (Z_index & 31)) * 32 + (X_index & 31);
- }
-
- /// <summary>
- /// Chunk index converted from block position (in world)
- /// </summary>
- /// <returns>The block indicie.</returns>
- /// <param name="blockPos">Block position.</param>
- /// <remarks>Clamps to 5 bit ranges automagically</remarks>
- public static int ChunkBlockIndicie16(BlockPos blockPos)
- {
- //Chunk masked
- return ((blockPos.Y & 31) * 32 + (blockPos.Z & 31)) * 32 + (blockPos.X & 31);
- }
+ public static Mod Self(this ICoreClientAPI ownApi)
+ {
+ AutomapMod ownMod = ownApi.ModLoader.GetModSystem<AutomapMod>( );
+ return ownMod.Mod;
+ }
+
}
}