]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/client/ClientProxy.java
Add logic to load structures from save files
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / ClientProxy.java
index 40396f17f76b901b6d596b149f9f54ec08be99cc..8d527ae39faf8da42a8607ef121386df98f53515 100644 (file)
@@ -1,6 +1,7 @@
 package com.irtimaled.bbor.client;
 
 import com.irtimaled.bbor.client.events.*;
+import com.irtimaled.bbor.client.gui.LoadSavesScreen;
 import com.irtimaled.bbor.client.gui.SettingsScreen;
 import com.irtimaled.bbor.client.keyboard.Key;
 import com.irtimaled.bbor.client.keyboard.KeyListener;
@@ -13,42 +14,44 @@ import com.irtimaled.bbor.config.ConfigManager;
 
 public class ClientProxy extends CommonProxy {
     static {
-        Key mainKey = KeyListener.register("Toggle Active", "key.keyboard.b")
+        Key mainKey = KeyListener.register("bbor.key.toggleActive", "key.keyboard.b")
                 .onKeyPressHandler(ClientRenderer::toggleActive);
         mainKey.register("key.keyboard.g")
                 .onKeyPressHandler(SettingsScreen::show);
         mainKey.register("key.keyboard.o")
                 .onKeyPressHandler(() -> ConfigManager.Toggle(ConfigManager.outerBoxesOnly));
+        mainKey.register("key.keyboard.l")
+                .onKeyPressHandler(LoadSavesScreen::show);
     }
 
-    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);
+        EventBus.subscribe(SaveLoaded.class, e -> clear());
 
-        renderer = new ClientRenderer(this::getCache)
-                .registerProvider(new SlimeChunkProvider())
-                .registerProvider(new WorldSpawnProvider());
+        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;
+        clear();
+    }
+
+    private void clear() {
         SlimeChunkProvider.clear();
         WorldSpawnProvider.clear();
+        SpawningSphereProvider.clear();
+        CustomBeaconProvider.clear();
+        CustomBoxProvider.clear();
+        BiomeBorderProvider.clear();
         VillageColorCache.clear();
         clearCaches();
     }
@@ -74,7 +77,7 @@ public class ClientProxy extends CommonProxy {
     }
 
     @Override
-    public void setSeed(long seed) {
+    protected void setSeed(long seed) {
         super.setSeed(seed);
         SlimeChunkProvider.setSeed(seed);
     }
@@ -82,6 +85,6 @@ public class ClientProxy extends CommonProxy {
     @Override
     protected void setWorldSpawn(int spawnX, int spawnZ) {
         super.setWorldSpawn(spawnX, spawnZ);
-        WorldSpawnProvider.setWorldSpan(spawnX, spawnZ);
+        WorldSpawnProvider.setWorldSpawn(spawnX, spawnZ);
     }
 }