]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/SpawningSphereRenderer.java
8ff4e6a3acc217ef8f686196a1ee0dccb4b74cb0
[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.config.ConfigManager;
5 import com.irtimaled.bbor.client.models.BoundingBoxSpawningSphere;
6 import com.irtimaled.bbor.common.models.Point;
7 import net.minecraft.client.resources.I18n;
8
9 import java.awt.*;
10
11 public class SpawningSphereRenderer extends AbstractRenderer<BoundingBoxSpawningSphere> {
12     @Override
13     public void render(BoundingBoxSpawningSphere boundingBox) {
14         Point point = boundingBox.getPoint();
15         OffsetPoint sphereCenter = new OffsetPoint(point);
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, I18n.format("bbor.renderer.spawningSphere.spawnable"),
23                     spawnableSpacesCount == 0 ?
24                             I18n.format("bbor.renderer.spawningSphere.none") :
25                             String.format("%,d", spawnableSpacesCount));
26         }
27
28         renderSphere(point, BoundingBoxSpawningSphere.SAFE_RADIUS, Color.GREEN, 5, 5);
29         renderSphere(point, BoundingBoxSpawningSphere.SPAWN_RADIUS, Color.RED, 5, 5);
30
31         if (ConfigManager.renderAFKSpawnableBlocks.get() && boundingBox.isWithinSphere(Player.getPoint())) {
32             renderSpawnableSpaces(boundingBox);
33         }
34     }
35
36     private void renderSpawnableSpaces(BoundingBoxSpawningSphere boundingBox) {
37         boundingBox.getBlocks().forEach(c -> {
38             int x = c.getX();
39             int y = c.getY();
40             int z = c.getZ();
41             OffsetBox offsetBox = new OffsetBox(x, y, z, x + 1, y, z + 1);
42             renderCuboid(offsetBox, boundingBox.getColor());
43         });
44     }
45 }