]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Do village processing if there are any remote players connected
authorirtimaled <irtimaled@gmail.com>
Sun, 28 Jan 2018 20:34:36 +0000 (12:34 -0800)
committerirtimaled <irtimaled@gmail.com>
Sun, 28 Jan 2018 20:34:36 +0000 (12:34 -0800)
java/com/irtimaled/bbor/client/ClientProxy.java
java/com/irtimaled/bbor/forge/ForgeClientProxy.java
java/com/irtimaled/bbor/forge/ForgeCommonProxy.java

index 544b54cde8100a4c850c9d2ad183586baaa8d32e..22eb4ff23abc81d428e53ba89370d3c2f9deeff3 100644 (file)
@@ -21,6 +21,7 @@ public class ClientProxy extends CommonProxy {
     private KeyBinding activeHotKey;
     private KeyBinding outerBoxOnlyHotKey;
     private ClientRenderer renderer;
+    private int remoteUserCount = 0;
 
     public void keyPressed() {
         if (activeHotKey.isPressed()) {
@@ -52,9 +53,17 @@ public class ClientProxy extends CommonProxy {
         }
     }
 
+    public void setRemoteUserCount(int remoteUserCount) {
+        this.remoteUserCount = remoteUserCount;
+    }
+
+    protected boolean hasRemoteUsers()    {
+        return remoteUserCount > 0;
+    }
+
     @Override
     public void tick() {
-        if (this.active) {
+        if (this.active || this.hasRemoteUsers()) {
             super.tick();
         }
     }
index 2f60e74297b4693e5aeea829f3d9df6479a2b03d..0ec1a8b53bc8aaa365c809aca6dc2b42bae2a4a4 100644 (file)
@@ -24,6 +24,11 @@ public class ForgeClientProxy extends ForgeCommonProxy {
         getProxy().keyPressed();
     }
 
+    @Override
+    protected void onRegisteredPlayerCountChanged(int registeredPlayerCount) {
+        getProxy().setRemoteUserCount(registeredPlayerCount-1);
+    }
+
     @Override
     protected boolean isRemotePlayer(EntityPlayer player) {
         if (Minecraft.getMinecraft().isSingleplayer()) {
index 3fefee8a496e5947c182edc573308713b8ecaea6..956275f02c8138746db01563e70c207df9834771 100644 (file)
@@ -47,6 +47,7 @@ public class ForgeCommonProxy implements IVillageEventHandler {
                 event.getRegistrations().contains("bbor") &&
                 event.getHandler() instanceof NetHandlerPlayServer) {
             registeredPlayers.add(((NetHandlerPlayServer) event.getHandler()).player);
+            onRegisteredPlayerCountChanged(registeredPlayers.size());
         }
     }
 
@@ -108,13 +109,17 @@ public class ForgeCommonProxy implements IVillageEventHandler {
 
     @SubscribeEvent
     public void playerLoggedOutEvent(PlayerEvent.PlayerLoggedOutEvent evt) {
-        if (playerDimensions.containsKey(evt.player)) {
+        if (isRemotePlayer(evt.player)) {
             playerDimensions.remove(evt.player);
             playerBoundingBoxesCache.remove(evt.player);
             registeredPlayers.remove(evt.player);
+            onRegisteredPlayerCountChanged(registeredPlayers.size());
         }
     }
 
+    protected void onRegisteredPlayerCountChanged(int registeredPlayerCount) {
+    }
+
     @SubscribeEvent
     public void tickEvent(TickEvent event) {
         for (EntityPlayerMP player : playerDimensions.keySet()) {