]> git.seodisparate.com - TurnBasedMinecraftMod/commitdiff
Minor fixes/changes
authorStephen Seo <seo.disparate@gmail.com>
Tue, 25 Sep 2018 05:55:24 +0000 (14:55 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Tue, 25 Sep 2018 05:55:24 +0000 (14:55 +0900)
Added option in config to change battle timer time

src/main/java/com/seodisparate/TurnBasedMinecraft/client/BattleGui.java
src/main/java/com/seodisparate/TurnBasedMinecraft/client/BattleMusic.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/Battle.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/BattleUpdater.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/CommonProxy.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/Config.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/TurnBasedMinecraftMod.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleInfo.java
src/main/resources/assets/TurnBasedMinecraft/TBM_Config.xml

index 8ba80517529e4cfe7642ad6f1984f9d6695ea3f7..1b32161e3a22328fb53dacd3e6939e2c11fc28f3 100644 (file)
@@ -104,7 +104,7 @@ public class BattleGui extends GuiScreen
     
     public BattleGui()
     {
-        timeRemaining = new AtomicInteger((int)TurnBasedMinecraftMod.BattleDecisionTime.getSeconds());
+        timeRemaining = new AtomicInteger(TurnBasedMinecraftMod.getBattleDurationSeconds());
         lastInstant = System.nanoTime();
         elapsedTime = 0;
         state = MenuState.MAIN_MENU;
@@ -129,7 +129,7 @@ public class BattleGui extends GuiScreen
         {
             TurnBasedMinecraftMod.currentBattle.setState(Battle.State.DECISION);
         }
-        timeRemaining.set((int)TurnBasedMinecraftMod.BattleDecisionTime.getSeconds());
+        timeRemaining.set(TurnBasedMinecraftMod.getBattleDurationSeconds());
         elapsedTime = 0;
         lastInstant = System.nanoTime();
         setState(MenuState.MAIN_MENU);
index 8834a404cb7ea9699ed511174887427c35b51ecb..47f13246356e1738cb4dbb1fbe1892c4266c3a06 100644 (file)
@@ -41,7 +41,7 @@ public class BattleMusic
         try {
             sequencer = MidiSystem.getSequencer();
             sequencer.open();
-        } catch (Exception e)
+        } catch (Throwable t)
         {
             logger.error("Failed to load midi sequencer");
             return;
@@ -198,7 +198,7 @@ public class BattleMusic
                 }
                 try {
                     sequencer.setSequence(new BufferedInputStream(new FileInputStream(next)));
-                } catch (Exception e)
+                } catch (Throwable t)
                 {
                     logger.error("Failed to play battle music (midi)");
                     return;
@@ -221,7 +221,7 @@ public class BattleMusic
                 try
                 {
                     clip.open(AudioSystem.getAudioInputStream(next));
-                } catch(Exception e)
+                } catch(Throwable t)
                 {
                     logger.error("Failed to load battle music (wav)");
                     return;
index 1511105893230a3188c2236c1bf4b250ae347651..bf1eea5c227b8053c993364f72338c02ebf02b5d 100644 (file)
@@ -130,7 +130,7 @@ public class Battle
             for(Entity e : sideA)
             {
                 EntityInfo entityInfo = TurnBasedMinecraftMod.config.getMatchingEntityInfo(e);
-                if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.battleManager != null)
+                if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.commonProxy.isServerRunning())
                 {
                     continue;
                 }
@@ -159,7 +159,7 @@ public class Battle
             for(Entity e : sideB)
             {
                 EntityInfo entityInfo = TurnBasedMinecraftMod.config.getMatchingEntityInfo(e);
-                if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.battleManager != null)
+                if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.commonProxy.isServerRunning())
                 {
                     continue;
                 }
@@ -210,7 +210,7 @@ public class Battle
         lastInstant = System.nanoTime();
         state = State.DECISION;
         undecidedCount.set(playerCount.get());
-        timer = TurnBasedMinecraftMod.BattleDecisionTime.getSeconds() * 1000000000;
+        timer = TurnBasedMinecraftMod.getBattleDurationNanos();
         battleEnded = false;
         
         notifyPlayersBattleInfo();
@@ -249,7 +249,7 @@ public class Battle
     public void addCombatantToSideA(Entity e)
     {
         EntityInfo entityInfo = TurnBasedMinecraftMod.config.getMatchingEntityInfo(e);
-        if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.battleManager != null)
+        if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.commonProxy.isServerRunning())
         {
             return;
         }
