1 package com.irtimaled.bbor.client;
3 import com.irtimaled.bbor.common.CommonProxy;
4 import com.irtimaled.bbor.common.VillageColorCache;
5 import com.irtimaled.bbor.common.VillageProcessor;
6 import com.irtimaled.bbor.config.ConfigManager;
7 import net.minecraft.client.Minecraft;
8 import net.minecraft.client.settings.KeyBinding;
9 import net.minecraft.entity.player.EntityPlayer;
10 import net.minecraft.network.NetworkManager;
11 import net.minecraft.world.DimensionType;
12 import org.apache.commons.lang3.ArrayUtils;
13 import org.lwjgl.input.Keyboard;
15 import java.net.InetSocketAddress;
16 import java.net.SocketAddress;
18 public class ClientProxy extends CommonProxy {
19 private boolean active;
20 private boolean outerBoxOnly;
21 private KeyBinding activeHotKey;
22 private KeyBinding outerBoxOnlyHotKey;
23 private ClientRenderer renderer;
24 private int remoteUserCount = 0;
26 public void keyPressed() {
27 if (activeHotKey.isPressed()) {
30 PlayerData.setActiveY();
31 } else if (outerBoxOnlyHotKey.isPressed()) {
32 outerBoxOnly = !outerBoxOnly;
38 String category = "Bounding Box Outline Reloaded";
39 activeHotKey = new KeyBinding("Toggle On/Off", Keyboard.KEY_B, category);
40 outerBoxOnlyHotKey = new KeyBinding("Toggle Display Outer Box Only", Keyboard.KEY_O, category);
41 Minecraft.getMinecraft().gameSettings.keyBindings = ArrayUtils.addAll(Minecraft.getMinecraft().gameSettings.keyBindings, activeHotKey, outerBoxOnlyHotKey);
42 ClientDimensionCache clientDimensionCache = new ClientDimensionCache();
43 renderer = new ClientRenderer(clientDimensionCache);
44 dimensionCache = clientDimensionCache;
47 public void render(float partialTicks) {
48 EntityPlayer entityPlayer = Minecraft.getMinecraft().player;
49 PlayerData.setPlayerPosition(partialTicks, entityPlayer);
52 renderer.render(DimensionType.getById(entityPlayer.dimension), outerBoxOnly);
56 public void setRemoteUserCount(int remoteUserCount) {
57 this.remoteUserCount = remoteUserCount;
60 protected boolean hasRemoteUsers() {
61 return remoteUserCount > 0;
66 if (this.active || this.hasRemoteUsers()) {
71 public void playerConnectedToServer(NetworkManager networkManager) {
72 SocketAddress remoteAddress = networkManager.getRemoteAddress();
73 if (remoteAddress instanceof InetSocketAddress) {
74 InetSocketAddress socketAddress = (InetSocketAddress) remoteAddress;
75 NBTFileParser.loadLocalDatFiles(socketAddress.getHostName(), socketAddress.getPort(), dimensionCache);
79 public void playerDisconnectedFromServer() {
81 villageProcessors.forEach(VillageProcessor::close);
82 villageProcessors.clear();
84 if (ConfigManager.keepCacheBetweenSessions.getBoolean()) return;
85 VillageColorCache.clear();
86 dimensionCache.clear();