]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java
Fix server-only issues
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / VillageRenderer.java
1 package com.irtimaled.bbor.client.renderers;
2
3 import com.irtimaled.bbor.client.config.ConfigManager;
4 import com.irtimaled.bbor.common.models.BoundingBoxVillage;
5 import com.irtimaled.bbor.common.models.Coords;
6 import com.irtimaled.bbor.common.models.Point;
7 import org.lwjgl.opengl.GL11;
8
9 import java.awt.*;
10
11 public class VillageRenderer extends AbstractRenderer<BoundingBoxVillage> {
12     @Override
13     public void render(BoundingBoxVillage boundingBox) {
14         renderBoundingBoxVillageAsSphere(boundingBox);
15         if (ConfigManager.drawIronGolemSpawnArea.get() &&
16                 boundingBox.getSpawnsIronGolems()) {
17             renderIronGolemSpawnArea(boundingBox);
18         }
19         if (ConfigManager.drawVillageDoors.get()) {
20             renderVillageDoors(boundingBox);
21         }
22     }
23
24     private void renderIronGolemSpawnArea(BoundingBoxVillage boundingBox) {
25         OffsetPoint offsetCenter = new OffsetPoint(boundingBox.getPoint());
26         OffsetBox bb = new OffsetBox(offsetCenter, offsetCenter)
27                 .grow(8, 3, 8);
28
29         renderOutlinedCuboid(bb.nudge(), boundingBox.getColor());
30     }
31
32     private void renderVillageDoors(BoundingBoxVillage boundingBox) {
33         OffsetPoint center = new OffsetPoint(boundingBox.getPoint());
34         Color color = boundingBox.getColor();
35
36         GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
37         Renderer renderer = Renderer.startLines()
38                 .setColor(color);
39         for (Coords door : boundingBox.getDoors()) {
40             OffsetPoint point = new OffsetPoint(door).offset(0.5, 0, 0.5);
41
42             renderer.addPoint(point)
43                     .addPoint(center);
44         }
45         renderer.render();
46     }
47
48     private void renderBoundingBoxVillageAsSphere(BoundingBoxVillage boundingBox) {
49         Point point = boundingBox.getPoint();
50         double radius = boundingBox.getRadius();
51         Color color = boundingBox.getColor();
52         int density = ConfigManager.villageSphereDensity.get();
53         int dotSize = ConfigManager.villageSphereDotSize.get();
54
55         renderSphere(point, radius, color, density, dotSize);
56     }
57 }