X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Firtimaled%2Fbbor%2Fclient%2FClientProxy.java;h=c09764cd08f55fd508af0df7857ccfb5abe04aea;hb=8b00bea443167b9e6e7c1a30b5c25994d301cfab;hp=c41da42758bc734dfa1bab45e9e9003b46f0fe35;hpb=a3dbe27a969d20c738a1aa720053ceffb38d243d;p=BoundingBoxOutlineReloaded.git diff --git a/src/main/java/com/irtimaled/bbor/client/ClientProxy.java b/src/main/java/com/irtimaled/bbor/client/ClientProxy.java index c41da42..c09764c 100644 --- a/src/main/java/com/irtimaled/bbor/client/ClientProxy.java +++ b/src/main/java/com/irtimaled/bbor/client/ClientProxy.java @@ -1,87 +1,60 @@ package com.irtimaled.bbor.client; +import com.irtimaled.bbor.client.config.ConfigManager; 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; +import com.irtimaled.bbor.client.providers.*; import com.irtimaled.bbor.common.BoundingBoxCache; import com.irtimaled.bbor.common.CommonProxy; import com.irtimaled.bbor.common.EventBus; -import com.irtimaled.bbor.common.VillageColorCache; -import com.irtimaled.bbor.config.ConfigManager; -import com.irtimaled.bbor.config.Setting; - -import java.net.InetSocketAddress; public class ClientProxy extends CommonProxy { - public static final String Name = "Bounding Box Outline Reloaded"; - public static boolean active; - - static { - KeyListener.register("Toggle Active", 0x42, Name) - .onKeyPressHandler(ClientProxy::toggleActive) - .onLongKeyPressHandler(60, SettingsScreen::show); - KeyListener.register("Toggle Outer Box Only", 0x4f, Name) - .onKeyPressHandler(ClientProxy::toggleOuterBoxesOnly); - } - - private static ClientProxy instance; - public static ClientProxy getInstance() { - if(instance == null) - instance = new ClientProxy(); - return instance; + public static void registerKeyBindings() { + 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 ClientProxy() { + public ClientProxy() { + ConfigManager.loadConfig(); } - private boolean ready; - - public static void toggleActive() { - active = !active; - if (active) - PlayerCoords.setActiveY(); - } - - private static void toggleOuterBoxesOnly() { - Setting outerBoxesOnly = ConfigManager.outerBoxesOnly; - outerBoxesOnly.set(!outerBoxesOnly.get()); - } - - private ClientRenderer renderer; - @Override public void init() { super.init(); - EventBus.subscribe(Render.class, this::render); - EventBus.subscribe(ConnectedToRemoteServer.class, this::connectedToServer); 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); - KeyListener.init(); - } - - private void render(Render event) { - if (!active || !ready) return; - - renderer.render(event.getDimensionId(), ConfigManager.outerBoxesOnly.get()); - } + ClientRenderer.registerProvider(new CacheProvider(this::getCache)); - private void connectedToServer(ConnectedToRemoteServer event) { - InetSocketAddress internetAddress = event.getInternetAddress(); - NBTFileParser.loadLocalDatFiles(internetAddress.getHostName(), internetAddress.getPort(), this::setWorldData, this::getOrCreateCache); + KeyListener.init(); } private void disconnectedFromServer() { - active = false; + ClientRenderer.deactivate(); if (ConfigManager.keepCacheBetweenSessions.get()) return; - ready = false; - VillageColorCache.clear(); + clear(); + } + + private void clear() { + SlimeChunkProvider.clear(); + WorldSpawnProvider.clear(); + SpawningSphereProvider.clear(); + CustomBeaconProvider.clear(); + CustomBoxProvider.clear(); + BiomeBorderProvider.clear(); clearCaches(); - renderer.clear(); } private void addBoundingBox(AddBoundingBoxReceived event) { @@ -91,10 +64,6 @@ public class ClientProxy extends CommonProxy { cache.addBoundingBoxes(event.getKey(), event.getBoundingBoxes()); } - private void onRemoveBoundingBoxReceived(RemoveBoundingBoxReceived event) { - super.removeBoundingBox(event.getDimensionId(), event.getKey()); - } - private void onInitializeClientReceived(InitializeClientReceived event) { setWorldSpawn(event.getSpawnX(), event.getSpawnZ()); setSeed(event.getSeed()); @@ -104,21 +73,15 @@ public class ClientProxy extends CommonProxy { setWorldSpawn(event.getSpawnX(), event.getSpawnZ()); } - private void setWorldData(long seed, int spawnX, int spawnZ) { - setWorldSpawn(spawnX,spawnZ); - setSeed(seed); - } - @Override - public void setSeed(long seed) { + protected void setSeed(long seed) { super.setSeed(seed); - renderer.setSeed(seed); - ready = true; + SlimeChunkProvider.setSeed(seed); } @Override protected void setWorldSpawn(int spawnX, int spawnZ) { super.setWorldSpawn(spawnX, spawnZ); - renderer.setWorldSpawn(spawnX, spawnZ); + WorldSpawnProvider.setWorldSpawn(spawnX, spawnZ); } }