Add Minecraft coordinate boundary mapper

This commit is contained in:
George
2026-06-07 14:04:34 +01:00
parent 7045df9a21
commit cd5ffea24d
2 changed files with 58 additions and 0 deletions
@@ -0,0 +1,33 @@
package com.livingworld.integration.minecraft;
import com.livingworld.regions.RegionCoordinate;
/**
* Converts platform coordinate values into Living World coordinates.
*/
public final class MinecraftCoordinateMapper {
public RegionCoordinate fromBlockPos(
String dimensionId,
int blockX,
int blockZ,
int regionSizeChunks) {
return RegionCoordinate.fromBlock(
dimensionId,
blockX,
blockZ,
regionSizeChunks);
}
public RegionCoordinate fromChunkPos(
String dimensionId,
int chunkX,
int chunkZ,
int regionSizeChunks) {
return RegionCoordinate.fromChunk(
dimensionId,
chunkX,
chunkZ,
regionSizeChunks);
}
}
@@ -0,0 +1,25 @@
package com.livingworld.integration.minecraft;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.livingworld.regions.RegionCoordinate;
import org.junit.jupiter.api.Test;
class MinecraftCoordinateMapperTest {
private final MinecraftCoordinateMapper mapper = new MinecraftCoordinateMapper();
@Test
void mapsBlockCoordinatesThroughRegionCoordinate() {
assertEquals(
new RegionCoordinate("minecraft:overworld", -2, 1),
mapper.fromBlockPos("minecraft:overworld", -129, 128, 8));
}
@Test
void mapsChunkCoordinatesThroughRegionCoordinate() {
assertEquals(
new RegionCoordinate("minecraft:the_nether", -1, 1),
mapper.fromChunkPos("minecraft:the_nether", -1, 8, 8));
}
}