@@ -289,7 +289,7 @@ public class Battle
     public void addCombatantToSideB(Entity e)
     {
         EntityInfo entityInfo = TurnBasedMinecraftMod.config.getMatchingEntityInfo(e);
-        if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.battleManager != null)
+        if(entityInfo == null && !(e instanceof EntityPlayer) && TurnBasedMinecraftMod.commonProxy.isServerRunning())
         {
             return;
         }
@@ -653,7 +653,7 @@ public class Battle
                     }
                 }
                 state = State.ACTION;
-                timer = TurnBasedMinecraftMod.BattleDecisionTime.getSeconds() * 1000000000;
+                timer = TurnBasedMinecraftMod.getBattleDurationNanos();
                 sendMessageToAllPlayers(PacketBattleMessage.MessageType.TURN_BEGIN, 0, 0, 0);
                 turnOrderQueue.clear();
                 for(Combatant c : sideA.values())
index 9cec8562f52e9437a84cae1dc43cd186f139c7e4..8b8e4bae17d6e140ca1a226e4a1f46d7ead0b7fb 100644 (file)
@@ -33,7 +33,7 @@ public class BattleUpdater implements Runnable
             {
                 manager.battleMap.remove(ended);
             }
-            try { Thread.sleep(250); } catch (Exception e) { /* ignored */ }
+            try { Thread.sleep(250); } catch (Throwable t) { /* ignored */ }
         }
     }
     
index cf03ad31d3ae11b705865e5cd719974102b58ced..1e70778d824a98990be80c11b5b00cc414c1b102 100644 (file)
@@ -64,4 +64,9 @@ public class CommonProxy
     {
         return FMLCommonHandler.instance().getMinecraftServerInstance().getEntityWorld().getEntityByID(id);
     }
+    
+    public boolean isServerRunning()
+    {
+        return TurnBasedMinecraftMod.battleManager != null;
+    }
 }
index 6421888e89be062b5bfef03942336036d3e041df..476442ef401cf0151f3126b16745091774564a5f 100644 (file)
@@ -55,8 +55,11 @@ public class Config
             {
                 logger.error("Internal resource is null");
             }
-            internalVersion = getConfigFileVersion(is);
-        } catch (Exception e) {}
+            else
+            {
+                internalVersion = getConfigFileVersion(is);
+            }
+        } catch (Throwable t) {}
         
         if(internalVersion == 0)
         {
@@ -75,7 +78,7 @@ public class Config
                 writeConfig();
             }
         }
-        catch (Exception e)
+        catch (Throwable t)
         {
             logger.error("Failed to check/create-new config file");
         }
@@ -96,7 +99,7 @@ public class Config
             try
             {
                 writeConfig();
-            } catch (Exception e)
+            } catch (Throwable t)
             {
                 logger.error("Failed to write config file!");
             }
@@ -104,7 +107,7 @@ public class Config
         try
         {
             parseConfig(configFile);
-        } catch (Exception e)
+        } catch (Throwable t)
         {
             logger.error("Failed to parse config file!");
         }
@@ -261,6 +264,19 @@ public class Config
                         minimumHitPercentage = 1;
                     }
                 }
+                else if(xmlReader.getLocalName().equals("BattleTurnTimeSeconds"))
+                {
+                    int seconds = TurnBasedMinecraftMod.getBattleDurationSeconds();
+                    try
+                    {
+                        seconds = Integer.parseInt(xmlReader.getElementText());
+                        TurnBasedMinecraftMod.setBattleDurationSeconds(seconds);
+                    } catch (Throwable t)
+                    {
+                        logger.warn("Unable to get value for \"BattleTurnTimeSeconds\" from config, using default");
+                        TurnBasedMinecraftMod.setBattleDurationSeconds(TurnBasedMinecraftMod.BATTLE_DECISION_DURATION_NANO_DEFAULT / 1000000000L);
+                    }
+                }
                 else if(xmlReader.getLocalName().equals("EntityEntry"))
                 {
                     EntityInfo eInfo = new EntityInfo();
@@ -468,7 +484,7 @@ public class Config
                 }
             }
             xmlReader.close();
-        } catch (Exception e)
+        } catch (Throwable t)
         {
             return 0;
         }
index e49894d08d2b96fba3b6f59733cc8d9fcf2457d8..c56e4fa30e20441ed2accece11a5356a17295441 100644 (file)
@@ -1,6 +1,5 @@
 package com.seodisparate.TurnBasedMinecraft.common;
 
