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;
8 import net.minecraft.client.resources.I18n;
12 public class SpawningSphereRenderer extends AbstractRenderer<BoundingBoxSpawningSphere> {
14 public void render(BoundingBoxSpawningSphere boundingBox) {
15 OffsetPoint sphereCenter = new OffsetPoint(boundingBox.getCenter())
16 .offset(boundingBox.getCenterOffsetX(), boundingBox.getCenterOffsetY(), boundingBox.getCenterOffsetZ());
18 OffsetBox offsetBox = new OffsetBox(sphereCenter, sphereCenter).grow(0.5, 0, 0.5);
19 renderCuboid(offsetBox, Color.GREEN);
21 Integer spawnableSpacesCount = boundingBox.getSpawnableSpacesCount();
22 if (spawnableSpacesCount != null) {
23 renderText(sphereCenter, I18n.format("bbor.renderer.spawningSphere.spawnable"),
24 spawnableSpacesCount == 0 ?
25 I18n.format("bbor.renderer.spawningSphere.none") :
26 String.format("%,d", spawnableSpacesCount));
29 renderSphere(sphereCenter, BoundingBoxSpawningSphere.SAFE_RADIUS, Color.GREEN, 5, 5);
30 renderSphere(sphereCenter, BoundingBoxSpawningSphere.SPAWN_RADIUS, Color.RED, 5, 5);
32 if(ConfigManager.renderAFKSpawnableBlocks.get()) {
33 renderSpawnableSpaces(sphereCenter);
37 private void renderSpawnableSpaces(OffsetPoint center) {
38 Integer renderDistance = ConfigManager.afkSpawnableBlocksRenderDistance.get();
39 int width = MathHelper.floor(Math.pow(2, 2 + renderDistance));
40 int height = MathHelper.floor(Math.pow(2, renderDistance));
42 SpawningSphereHelper.findSpawnableSpaces(center.getPoint(), Player.getCoords(), width, height,
44 OffsetBox offsetBox = new OffsetBox(x, y, z, x + 1, y, z + 1);
45 renderCuboid(offsetBox, Color.RED);