]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java
d3ac71cb022992e7375e8527ba9479aeb444ed06
[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.Player;
4 import com.irtimaled.bbor.client.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 AbstractRenderer<BoundingBoxMobSpawner> {
12     @Override
13     public void render(BoundingBoxMobSpawner boundingBox) {
14         Coords coords = boundingBox.getCoords();
15         Color color = boundingBox.getColor();
16         OffsetBox bb = ConfigManager.renderMobSpawnerSpawnArea.get() ?
17                 new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords()) :
18                 new OffsetBox(coords, coords);
19         renderCuboid(bb, color);
20
21         if (!ConfigManager.renderMobSpawnerActivationLines.get()) return;
22
23         renderActivationLine(new OffsetPoint(coords).offset(0.5, 0.5, 0.5));
24     }
25
26     private void renderActivationLine(OffsetPoint centerPoint) {
27         OffsetPoint playerPos = new OffsetPoint(Player.getX(), Player.getY(), Player.getZ());
28         double distance = centerPoint.getDistance(playerPos);
29         if (distance <= 20) {
30             Color color = distance > 18 ? Color.RED : distance > 16 ? Colors.DARK_ORANGE : Color.GREEN;
31
32             OffsetPoint playerPoint = playerPos.offset(0, 0.1, 0);
33             renderLine(centerPoint, playerPoint, color);
34         }
35     }
36 }