package com.irtimaled.bbor.client.renderers;
-import com.irtimaled.bbor.client.PlayerData;
-import com.irtimaled.bbor.common.models.BoundingBoxMobSpawner;
+import com.irtimaled.bbor.client.Player;
+import com.irtimaled.bbor.client.config.ConfigManager;
+import com.irtimaled.bbor.client.models.BoundingBoxMobSpawner;
import com.irtimaled.bbor.common.models.Colors;
-import com.irtimaled.bbor.config.ConfigManager;
-import net.minecraft.util.math.AxisAlignedBB;
-import net.minecraft.util.math.BlockPos;
+import com.irtimaled.bbor.common.models.Coords;
import java.awt.*;
-public class MobSpawnerRenderer extends Renderer<BoundingBoxMobSpawner> {
+public class MobSpawnerRenderer extends AbstractRenderer<BoundingBoxMobSpawner> {
@Override
public void render(BoundingBoxMobSpawner boundingBox) {
- BlockPos center = boundingBox.getCenter();
+ Coords coords = boundingBox.getCoords();
Color color = boundingBox.getColor();
- OffsetPoint centerPoint = new OffsetPoint(center)
- .add(0.5, 0.5, 0.5);
- double radius = boundingBox.getRadius();
- if (ConfigManager.renderMobSpawnerSpawnArea.getBoolean()) {
- renderBoundingBox(boundingBox);
- } else {
- renderCuboid(new AxisAlignedBB(center, center).expand(1, 1, 1), color, fill());
+
+ renderCuboid(new OffsetBox(coords, coords), color);
+
+ if (ConfigManager.renderMobSpawnerActivationLines.get()) {
+ renderActivationLine(new OffsetPoint(coords).offset(0.5, 0.5, 0.5));
}
- if (!ConfigManager.renderMobSpawnerActivationLines.getBoolean()) return;
+ if (ConfigManager.renderMobSpawnerSpawnArea.get()) {
+ OffsetBox bb = new OffsetBox(boundingBox.getMinCoords(), boundingBox.getMaxCoords());
+ renderCuboid(bb, color);
+ }
+ }
- OffsetPoint playerPos = new OffsetPoint(PlayerData.getX(), PlayerData.getY(), PlayerData.getZ());
+ private void renderActivationLine(OffsetPoint centerPoint) {
+ OffsetPoint playerPos = new OffsetPoint(Player.getPoint());
double distance = centerPoint.getDistance(playerPos);
- if (distance <= (radius * 1.25)) {
- if (distance > radius) {
- color = Colors.DARK_ORANGE;
- }
- if (distance > radius * 1.125) {
- color = Color.RED;
- }
-
- renderLine(centerPoint, playerPos.add(0, 0.1, 0), color);
+ if (distance <= 20) {
+ Color color = distance > 18 ? Color.RED : distance > 16 ? Colors.DARK_ORANGE : Color.GREEN;
+
+ OffsetPoint playerPoint = playerPos.offset(0, 0.1, 0);
+ renderLine(centerPoint, playerPoint, color);
}
}
}