1 package com.irtimaled.bbor.client.renderers;
3 import com.irtimaled.bbor.client.Player;
4 import com.irtimaled.bbor.client.interop.SpawningSphereHelper;
5 import com.irtimaled.bbor.common.MathHelper;
6 import com.irtimaled.bbor.common.models.BoundingBoxSpawningSphere;
7 import com.irtimaled.bbor.config.ConfigManager;
11 public class SpawningSphereRenderer extends AbstractRenderer<BoundingBoxSpawningSphere> {
13 public void render(BoundingBoxSpawningSphere boundingBox) {
14 OffsetPoint sphereCenter = new OffsetPoint(boundingBox.getCenter())
15 .offset(boundingBox.getCenterOffsetX(), boundingBox.getCenterOffsetY(), boundingBox.getCenterOffsetZ());
17 OffsetBox offsetBox = new OffsetBox(sphereCenter, sphereCenter).grow(0.5, 0, 0.5);
18 renderCuboid(offsetBox, Color.GREEN);
20 Integer spawnableSpacesCount = boundingBox.getSpawnableSpacesCount();
21 if (spawnableSpacesCount != null) {
22 renderText(sphereCenter, "Spawnable", spawnableSpacesCount == 0 ? "None" : String.format("%,d", (int) spawnableSpacesCount));
25 renderSphere(sphereCenter, BoundingBoxSpawningSphere.SAFE_RADIUS, Color.GREEN, 5, 5);
26 renderSphere(sphereCenter, BoundingBoxSpawningSphere.SPAWN_RADIUS, Color.RED, 5, 5);
28 if(ConfigManager.renderAFKSpawnableBlocks.get()) {
29 renderSpawnableSpaces(sphereCenter);
33 private void renderSpawnableSpaces(OffsetPoint center) {
34 Integer renderDistance = ConfigManager.afkSpawnableBlocksRenderDistance.get();
35 int width = MathHelper.floor(Math.pow(2, 2 + renderDistance));
36 int height = MathHelper.floor(Math.pow(2, renderDistance));
38 SpawningSphereHelper.findSpawnableSpaces(center.getPoint(), Player.getCoords(), width, height,
40 OffsetBox offsetBox = new OffsetBox(x, y, z, x + 1, y, z + 1);
41 renderCuboid(offsetBox, Color.RED);