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