|
4 | 4 | import net.minecraft.core.BlockPos; |
5 | 5 | import net.minecraft.core.QuartPos; |
6 | 6 | import net.minecraft.core.SectionPos; |
| 7 | +import net.minecraft.util.Mth; |
7 | 8 | import net.minecraft.world.level.ChunkPos; |
8 | 9 |
|
9 | 10 | public record RegionPos(int x, int z, int regionSizeChunks) { |
10 | 11 | public static RegionPos fromBlockPos(BlockPos blockPos, int regionSizeChunks) { |
11 | | - return new RegionPos(SectionPos.blockToSectionCoord(blockPos.getX()) / regionSizeChunks, SectionPos.blockToSectionCoord(blockPos.getZ()) / regionSizeChunks, regionSizeChunks); |
| 12 | + return new RegionPos(Mth.floorDiv(SectionPos.blockToSectionCoord(blockPos.getX()), regionSizeChunks), Mth.floorDiv(SectionPos.blockToSectionCoord(blockPos.getZ()), regionSizeChunks), regionSizeChunks); |
12 | 13 | } |
13 | 14 |
|
14 | 15 | public BlockPos toBlockPos() { |
15 | 16 | return new BlockPos(SectionPos.sectionToBlockCoord(this.x * this.regionSizeChunks), 0, SectionPos.sectionToBlockCoord(this.z * this.regionSizeChunks)); |
16 | 17 | } |
17 | 18 |
|
18 | 19 | public static RegionPos fromQuartPos(QuartPos2 quartPos, int regionSizeChunks) { |
19 | | - return new RegionPos(QuartPos.toSection(quartPos.x()) / regionSizeChunks, QuartPos.toSection(quartPos.z()) / regionSizeChunks, regionSizeChunks); |
| 20 | + return new RegionPos(Mth.floorDiv(QuartPos.toSection(quartPos.x()), regionSizeChunks), Mth.floorDiv(QuartPos.toSection(quartPos.z()), regionSizeChunks), regionSizeChunks); |
20 | 21 | } |
21 | 22 |
|
22 | 23 | public static RegionPos fromChunkPos(ChunkPos chunkPos, int regionSizeChunks) { |
23 | | - return new RegionPos(chunkPos.x / regionSizeChunks, chunkPos.z / regionSizeChunks, regionSizeChunks); |
| 24 | + return new RegionPos(Mth.floorDiv(chunkPos.x, regionSizeChunks), Mth.floorDiv(chunkPos.z, regionSizeChunks), regionSizeChunks); |
24 | 25 | } |
25 | 26 |
|
26 | 27 | public ChunkPos toChunkPos() { |
27 | 28 | return new ChunkPos(this.x * this.regionSizeChunks, this.z * this.regionSizeChunks); |
28 | 29 | } |
29 | 30 |
|
30 | 31 | public static RegionPos fromTilePos(TilePos tilePos, int regionSize) { |
31 | | - return new RegionPos(TilePos.TILE_SIZE_CHUNKS * tilePos.x() / regionSize, TilePos.TILE_SIZE_CHUNKS * tilePos.z() / regionSize, regionSize); |
| 32 | + return new RegionPos(Mth.floorDiv(TilePos.TILE_SIZE_CHUNKS * tilePos.x(), regionSize), Mth.floorDiv(TilePos.TILE_SIZE_CHUNKS * tilePos.z(), regionSize), regionSize); |
32 | 33 | } |
33 | 34 |
|
34 | 35 | public RegionPos add(RegionPos regionPos) { |
|
0 commit comments