Advertisement
LJLim

Campaign speedup toggle script

Jan 29th, 2022
1,214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.27 KB | None | 0 0
  1. package org.histidine.testmod.scripts;
  2.  
  3. import com.fs.starfarer.api.EveryFrameScript;
  4. import com.fs.starfarer.api.GameState;
  5. import com.fs.starfarer.api.Global;
  6. import com.fs.starfarer.api.util.Misc;
  7. import java.awt.Color;
  8. import java.io.IOException;
  9. import org.json.JSONException;
  10. import org.json.JSONObject;
  11. import org.lwjgl.input.Keyboard;
  12.  
  13. public class SpeedupEveryFrameScript implements EveryFrameScript {
  14.    
  15.     private static final String SETTINGS_FILE = "SPEED_UP.ini";
  16.    
  17.     public static int KEY = Keyboard.KEY_F2;
  18.     public static float SPEEDUP_MULT = 6;
  19.    
  20.     public static final float BASE_SPEEDUP = Global.getSettings().getFloat("campaignSpeedupMult");
  21.     public static boolean isSpedUp = false;
  22.    
  23.     public static boolean keyDown = false;
  24.    
  25.     static {
  26.         try {
  27.             reloadSettings();
  28.         } catch (Exception ex) {
  29.             throw new RuntimeException("bla", ex);
  30.         }
  31.     }
  32.    
  33.     public static void reloadSettings() throws IOException, JSONException {
  34.         JSONObject settings = Global.getSettings().loadJSON(SETTINGS_FILE);
  35.         JSONObject options = settings.getJSONObject("speedOptionsCampaign");
  36.        
  37.         KEY = options.getInt("toggleKey");
  38.         SPEEDUP_MULT = (float)options.getDouble("speedMult");
  39.     }
  40.    
  41.     @Override
  42.     public boolean isDone() {
  43.         return false;
  44.     }
  45.  
  46.     @Override
  47.     public boolean runWhilePaused() {
  48.         return false;
  49.     }
  50.  
  51.     @Override
  52.     public void advance(float amount) {
  53.         if (!keyDown && Keyboard.isKeyDown(KEY)) {
  54.             keyDown = true;
  55.             return;
  56.         }
  57.         // keypress release
  58.         if (keyDown && !Keyboard.isKeyDown(KEY))
  59.         {
  60.             if (Global.getCurrentState() != GameState.CAMPAIGN) return;
  61.             if (Global.getSector().getCampaignUI().getCurrentInteractionDialog() != null)
  62.                 return;
  63.             if (Global.getSector().getCampaignUI().getCurrentCoreTab() != null)
  64.                 return;
  65.            
  66.             if (isSpedUp) {
  67.                 Global.getSettings().setFloat("campaignSpeedupMult", BASE_SPEEDUP);
  68.             } else {
  69.                 Global.getSettings().setFloat("campaignSpeedupMult", SPEEDUP_MULT);
  70.             }
  71.             isSpedUp = !isSpedUp;
  72.             // TODO: externalize
  73.             float mult = Global.getSettings().getFloat("campaignSpeedupMult");
  74.             Global.getSector().getCampaignUI().addMessage("Campaign speedup mult is now " + mult,
  75.                     Misc.getTextColor(), mult + "", "", Misc.getHighlightColor(), Color.BLACK);
  76.            
  77.             keyDown = false;
  78.         }
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement