1 package com.irtimaled.bbor.client.renderers;
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;
12 public class MobSpawnerRenderer extends AbstractRenderer<BoundingBoxMobSpawner> {
14 public void render(BoundingBoxMobSpawner boundingBox) {
15 Coords coords = boundingBox.getCoords();
16 Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
18 renderCuboid(new OffsetBox(coords, coords), color);
20 if (ConfigManager.renderMobSpawnerActivationLines.get()) {
21 renderActivationLine(new OffsetPoint(coords).offset(0.5, 0.5, 0.5));
24 if (ConfigManager.renderMobSpawnerSpawnArea.get()) {
25 OffsetBox bb = new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords());
26 renderCuboid(bb, color);
30 private void renderActivationLine(OffsetPoint centerPoint) {
31 OffsetPoint playerPos = new OffsetPoint(Player.getPoint());
32 double distance = centerPoint.getDistance(playerPos);
35 OffsetPoint playerPoint = playerPos.offset(0, 0.1, 0);
36 renderLine(centerPoint, playerPoint, getColor(distance));
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);