Merge branch 'Data_Source_Rewrite' of https://gitlab.com/jeseibel/distant-horizons-core into Data_Source_Rewrite

This commit is contained in:
James Seibel
2024-04-13 07:40:17 -05:00
2 changed files with 10 additions and 10 deletions
@@ -174,25 +174,21 @@ public class FullDataSourceV2 implements IDataSource<IDhLevel>
{
long dataPoint = legacyDataColumn[i];
int id = FullDataPointUtil.getId(dataPoint);
int height = FullDataPointUtil.getHeight(dataPoint);
int bottomY = FullDataPointUtil.getBottomY(dataPoint);
boolean isAir = legacyData.mapping.getBlockStateWrapper(FullDataPointUtil.getId(dataPoint)).isAir;
byte blockLight = (byte) FullDataPointUtil.getBlockLight(dataPoint);
byte skyLight = (byte) FullDataPointUtil.getSkyLight(dataPoint);
IBlockStateWrapper blockState = legacyData.mapping.getBlockStateWrapper(id);
if (blockState.isAir())
if (isAir)
{
// air shouldn't have any light, otherwise down sampling will look weird
blockLight = 0;
}
long newDataPoint = FullDataPointUtil.encode(id, height, bottomY, blockLight, skyLight);
newDataColumn.set(i, newDataPoint);
dataPoint = FullDataPointUtil.setBlockLight(dataPoint, blockLight);
newDataColumn.set(i, dataPoint);
// check if this datapoint is air
if (!columnHasNonAirBlock && !blockState.isAir())
if (!columnHasNonAirBlock && !isAir)
{
columnHasNonAirBlock = true;
}
@@ -127,6 +127,10 @@ public class FullDataPointUtil
*/
public static int getBottomY(long data) { return (int) ((data >> MIN_Y_OFFSET) & MIN_Y_MASK); }
public static int getBlockLight(long data) { return (int) ((data >> BLOCK_LIGHT_OFFSET) & BLOCK_LIGHT_MASK); }
public static long setBlockLight(long data, byte blockLight)
{
return (data & ~((long) BLOCK_LIGHT_MASK << BLOCK_LIGHT_OFFSET) | (long) blockLight << BLOCK_LIGHT_OFFSET);
}
public static int getSkyLight(long data) { return (int) ((data >> SKY_LIGHT_OFFSET) & SKY_LIGHT_MASK); }