1 package com.irtimaled.bbor.client.renderers;
3 import com.irtimaled.bbor.client.Player;
4 import com.irtimaled.bbor.client.config.ConfigManager;
5 import com.irtimaled.bbor.client.interop.SpawningSphereHelper;
6 import com.irtimaled.bbor.client.models.BoundingBoxSpawningSphere;
7 import com.irtimaled.bbor.common.MathHelper;
8 import com.irtimaled.bbor.common.models.Point;
9 import net.minecraft.client.resources.I18n;
13 public class SpawningSphereRenderer extends AbstractRenderer<BoundingBoxSpawningSphere> {
15 public void render(BoundingBoxSpawningSphere boundingBox) {
16 Point point = boundingBox.getPoint();
17 OffsetPoint sphereCenter = new OffsetPoint(point);
19 OffsetBox offsetBox = new OffsetBox(sphereCenter, sphereCenter).grow(0.5, 0, 0.5);
20 renderCuboid(offsetBox, Color.GREEN);
22 Integer spawnableSpacesCount = boundingBox.getSpawnableSpacesCount();
23 if (spawnableSpacesCount != null) {
24 renderText(sphereCenter, I18n.format("bbor.renderer.spawningSphere.spawnable"),
25 spawnableSpacesCount == 0 ?
26 I18n.format("bbor.renderer.spawningSphere.none") :
27 String.format("%,d", spawnableSpacesCount));
30 renderSphere(sphereCenter, BoundingBoxSpawningSphere.SAFE_RADIUS, Color.GREEN, 5, 5);
31 renderSphere(sphereCenter, BoundingBoxSpawningSphere.SPAWN_RADIUS, Color.RED, 5, 5);
33 if(ConfigManager.renderAFKSpawnableBlocks.get()) {
34 renderSpawnableSpaces(point);
38 private void renderSpawnableSpaces(Point center) {
39 Integer renderDistance = ConfigManager.afkSpawnableBlocksRenderDistance.get();
40 int width = MathHelper.floor(Math.pow(2, 2 + renderDistance));
41 int height = MathHelper.floor(Math.pow(2, renderDistance));
43 SpawningSphereHelper.findSpawnableSpaces(center, Player.getCoords(), width, height,
45 OffsetBox offsetBox = new OffsetBox(x, y, z, x + 1, y, z + 1);
46 renderCuboid(offsetBox, Color.RED);