.onKeyPressHandler(() -> ConfigManager.Toggle(ConfigManager.outerBoxesOnly));
}
- private ClientRenderer renderer;
-
@Override
public void init() {
super.init();
- EventBus.subscribe(Render.class, this::render);
EventBus.subscribe(DisconnectedFromRemoteServer.class, e -> disconnectedFromServer());
EventBus.subscribe(InitializeClientReceived.class, this::onInitializeClientReceived);
EventBus.subscribe(AddBoundingBoxReceived.class, this::addBoundingBox);
EventBus.subscribe(RemoveBoundingBoxReceived.class, this::onRemoveBoundingBoxReceived);
EventBus.subscribe(UpdateWorldSpawnReceived.class, this::onUpdateWorldSpawnReceived);
- renderer = new ClientRenderer(this::getCache)
- .registerProvider(new SlimeChunkProvider())
- .registerProvider(new WorldSpawnProvider())
- .registerProvider(new SpawningSphereProvider())
- .registerProvider(new BeaconProvider())
- .registerProvider(new CustomBoxProvider())
- .registerProvider(new BiomeBorderProvider())
- .registerProvider(new CacheProvider(this::getCache));
+ ClientRenderer.registerProvider(new CacheProvider(this::getCache));
KeyListener.init();
}
- private void render(Render event) {
- renderer.render(event.getDimensionId());
- }
-
private void disconnectedFromServer() {
ClientRenderer.deactivate();
if (ConfigManager.keepCacheBetweenSessions.get()) return;
package com.irtimaled.bbor.client;
import com.irtimaled.bbor.client.interop.ClientInterop;
-import com.irtimaled.bbor.client.providers.IBoundingBoxProvider;
+import com.irtimaled.bbor.client.providers.*;
import com.irtimaled.bbor.client.renderers.*;
-import com.irtimaled.bbor.common.BoundingBoxCache;
import com.irtimaled.bbor.common.MathHelper;
import com.irtimaled.bbor.common.models.*;
import com.irtimaled.bbor.config.ConfigManager;
private static final Map<Class<? extends AbstractBoundingBox>, AbstractRenderer> boundingBoxRendererMap = new HashMap<>();
private static boolean active;
- private Set<IBoundingBoxProvider> providers = new HashSet<>();
+ private static Set<IBoundingBoxProvider> providers = new HashSet<>();
public static boolean getActive() {
return active;
active = false;
}
- private final GetCache getCache;
-
- ClientRenderer(GetCache getCache) {
- this.getCache = getCache;
+ static {
registerRenderer(BoundingBoxVillage.class, new VillageRenderer());
registerRenderer(BoundingBoxSlimeChunk.class, new SlimeChunkRenderer());
registerRenderer(BoundingBoxWorldSpawn.class, new WorldSpawnRenderer());
registerRenderer(BoundingBoxSpawningSphere.class, new SpawningSphereRenderer());
registerRenderer(BoundingBoxBeacon.class, new CuboidRenderer());
registerRenderer(BoundingBoxBiomeBorder.class, new BiomeBorderRenderer());
+
+ registerProvider(new SlimeChunkProvider());
+ registerProvider(new WorldSpawnProvider());
+ registerProvider(new SpawningSphereProvider());
+ registerProvider(new BeaconProvider());
+ registerProvider(new CustomBoxProvider());
+ registerProvider(new BiomeBorderProvider());
}
- public <T extends AbstractBoundingBox> ClientRenderer registerProvider(IBoundingBoxProvider<T> provider) {
- this.providers.add(provider);
- return this;
+ public static <T extends AbstractBoundingBox> void registerProvider(IBoundingBoxProvider<T> provider) {
+ providers.add(provider);
}
- public <T extends AbstractBoundingBox> ClientRenderer registerRenderer(Class<? extends T> type, AbstractRenderer<T> renderer) {
+ public static <T extends AbstractBoundingBox> void registerRenderer(Class<? extends T> type, AbstractRenderer<T> renderer) {
boundingBoxRendererMap.put(type, renderer);
- return this;
}
- private boolean isWithinRenderDistance(AbstractBoundingBox boundingBox) {
+ private static boolean isWithinRenderDistance(AbstractBoundingBox boundingBox) {
int renderDistanceBlocks = ClientInterop.getRenderDistanceChunks() * CHUNK_SIZE;
int minX = MathHelper.floor(PlayerCoords.getX() - renderDistanceBlocks);
int maxX = MathHelper.floor(PlayerCoords.getX() + renderDistanceBlocks);
return boundingBox.intersectsBounds(minX, minZ, maxX, maxZ);
}
- public void render(int dimensionId) {
+ public static void render(int dimensionId) {
if(!active) return;
Set<AbstractBoundingBox> boundingBoxes = getBoundingBoxes(dimensionId);
GL11.glEnable(GL11.GL_TEXTURE_2D);
}
- private Set<AbstractBoundingBox> getBoundingBoxes(int dimensionId) {
+ private static Set<AbstractBoundingBox> getBoundingBoxes(int dimensionId) {
Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
for(IBoundingBoxProvider<?> provider: providers) {
for (AbstractBoundingBox boundingBox : provider.get(dimensionId)) {
package com.irtimaled.bbor.client.interop;
+import com.irtimaled.bbor.client.ClientRenderer;
import com.irtimaled.bbor.client.PlayerCoords;
import com.irtimaled.bbor.client.commands.BeaconCommand;
import com.irtimaled.bbor.client.commands.BoxCommand;
import com.irtimaled.bbor.client.commands.SeedCommand;
import com.irtimaled.bbor.client.commands.SpawningSphereCommand;
import com.irtimaled.bbor.client.events.DisconnectedFromRemoteServer;
-import com.irtimaled.bbor.client.events.Render;
import com.irtimaled.bbor.client.events.UpdateWorldSpawnReceived;
import com.irtimaled.bbor.client.providers.SlimeChunkProvider;
import com.irtimaled.bbor.common.EventBus;
public static void render(float partialTicks, EntityPlayerSP player) {
PlayerCoords.setPlayerPosition(partialTicks, player);
- EventBus.publish(new Render(player.dimension.getId()));
+ ClientRenderer.render(player.dimension.getId());
}
public static boolean interceptChatMessage(String message) {