-import java.time.Duration;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -31,7 +30,6 @@ public class TurnBasedMinecraftMod
     public static final String MODID = "com.seodisparate.turnbasedminecraft";
     public static final String NAME = "Turn Based Minecraft Mod";
     public static final String VERSION = "0.3";
-    public static final Duration BattleDecisionTime = Duration.ofSeconds(15);
     public static final String CONFIG_FILENAME = "TBM_Config.xml";
     public static final String CONFIG_DIRECTORY = "config/TurnBasedMinecraft/";
     public static final String CONFIG_FILE_PATH = CONFIG_DIRECTORY + CONFIG_FILENAME;
@@ -51,6 +49,10 @@ public class TurnBasedMinecraftMod
     protected static int attackingDamage = 0;
     protected static Set<AttackerViaBow> attackerViaBow;
     protected static Config config;
+    public static final long BATTLE_DECISION_DURATION_NANO_MIN = 5000000000L;
+    public static final long BATTLE_DECISION_DURATION_NANO_MAX = 60000000000L;
+    public static final long BATTLE_DECISION_DURATION_NANO_DEFAULT = 15000000000L;
+    private static long BATTLE_DECISION_DURATION_NANOSECONDS = BATTLE_DECISION_DURATION_NANO_DEFAULT;
     
     public static Battle currentBattle = null;
     
@@ -140,4 +142,27 @@ public class TurnBasedMinecraftMod
     {
         return CONFIG_FILE_VERSION;
     }
+    
+    public static long getBattleDurationNanos()
+    {
+        return BATTLE_DECISION_DURATION_NANOSECONDS;
+    }
+    
+    public static int getBattleDurationSeconds()
+    {
+        return (int)(BATTLE_DECISION_DURATION_NANOSECONDS / 1000000000L);
+    }
+    
+    protected static void setBattleDurationSeconds(long seconds)
+    {
+        BATTLE_DECISION_DURATION_NANOSECONDS = seconds * 1000000000L;
+        if(BATTLE_DECISION_DURATION_NANOSECONDS < BATTLE_DECISION_DURATION_NANO_MIN)
+        {
+            BATTLE_DECISION_DURATION_NANOSECONDS = BATTLE_DECISION_DURATION_NANO_MIN;
+        }
+        else if(BATTLE_DECISION_DURATION_NANOSECONDS > BATTLE_DECISION_DURATION_NANO_MAX)
+        {
+            BATTLE_DECISION_DURATION_NANOSECONDS = BATTLE_DECISION_DURATION_NANO_MAX;
+        }
+    }
 }
index e979aff308ab6ecc9ccd7bda05a5cdaf938a94b9..0cc15271991774dcc0ee7da53cb8146f2e386fe5 100644 (file)
@@ -21,7 +21,7 @@ public class PacketBattleInfo implements IMessage
     {
         sideA = new ArrayList<Integer>();
         sideB = new ArrayList<Integer>();
-        decisionNanos = TurnBasedMinecraftMod.BattleDecisionTime.getSeconds() * 1000000000;
+        decisionNanos = TurnBasedMinecraftMod.getBattleDurationNanos();
     }
     
     public PacketBattleInfo(Collection<Integer> sideA, Collection<Integer> sideB, long decisionNanos)
@@ -81,7 +81,7 @@ public class PacketBattleInfo implements IMessage
             {
                 TurnBasedMinecraftMod.currentBattle.addCombatantToSideB(Minecraft.getMinecraft().world.getEntityByID(id));
             }
-            TurnBasedMinecraftMod.commonProxy.setBattleGuiTime((int)(message.decisionNanos / 1000000000));
+            TurnBasedMinecraftMod.commonProxy.setBattleGuiTime((int)(message.decisionNanos / 1000000000L));
             TurnBasedMinecraftMod.commonProxy.setBattleGuiBattleChanged();
             return null;
         }
index 37b0eda69dce45f3a1b89ca0423765e509360c0a..896338fa33dc11e89aeb7ba59f78d07f64ea1e23 100644 (file)
@@ -37,6 +37,8 @@
        <FleeBadProbability>40</FleeBadProbability>
        <!-- Minimum hit percentage for every entity. If less than 1, it will be stored as 1 anyways. -->
        <MinimumHitPercentage>4</MinimumHitPercentage>
+       <!-- Number of seconds to wait in battle for all players to make a decision. Minimum of 5 and maximum of 60. -->
+       <BattleTurnTimeSeconds>15</BattleTurnTimeSeconds>
        
        <!-- Battle stats for entities should be specified here. If an entity is not listed it cannot enter battle. -->
        <!-- Name: The full class name of an entity. -->