]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/MobSpawnerRenderer.java
9b345805a218c993226fb62458c857634d8da4e4
[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.config.BoundingBoxTypeHelper;
5 import com.irtimaled.bbor.client.config.ColorHelper;
6 import com.irtimaled.bbor.client.config.ConfigManager;
7 import com.irtimaled.bbor.client.models.BoundingBoxMobSpawner;
8 import com.irtimaled.bbor.common.models.Coords;
9
10 import java.awt.*;
11
12 public class MobSpawnerRenderer extends AbstractRenderer<BoundingBoxMobSpawner> {
13     @Override
14     public void render(BoundingBoxMobSpawner boundingBox) {
15         Coords coords = boundingBox.getCoords();
16         Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
17
18         renderCuboid(new OffsetBox(coords, coords), color);
19
20         if (ConfigManager.renderMobSpawnerActivationLines.get()) {
21             renderActivationLine(new OffsetPoint(coords).offset(0.5, 0.5, 0.5));
22         }
23
24         if (ConfigManager.renderMobSpawnerSpawnArea.get()) {
25             OffsetBox bb = new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords());
26             renderCuboid(bb, color);
27         }
28     }
29
30     private void renderActivationLine(OffsetPoint centerPoint) {
31         OffsetPoint playerPos = new OffsetPoint(Player.getPoint());
32         double distance = centerPoint.getDistance(playerPos);
33         if (distance <= 20) {
34
35             OffsetPoint playerPoint = playerPos.offset(0, 0.1, 0);
36             renderLine(centerPoint, playerPoint, getColor(distance));
37         }
38     }
39
40     private Color getColor(double distance) {
41         if (distance > 18) return ColorHelper.getColor(ConfigManager.colorMobSpawnersLineFarAway);
42         if (distance > 16) return ColorHelper.getColor(ConfigManager.colorMobSpawnersLineNearby);
43         return ColorHelper.getColor(ConfigManager.colorMobSpawnersLineActive);
44     }
45 }