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;
9 import net.minecraft.client.util.math.MatrixStack;
13 public class MobSpawnerRenderer extends AbstractRenderer<BoundingBoxMobSpawner> {
15 public void render(MatrixStack matrixStack, BoundingBoxMobSpawner boundingBox) {
16 Coords coords = boundingBox.getCoords();
17 Color color = BoundingBoxTypeHelper.getColor(boundingBox.getType());
19 renderCuboid(matrixStack, new OffsetBox(coords, coords), color, false, 30);
21 if (ConfigManager.renderMobSpawnerActivationLines.get()) {
22 renderActivationLine(matrixStack, new OffsetPoint(coords).offset(0.5, 0.5, 0.5));
25 if (ConfigManager.renderMobSpawnerSpawnArea.get()) {
26 OffsetBox bb = new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords());
27 renderCuboid(matrixStack, bb, color, false, 30);
31 private void renderActivationLine(MatrixStack matrixStack, OffsetPoint centerPoint) {
32 OffsetPoint playerPos = new OffsetPoint(Player.getPoint());
33 double distance = centerPoint.getDistance(playerPos);
36 OffsetPoint playerPoint = playerPos.offset(0, 0.1, 0);
37 renderLine(matrixStack, centerPoint, playerPoint, getColor(distance));
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);