added getters and creators in the new format.
This commit is contained in:
@@ -18,4 +18,52 @@ public class PositionDataFormat
|
||||
public final static int EMPTY_DATA = 0;
|
||||
public final static int VOID_DATA = VOID_MASK<<VOID_SHIFT + EXISTENCE_MASK<<EXISTENCE_SHIFT;
|
||||
|
||||
public static short createVoidPositionData(byte generationMode)
|
||||
{
|
||||
short positionData = 0;
|
||||
positionData |= (generationMode & GEN_TYPE_MASK) << GEN_TYPE_SHIFT;
|
||||
positionData |= VOID_MASK << VOID_SHIFT;
|
||||
positionData |= EXISTENCE_MASK << EXISTENCE_SHIFT;
|
||||
|
||||
return positionData;
|
||||
}
|
||||
|
||||
public static short createPositionData(int lodCount, boolean correctLight, byte generationMode)
|
||||
{
|
||||
short positionData = 0;
|
||||
positionData |= (lodCount & LOD_COUNT_MASK) << LOD_COUNT_SHIFT;
|
||||
positionData |= (generationMode & GEN_TYPE_MASK) << GEN_TYPE_SHIFT;
|
||||
if (correctLight)
|
||||
positionData |= CORRECT_LIGHT_MASK << CORRECT_LIGHT_SHIFT;
|
||||
positionData |= EXISTENCE_MASK << EXISTENCE_SHIFT;
|
||||
|
||||
return positionData;
|
||||
}
|
||||
|
||||
public static byte getLodCount(short dataPoint)
|
||||
{
|
||||
return (byte) ((dataPoint >>> LOD_COUNT_SHIFT) & LOD_COUNT_MASK);
|
||||
}
|
||||
|
||||
public static boolean getFlag(short dataPoint)
|
||||
{
|
||||
return ((dataPoint >>> CORRECT_LIGHT_SHIFT) & CORRECT_LIGHT_MASK) == 1;
|
||||
}
|
||||
|
||||
public static byte getGenerationMode(short dataPoint)
|
||||
{
|
||||
return (byte) ((dataPoint >>> GEN_TYPE_SHIFT) & GEN_TYPE_MASK);
|
||||
}
|
||||
|
||||
|
||||
public static boolean isVoid(short dataPoint)
|
||||
{
|
||||
return (((dataPoint >>> VOID_SHIFT) & VOID_MASK) == 1);
|
||||
}
|
||||
|
||||
public static boolean doesItExist(short dataPoint)
|
||||
{
|
||||
return (((dataPoint >>> EXISTENCE_SHIFT) & EXISTENCE_MASK) == 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -21,4 +21,50 @@ public class VerticalDataFormat
|
||||
public final static int EMPTY_LOD_MASK = 0b1;
|
||||
|
||||
public final static int EMPTY_LOD = 0;
|
||||
|
||||
public static int createVerticalData(int height, int depth, int level, boolean transparent, boolean bottom)
|
||||
{
|
||||
int verticalData = 0;
|
||||
verticalData |= (height & HEIGHT_MASK) << HEIGHT_SHIFT;
|
||||
verticalData |= (depth & DEPTH_MASK) << DEPTH_SHIFT;
|
||||
verticalData |= (level & LEVEL_MASK) << LEVEL_SHIFT;
|
||||
if (bottom)
|
||||
verticalData |= BOTTOM_TYPE_MASK << BOTTOM_TYPE_SHIFT;
|
||||
if (transparent)
|
||||
verticalData |= TRANSPARENCY_MASK << TRANSPARENCY_SHIFT;
|
||||
verticalData |= EMPTY_LOD_MASK << EMPTY_LOD_SHIFT;
|
||||
|
||||
return verticalData;
|
||||
}
|
||||
|
||||
public static short getHeight(int verticalData)
|
||||
{
|
||||
return (short) ((verticalData >>> HEIGHT_SHIFT) & HEIGHT_MASK);
|
||||
}
|
||||
|
||||
public static short getDepth(int verticalData)
|
||||
{
|
||||
return (short) ((verticalData >>> DEPTH_SHIFT) & DEPTH_MASK);
|
||||
}
|
||||
|
||||
public static byte getLevel(int verticalData)
|
||||
{
|
||||
return (byte) ((verticalData >>> LEVEL_SHIFT) & LEVEL_MASK);
|
||||
}
|
||||
|
||||
public static boolean isTransparent(int verticalData)
|
||||
{
|
||||
return ((verticalData >>> TRANSPARENCY_SHIFT) & TRANSPARENCY_MASK) == 1;
|
||||
}
|
||||
|
||||
public static boolean isBottom(int verticalData)
|
||||
{
|
||||
return ((verticalData >>> BOTTOM_TYPE_SHIFT) & BOTTOM_TYPE_MASK) == 1;
|
||||
}
|
||||
|
||||
public static boolean doesItExist(int verticalData)
|
||||
{
|
||||
return (((verticalData >>> EMPTY_LOD_SHIFT) & EMPTY_LOD_MASK) == 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user