]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/VillageRenderer.java
Move config to client module
[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 org.lwjgl.opengl.GL11;
7
8 import java.awt.*;
9
10 public class VillageRenderer extends AbstractRenderer<BoundingBoxVillage> {
11     @Override
12     public void render(BoundingBoxVillage boundingBox) {
13         renderBoundingBoxVillageAsSphere(boundingBox);
14         if (ConfigManager.drawIronGolemSpawnArea.get() &&
15                 boundingBox.getSpawnsIronGolems()) {
16             renderIronGolemSpawnArea(boundingBox);
17         }
18         if (ConfigManager.drawVillageDoors.get()) {
19             renderVillageDoors(boundingBox);
20         }
21     }
22
23     private void renderIronGolemSpawnArea(BoundingBoxVillage boundingBox) {
24         OffsetPoint offsetCenter = new OffsetPoint(boundingBox.getCenter())
25                 .offset(boundingBox.getCenterOffsetX(), 0.0, boundingBox.getCenterOffsetZ());
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.getCenter())
34                 .offset(boundingBox.getCenterOffsetX(), 0.0, boundingBox.getCenterOffsetZ());
35         Color color = boundingBox.getColor();
36
37         GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_LINE);
38         Renderer renderer = Renderer.startLines()
39                 .setColor(color);
40         for (Coords door : boundingBox.getDoors()) {
41             OffsetPoint point = new OffsetPoint(door).offset(0.5, 0, 0.5);
42
43             renderer.addPoint(point)
44                     .addPoint(center);
45         }
46         renderer.render();
47     }
48
49     private void renderBoundingBoxVillageAsSphere(BoundingBoxVillage boundingBox) {
50         OffsetPoint center = new OffsetPoint(boundingBox.getCenter())
51                 .offset(boundingBox.getCenterOffsetX(), 0.0, boundingBox.getCenterOffsetZ());
52         int radius = boundingBox.getRadius();
53         Color color = boundingBox.getColor();
54         int density = ConfigManager.villageSphereDensity.get();
55         int dotSize = ConfigManager.villageSphereDotSize.get();
56
57         renderSphere(center, radius, color, density, dotSize);
58     }
59 }