]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java
Stop using AxisAlignedBB, ChunkPos & MathHelper
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / MobSpawnerRenderer.java
1 package com.irtimaled.bbor.client.renderers;
2
3 import com.irtimaled.bbor.client.PlayerCoords;
4 import com.irtimaled.bbor.common.models.BoundingBoxMobSpawner;
5 import com.irtimaled.bbor.common.models.Colors;
6 import com.irtimaled.bbor.common.models.Coords;
7 import com.irtimaled.bbor.config.ConfigManager;
8
9 import java.awt.*;
10
11 public class MobSpawnerRenderer extends Renderer<BoundingBoxMobSpawner> {
12     @Override
13     public void render(BoundingBoxMobSpawner boundingBox) {
14         Coords coords = boundingBox.getCoords();
15         Color color = boundingBox.getColor();
16         if (ConfigManager.renderMobSpawnerSpawnArea.get()) {
17             renderBoundingBox(boundingBox);
18         } else {
19             renderCuboid(new OffsetBox(coords, coords), color, fill());
20         }
21
22         if (!ConfigManager.renderMobSpawnerActivationLines.get()) return;
23
24         renderActivationLine(new OffsetPoint(coords).offset(0.5, 0.5, 0.5));
25     }
26
27     private void renderActivationLine(OffsetPoint centerPoint) {
28         OffsetPoint playerPos = new OffsetPoint(PlayerCoords.getX(), PlayerCoords.getY(), PlayerCoords.getZ());
29         double distance = centerPoint.getDistance(playerPos);
30         if (distance <= 20) {
31             Color color = distance > 18 ? Color.RED : distance > 16 ? Colors.DARK_ORANGE : Color.GREEN;
32             renderLine(centerPoint, playerPos.offset(0, 0.1, 0), color);
33         }
34     }
35 }