]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/SpawningSphereRenderer.java
Prep for new rendering
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / SpawningSphereRenderer.java
1 package com.irtimaled.bbor.client.renderers;
2
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
9 import java.awt.*;
10
11 public class SpawningSphereRenderer extends AbstractRenderer<BoundingBoxSpawningSphere> {
12     @Override
13     public void render(BoundingBoxSpawningSphere boundingBox) {
14         OffsetPoint sphereCenter = new OffsetPoint(boundingBox.getCenter())
15                 .offset(boundingBox.getCenterOffsetX(), boundingBox.getCenterOffsetY(), boundingBox.getCenterOffsetZ());
16
17         OffsetBox offsetBox = new OffsetBox(sphereCenter, sphereCenter).grow(0.5, 0, 0.5);
18         renderCuboid(offsetBox, Color.GREEN);
19
20         Integer spawnableSpacesCount = boundingBox.getSpawnableSpacesCount();
21         if (spawnableSpacesCount != null) {
22             renderText(sphereCenter, "Spawnable", spawnableSpacesCount == 0 ? "None" : String.format("%,d", (int) spawnableSpacesCount));
23         }
24
25         renderSphere(sphereCenter, BoundingBoxSpawningSphere.SAFE_RADIUS, Color.GREEN, 5, 5);
26         renderSphere(sphereCenter, BoundingBoxSpawningSphere.SPAWN_RADIUS, Color.RED, 5, 5);
27
28         if(ConfigManager.renderAFKSpawnableBlocks.get()) {
29             renderSpawnableSpaces(sphereCenter);
30         }
31     }
32
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));
37
38         SpawningSphereHelper.findSpawnableSpaces(center.getPoint(), Player.getCoords(), width, height,
39                 (x, y, z) -> {
40                     OffsetBox offsetBox = new OffsetBox(x, y, z, x + 1, y, z + 1);
41                     renderCuboid(offsetBox, Color.RED);
42                     return false;
43                 });
44     }
45 }