package com.irtimaled.bbor.client;
+import com.irtimaled.bbor.client.config.ConfigManager;
import com.irtimaled.bbor.client.interop.ClientInterop;
+import com.irtimaled.bbor.client.models.*;
import com.irtimaled.bbor.client.providers.*;
import com.irtimaled.bbor.client.renderers.*;
import com.irtimaled.bbor.common.MathHelper;
-import com.irtimaled.bbor.common.models.*;
-import com.irtimaled.bbor.config.ConfigManager;
+import com.irtimaled.bbor.common.models.AbstractBoundingBox;
+import com.irtimaled.bbor.common.models.BoundingBoxCuboid;
+import com.irtimaled.bbor.common.models.BoundingBoxVillage;
import org.lwjgl.opengl.GL11;
import java.util.HashMap;
registerRenderer(BoundingBoxCuboid.class, new CuboidRenderer());
registerRenderer(BoundingBoxMobSpawner.class, new MobSpawnerRenderer());
registerRenderer(BoundingBoxSpawningSphere.class, new SpawningSphereRenderer());
- registerRenderer(BoundingBoxBeacon.class, new CuboidRenderer());
+ registerRenderer(BoundingBoxBeacon.class, new BeaconRenderer());
registerRenderer(BoundingBoxBiomeBorder.class, new BiomeBorderRenderer());
+ registerRenderer(BoundingBoxConduit.class, new ConduitRenderer());
registerProvider(new SlimeChunkProvider());
registerProvider(new WorldSpawnProvider());
registerProvider(new SpawningSphereProvider());
registerProvider(new BeaconProvider());
registerProvider(new CustomBoxProvider());
+ registerProvider(new CustomBeaconProvider());
registerProvider(new BiomeBorderProvider());
registerProvider(new MobSpawnerProvider());
+ registerProvider(new ConduitProvider());
}
public static <T extends AbstractBoundingBox> void registerProvider(IBoundingBoxProvider<T> provider) {
}
public static void render(int dimensionId) {
- if(!active) return;
+ if (!active) return;
Set<AbstractBoundingBox> boundingBoxes = getBoundingBoxes(dimensionId);
}
for (AbstractBoundingBox key : boundingBoxes) {
- if (!key.shouldRender() || !isWithinRenderDistance(key)) continue;
-
AbstractRenderer renderer = boundingBoxRendererMap.get(key.getClass());
if (renderer == null) continue;
private static Set<AbstractBoundingBox> getBoundingBoxes(int dimensionId) {
Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
- for(IBoundingBoxProvider<?> provider: providers) {
- for (AbstractBoundingBox boundingBox : provider.get(dimensionId)) {
- boundingBoxes.add(boundingBox);
+ for (IBoundingBoxProvider<?> provider : providers) {
+ if (provider.canProvide(dimensionId)) {
+ for (AbstractBoundingBox boundingBox : provider.get(dimensionId)) {
+ if (isWithinRenderDistance(boundingBox)) {
+ boundingBoxes.add(boundingBox);
+ }
+ }
}
}
return boundingBoxes;