import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
import com.irtimaled.bbor.client.models.BoundingBoxWorldSpawn;
import com.irtimaled.bbor.common.BoundingBoxType;
+import com.irtimaled.bbor.common.MathHelper;
import com.irtimaled.bbor.common.models.Coords;
import com.irtimaled.bbor.common.models.DimensionId;
public static void setWorldSpawn(int spawnX, int spawnZ) {
worldSpawn = getWorldSpawnBoundingBox(spawnX, spawnZ);
- spawnChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 12, BoundingBoxType.SpawnChunks);
- lazyChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 16, BoundingBoxType.LazySpawnChunks);
+ spawnChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 19, BoundingBoxType.SpawnChunks);
+ lazyChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 21, BoundingBoxType.LazySpawnChunks);
}
public void clearCache() {
}
private static BoundingBoxWorldSpawn buildSpawnChunksBoundingBox(int spawnX, int spawnZ, int size, BoundingBoxType type) {
- double midOffset = CHUNK_SIZE * (size / 2.0);
- double midX = Math.round((float) (spawnX / CHUNK_SIZE)) * CHUNK_SIZE;
- double midZ = Math.round((float) (spawnZ / CHUNK_SIZE)) * CHUNK_SIZE;
- Coords maxCoords = new Coords(midX + midOffset, 0, midZ + midOffset);
- if ((spawnX / CHUNK_SIZE) % 1.0D == 0.5D) {
- midX -= CHUNK_SIZE;
- }
- if ((spawnZ / CHUNK_SIZE) % 1.0D == 0.5D) {
- midZ -= CHUNK_SIZE;
- }
- Coords minCoords = new Coords(midX - midOffset, 0, midZ - midOffset);
+ int spawnChunkX = MathHelper.floor(spawnX / CHUNK_SIZE);
+ int spawnChunkZ = MathHelper.floor(spawnZ / CHUNK_SIZE);
+ int midOffset = ((size - 1) / 2);
+
+ int minX = spawnChunkX - midOffset;
+ int maxX = spawnChunkX + midOffset;
+ int minZ = spawnChunkZ - midOffset;
+ int maxZ = spawnChunkZ + midOffset;
+
+
+ Coords maxCoords = new Coords(minX * CHUNK_SIZE, 0, minZ * CHUNK_SIZE);
+ Coords minCoords = new Coords(16 + (maxX * CHUNK_SIZE), 0, 16 + (maxZ * CHUNK_SIZE));
return new BoundingBoxWorldSpawn(minCoords, maxCoords, type);
}