MAKS_Enjoyer

I have been forcibly drafted in the army (russia moment)

Oct 2nd, 2022 (edited)
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 94.80 KB | Source Code | 0 0
  1. import java.io.*;
  2. import java.time.*;
  3. import java.util.*;
  4. import java.nio.file.*;
  5. import org.apache.poi.xwpf.usermodel.*;
  6. import java.time.format.DateTimeFormatter;
  7.  
  8. class i_will_shoot_yourself {
  9.     public static void f_calc_o(String engine_Name, String engine_Cycle_Chosen, String oxidizer_Chosen, String fuel_Chosen, String[] tank_Repressurisation, String[] altitude_Of_Operation) throws IOException {
  10.         String tank_Repressurisation_Chosen = rand(tank_Repressurisation);
  11.         String altitude_Of_Operation_Chosen = rand(altitude_Of_Operation);
  12.         String nozzle_Type_Chosen = bussy(altitude_Of_Operation_Chosen);
  13.         String[] cooling_mechanism = {"Ablative Cooling", "Radiative Cooling", "Dump Cooling", "Film Cooling",
  14.                 "Regenerative Cooling", "Transpiration Cooling"};
  15.         String cooling_Mechanism_Chosen = rand(cooling_mechanism);
  16.         boolean isHypergolic = isHypergolic(oxidizer_Chosen, fuel_Chosen);
  17.         boolean isCryogenic = isCryogenic(oxidizer_Chosen, fuel_Chosen);
  18.         String injector = Injector();
  19.         String purpose = uses(isHypergolic, isCryogenic, altitude_Of_Operation_Chosen);
  20.         output_def(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, altitude_Of_Operation_Chosen,
  21.                 nozzle_Type_Chosen, tank_Repressurisation_Chosen, cooling_Mechanism_Chosen, isHypergolic,
  22.                 isCryogenic, purpose, injector);
  23.     }
  24.     public static String rand(String[] array){
  25.         Collections.shuffle(Arrays.asList(array));
  26.         Random arrayChosen = new Random();
  27.         int arrayChosen_index = arrayChosen.nextInt(array.length);
  28.         return array[arrayChosen_index];
  29.     }
  30.     public static boolean isCryogenic(String oxidizer_chosen, String fuel_chosen) {
  31.         boolean isCryo = false;
  32.         switch (oxidizer_chosen) {
  33.             case "O3 (Ozone)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)", "ClF3 (Chlorine Trifluoride)",
  34.                     "ClF5 (Chlorine Pentafluoride)", "O2 (Oxygen)" -> {
  35.                 isCryo = true;
  36.             }
  37.         }
  38.         switch (fuel_chosen) {
  39.             case "CH3OH (Methanol)", "C12H24 (Kerosene)", "H2 (Hydrogen)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  40.                     "B2H6 (Diborane)", "B5H9 (Pentaborane)", "NH3 (Ammonia)", "CH4 (Methane)" -> {
  41.                 isCryo = true;
  42.             }
  43.         }
  44.         return isCryo;
  45.     }
  46.     public static String uses(boolean isHypergolic, boolean isCryogenic, String alt) {
  47.         String use = "";
  48.         if ((alt.equals("0-10 km (Sea Level)")) || (alt.equals("20-30 km (Medium Atmosphere)"))) {
  49.             String[] pot_uses = {"Booster Stage", "Orbital Manoeuvering", "Landing"};
  50.             Collections.shuffle(Arrays.asList(pot_uses));
  51.             Random useChosen = new Random();
  52.             int useChosen_index = useChosen.nextInt(pot_uses.length);
  53.             use = pot_uses[useChosen_index];
  54.         } else if ((alt.equals("30-80 km (High Atmosphere)")) || (alt.equals("80 km+ (Vacuum)"))) {
  55.             if (isHypergolic && isCryogenic) {
  56.                 String[] pot_uses = {"Upper Stage", "Orbital Manoeuvering", "Course Correction", "Landing"};
  57.                 Collections.shuffle(Arrays.asList(pot_uses));
  58.                 Random useChosen = new Random();
  59.                 int useChosen_index = useChosen.nextInt(pot_uses.length);
  60.                 use = pot_uses[useChosen_index];
  61.             } else if (!isHypergolic && isCryogenic) {
  62.                 String[] pot_uses = {"Upper Stage", "Landing"};
  63.                 Collections.shuffle(Arrays.asList(pot_uses));
  64.                 Random useChosen = new Random();
  65.                 int useChosen_index = useChosen.nextInt(pot_uses.length);
  66.                 use = pot_uses[useChosen_index];
  67.             } else if (isHypergolic && !isCryogenic) {
  68.                 String[] pot_uses = {"Upper Stage", "Space tug", "Orbital Manoeuvering", "Course Correction", "Landing"};
  69.                 Collections.shuffle(Arrays.asList(pot_uses));
  70.                 Random useChosen = new Random();
  71.                 int useChosen_index = useChosen.nextInt(pot_uses.length);
  72.                 use = pot_uses[useChosen_index];
  73.             }
  74.         } else {
  75.             if (isHypergolic && isCryogenic) {
  76.                 String[] pot_uses = {"Booster Stage", "Upper Stage", "Orbital Manoeuvering", "Course Correction", "Landing"};
  77.                 Collections.shuffle(Arrays.asList(pot_uses));
  78.                 Random useChosen = new Random();
  79.                 int useChosen_index = useChosen.nextInt(pot_uses.length);
  80.                 use = pot_uses[useChosen_index];
  81.             } else if (!isHypergolic && isCryogenic) {
  82.                 String[] pot_uses = {"Booster Stage", "Upper Stage", "Landing"};
  83.                 Collections.shuffle(Arrays.asList(pot_uses));
  84.                 Random useChosen = new Random();
  85.                 int useChosen_index = useChosen.nextInt(pot_uses.length);
  86.                 use = pot_uses[useChosen_index];
  87.             } else if (isHypergolic && !isCryogenic) {
  88.                 String[] pot_uses = {"Booster Stage", "Upper Stage", "Space tug", "Orbital Manoeuvering", "Course Correction", "Landing"};
  89.                 Collections.shuffle(Arrays.asList(pot_uses));
  90.                 Random useChosen = new Random();
  91.                 int useChosen_index = useChosen.nextInt(pot_uses.length);
  92.                 use = pot_uses[useChosen_index];
  93.             }
  94.         }
  95.         return use;
  96.     }
  97.     public static String Injector() {
  98.         String[] injector = {"Showerhead Injector", "Self-impinging Injector", "Cross-impinging Injector",
  99.                 "Swirling Coaxial Injector", "Pintle Injector"};
  100.         return rand(injector);
  101.     }
  102.     public static String bussy (String altitude_Of_Operation_Chosen) {
  103.         String nozzle_Type_Chosen = null;
  104.         switch (altitude_Of_Operation_Chosen) {
  105.             case "0-10 km (Sea Level)" -> {
  106.                 String[] nozzle_Type_List_SL = {"De Laval Cone (Without Nozzle Extension)",
  107.                         "De Laval Bell (Without Nozzle Extension)"};
  108.                 nozzle_Type_Chosen = rand(nozzle_Type_List_SL);
  109.             } case "20-30 km (Medium Atmosphere)" -> {
  110.                 String[] nozzle_Type_List_HA = {"De Laval Bell (Without Nozzle Extension)", "De Laval Cone (With Nozzle Extension)",
  111.                         "De Laval Bell (With Nozzle Extension)", "Dual Bell Nozzle"};
  112.                 nozzle_Type_Chosen = rand(nozzle_Type_List_HA);
  113.             } case "30-80 km (High Atmosphere)" -> {
  114.                 String[] nozzle_Type_List_HAi = {"De Laval Cone (With Nozzle Extension)", "De Laval Bell (With Nozzle Extension)",
  115.                         "Dual Bell Nozzle"};
  116.                 nozzle_Type_Chosen = rand(nozzle_Type_List_HAi);
  117.             } case "80 km+ (Vacuum)" -> {
  118.                 String[] nozzle_Type_List_VA = {"De Laval Cone (With Nozzle Extension)",
  119.                         "De Laval Bell (With Nozzle Extension)", "Expanding Nozzle"};
  120.                 nozzle_Type_Chosen = rand(nozzle_Type_List_VA);
  121.             } case "Any Altitude (0-80 km+)" -> {
  122.                 String[] nozzle_Type_List_Aero = {"Linear Aerospike Nozzle", "Toroidal Aerospike Nozzle", "Expansion-Deflection Nozzle"};
  123.                 nozzle_Type_Chosen = rand(nozzle_Type_List_Aero);
  124.             }
  125.         }
  126.         return nozzle_Type_Chosen;
  127.     }
  128.     public static String ass_crack(String[] engine_Name1, String[] firstPart) {
  129.         String engine_Name;
  130.         Collections.shuffle(Arrays.asList(engine_Name1));
  131.         Collections.shuffle(Arrays.asList(firstPart));
  132.         Random engineNameChosen = new Random();
  133.         Random firstPartC = new Random();
  134.         int engineNameChosen_index = engineNameChosen.nextInt(engine_Name1.length);
  135.         int firstPart_index = firstPartC.nextInt(firstPart.length);
  136.         String engNameFinalf = " " + engine_Name1[engineNameChosen_index];
  137.         String firstPart_f = firstPart[firstPart_index] + "-";
  138.         int finalNumber = 12 + ((int) (Math.random() * 999));
  139.         if (finalNumber % 8 == 0) {
  140.             engine_Name = firstPart_f + finalNumber + engNameFinalf;
  141.         } else {
  142.             char randomizedCharacter;
  143.             int uio93 = 1 + ((int) (Math.random() * 999));
  144.             int uio94 = 1 + ((int) (Math.random() * 11));
  145.             Random randomLetter = new Random();
  146.             if (uio93 % uio94 == 0) {
  147.                 randomizedCharacter = (char) (randomLetter.nextInt(26) + 'a');
  148.                 while (randomizedCharacter != 'l' || randomizedCharacter == 'o' || randomizedCharacter == 'i' || randomizedCharacter == 'q' || randomizedCharacter == 'e' || randomizedCharacter == 'h' || randomizedCharacter == 'g' || randomizedCharacter == 'c' || randomizedCharacter == 'j') {
  149.                     randomizedCharacter = (char) (randomLetter.nextInt(26) + 'a');
  150.                     if (randomizedCharacter != 'l' && randomizedCharacter != 'o' && randomizedCharacter != 'i' && randomizedCharacter != 'q' && randomizedCharacter != 'e' && randomizedCharacter != 'h' && randomizedCharacter != 'g' && randomizedCharacter != 'c' && randomizedCharacter != 'j') {
  151.                         break;
  152.                     }
  153.                 }
  154.             } else {
  155.                 randomizedCharacter = (char) (randomLetter.nextInt(26) + 'A');
  156.                 while (randomizedCharacter == 'O' || randomizedCharacter == 'I' || randomizedCharacter == 'Q') {
  157.                     randomizedCharacter = (char) (randomLetter.nextInt(26) + 'A');
  158.                     if (randomizedCharacter == 'O' || randomizedCharacter == 'I' || randomizedCharacter == 'Q') {
  159.                         break;
  160.                     }
  161.                 }
  162.             }
  163.             engine_Name = firstPart_f + finalNumber + randomizedCharacter + engNameFinalf;
  164.         }
  165.         return engine_Name;
  166.     }
  167.     public static void output_monod(String ENN, String ECC, String AOOC, String PLC, String NTLC, String CMC, String CCC, String purpose) throws IOException {
  168.         String lbrk = "======================================================================================================================";
  169.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  170.         System.out.println(lbrk + "\n" + "Engine Designation: " + ENN + "\n");
  171.         System.out.println("Fuel Flow Cycle: " + ECC);
  172.         System.out.println("Propellant: " + PLC);
  173.         System.out.println("Altitude Of Operation: " + AOOC);
  174.         System.out.println("Exhaust Nozzle Geometry: " + NTLC);
  175.         System.out.println("Engine Use Case: " + purpose);
  176.         System.out.println("Nozzle Cooling Mechanism: " + CMC);
  177.         System.out.println("Propellant catalyst: " + CCC + '\n');
  178.         XWPFDocument docx = new XWPFDocument();
  179.         if (new File(String.valueOf(pathn1)).exists()) {
  180.             FileInputStream jesus = new FileInputStream(String.valueOf(pathn1));
  181.             docx = new XWPFDocument(jesus);
  182.         }
  183.         XWPFParagraph par = docx.createParagraph();
  184.         XWPFRun run = par.createRun();
  185.         run.setFontSize(12);
  186.         run.setBold(true);
  187.         run.setFontFamily("Arial");
  188.         run.setText("Engine Designation: ");
  189.         run.setTextPosition(15);
  190.         XWPFRun run2 = par.createRun();
  191.         run2.setFontSize(12);
  192.         run2.setBold(true);
  193.         run2.setFontFamily("Arial");
  194.         run2.setText(ENN);
  195.         run2.setTextPosition(15);
  196.         run2.addBreak();
  197.         // -----------------------------------------------------------
  198.         XWPFRun run3 = par.createRun();
  199.         run3.setFontSize(10);
  200.         run3.setBold(true);
  201.         run3.setFontFamily("Arial");
  202.         run3.setText("Fuel Flow Cycle: ");
  203.         XWPFRun run4 = par.createRun();
  204.         run4.setFontSize(10);
  205.         run4.setFontFamily("Arial");
  206.         run4.setText(ECC);
  207.         run4.addBreak();
  208.         // -----------------------------------------------------------
  209.         XWPFRun run5 = par.createRun();
  210.         run5.setFontSize(10);
  211.         run5.setBold(true);
  212.         run5.setFontFamily("Arial");
  213.         run5.setText("Propellant(Remass): ");
  214.         XWPFRun run6 = par.createRun();
  215.         run6.setFontSize(10);
  216.         run6.setFontFamily("Arial");
  217.         run6.setText(PLC);
  218.         run6.addBreak();
  219.         // -----------------------------------------------------------
  220.         XWPFRun run9 = par.createRun();
  221.         run9.setFontSize(10);
  222.         run9.setBold(true);
  223.         run9.setFontFamily("Arial");
  224.         run9.setText("Exhaust Nozzle Geometry: ");
  225.         XWPFRun run0 = par.createRun();
  226.         run0.setFontSize(10);
  227.         run0.setFontFamily("Arial");
  228.         run0.setText(NTLC);
  229.         run0.addBreak();
  230.         // -----------------------------------------------------------
  231.         XWPFRun run104 = par.createRun();
  232.         run104.setFontSize(10);
  233.         run104.setBold(true);
  234.         run104.setFontFamily("Arial");
  235.         run104.setText("Engine Use Case: ");
  236.         XWPFRun run105 = par.createRun();
  237.         run105.setFontSize(10);
  238.         run105.setFontFamily("Arial");
  239.         run105.setText(purpose);
  240.         run105.addBreak();
  241.         // -----------------------------------------------------------
  242.         XWPFRun run10 = par.createRun();
  243.         run10.setFontSize(10);
  244.         run10.setBold(true);
  245.         run10.setFontFamily("Arial");
  246.         run10.setText("Altitude Of Operation: ");
  247.         XWPFRun run23 = par.createRun();
  248.         run23.setFontSize(10);
  249.         run23.setFontFamily("Arial");
  250.         run23.setText(AOOC);
  251.         run23.addBreak();
  252.         // -----------------------------------------------------------
  253.         XWPFRun run13 = par.createRun();
  254.         run13.setFontSize(10);
  255.         run13.setBold(true);
  256.         run13.setFontFamily("Arial");
  257.         run13.setText("Nozzle Cooling Mechanism: ");
  258.         XWPFRun run14 = par.createRun();
  259.         run14.setFontSize(10);
  260.         run14.setFontFamily("Arial");
  261.         run14.setText(CMC);
  262.         run14.addBreak();
  263.         // -----------------------------------------------------------
  264.         XWPFRun run15 = par.createRun();
  265.         run15.setFontSize(10);
  266.         run15.setBold(true);
  267.         run15.setFontFamily("Arial");
  268.         run15.setText("Engine catalyst: ");
  269.         XWPFRun run16 = par.createRun();
  270.         run16.setFontSize(10);
  271.         run16.setFontFamily("Arial");
  272.         run16.setText(CCC);
  273.         run16.addBreak();
  274.         run16.addBreak();
  275.         // -----------------------------------------------------------
  276.         try (FileOutputStream out = new FileOutputStream(String.valueOf(pathn1))) {
  277.             docx.write(out);
  278.         }
  279.     }
  280.     public static void output_mono(String ENN, String ECC, String AOOC, String PLC, String NTLC, String CMC, String purpose) throws IOException {
  281.         String lbrk = "======================================================================================================================";
  282.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  283.         System.out.println(lbrk + "\n" + "Engine Designation: " + ENN + "\n");
  284.         System.out.println("Fuel Flow Cycle: " + ECC);
  285.         System.out.println("Propellant: " + PLC);
  286.         System.out.println("Altitude Of Operation: " + AOOC);
  287.         System.out.println("Exhaust Nozzle Geometry: " + NTLC);
  288.         System.out.println("Engine Use Case: " + purpose);
  289.         System.out.println("Nozzle Cooling Mechanism: " + CMC + '\n');
  290.         XWPFDocument docx = new XWPFDocument();
  291.         if (new File(String.valueOf(pathn1)).exists()) {
  292.             FileInputStream jesus = new FileInputStream(String.valueOf(pathn1));
  293.             docx = new XWPFDocument(jesus);
  294.         }
  295.         XWPFParagraph par = docx.createParagraph();
  296.         XWPFRun run = par.createRun();
  297.         run.setFontSize(12);
  298.         run.setBold(true);
  299.         run.setFontFamily("Arial");
  300.         run.setText("Engine Designation: ");
  301.         run.setTextPosition(15);
  302.         XWPFRun run2 = par.createRun();
  303.         run2.setFontSize(12);
  304.         run2.setBold(true);
  305.         run2.setFontFamily("Arial");
  306.         run2.setText(ENN);
  307.         run2.setTextPosition(15);
  308.         run2.addBreak();
  309.         // -----------------------------------------------------------
  310.         XWPFRun run3 = par.createRun();
  311.         run3.setFontSize(10);
  312.         run3.setBold(true);
  313.         run3.setFontFamily("Arial");
  314.         run3.setText("Fuel Flow Cycle: ");
  315.         XWPFRun run4 = par.createRun();
  316.         run4.setFontSize(10);
  317.         run4.setFontFamily("Arial");
  318.         run4.setText(ECC);
  319.         run4.addBreak();
  320.         // -----------------------------------------------------------
  321.         XWPFRun run5 = par.createRun();
  322.         run5.setFontSize(10);
  323.         run5.setBold(true);
  324.         run5.setFontFamily("Arial");
  325.         run5.setText("Propellant(Remass): ");
  326.         XWPFRun run6 = par.createRun();
  327.         run6.setFontSize(10);
  328.         run6.setFontFamily("Arial");
  329.         run6.setText(PLC);
  330.         run6.addBreak();
  331.         // -----------------------------------------------------------
  332.         XWPFRun run9 = par.createRun();
  333.         run9.setFontSize(10);
  334.         run9.setBold(true);
  335.         run9.setFontFamily("Arial");
  336.         run9.setText("Exhaust Nozzle Geometry: ");
  337.         XWPFRun run0 = par.createRun();
  338.         run0.setFontSize(10);
  339.         run0.setFontFamily("Arial");
  340.         run0.setText(NTLC);
  341.         run0.addBreak();
  342.         // -----------------------------------------------------------
  343.         XWPFRun run104 = par.createRun();
  344.         run104.setFontSize(10);
  345.         run104.setBold(true);
  346.         run104.setFontFamily("Arial");
  347.         run104.setText("Engine Use Case: ");
  348.         XWPFRun run105 = par.createRun();
  349.         run105.setFontSize(10);
  350.         run105.setFontFamily("Arial");
  351.         run105.setText(purpose);
  352.         run105.addBreak();
  353.         // -----------------------------------------------------------
  354.         XWPFRun run10 = par.createRun();
  355.         run10.setFontSize(10);
  356.         run10.setBold(true);
  357.         run10.setFontFamily("Arial");
  358.         run10.setText("Altitude Of Operation: ");
  359.         XWPFRun run23 = par.createRun();
  360.         run23.setFontSize(10);
  361.         run23.setFontFamily("Arial");
  362.         run23.setText(AOOC);
  363.         run23.addBreak();
  364.         // -----------------------------------------------------------
  365.         XWPFRun run13 = par.createRun();
  366.         run13.setFontSize(10);
  367.         run13.setBold(true);
  368.         run13.setFontFamily("Arial");
  369.         run13.setText("Nozzle Cooling Mechanism: ");
  370.         XWPFRun run14 = par.createRun();
  371.         run14.setFontSize(10);
  372.         run14.setFontFamily("Arial");
  373.         run14.setText(CMC);
  374.         run14.addBreak();
  375.         run14.addBreak();
  376.         // -----------------------------------------------------------
  377.         try (FileOutputStream out = new FileOutputStream(String.valueOf(pathn1))) {
  378.             docx.write(out);
  379.         }
  380.     }
  381.     public static void output_ex(String ENN, String ECC, String OCC, String FCC, String AOOC, String NTC, String TRR,
  382.                                  String CMC, boolean isHyp, boolean isCryo, String purpose, String injector) throws IOException {
  383.         String lbrk = "======================================================================================================================";
  384.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  385.         System.out.println(lbrk + "\n" + "Engine Designation: " + ENN + "\n");
  386.         System.out.println("Fuel Flow Cycle: " + ECC);
  387.         System.out.println("Engine Oxidizer: " + OCC);
  388.         System.out.println("Engine Fuel: " + FCC);
  389.         String message;
  390.         if (isHyp) {
  391.             message = "Propellant properties: Hypergolic";
  392.         } else {
  393.             message = "Propellant properties: Not Hypergolic";
  394.         }
  395.  
  396.         if ((isCryo) && (isHyp)) {
  397.             message = message + " and cryogenic";
  398.             System.out.println(message);
  399.         } else if ((isCryo) && (!isHyp)) {
  400.             message = message + " but cryogenic";
  401.             System.out.println(message);
  402.         } else if ((!isCryo) && (isHyp)) {
  403.             message = message + " but not cryogenic";
  404.             System.out.println(message);
  405.         } else {
  406.             message = message + " or cryogenic";
  407.             System.out.println(message);
  408.         }
  409.  
  410.         String ThrottleRange;
  411.         int uio96 = 1 + ((int) (Math.random() * 999));
  412.         int uio97 = 1 + ((int) (Math.random() * 11));
  413.         if (uio96 % uio97 == 0) {
  414.             int Throttle_MinV = 1 + ((int) (Math.random() * 99));
  415.             int Throttle_MaxV = 100 + ((int) (Math.random() * 15));
  416.             ThrottleRange = Throttle_MinV + "-" + Throttle_MaxV + "%";
  417.         } else {
  418.             ThrottleRange = "Not Throttleable";
  419.         }
  420.         int gimbalangle = (int) (Math.random() * 15);
  421.         String piss;
  422.         if ((!(gimbalangle >= 1)) || AOOC.equals("80 km+ (Vacuum)")) {
  423.             piss = "None";
  424.         } else {
  425.             piss = gimbalangle + " degrees";
  426.         }
  427.         System.out.println("Altitude Of Operation: " + AOOC);
  428.         System.out.println("Exhaust Nozzle Geometry: " + NTC);
  429.         System.out.println("Engine Gimbal Range: " + piss);
  430.         System.out.println("Engine Injector Design: " + injector);
  431.         System.out.println("Engine Use Case: " + purpose);
  432.         System.out.println("Tank repressurisation Method: " + TRR);
  433.         System.out.println("Nozzle Cooling Mechanism: " + CMC);
  434.         System.out.println("Engine Throttle Range: " + ThrottleRange + '\n');
  435.  
  436.         XWPFDocument docx = new XWPFDocument();
  437.         if (new File(String.valueOf(pathn1)).exists()) {
  438.             FileInputStream jesus = new FileInputStream(String.valueOf(pathn1));
  439.             docx = new XWPFDocument(jesus);
  440.         }
  441.         XWPFParagraph par = docx.createParagraph();
  442.         XWPFRun run = par.createRun();
  443.         run.setFontSize(12);
  444.         run.setBold(true);
  445.         run.setFontFamily("Arial");
  446.         run.setText("Engine Designation: ");
  447.         run.setTextPosition(15);
  448.         XWPFRun run2 = par.createRun();
  449.         run2.setFontSize(12);
  450.         run2.setBold(true);
  451.         run2.setFontFamily("Arial");
  452.         run2.setText(ENN);
  453.         run2.setTextPosition(15);
  454.         run2.addBreak();
  455.         // -----------------------------------------------------------
  456.         XWPFRun run3 = par.createRun();
  457.         run3.setFontSize(10);
  458.         run3.setBold(true);
  459.         run3.setFontFamily("Arial");
  460.         run3.setText("Fuel Flow Cycle: ");
  461.         XWPFRun run4 = par.createRun();
  462.         run4.setFontSize(10);
  463.         run4.setFontFamily("Arial");
  464.         run4.setText(ECC);
  465.         run4.addBreak();
  466.         // -----------------------------------------------------------
  467.         XWPFRun run5 = par.createRun();
  468.         run5.setFontSize(10);
  469.         run5.setBold(true);
  470.         run5.setFontFamily("Arial");
  471.         run5.setText("Engine Oxidizer: ");
  472.         XWPFRun run6 = par.createRun();
  473.         run6.setFontSize(10);
  474.         run6.setFontFamily("Arial");
  475.         run6.setText(OCC);
  476.         run6.addBreak();
  477.         // -----------------------------------------------------------
  478.         XWPFRun run8 = par.createRun();
  479.         run8.setFontSize(10);
  480.         run8.setBold(true);
  481.         run8.setFontFamily("Arial");
  482.         run8.setText("Engine Fuel: ");
  483.         XWPFRun run7 = par.createRun();
  484.         run7.setFontSize(10);
  485.         run7.setFontFamily("Arial");
  486.         run7.setText(FCC);
  487.         run7.addBreak();
  488.         // -----------------------------------------------------------
  489.         XWPFRun run100 = par.createRun();
  490.         run100.setFontSize(10);
  491.         run100.setBold(true);
  492.         run100.setFontFamily("Arial");
  493.         run100.setText(message);
  494.         run100.addBreak();
  495.         // -----------------------------------------------------------
  496.         XWPFRun run9 = par.createRun();
  497.         run9.setFontSize(10);
  498.         run9.setBold(true);
  499.         run9.setFontFamily("Arial");
  500.         run9.setText("Exhaust Nozzle Geometry: ");
  501.         XWPFRun run0 = par.createRun();
  502.         run0.setFontSize(10);
  503.         run0.setFontFamily("Arial");
  504.         run0.setText(NTC);
  505.         run0.addBreak();
  506.         // -----------------------------------------------------------
  507.         XWPFRun run102 = par.createRun();
  508.         run102.setFontSize(10);
  509.         run102.setBold(true);
  510.         run102.setFontFamily("Arial");
  511.         run102.setText("Engine Injector Design: ");
  512.         XWPFRun run103 = par.createRun();
  513.         run103.setFontSize(10);
  514.         run103.setFontFamily("Arial");
  515.         run103.setText(injector);
  516.         run103.addBreak();
  517.         // -----------------------------------------------------------
  518.         XWPFRun run104 = par.createRun();
  519.         run104.setFontSize(10);
  520.         run104.setBold(true);
  521.         run104.setFontFamily("Arial");
  522.         run104.setText("Engine Use Case: ");
  523.         XWPFRun run105 = par.createRun();
  524.         run105.setFontSize(10);
  525.         run105.setFontFamily("Arial");
  526.         run105.setText(purpose);
  527.         run105.addBreak();
  528.         // -----------------------------------------------------------
  529.         XWPFRun run101 = par.createRun();
  530.         run101.setFontSize(10);
  531.         run101.setBold(true);
  532.         run101.setFontFamily("Arial");
  533.         run101.setText("Engine Gimbal Range: ");
  534.         XWPFRun run27 = par.createRun();
  535.         run27.setFontSize(10);
  536.         run27.setFontFamily("Arial");
  537.         run27.setText(gimbalangle + " degrees");
  538.         run27.addBreak();
  539.         // -----------------------------------------------------------
  540.         XWPFRun run10 = par.createRun();
  541.         run10.setFontSize(10);
  542.         run10.setBold(true);
  543.         run10.setFontFamily("Arial");
  544.         run10.setText("Altitude Of Operation: ");
  545.         XWPFRun run23 = par.createRun();
  546.         run23.setFontSize(10);
  547.         run23.setFontFamily("Arial");
  548.         run23.setText(AOOC);
  549.         run23.addBreak();
  550.         // -----------------------------------------------------------
  551.         XWPFRun run11 = par.createRun();
  552.         run11.setFontSize(10);
  553.         run11.setBold(true);
  554.         run11.setFontFamily("Arial");
  555.         run11.setText("Tank repressurisation Method: ");
  556.         XWPFRun run12 = par.createRun();
  557.         run12.setFontSize(10);
  558.         run12.setFontFamily("Arial");
  559.         run12.setText(TRR);
  560.         run12.addBreak();
  561.         // -----------------------------------------------------------
  562.         XWPFRun run13 = par.createRun();
  563.         run13.setFontSize(10);
  564.         run13.setBold(true);
  565.         run13.setFontFamily("Arial");
  566.         run13.setText("Nozzle Cooling Mechanism: ");
  567.         XWPFRun run14 = par.createRun();
  568.         run14.setFontSize(10);
  569.         run14.setFontFamily("Arial");
  570.         run14.setText(CMC);
  571.         run14.addBreak();
  572.         // -----------------------------------------------------------
  573.         XWPFRun run15 = par.createRun();
  574.         run15.setFontSize(10);
  575.         run15.setBold(true);
  576.         run15.setFontFamily("Arial");
  577.         run15.setText("Engine Throttle Range: ");
  578.         XWPFRun run16 = par.createRun();
  579.         run16.setFontSize(10);
  580.         run16.setFontFamily("Arial");
  581.         run16.setText(ThrottleRange);
  582.         run16.addBreak();
  583.         run16.addBreak();
  584.         // -----------------------------------------------------------
  585.         try (FileOutputStream out = new FileOutputStream(String.valueOf(pathn1))) {
  586.             docx.write(out);
  587.         }
  588.     }
  589.     public static void output_nt(String ENN, String ECC, String AOOC, String NCC, String PLC, String RFC, String NTLC,
  590.                                  String TRC, String CMC, String purpose, String react_gen, boolean bimodal, String ERC) throws IOException {
  591.         String lbrk = "======================================================================================================================";
  592.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  593.         System.out.println(lbrk + "\n" + "Engine Designation: " + ENN + "\n");
  594.         System.out.println("Fuel Flow Cycle: " + NCC + " " + ECC);
  595.         System.out.println("Propellant (Remass): " + PLC);
  596.         System.out.println("Reactor Fuel: " + RFC);
  597.         System.out.println("Reactor Generation: " + react_gen);
  598.         System.out.println("Reactor Coolant: " + ERC + " - Xe (Xenon)");
  599.         String bimm1, bimm2, oo1, oo2;
  600.         if (!bimodal) {
  601.             bimm1 = "Engine Bimodality: ";
  602.             oo1 = "Engine isn't bimodal";
  603.             bimm2 = "Engine Electrical Output: ";
  604.             oo2 = "NaN";
  605.         } else {
  606.             bimm1 = "Engine Bimodality: ";
  607.             oo1 = "Engine is bimodal";
  608.             bimm2 = "Engine Electrical Output: ";
  609.             double ops = (1.5 + (Math.random() * 100));
  610.             oo2 = String.format("%.1f", ops);
  611.             oo2 = oo2  + " MW";
  612.         }
  613.         System.out.println(bimm1 + oo1);
  614.         System.out.println(bimm2 + oo2);
  615.         System.out.println("Altitude Of Operation: " + AOOC);
  616.         System.out.println("Exhaust Nozzle Geometry: " + NTLC);
  617.         System.out.println("Engine Use Case: " + purpose);
  618.         System.out.println("Tank repressurisation Method: " + TRC);
  619.         System.out.println("Nozzle Cooling Mechanism: " + CMC + '\n');
  620.  
  621.         XWPFDocument docx = new XWPFDocument();
  622.         if (new File(String.valueOf(pathn1)).exists()) {
  623.             FileInputStream jesus = new FileInputStream(String.valueOf(pathn1));
  624.             docx = new XWPFDocument(jesus);
  625.         }
  626.         XWPFParagraph par = docx.createParagraph();
  627.         XWPFRun run = par.createRun();
  628.         run.setFontSize(12);
  629.         run.setBold(true);
  630.         run.setFontFamily("Arial");
  631.         run.setText("Engine Designation: ");
  632.         run.setTextPosition(15);
  633.         XWPFRun run2 = par.createRun();
  634.         run2.setFontSize(12);
  635.         run2.setBold(true);
  636.         run2.setFontFamily("Arial");
  637.         run2.setText(ENN);
  638.         run2.setTextPosition(15);
  639.         run2.addBreak();
  640.         // -----------------------------------------------------------
  641.         XWPFRun run3 = par.createRun();
  642.         run3.setFontSize(10);
  643.         run3.setBold(true);
  644.         run3.setFontFamily("Arial");
  645.         run3.setText("Fuel Flow Cycle: ");
  646.         XWPFRun run4 = par.createRun();
  647.         run4.setFontSize(10);
  648.         run4.setFontFamily("Arial");
  649.         run4.setText(NCC + " " + ECC);
  650.         run4.addBreak();
  651.         // -----------------------------------------------------------
  652.         XWPFRun run5 = par.createRun();
  653.         run5.setFontSize(10);
  654.         run5.setBold(true);
  655.         run5.setFontFamily("Arial");
  656.         run5.setText("Propellant(Remass): ");
  657.         XWPFRun run6 = par.createRun();
  658.         run6.setFontSize(10);
  659.         run6.setFontFamily("Arial");
  660.         run6.setText(PLC);
  661.         run6.addBreak();
  662.         // -----------------------------------------------------------
  663.         XWPFRun run7 = par.createRun();
  664.         run7.setFontSize(10);
  665.         run7.setBold(true);
  666.         run7.setFontFamily("Arial");
  667.         run7.setText("Reactor Fuel: ");
  668.         XWPFRun run8 = par.createRun();
  669.         run8.setFontSize(10);
  670.         run8.setFontFamily("Arial");
  671.         run8.setText(RFC);
  672.         run8.addBreak();
  673.         // -----------------------------------------------------------
  674.         XWPFRun run767 = par.createRun();
  675.         run767.setFontSize(10);
  676.         run767.setBold(true);
  677.         run767.setFontFamily("Arial");
  678.         run767.setText("Reactor Generation: ");
  679.         XWPFRun run768 = par.createRun();
  680.         run768.setFontSize(10);
  681.         run768.setFontFamily("Arial");
  682.         run768.setText(react_gen);
  683.         run768.addBreak();
  684.         // -----------------------------------------------------------
  685.         XWPFRun run566 = par.createRun();
  686.         run566.setFontSize(10);
  687.         run566.setBold(true);
  688.         run566.setFontFamily("Arial");
  689.         run566.setText("Engine Coolant: ");
  690.         XWPFRun run567 = par.createRun();
  691.         run567.setFontSize(10);
  692.         run567.setFontFamily("Arial");
  693.         run567.setText(ERC + " - Xe (Xenon)");
  694.         run567.addBreak();
  695.         // -----------------------------------------------------------
  696.         XWPFRun run769 = par.createRun();
  697.         run769.setFontSize(10);
  698.         run769.setBold(true);
  699.         run769.setFontFamily("Arial");
  700.         run769.setText(bimm1);
  701.         XWPFRun run770 = par.createRun();
  702.         run770.setFontSize(10);
  703.         run770.setFontFamily("Arial");
  704.         run770.setText(oo1);
  705.         run770.addBreak();
  706.         // -----------------------------------------------------------
  707.         XWPFRun run771 = par.createRun();
  708.         run771.setFontSize(10);
  709.         run771.setBold(true);
  710.         run771.setFontFamily("Arial");
  711.         run771.setText(bimm2);
  712.         XWPFRun run772 = par.createRun();
  713.         run772.setFontSize(10);
  714.         run772.setFontFamily("Arial");
  715.         run772.setText(oo2);
  716.         run772.addBreak();
  717.         // -----------------------------------------------------------
  718.         XWPFRun run9 = par.createRun();
  719.         run9.setFontSize(10);
  720.         run9.setBold(true);
  721.         run9.setFontFamily("Arial");
  722.         run9.setText("Exhaust Nozzle Geometry: ");
  723.         XWPFRun run0 = par.createRun();
  724.         run0.setFontSize(10);
  725.         run0.setFontFamily("Arial");
  726.         run0.setText(NTLC);
  727.         run0.addBreak();
  728.         // -----------------------------------------------------------
  729.         XWPFRun run104 = par.createRun();
  730.         run104.setFontSize(10);
  731.         run104.setBold(true);
  732.         run104.setFontFamily("Arial");
  733.         run104.setText("Engine Use Case: ");
  734.         XWPFRun run105 = par.createRun();
  735.         run105.setFontSize(10);
  736.         run105.setFontFamily("Arial");
  737.         run105.setText(purpose);
  738.         run105.addBreak();
  739.         // -----------------------------------------------------------
  740.         XWPFRun run10 = par.createRun();
  741.         run10.setFontSize(10);
  742.         run10.setBold(true);
  743.         run10.setFontFamily("Arial");
  744.         run10.setText("Altitude Of Operation: ");
  745.         XWPFRun run23 = par.createRun();
  746.         run23.setFontSize(10);
  747.         run23.setFontFamily("Arial");
  748.         run23.setText(AOOC);
  749.         run23.addBreak();
  750.         // ------------------------------------------------------------
  751.         XWPFRun run11 = par.createRun();
  752.         run11.setFontSize(10);
  753.         run11.setBold(true);
  754.         run11.setFontFamily("Arial");
  755.         run11.setText("Tank repressurisation Method: ");
  756.         XWPFRun run12 = par.createRun();
  757.         run12.setFontSize(10);
  758.         run12.setFontFamily("Arial");
  759.         run12.setText(TRC);
  760.         run12.addBreak();
  761.         // -----------------------------------------------------------
  762.         XWPFRun run13 = par.createRun();
  763.         run13.setFontSize(10);
  764.         run13.setBold(true);
  765.         run13.setFontFamily("Arial");
  766.         run13.setText("Nozzle Cooling Mechanism: ");
  767.         XWPFRun run14 = par.createRun();
  768.         run14.setFontSize(10);
  769.         run14.setFontFamily("Arial");
  770.         run14.setText(CMC);
  771.         run14.addBreak();
  772.         run14.addBreak();
  773.         // -----------------------------------------------------------
  774.         try (FileOutputStream out = new FileOutputStream(String.valueOf(pathn1))) {
  775.             docx.write(out);
  776.         }
  777.     }
  778.     public static void output_et(String ENN, String ECC, String AOOC, String PLC, String NTLC, String PGLC, String purpose) throws IOException {
  779.         String lbrk = "======================================================================================================================";
  780.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  781.         System.out.println(lbrk + "\n" + "Engine Designation: " + ENN + "\n");
  782.         System.out.println("Fuel Flow Cycle: " + ECC);
  783.         System.out.println("Propellant(Remass): " + PLC);
  784.         System.out.println("Altitude Of Operation: " + AOOC);
  785.         System.out.println("Exhaust Nozzle Geometry: " + NTLC);
  786.         System.out.println("Engine Use Case: " + purpose);
  787.         System.out.println("Engine Power Source: " + PGLC);
  788.         String pwr = (Math.round((float)(20 + ((int) (Math.random() * 980)))/10))*10 + " kW" + '\n';
  789.         System.out.println("Rated Power Level: " + pwr);
  790.  
  791.         XWPFDocument docx = new XWPFDocument();
  792.         if (new File(String.valueOf(pathn1)).exists()) {
  793.             FileInputStream jesus = new FileInputStream(String.valueOf(pathn1));
  794.             docx = new XWPFDocument(jesus);
  795.         }
  796.         XWPFParagraph par = docx.createParagraph();
  797.         XWPFRun run = par.createRun();
  798.         run.setFontSize(12);
  799.         run.setBold(true);
  800.         run.setFontFamily("Arial");
  801.         run.setText("Engine Designation: ");
  802.         run.setTextPosition(15);
  803.         XWPFRun run2 = par.createRun();
  804.         run2.setFontSize(12);
  805.         run2.setBold(true);
  806.         run2.setFontFamily("Arial");
  807.         run2.setText(ENN);
  808.         run2.setTextPosition(15);
  809.         run2.addBreak();
  810.         // -----------------------------------------------------------
  811.         XWPFRun run3 = par.createRun();
  812.         run3.setFontSize(10);
  813.         run3.setBold(true);
  814.         run3.setFontFamily("Arial");
  815.         run3.setText("Fuel Flow Cycle: ");
  816.         XWPFRun run4 = par.createRun();
  817.         run4.setFontSize(10);
  818.         run4.setFontFamily("Arial");
  819.         run4.setText(ECC);
  820.         run4.addBreak();
  821.         // -----------------------------------------------------------
  822.         XWPFRun run5 = par.createRun();
  823.         run5.setFontSize(10);
  824.         run5.setBold(true);
  825.         run5.setFontFamily("Arial");
  826.         run5.setText("Propellant(Remass): ");
  827.         XWPFRun run6 = par.createRun();
  828.         run6.setFontSize(10);
  829.         run6.setFontFamily("Arial");
  830.         run6.setText(PLC);
  831.         run6.addBreak();
  832.         // -----------------------------------------------------------
  833.         XWPFRun run9 = par.createRun();
  834.         run9.setFontSize(10);
  835.         run9.setBold(true);
  836.         run9.setFontFamily("Arial");
  837.         run9.setText("Exhaust Nozzle Geometry: ");
  838.         XWPFRun run0 = par.createRun();
  839.         run0.setFontSize(10);
  840.         run0.setFontFamily("Arial");
  841.         run0.setText(NTLC);
  842.         run0.addBreak();
  843.         // -----------------------------------------------------------
  844.         XWPFRun run104 = par.createRun();
  845.         run104.setFontSize(10);
  846.         run104.setBold(true);
  847.         run104.setFontFamily("Arial");
  848.         run104.setText("Engine Use Case: ");
  849.         XWPFRun run105 = par.createRun();
  850.         run105.setFontSize(10);
  851.         run105.setFontFamily("Arial");
  852.         run105.setText(purpose);
  853.         run105.addBreak();
  854.         // -----------------------------------------------------------
  855.         XWPFRun run10 = par.createRun();
  856.         run10.setFontSize(10);
  857.         run10.setBold(true);
  858.         run10.setFontFamily("Arial");
  859.         run10.setText("Altitude Of Operation: ");
  860.         XWPFRun run23 = par.createRun();
  861.         run23.setFontSize(10);
  862.         run23.setFontFamily("Arial");
  863.         run23.setText(AOOC);
  864.         run23.addBreak();
  865.         // -----------------------------------------------------------
  866.         XWPFRun run11 = par.createRun();
  867.         run11.setFontSize(10);
  868.         run11.setBold(true);
  869.         run11.setFontFamily("Arial");
  870.         run11.setText("Engine Power Source: ");
  871.         XWPFRun run12 = par.createRun();
  872.         run12.setFontSize(10);
  873.         run12.setFontFamily("Arial");
  874.         run12.setText(PGLC);
  875.         run12.addBreak();
  876.         // -----------------------------------------------------------
  877.         XWPFRun run13 = par.createRun();
  878.         run13.setFontSize(10);
  879.         run13.setBold(true);
  880.         run13.setFontFamily("Arial");
  881.         run13.setText("Rated Power Level: ");
  882.         XWPFRun run14 = par.createRun();
  883.         run14.setFontSize(10);
  884.         run14.setFontFamily("Arial");
  885.         run14.setText(pwr);
  886.         run14.addBreak();
  887.         run14.addBreak();
  888.         // -----------------------------------------------------------
  889.         try (FileOutputStream out = new FileOutputStream(String.valueOf(pathn1))) {
  890.             docx.write(out);
  891.         }
  892.     }
  893.     public static void output_def(String ENN, String ECC, String OCC, String FCC, String AOOC, String NTC, String TRC, String CMC,
  894.                                   boolean isHyp, boolean isCryo, String purpose, String injector) throws IOException {
  895.         String lbrk = "======================================================================================================================";
  896.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  897.         System.out.println(lbrk + "\n" + "Engine Designation: " + ENN + "\n");
  898.         System.out.println("Fuel Flow Cycle: " + ECC);
  899.         System.out.println("Engine Oxidizer: " + OCC);
  900.         System.out.println("Engine Fuel: " + FCC);
  901.         String message;
  902.         if (isHyp) {
  903.             message = "Propellant properties: Hypergolic";
  904.         } else {
  905.             message = "Propellant properties: Not Hypergolic";
  906.         }
  907.  
  908.         if ((isCryo) && (isHyp)) {
  909.             message = message + " and cryogenic";
  910.             System.out.println(message);
  911.         } else if ((isCryo) && (!isHyp)) {
  912.             message = message + " but cryogenic";
  913.             System.out.println(message);
  914.         } else if ((!isCryo) && (isHyp)) {
  915.             message = message + " but not cryogenic";
  916.             System.out.println(message);
  917.         } else {
  918.             message = message + " or cryogenic";
  919.             System.out.println(message);
  920.         }
  921.         String ThrottleRange;
  922.         int uio96 = 1 + ((int) (Math.random() * 999));
  923.         int uio97 = 1 + ((int) (Math.random() * 11));
  924.         if (uio96 % uio97 == 0) {
  925.             int Throttle_MinV = 20 + ((int) (Math.random() * 80));
  926.             int Throttle_MaxV = 100 + ((int) (Math.random() * 15));
  927.             ThrottleRange = Throttle_MinV + "-" + Throttle_MaxV + "%";
  928.         } else {
  929.             ThrottleRange = "Not Throttleable";
  930.         }
  931.         int gimbalangle = (int) (Math.random() * 15);
  932.         String piss;
  933.         if ((!(gimbalangle >= 1)) || AOOC.equals("80 km+ (Vacuum)")) {
  934.             piss = "None";
  935.         } else {
  936.             piss = gimbalangle + " degrees";
  937.         }
  938.         System.out.println("Altitude Of Operation: " + AOOC);
  939.         System.out.println("Exhaust Nozzle Geometry: " + NTC);
  940.         System.out.println("Engine Gimbal Range: " + piss);
  941.         System.out.println("Engine Injector Design: " + injector);
  942.         System.out.println("Engine Use Case: " + purpose);
  943.         System.out.println("Tank repressurisation Method: " + TRC);
  944.         System.out.println("Nozzle Cooling Mechanism: " + CMC);
  945.         System.out.println("Engine Throttle Range: " + ThrottleRange + '\n');
  946.  
  947.         XWPFDocument docx = new XWPFDocument();
  948.         if (new File(String.valueOf(pathn1)).exists()) {
  949.             docx = new XWPFDocument(new FileInputStream(String.valueOf(pathn1)));
  950.         }
  951.         XWPFParagraph par = docx.createParagraph();
  952.         XWPFRun run = par.createRun();
  953.         run.setFontSize(12);
  954.         run.setBold(true);
  955.         run.setFontFamily("Arial");
  956.         run.setText("Engine Designation: ");
  957.         run.setTextPosition(15);
  958.         XWPFRun run2 = par.createRun();
  959.         run2.setFontSize(12);
  960.         run2.setBold(true);
  961.         run2.setFontFamily("Arial");
  962.         run2.setText(ENN);
  963.         run2.setTextPosition(15);
  964.         run2.addBreak();
  965.         // -----------------------------------------------------------
  966.         XWPFRun run3 = par.createRun();
  967.         run3.setFontSize(10);
  968.         run3.setBold(true);
  969.         run3.setFontFamily("Arial");
  970.         run3.setText("Fuel Flow Cycle: ");
  971.         XWPFRun run4 = par.createRun();
  972.         run4.setFontSize(10);
  973.         run4.setFontFamily("Arial");
  974.         run4.setText(ECC);
  975.         run4.addBreak();
  976.         // -----------------------------------------------------------
  977.         XWPFRun run5 = par.createRun();
  978.         run5.setFontSize(10);
  979.         run5.setBold(true);
  980.         run5.setFontFamily("Arial");
  981.         run5.setText("Engine Oxidizer: ");
  982.         XWPFRun run6 = par.createRun();
  983.         run6.setFontSize(10);
  984.         run6.setFontFamily("Arial");
  985.         run6.setText(OCC);
  986.         run6.addBreak();
  987.         // -----------------------------------------------------------
  988.         XWPFRun run8 = par.createRun();
  989.         run8.setFontSize(10);
  990.         run8.setBold(true);
  991.         run8.setFontFamily("Arial");
  992.         run8.setText("Engine Fuel: ");
  993.         XWPFRun run7 = par.createRun();
  994.         run7.setFontSize(10);
  995.         run7.setFontFamily("Arial");
  996.         run7.setText(FCC);
  997.         run7.addBreak();
  998.         // -----------------------------------------------------------
  999.         XWPFRun run100 = par.createRun();
  1000.         run100.setFontSize(10);
  1001.         run100.setBold(true);
  1002.         run100.setFontFamily("Arial");
  1003.         run100.setText(message);
  1004.         run100.addBreak();
  1005.         // -----------------------------------------------------------
  1006.         XWPFRun run9 = par.createRun();
  1007.         run9.setFontSize(10);
  1008.         run9.setBold(true);
  1009.         run9.setFontFamily("Arial");
  1010.         run9.setText("Exhaust Nozzle Geometry: ");
  1011.         XWPFRun run0 = par.createRun();
  1012.         run0.setFontSize(10);
  1013.         run0.setFontFamily("Arial");
  1014.         run0.setText(NTC);
  1015.         run0.addBreak();
  1016.         // -----------------------------------------------------------
  1017.         XWPFRun run101 = par.createRun();
  1018.         run101.setFontSize(10);
  1019.         run101.setBold(true);
  1020.         run101.setFontFamily("Arial");
  1021.         run101.setText("Engine Gimbal Range: ");
  1022.         XWPFRun run27 = par.createRun();
  1023.         run27.setFontSize(10);
  1024.         run27.setFontFamily("Arial");
  1025.         run27.setText(piss);
  1026.         run27.addBreak();
  1027.         // -----------------------------------------------------------
  1028.         XWPFRun run102 = par.createRun();
  1029.         run102.setFontSize(10);
  1030.         run102.setBold(true);
  1031.         run102.setFontFamily("Arial");
  1032.         run102.setText("Engine Injector Design: ");
  1033.         XWPFRun run103 = par.createRun();
  1034.         run103.setFontSize(10);
  1035.         run103.setFontFamily("Arial");
  1036.         run103.setText(injector);
  1037.         run103.addBreak();
  1038.         // -----------------------------------------------------------
  1039.         XWPFRun run104 = par.createRun();
  1040.         run104.setFontSize(10);
  1041.         run104.setBold(true);
  1042.         run104.setFontFamily("Arial");
  1043.         run104.setText("Engine Use Case: ");
  1044.         XWPFRun run105 = par.createRun();
  1045.         run105.setFontSize(10);
  1046.         run105.setFontFamily("Arial");
  1047.         run105.setText(purpose);
  1048.         run105.addBreak();
  1049.         // -----------------------------------------------------------
  1050.         XWPFRun run10 = par.createRun();
  1051.         run10.setFontSize(10);
  1052.         run10.setBold(true);
  1053.         run10.setFontFamily("Arial");
  1054.         run10.setText("Altitude Of Operation: ");
  1055.         XWPFRun run23 = par.createRun();
  1056.         run23.setFontSize(10);
  1057.         run23.setFontFamily("Arial");
  1058.         run23.setText(AOOC);
  1059.         run23.addBreak();
  1060.         // -----------------------------------------------------------
  1061.         XWPFRun run11 = par.createRun();
  1062.         run11.setFontSize(10);
  1063.         run11.setBold(true);
  1064.         run11.setFontFamily("Arial");
  1065.         run11.setText("Tank repressurisation Method: ");
  1066.         XWPFRun run12 = par.createRun();
  1067.         run12.setFontSize(10);
  1068.         run12.setFontFamily("Arial");
  1069.         run12.setText(TRC);
  1070.         run12.addBreak();
  1071.         // -----------------------------------------------------------
  1072.         XWPFRun run13 = par.createRun();
  1073.         run13.setFontSize(10);
  1074.         run13.setBold(true);
  1075.         run13.setFontFamily("Arial");
  1076.         run13.setText("Nozzle Cooling Mechanism: ");
  1077.         XWPFRun run14 = par.createRun();
  1078.         run14.setFontSize(10);
  1079.         run14.setFontFamily("Arial");
  1080.         run14.setText(CMC);
  1081.         run14.addBreak();
  1082.         // -----------------------------------------------------------
  1083.         XWPFRun run15 = par.createRun();
  1084.         run15.setFontSize(10);
  1085.         run15.setBold(true);
  1086.         run15.setFontFamily("Arial");
  1087.         run15.setText("Engine Throttle Range: ");
  1088.         XWPFRun run16 = par.createRun();
  1089.         run16.setFontSize(10);
  1090.         run16.setFontFamily("Arial");
  1091.         run16.setText(ThrottleRange);
  1092.         run16.addBreak();
  1093.         run16.addBreak();
  1094.         // -----------------------------------------------------------
  1095.         try (FileOutputStream out = new FileOutputStream(String.valueOf(pathn1))) {
  1096.             docx.write(out);
  1097.         }
  1098.     }
  1099.     public static boolean isHypergolic (String OCC, String FCC) {
  1100.         boolean isHypergolic = false;
  1101.         switch (OCC) {
  1102.             case "N2O4 (Nitrogen Tetroxide)" -> {
  1103.                 switch (FCC) {
  1104.                     case "50% CH6N2 + 50% N2H4 (Aerosine-50)", "75% CH6N2 + 25% N2H4 (UH-25)", "C6H5NH2 (Aniline)" ,
  1105.                             "C2H8N2 (UnsymmetricalDimethylHydrazine)", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)" ->{
  1106.                         isHypergolic = true;
  1107.                     } default -> {
  1108.                         isHypergolic = false;
  1109.                     }
  1110.                 }
  1111.             } case "H2O2 (Hydrogen Peroxide) 95%", "H2O2 (Hydrogen Peroxide) 85%", "O2 (Oxygen)" -> {
  1112.                 isHypergolic = false;
  1113.             } case "O3 (Ozone)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)", "ClF3 (Chlorine Trifluoride)", "ClF5 (Chlorine Pentafluoride)" -> {
  1114.                 isHypergolic = true;
  1115.             } case "AK20F: 80% HNO3 + 20% N2O4 (Nitric Acid)", "AK20I: 80% HNO3 + 20% N2O4 (Nitric Acid)",
  1116.                     "AK20K: 80% HNO3 + 20% N2O4 (Nitric Acid)", "AK27I: 73% HNO3 + 27% N2O4 (Nitric Acid)",
  1117.                     "AK27P: 73% HNO3 + 27% N2O4 (Nitric Acid)" -> {
  1118.                 switch (FCC) {
  1119.                     case "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)" ->{
  1120.                         isHypergolic = true;
  1121.                     } default -> {
  1122.                         isHypergolic = false;
  1123.                     }
  1124.                 }
  1125.             }
  1126.         }
  1127.         return isHypergolic;
  1128.     }
  1129.     public static void main(String[] args) throws IOException {
  1130.         long start = System.currentTimeMillis();
  1131.         File org = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles");
  1132.         org.mkdir();
  1133.         // -------------------------------------
  1134.         File pathn1 = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/ofb_rex.docx");
  1135.         if (!(new File(String.valueOf(pathn1)).exists())) {
  1136.             XWPFDocument docx1 = new XWPFDocument();
  1137.             XWPFParagraph par1 = docx1.createParagraph();
  1138.             par1.setAlignment(ParagraphAlignment.CENTER);
  1139.             XWPFRun run1 = par1.createRun();
  1140.             run1.setText("Rocket Engine Generator");
  1141.             run1.setFontFamily("Arial");
  1142.             run1.setBold(true);
  1143.             run1.setFontSize(33);
  1144.             run1.setTextPosition(60);
  1145.             // -----------------------------------------------------------------------------
  1146.             XWPFParagraph par2 = docx1.createParagraph();
  1147.             par2.setAlignment(ParagraphAlignment.RIGHT);
  1148.             XWPFRun run2 = par2.createRun();
  1149.             LocalDateTime date = LocalDateTime.now();
  1150.             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy, HH:mm:ss");
  1151.             String dt = date.format(formatter);
  1152.             run2.setText("Created on: " + dt);
  1153.             run2.setFontFamily("Arial");
  1154.             run2.setBold(true);
  1155.             run2.setFontSize(10);
  1156.             run2.setTextPosition(75);
  1157.             // ----------------------------------------------------------------------------------------------------
  1158.             try (FileOutputStream out1 = new FileOutputStream(String.valueOf(pathn1))) {
  1159.                 docx1.write(out1);
  1160.                 out1.close();
  1161.                 docx1.close();
  1162.             }
  1163.         }
  1164.         System.out.println("Welcome to the Advanced Rocket Engine Generator!" + '\n');
  1165.         Scanner scanner = new Scanner(System.in);
  1166.         String repeatCommand = "y";
  1167.         int y = 0;
  1168.         int h = 0;
  1169.         ArrayList<Double> yi = new ArrayList<>(100);
  1170.         while (!repeatCommand.equals("N")) {
  1171.             if ((new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/Data/ofb_rex[Full]100.docx")).exists()) repeatCommand = "N";
  1172.             System.out.println("Do you want to generate a new engine? [Y/N]");
  1173.             System.out.print("> ");
  1174.             // repeatCommand = scanner.next();
  1175.             Path onlyfans = Path.of(String.valueOf(pathn1));
  1176.             if (repeatCommand.equalsIgnoreCase("N") || repeatCommand.equalsIgnoreCase("NO")) {
  1177.                 float sum = 0;
  1178.                 for (int u = 0; u < (yi.size() - 1); u++) sum = (float) (sum + yi.get(u));
  1179.                 long end = System.currentTimeMillis();
  1180.                 float timen = (float)(end - start)/1000;
  1181.                 int r = yi.size();
  1182.                 if (r <= 1) {
  1183.                     System.out.println('\n' + "Average amount of bytes per engine: " + (pathn1.length()/y) + " bytes");
  1184.                 } else {
  1185.                     System.out.println('\n' + "Average amount of bytes per engine: " + (sum / yi.size()) + " bytes");
  1186.                 }
  1187.                 System.out.println("Amount of engines per file: " + y + " engines");
  1188.                 if (timen < 60) {
  1189.                     System.out.println("Total run time: " + timen + " secs");
  1190.                 } else if (timen/60 < 2) {
  1191.                     System.out.println("Total run time: " + (int)Math.floor(timen/60) + " min " + Math.round(timen%60) + " secs");
  1192.                 } else {
  1193.                     System.out.println("Total run time: " + (int)Math.floor(timen/60) + " mins " + Math.round(timen%60) + " secs");
  1194.                 }
  1195.                 System.out.println("Rate of engine generation: " + h/timen + " engines/second");
  1196.                 System.out.println("Number of engines generated: " + h);
  1197.                 System.exit(0);
  1198.             } else if (repeatCommand.equalsIgnoreCase("Y") || repeatCommand.equalsIgnoreCase("YES")) {
  1199.                 double sizeInbytes = pathn1.length();
  1200.                 double sizeInKilobytes = (sizeInbytes / 1024);
  1201.                 if (sizeInKilobytes >= 20) {
  1202.                     yi.add(sizeInbytes/y);
  1203.                     File logM = new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/Data");
  1204.                     logM.mkdir();
  1205.                     // -------------------------------------------------------------------------------------------------
  1206.                     if ((new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/Data/ofb_rex[Full].docx")).exists()) {
  1207.                         int i;
  1208.                         y = 0;
  1209.                         int x = 2;
  1210.                         for (i = 1; i < x; i++) {
  1211.                             if ((new File("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/Data/ofb_rex[Full]" + i + ".docx")).exists()) {
  1212.                                 x++;
  1213.                             } else {
  1214.                                 Files.copy(onlyfans, Paths.get("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/Data/ofb_rex[Full]" + i + ".docx"));
  1215.                             }
  1216.                         }
  1217.                     } else {
  1218.                         Path logPF = Paths.get("C:/Users/Public/Operational_Functional_Block/Java_projects/src/GeneratedFiles/Data/ofb_rex[Full].docx");
  1219.                         Files.copy(onlyfans, logPF);
  1220.                     }
  1221.                     XWPFDocument docx1 = new XWPFDocument();
  1222.                     XWPFParagraph par1 = docx1.createParagraph();
  1223.                     par1.setAlignment(ParagraphAlignment.CENTER);
  1224.                     XWPFRun run1 = par1.createRun();
  1225.                     run1.setText("Rocket Engine Generator");
  1226.                     run1.setFontFamily("Arial");
  1227.                     run1.setBold(true);
  1228.                     run1.setFontSize(33);
  1229.                     run1.setTextPosition(60);
  1230.                     // -----------------------------------------------------------------------------
  1231.                     XWPFParagraph par2 = docx1.createParagraph();
  1232.                     par2.setAlignment(ParagraphAlignment.RIGHT);
  1233.                     XWPFRun run2 = par2.createRun();
  1234.                     LocalDateTime date = LocalDateTime.now();
  1235.                     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy, HH:mm:ss");
  1236.                     String dt = date.format(formatter);
  1237.                     run2.setText("Created on: " + dt);
  1238.                     run2.setFontFamily("Arial");
  1239.                     run2.setBold(true);
  1240.                     run2.setFontSize(10);
  1241.                     run2.setTextPosition(60);
  1242.                     // ----------------------------------------------------------------------------------------------------
  1243.                     FileOutputStream out1 = new FileOutputStream(String.valueOf(pathn1));
  1244.                     docx1.write(out1);
  1245.                     out1.close();
  1246.                     docx1.close();
  1247.                 }
  1248.                 String[] engine_Name1 = {"\"Argosy\"", "\"Galileo\"", "\"Callisto\"", "\"Nauka\"", "\"Insider\"", "\"Granis\"",
  1249.                         "\"Rassvet\"", "\"Zvezda\"", "\"Zarya\"", "\"Orion\"", "\"Ares\"", "\"Delta\"", "\"Atlas\"", "\"Dreadnought\"",
  1250.                         "\"Daedalus\"", "\"Baltia\"", "\"Dizhou\"", "\"Hermes\"", "\"Icarus\"", "\"Connestoga\"", "\"Yupiter\"",
  1251.                         "\"Emphasis\"", "\"Olympus\"", "\"Kronos\"", "\"Helios\"", "\"Alabaster\"", "\"Falcon\"", "\"Saturn\"",
  1252.                         "\"Eagle\"", "\"Endeavour\"", "\"Atlantis\"", "\"Cygnus\"", "\"Apollo\"", "\"Horizon\"", "\"Bulava\"",
  1253.                         "\"Pioneer\"", "\"Voyager\"", "\"Exploration\"", "\"Expedition\"", "\"Vulcan\"", "\"Vysota\"",
  1254.                         "\"Federation\"", "\"Sojourner\"", "\"Nautilus\"", "\"Jubilance\"", "\"Lagrange\"",  "\"Volna\"",
  1255.                         "\"Prometheus\"", "\"Tellus\"", "\"Alpha\"", "\"Delta\"", "\"Proton\"", "\"Neutron\"", "\"Topol\"",
  1256.                         "\"Electron\"", "\"Pluton\"", "\"Poodle\"", "\"Skipper\"", "\"Convair\"", "\"Nexus\"", "\"Oko\"",
  1257.                         "\"Vector\"", "\"Terrier\"", "\"Rhino\"", "\"Panther\"", "\"Goliath\"", "\"Juno\"", "\"Shrimp\"",
  1258.                         "\"Thumper\"", "\"Mainsail\"", "\"Dart\"", "\"Twitch\"", "\"Stratus\"", "\"Oscar\"", "\"Kosmos\"",
  1259.                         "\"Sentinel\"", "\"Pegasus\"", "\"Kelus\"", "\"Starshot\"", "\"Vernor\"", "\"Mammoth\"", "\"Liberty\"",
  1260.                         "\"Douglas\"", "\"Heimdall\"", "\"Dynetics\"", "\"Pathfinder\"", "\"Horizon\"", "\"Poisk\"",
  1261.                         "\"Pirs\"", "\"Philae\"", "\"Mariner\"", "\"Centaur\"", "\"Orel\"", "\"Pratt\"", "\"Hyperion\"",
  1262.                         "\"Sagittarius\"", "\"Apollo\"", "\"Bryton\"", "\"Volga\"", "\"Harmony\"", "\"Cassini\"", "\"Contour\"",
  1263.                         "\"Altair\"", "\"Dream\"", "\"Baikal\"", "\"Zenith\"", "\"Urpinod\"", "\"Bernal\"", "\"Condor\"",
  1264.                         "\"Athena\"", "\"Astra\"", "\"Aerolus\"", "\"Rombus\"", "\"Lunokhod\"", "\"Fregat\"", "\"Glonass\"",
  1265.                         "\"Dragon\"", "\"Salyut\"", "\"Starliner\"", "\"Skylab\"", "\"Briz\"", "\"Colombus\"", "\"Rosetta\"",
  1266.                         "\"Redstone\"", "\"Antares\"", "\"Philae\"", "\"Prospero\"", "\"Leonardo\"", "\"Parker\"", "\"Dyson\"",
  1267.                         "\"Oberon\"", "\"DragonFly\"", "\"Energia\"", "\"Buran\"", "\"Urgan\"", "\"Angara\"", "\"Vostok\"",
  1268.                         "\"Voskhod\"", "\"Shenzhou\"", "\"Ingenuity\"", "\"Oberon\"", "\"Discovery\"", "\"Horizon\"", "\"Visionalis\"",
  1269.                         "\"Cerasus\"", "\"Progress\"", "\"Unity\"", "\"Surveyor\"", "\"Prospector\"", "\"Ikar\"", "\"Redstone\"",
  1270.                         "\"Lapis\"", "\"Caesius\"", "\"Iridium\"", "\"Daedlus\"", "\"Aelita\"", "\"Beta\"", "\"Gamma\"",
  1271.                         "\"Alpha\"", "\"Epsilon\"", "\"Omega\"", "\"Discoverer\"", "\"Explorer\"", "\"Hornet\"", "\"Serenity\"",
  1272.                         "\"Ariane\"", "\"Hornet\"", "\"Asimov\"", "\"Pegasus\"", "\"Venture\"", "\"Antares\"", "\"Star\"",
  1273.                         "\"Archimedes\"", "\"Hera\"", "\"Iris\"", "\"Titan\"", "\"Artemis\"", "\"Phoenix\"", "\"Ross\"",
  1274.                         "\"Sarychev\"", "\"Nemesis\"", "\"Heimdall\"", "\"Sturt\"", "\"Odin\"", "\"Aethelred\"", "\"Vesper\"",
  1275.                         "\"Aces\"", "\"Argon\"", "\"Olympia\"", "\"Perseus\"", "\"Chyron\"", "\"Proxima\"", "\"Arminus\"",
  1276.                         "\"Destiny\"", "\"Valient\"", "\"FireFly\"", "\"Obsidian\"", "\"Leviathan\"", "\"Magellan\"", "\"Voyager\"",
  1277.                         "\"Mariner\"", "\"Joist\"", "\"Crimson\"", "\"Fortune\"", "\"Vanguard\"", "\"Aurora\"", "\"Ulysses\"",
  1278.                         "\"Crusader\"", "\"Python\"", "\"Kuiper\"", "\"Insurgent\"", "\"Pathfinder\"", "\"Kvant\"", "\"Spektr\"",
  1279.                         "\"Cassini\"", "\"Zemlya\"", "\"Dawn\"", "\"Kepler\"", "\"Parom\"", "\"Elektron\"", "\"Aeonian\"",
  1280.                         "\"Node\"", "\"Burya\"", "\"Voyager\"", "\"Ceres\"", "\"Bayern\"", "\"Chasovoy\"", "\"Copernicus\"",
  1281.                         "\"Quaoar\"", "\"Minotaur\"", "\"Agena\"", "\"Thor\"", "\"Vega\"", "\"Scout\"", "\"Coeus\"", "\"Minerva\"",
  1282.                         "\"Kratos\"", "\"Neith\"", "\"Omoikane\"", "\"Gayamun\"", "\"Odin\"", "\"Kronos\"", "\"Hope\"", "\"Polet\"",
  1283.                         "\"Polyot\"", "\"Sputnik\"", "\"Clementine\"", "\"Sojourner\"", "\"Ingenuity\"", "\"Perseverence\"",
  1284.                         "\"Onatchesko\"", "\"Atlantis\"", "\"Tsyklon\"", "\"Zenit\"", "\"Almaz\"", "\"Soyuz\"", "\"Molniya\"",
  1285.                         "\"Oreol\"", "\"Yantar\"", "\"Foton\"", "\"Meteor\"", "\"Ekran\"", "\"Strela\"", "\"Bion\"", "\"Piroda\"",
  1286.                         "\"Salyut\"", "\"Strela\"", "\"Luch\"", "\"Potok\"", "\"Prognoz\"", "\"Orlets\"", "\"Etalon\"", "\"Astron\"",
  1287.                         "\"Efir\"", "\"Kometa\"", "\"Fram\"", "\"Zemlya\"", "\"Gorizont\"", "\"Arkon\"", "\"Gamma\"", "\"Ekspress\"",
  1288.                         "\"Gonets\"", "\"Taifun\"", "\"Okean\"", "\"Reflektor\"", "\"Kolibr\"", "\"Sever\"", "\"Comet\"",
  1289.                         "\"Roton\"", "\"Solaris\"", "\"Altaris\"", "\"Ithacus\"", "\"Dekto\"", "\"Dream\"", "\"Impuls\"",
  1290.                         "\"Vremya\"", "\"Portal\"", "\"Zodiak\"", "\"Slava\"", "\"Inertsiya\"", "\"Stimuls\"", "\"Ambross\"",
  1291.                         "\"Amal\"", "\"Thea\"", "\"Orphelia\"", "\"Polyot\"", "\"Mudrost\"", "\"Carrack\"", "\"Artak\"",
  1292.                         "\"Questar\"", "\"Artyom\"", "\"Tsyclon\"", "\"Ascension\"", "\"Tenacity\"", "\"Contour\"", "\"Zephyr\"",
  1293.                         "\"Atlanta\"", "\"Polaris\"", "\"Aeolus\"", "\"Mayak\"", "\"Pamir\"", "\"Taimyr\"", "\"Cheget\"", "\"Sirius\"",
  1294.                         "\"Uragan\"", "\"Agat\"", "\"Skiph\"", "\"Kristall\"", "\"Altair\"", "\"Uran\"", "\"Ingul\"", "\"Carat\"",
  1295.                         "\"Pulsar\"", "\"Titan\"", "\"Eridanus\"", "\"Parus\"", "\"Cepheus\"", "\"Varagian\"", "\"Olympus\"",
  1296.                         "\"Tarkhaniy\"", "\"Astraeus\"", "\"Antares\"", "\"Kazbek\"", "\"Burlak\"", "\"Borei\"", "\"Favor\"",
  1297.                         "\"Rubin\"", "\"Almaz\"", "\"Granit\"", "\"Ruby\"", "\"Sokol\"", "\"Argon\"", "\"Kavkaz\"", "\"Ural\"",
  1298.                         "\"Berkut\"", "\"Dunay\"", "\"Yastreb\"", "\"Terek\"", "\"Radon\"", "\"Taymyr\"", "\"Pamir\"", "\"Photon\"",
  1299.                         "\"Elbrus\"", "\"Isayiev\"", "\"Shmel\"", "\"Kobra\"", "\"Shturn\"", "\"Metis\"", "\"Malyutka\"", "\"Fleyta\"",
  1300.                         "\"Konkurs\"", "\"Bastion\"", "\"Svir\"", "\"Ataka\"", "\"Vodopad\"", "\"Veter\"", "\"Vyuga\"", "\"Vulga\"",
  1301.                         "\"Tochka\"", "\"Oka\"", "\"Dvina\"", "\"Almaz\"", "\"Araks\"", "\"Kanopus\"", "\"Kliper\"", "\"Kobalt\"",
  1302.                         "\"Siluet\"", "\"Kondor\"", "\"Lotos\"", "\"Luch\"", "\"Mir\"", "\"Neman\"", "\"Obzor\"", "\"Okean\"",
  1303.                         "\"Oktan\"", "\"Orlets\"", "\"Poisk\"", "\"Potok\"", "\"Pirs\"", "\"Prognoz\"", "\"Resurs\"", "\"Rodnik\"",
  1304.                         "\"Romb\"", "\"Kapustin\"", "\"Oplot\"", "\"Tsygan\"", "\"Teplokhod\"", "\"Sokosha\"", "\"Rubezh\"",
  1305.                         "\"Zircon\"", "\"Moskva\"", "\"Tryol\"", "\"Ustinov\"", "\"Belyayev\"", "\"Novorod\"", "\"Argos\"",
  1306.                         "\"Nerthus\"", "\"Janus\"", "\"Hephaestus\"", "\"Themis\"", "\"Chronos\"", "\"Tethys\"", "\"Minos\"",
  1307.                         "\"Autumn\"", "\"Resilience\"", "\"Aelita\"", "\"Rheus\"", "\"Solntspek\"", "\"Spitzer\"", "\"Cartago\"",
  1308.                         "\"Melibea\"", "\"Spartacus\"", "\"Pulsar\"", "\"Fusion\"", "\"Reliant\"", "\"Thunder\"", "\"Novo\"",
  1309.                         "\"Panthera\"", "\"Nematoda\"", "\"Anelida\"", "\"Chordata\"", "\"Tetrapoda\"", "\"Cyclero\"", "\"Carrier\"",
  1310.                         "\"Gaia\"", "\"Irtysh\"", "\"Wyvern\"", "\"Tarsier\"", "\"Alpina\"", "\"Espadon\"", "\"Parlos\"", "\"Nebula\"",
  1311.                         "\"Lazarus\"", "\"Rufus\"", "\"Dornier\"", "\"Argus\"", "\"Kybau\"", "\"Kalau\"", "\"Chasvoy\"", "\"Zephyr\"",
  1312.                         "\"Temny\"", "\"Gorizont\"", "\"Yars\"", "\"Krugazor\"", "\"Soprotivlenye\"", "\"Shtil\"", "\"Layner\"",
  1313.                         "\"Arthropoda\"", "\"Hexapoda\"", "\"Crustacea\"", "\"Tardigrada\"", "\"Mollusca\"", "\"Annelida\"",
  1314.                         "\"Bryozoa\"", "\"Rotifera", "\"Brachiopoda\"", "\"Echinodermata\"", "\"Hemichordata\"", "\"Cnidaria\"",
  1315.                         "\"Staurozoa\"", "\"Hydrozoa\"", "\"Porifera", "\"Placozoa\"", "\"Craniata\"", "\"Tunicata\"", "\"Conodonta\"",
  1316.                         "\"Tetrapoda\"", "\"Amniota\"", "\"Synapsida\"", "\"Sauropsida", "\"Mammalia\"", "\"Sarcodina\"", "\"Aspin\"",
  1317.                         "\"Sporozoa\"", "\"Ciliata\"", "\"Filosa\"", "\"Toxoplasma\"", "\"Plasmodium\"", "\"Cryptomonada",
  1318.                         "\"Heterokonta\"", "\"Haptophyta\"", "\"Cercozoa\"", "\"Heliozoa\"", "\"Anapsida\"", "\"Aves\"", "\"Peewee\""};
  1319.                 String[] engine_Cycle = {"Gas Generator", "Staged Combustion (Oxidizer Rich)", "Staged Combustion (Fuel Rich)",
  1320.                         "Expander (Open/Bleed)", "Expander (Closed)", "Dual Expander (Open/Bleed)", "Dual Expander (Closed)",
  1321.                         "Pressure-Fed", "Full Flow Staged", "Electric Pump Fed", "Combustion Tap Off", "Monopropellant (Cold Gas)",
  1322.                         "Monopropellant (Decomposition)", "Gas Core", "Liquid Core", "Solid Core", "Pulsed Nuclear", "Pebble-Bed Core",
  1323.                         "Nuclear SaltWater", "MagnetoPlasmaDynamic Thruster", "Hall Effect Thruster", "Gridded Ion Thruster",
  1324.                         "Colloid Thruster", "Variable Specific Impulse Magnetoplasma Rocket (VASIMR)"};
  1325.                 String[] propellant_List1 = {"H2O2 (Hydrogen Peroxide)", "N2H4 (Hydrazine)", "NH2OH+NO3 (Hydroxylammonium nitrate)",
  1326.                         "65% NH4N(NO2)2 (Ammonium Dinitramide) + 35% CH3OH(Methanol)"};
  1327.                 String[] propellant_List2 = {"Nitrogen (N2)", "Helium (He)", "Carbon Dioxide (CO2)", "Ammonia (NH3)", "Hydrogen (H2)",
  1328.                         "Methane (CH4)"};
  1329.                 String[] propellant_List3 = {"Hydrogen (H2)", "Helium (He)", "Nitrogen (N2)", "Hydrogen (H)", "Ammonia (NH3)",
  1330.                         "Water (H2O)", "Oxygen (O2)", "Carbon Dioxide (CO2)", "Carbon Monoxide (CO)", "Methane (CH4)"};
  1331.                 String[] altitude_Of_Operation = {"0-10 km (Sea Level)", "20-30 km (Medium Atmosphere)", "30-80 km (High Atmosphere)",
  1332.                         "80 km+ (Vacuum)", "Any Altitude (0-80 km+)"};
  1333.                 String[] tank_Repressurisation = {"Autogenous", "Inert Gas"};
  1334.                 String[] firstPart = {"RD", "RS", "AJ", "XLR", "NK", "RL", "KDTU", "AR", "BE", "MV", "YF", "PKA", "J", "RSA",
  1335.                         "MJ", "XS", "LM10", "HM", "LE", "LRE", "CE", "DST", "DOK", "KDU", "KRD", "R", "RO", "LMS", "LMP", "RT",
  1336.                         "F", "E", "A", "B", "S.10", "R", "JDK", "SPP", "TYS", "SOK", "RES", "FWR", "NAA75", "LR", "MA", "GE",
  1337.                         "OSA", "OBA", "NA", "RM02", "RM", "H", "MBB", "MB", "DF", "DE", "BF", "X", "BW", "BADR", "HS", "DC",
  1338.                         "UA", "FG", "P", "KMV", "M", "SRMU", "V", "KVD", "JD", "PS", "CE"};
  1339.                 String engine_Name = ass_crack(engine_Name1, firstPart);
  1340.                 String engine_Cycle_Chosen = rand(engine_Cycle);
  1341.                 switch (engine_Cycle_Chosen) {
  1342.                     case "Gas Core", "Liquid Core", "Solid Core", "Pulsed Nuclear", "Nuclear SaltWater", "Pebble-Bed Core" -> {
  1343.                         String propellant_List_Chosen = "", nuclear_Cycle_Chosen, reactor_Fuel_Chosen, nozzle_Type_List_Chosen, remass_List_Chosen;
  1344.                         switch (engine_Cycle_Chosen) {
  1345.                             case "Gas Core" -> {
  1346.                                 String[] remass_List = {"Hydrogen (H2)", "Nitrogen (N2)", "Monoatomic Hydrogen (H)", "Ammonia (NH3)",
  1347.                                         "Water (H2O)", "Oxygen (O2)", "Carbon Dioxide (CO2)", "Carbon Monoxide (CO)",
  1348.                                         "Methane (CH4)"};
  1349.                                 String[] nuclear_cycle = {"\"Expander Bleed\"", "\"Expander Closed\"", "\"Nuclear Lightbulb\"", "\"Vortex Confined\"",
  1350.                                         "\"Wheel Flow\"", "\"Magnetohydrodynamic(MHD) vortex\"", "\"Expander Open\""};
  1351.                                 remass_List_Chosen = rand(remass_List);
  1352.                                 propellant_List_Chosen = "Uranium HexaFluoride Salt (UF6) and " + remass_List_Chosen + " as remass";
  1353.                                 nuclear_Cycle_Chosen = rand(nuclear_cycle);
  1354.                                 reactor_Fuel_Chosen = "100-90% Uranium-235";
  1355.                                 nozzle_Type_List_Chosen = "De Laval Bell (With Nozzle Extension)";
  1356.                             } case "Liquid Core", "Colloid-Core", "Pebble-Bed Core" -> {
  1357.                                 String[] nuclear_cycle = {"\"Expander Bleed\"", "\"Expander Closed\"", "\"Vortex Confined\"", "\"Expander Open\""};
  1358.                                 String[] remass_List = {"Hydrogen (H2)", "Nitrogen (N2)", "Monoatomic Hydrogen (H)", "Ammonia (NH3)",
  1359.                                         "Water (H2O)", "Oxygen (O2)", "Carbon Dioxide (CO2)", "Carbon Monoxide (CO)", "Methane (CH4)"};
  1360.                                 String[] reactor_fuel = {"100-90% Uranium-235", "80-50% Uranium-235", "25-8% Uranium-235"};
  1361.                                 remass_List_Chosen = rand(remass_List);
  1362.                                 propellant_List_Chosen = "Uranium HexaFluoride Salt (UF6) and " + remass_List_Chosen + " as a remass";
  1363.                                 nuclear_Cycle_Chosen = rand(nuclear_cycle);
  1364.                                 reactor_Fuel_Chosen = rand(reactor_fuel);
  1365.                                 nozzle_Type_List_Chosen = "De Laval Bell (With Nozzle Extension)";
  1366.                             } case "Nuclear SaltWater" -> {
  1367.                                 String[] reactor_fuel = {"100-90% Uranium-235", "80-50% Uranium-235", "25-8% Uranium-235"};
  1368.                                 propellant_List_Chosen = "Uranium TetraBromide (UBr4) + Water (H2O)";
  1369.                                 remass_List_Chosen = "Water (H2O)";
  1370.                                 nuclear_Cycle_Chosen = "";
  1371.                                 reactor_Fuel_Chosen = rand(reactor_fuel);
  1372.                                 nozzle_Type_List_Chosen = "De Laval Bell (With Nozzle Extension)";
  1373.                             } default -> {
  1374.                                 remass_List_Chosen = rand(propellant_List3);
  1375.                                 String[] nuclear_cycle = {"\"Expander Bleed\"", "\"Expander Closed\"", "\"Expander Open\""};
  1376.                                 nuclear_Cycle_Chosen = rand(nuclear_cycle);
  1377.                                 String[] reactor_fuel = {"100-90% Uranium-235", "80-50% Uranium-235", "20-8% Uranium-235", "1-2% Uranium-235",
  1378.                                         "100-90% Plutonium-238", "50% Plutonium-238", "25-8% Plutonium-238", "1-2% Plutonium-238"};
  1379.                                 reactor_Fuel_Chosen = rand(reactor_fuel);
  1380.                                 nozzle_Type_List_Chosen = "De Laval Bell (With Nozzle Extension)";
  1381.                             }
  1382.                         }
  1383.                         String[] cooling_mechanism = {"Radiative Cooling", "Dump Cooling", "Film Cooling",
  1384.                                 "Regenerative Cooling", "Transpiration Cooling"};
  1385.                         String altitude_Of_Operation_Chosen = "80 km+ (Vacuum)";
  1386.                         String tank_Repressurisation_Chosen = rand(tank_Repressurisation);
  1387.                         String cooling_Mechanism_Chosen = rand(cooling_mechanism);
  1388.                         String reactor_gen_Chosen;
  1389.                         String[] reactor_gen;
  1390.                         if ((engine_Cycle_Chosen.equals("Liquid Core") || engine_Cycle_Chosen.equals("Solid Core")
  1391.                                 || engine_Cycle_Chosen.equals("Pulsed Nuclear"))) {
  1392.                             reactor_gen = new String[]{"Generation III+", "Generation IV", "Generation V", "Generation V+"};
  1393.                         } else {
  1394.                             reactor_gen = new String[]{"Generation I", "Generation II", "Generation III", "Generation III+",
  1395.                                     "Generation IV", "Generation V", "Generation V+"};
  1396.                         }
  1397.                         reactor_gen_Chosen = rand(reactor_gen);
  1398.                         int uio97 = 1 + ((int) (Math.random() * 456));
  1399.                         int uio98 = 1 + ((int) (Math.random() * 77));
  1400.                         boolean isBimodal = uio97%uio98 != 0;
  1401.                         output_nt(engine_Name, engine_Cycle_Chosen, altitude_Of_Operation_Chosen, nuclear_Cycle_Chosen,
  1402.                                 propellant_List_Chosen, reactor_Fuel_Chosen, nozzle_Type_List_Chosen, tank_Repressurisation_Chosen,
  1403.                                 cooling_Mechanism_Chosen, "Orbital Manoeuvering", reactor_gen_Chosen, isBimodal,
  1404.                                 remass_List_Chosen);
  1405.                         y++;
  1406.                         h++;
  1407.                     }
  1408.  
  1409.                     case "MagnetoPlasmaDynamic Thruster", "Hall Effect Thruster", "Gridded Ion Thruster",
  1410.                             "Colloid Thruster", "Variable Specific Impulse Magnetoplasma Rocket (VASIMR)" -> {
  1411.                         String propellant_List_Chosen = null;
  1412.                         String nozzle_Type_List_Chosen = null;
  1413.                         switch (engine_Cycle_Chosen) {
  1414.                             case "Hall Effect Thruster" -> {
  1415.                                 String[] propellant_List = {"Xe (Xenon)", "Kr (Krypton)", "Ar (Argon)", "Bi (Bismuth)",
  1416.                                         "I2 (Iodine)", "Mg (Magnesium)", "Zn (Zinc)", "C10H16 (Adamantane)"};
  1417.                                 propellant_List_Chosen = rand(propellant_List);
  1418.                                 nozzle_Type_List_Chosen = "Hall Effect Thruster Nozzle";
  1419.                             } case "Gridded Ion Thruster" -> {
  1420.                                 String[] propellant_List = {"Xe (Xenon)", "Hg (Mercury)", "Cs (Caesium)"};
  1421.                                 propellant_List_Chosen = rand(propellant_List);
  1422.                                 nozzle_Type_List_Chosen = "Electrostatic Ion Nozzle";
  1423.                             } case "Colloid Thruster" -> {
  1424.                                 propellant_List_Chosen = "NH2OH+NO3 (Hydroxylammonium nitrate)";
  1425.                                 nozzle_Type_List_Chosen = "Capillary Emitter-Electrode Cone";
  1426.                             } case "Variable Specific Impulse Magnetoplasma Rocket (VASIMR)" -> {
  1427.                                 String[] propellant_List = {"Xe (Xenon)", "Kr (Krypton)", "Ar (Argon)"};
  1428.                                 propellant_List_Chosen = rand(propellant_List);
  1429.                                 nozzle_Type_List_Chosen = "VASIMR Magnetic Confinement Nozzle";
  1430.                             } case "MagnetoPlasmaDynamic Thruster" -> {
  1431.                                 String[] propellant_List = {"Xe (Xenon)", "Ne (Neon)", "Ar (Argon)", "H2 (Hydrogen)", "N2H4 (Hydrazine)", "Li (Lithium)"};
  1432.                                 propellant_List_Chosen = rand(propellant_List);
  1433.                                 nozzle_Type_List_Chosen = "Cathode Plug Magnetic Confinement Nozzle";
  1434.                             }
  1435.                         }
  1436.                         String[] powerGen_List = {"Hydrogen Fuel cell", "Nuclear Fission Reactor",
  1437.                                 "Nuclear Fusion Reactor", "Photovoltaic Panel", "Solar Thermal Panel",
  1438.                                 "Radioisotope Thermoelectric Generator (RTG)"};
  1439.                         String powerGen_List_Chosen = rand(powerGen_List);
  1440.                         String altitude_Of_Operation_Chosen = "80 km+ (Vacuum)";
  1441.                         output_et(engine_Name, engine_Cycle_Chosen, altitude_Of_Operation_Chosen, propellant_List_Chosen,
  1442.                                 nozzle_Type_List_Chosen, powerGen_List_Chosen, "Orbital Manoeuvering");
  1443.                         y++;
  1444.                         h++;
  1445.                     }
  1446.  
  1447.                     case "Monopropellant (Decomposition)" -> {
  1448.                         String[] nozzle_Type_List1 = {"De Laval Cone (Without Nozzle Extension)", "De Laval Bell (Without Nozzle Extension)"};
  1449.                         String[] cooling_mechanism = {"Ablative Cooling", "Radiative Cooling"};
  1450.                         String propellant_List_Chosen = rand(propellant_List1);
  1451.                         String altitude_Of_Operation_Chosen = "80 km+ (Vacuum)";
  1452.                         String nozzle_Type_List_Chosen = rand(nozzle_Type_List1);
  1453.                         String cooling_Mechanism_Chosen = rand(cooling_mechanism);
  1454.                         String catalyst_Chosen = null;
  1455.                         switch (propellant_List_Chosen) {
  1456.                             case "N2H4 (Hydrazine)", "65% NH4N(NO2)2 (Ammonium Dinitramide) + 35% CH3OH(Methanol)" -> {
  1457.                                 catalyst_Chosen = "Iridium coated Alumina Pellets";
  1458.                             } case "H2O2 (Hydrogen Peroxide)" -> {
  1459.                                 catalyst_Chosen = "KMNO4 (Potassium Permanganate) Honeycomb";
  1460.                             } case "NH2OH+NO3 (Hydroxylammonium nitrate)" -> {
  1461.                                 catalyst_Chosen = "Iridium coated Copper Pellets";
  1462.                             }
  1463.                         }
  1464.                         String[] pot_uses = {"Orbital Manoeuvering", "Course Correction"};
  1465.                         String purpose = rand(pot_uses);
  1466.                         output_monod(engine_Name, engine_Cycle_Chosen, altitude_Of_Operation_Chosen, propellant_List_Chosen,
  1467.                                 nozzle_Type_List_Chosen, cooling_Mechanism_Chosen, catalyst_Chosen, purpose);
  1468.                         y++;
  1469.                         h++;
  1470.  
  1471.                     } case "Monopropellant (Cold Gas)" -> {
  1472.                         String[] nozzle_Type_List1 = {"De Laval Cone (Without Nozzle Extension)", "De Laval Bell (Without Nozzle Extension)"};
  1473.                         String propellant_List_Chosen = rand(propellant_List2);
  1474.                         String altitude_Of_Operation_Chosen = "80 km+ (Vacuum)";
  1475.                         String nozzle_Type_List_Chosen = rand(nozzle_Type_List1);
  1476.                         String cooling_Mechanism_Chosen = "Ablative Cooling";
  1477.                         String[] pot_uses = {"Orbital Manoeuvering", "Course Correction"};
  1478.                         String purpose = rand(pot_uses);
  1479.                         output_mono(engine_Name, engine_Cycle_Chosen, altitude_Of_Operation_Chosen,
  1480.                             propellant_List_Chosen, nozzle_Type_List_Chosen, cooling_Mechanism_Chosen, purpose);
  1481.                         y++;
  1482.                         h++;
  1483.                     }
  1484.  
  1485.                     case "Expander (Closed)", "Expander (Open/Bleed)" -> {
  1486.                         String[] oxidizer_List = {"O2 (Oxygen)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)", "O3 (Ozone)"};
  1487.                         String oxidizer_Chosen = rand(oxidizer_List);
  1488.                         String fuel_Chosen = "";
  1489.                         switch (oxidizer_Chosen) {
  1490.                             case "O2 (Oxygen)" -> {
  1491.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1492.                                         "C6H5NH2 (Aniline)", "NH3 (Ammonia)", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)",
  1493.                                         "CH3OH (Methanol)", "C12H24 (Kerosene)", "B2H6 (Diborane)", "B5H9 (Pentaborane)"};
  1494.                                 fuel_Chosen = rand(fuel_List);
  1495.                             } case "F2 (Fluorine)" -> {
  1496.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1497.                                         "C6H5NH2 (Aniline)", "NH3 (Ammonia)", "C2H8N2 (UnsymetricalDimethylHydrazine)",
  1498.                                         "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)", "CH3OH (Methanol)", "C12H24 (Kerosene)",
  1499.                                         "B2H6 (Diborane)", "B5H9 (Pentaborane)"};
  1500.                                 fuel_Chosen = rand(fuel_List);
  1501.                             } case "F2 (Fluorine) + O2 (Oxygen)", "O3 (Ozone)" -> {
  1502.                                 String[] fuel_List = {"H2 (Hydrogen)", "N2H4 (Hydrazine)", "CH3OH (Methanol)",
  1503.                                         "C12H24 (Kerosene)", "B2H6 (Diborane)", "B5H9 (Pentaborane)"};
  1504.                                 fuel_Chosen = rand(fuel_List);
  1505.                             }
  1506.                         }
  1507.                         String altitude_Of_Operation_Chosen = rand(altitude_Of_Operation);
  1508.                         String nozzle_Type_Chosen = bussy(altitude_Of_Operation_Chosen);
  1509.                         String[] cooling_mechanism = {"Ablative Cooling", "Radiative Cooling", "Dump Cooling", "Film Cooling",
  1510.                                 "Regenerative Cooling", "Transpiration Cooling"};
  1511.                         String cooling_Mechanism_Chosen = rand(cooling_mechanism);
  1512.                         boolean isHypergolic = isHypergolic(oxidizer_Chosen, fuel_Chosen);
  1513.                         boolean isCryogenic = isCryogenic(oxidizer_Chosen, fuel_Chosen);
  1514.                         String injector = Injector();
  1515.                         String purpose = uses(isHypergolic, isCryogenic, altitude_Of_Operation_Chosen);
  1516.                         output_ex(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, altitude_Of_Operation_Chosen,
  1517.                                 nozzle_Type_Chosen,"Autogenous", cooling_Mechanism_Chosen, isHypergolic, isCryogenic,
  1518.                                 purpose, injector);
  1519.                         y++;
  1520.                         h++;
  1521.                     }
  1522.  
  1523.                     case "Dual Expander (Closed)", "Dual Expander (Open/Bleed)" -> {
  1524.                         String[] oxidizer_List = {"O2 (Oxygen)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)"};
  1525.                         String oxidizer_Chosen = rand(oxidizer_List);
  1526.                         String fuel_Chosen = "";
  1527.                         String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)"};
  1528.                         switch (oxidizer_Chosen) {
  1529.                             case "O2 (Oxygen)", "F2 (Fluorine)" -> {
  1530.                                 fuel_Chosen = rand(fuel_List);
  1531.                             } case "F2 (Fluorine) + O2 (Oxygen)" -> fuel_Chosen = "H2 (Hydrogen)";
  1532.                         }
  1533.                         String altitude_Of_Operation_Chosen = rand(altitude_Of_Operation);
  1534.                         String nozzle_Type_Chosen = bussy(altitude_Of_Operation_Chosen);
  1535.                         String[] cooling_mechanism = {"Ablative Cooling", "Radiative Cooling", "Dump Cooling", "Film Cooling",
  1536.                                 "Regenerative Cooling", "Transpiration Cooling"};
  1537.                         String cooling_Mechanism_Chosen = rand(cooling_mechanism);
  1538.                         boolean isHypergolic = isHypergolic(oxidizer_Chosen, fuel_Chosen);
  1539.                         boolean isCryogenic = isCryogenic(oxidizer_Chosen, fuel_Chosen);
  1540.                         String injector = Injector();
  1541.                         String purpose = uses(isHypergolic, isCryogenic, altitude_Of_Operation_Chosen);
  1542.                         output_ex(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, altitude_Of_Operation_Chosen,
  1543.                                 nozzle_Type_Chosen,"Autogenous", cooling_Mechanism_Chosen, isHypergolic, isCryogenic,
  1544.                                 purpose, injector);
  1545.                         y++;
  1546.                         h++;
  1547.                     }
  1548.  
  1549.                     case "Staged Combustion (Fuel Rich)" -> {
  1550.                         String[] oxidizer_List = {"O2 (Oxygen)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)", "O3 (Ozone)"};
  1551.                         String oxidizer_Chosen = rand(oxidizer_List);
  1552.                         String fuel_Chosen = "";
  1553.                         switch (oxidizer_Chosen) {
  1554.                             case "O2 (Oxygen)", "F2 (Fluorine)" -> {
  1555.                                 String[] fuel_List = {"H2 (Hydrogen)", "NH3 (Ammonia)", "N2H4 (Hydrazine)"};
  1556.                                 fuel_Chosen = rand(fuel_List);
  1557.                             } case "F2 (Fluorine) + O2 (Oxygen)", "O3 (Ozone)" -> fuel_Chosen = "H2 (Hydrogen)";
  1558.                         }
  1559.                         f_calc_o(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, tank_Repressurisation, altitude_Of_Operation);
  1560.                         y++;
  1561.                         h++;
  1562.                     }
  1563.  
  1564.                     case "Staged Combustion (Oxidizer Rich)" -> {
  1565.                         String[] oxidizer_List = {"O2 (Oxygen)", "O3 (Ozone)", "N2O4 (Nitrogen Tetroxide)"};
  1566.                         String oxidizer_Chosen = rand(oxidizer_List);
  1567.                         String fuel_Chosen = "";
  1568.                         switch (oxidizer_Chosen) {
  1569.                             case "O2 (Oxygen)", "O3 (Ozone)" -> {
  1570.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1571.                                         "C6H5NH2 (Aniline)", "NH3 (Ammonia)", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)",
  1572.                                         "CH3OH (Methanol)"};
  1573.                                 fuel_Chosen = rand(fuel_List);
  1574.                             } case "N2O4 (Nitrogen Tetroxide)" -> {
  1575.                                 String[] fuel_List = {"C6H5NH2 (Aniline)", "75% CH6N2 + 25% N2H4 (UH-25)", "50% CH6N2 + 50% N2H4 (Aerosine-50)",
  1576.                                         "C2H8N2 (UnsymetricalDimethylHydrazine)"};
  1577.                                 fuel_Chosen = rand(fuel_List);
  1578.                             }
  1579.                         }
  1580.                         f_calc_o(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, tank_Repressurisation, altitude_Of_Operation);
  1581.                         y++;
  1582.                         h++;
  1583.                     }
  1584.  
  1585.                     case "Full Flow Staged Combustion", "Combustion Tap Off" -> {
  1586.                         String[] oxidizer_List = {"O2 (Oxygen)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)",
  1587.                                 "N2H4 (Hydrazine)", "O3 (Ozone)", "N2O4 (Nitrogen Tetroxide)"};
  1588.                         String oxidizer_Chosen = rand(oxidizer_List);
  1589.                         String fuel_Chosen = "";
  1590.                         switch (oxidizer_Chosen) {
  1591.                             case "O2 (Oxygen)" -> {
  1592.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1593.                                         "C6H5NH2 (Aniline)", "NH3 (Ammonia)", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)",
  1594.                                         "CH3OH (Methanol)", "B2H6 (Diborane)", "B5H9 (Pentaborane)"};
  1595.                                 fuel_Chosen = rand(fuel_List);
  1596.                             } case "F2 (Fluorine)" -> {
  1597.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1598.                                         "NH3 (Ammonia)", "C2H8N2 (UnsymetricalDimethylHydrazine)", "CH6N2 (MonomethylHydrazine)",
  1599.                                         "N2H4 (Hydrazine)", "CH3OH (Methanol)"};
  1600.                                 fuel_Chosen = rand(fuel_List);
  1601.                             } case "F2 (Fluorine) + O2 (Oxygen)", "O3 (Ozone)" -> {
  1602.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1603.                                         "C6H5NH2 (Aniline)", "75% CH6N2 + 25% N2H4 (UH-25)", "50% CH6N2 + 50% N2H4 (Aerosine-50)",
  1604.                                         "CH6N2 (MonomethylHydrazine)", "B2H6 (Diborane)", "B5H9 (Pentaborane)"};
  1605.                                 fuel_Chosen = rand(fuel_List);
  1606.                             } case "N2H4 (Hydrazine)", "N2O4 (Nitrogen Tetroxide)" -> {
  1607.                                 String[] fuel_List = {"H2 (Hydrogen)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1608.                                         "C6H5NH2 (Aniline)", "75% CH6N2 + 25% N2H4 (UH-25)", "50% CH6N2 + 50% N2H4 (Aerosine-50)",
  1609.                                         "C2H8N2 (UnsymetricalDimethylHydrazine)", "CH3OH (Methanol)", "B2H6 (Diborane)"};
  1610.                                 fuel_Chosen = rand(fuel_List);
  1611.                             }
  1612.                         }
  1613.                         f_calc_o(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, tank_Repressurisation, altitude_Of_Operation);
  1614.                         y++;
  1615.                         h++;
  1616.                     }
  1617.  
  1618.                     default -> {
  1619.                         String[] oxidizer_List = {"O2 (Oxygen)", "F2 (Fluorine)", "F2 (Fluorine) + O2 (Oxygen)",
  1620.                                 "N2O4 (Nitrogen Tetroxide)", "H2O2 (Hydrogen Peroxide) 95%", "H2O2 (Hydrogen Peroxide) 85%",
  1621.                                 "O3 (Ozone)", "AK20F: 80% HNO3 + 20% N2O4 (Nitric Acid)",
  1622.                                 "AK20I: 80% HNO3 + 20% N2O4 (Nitric Acid)", "AK20K: 80% HNO3 + 20% N2O4 (Nitric Acid)",
  1623.                                 "AK27I: 73% HNO3 + 27% N2O4 (Nitric Acid)", "AK27P: 73% HNO3 + 27% N2O4 (Nitric Acid)",
  1624.                                 "ClF3 (Chlorine Trifluoride)", "ClF5 (Chlorine Pentafluoride)"};
  1625.                         String oxidizer_Chosen = rand(oxidizer_List);
  1626.                         String fuel_Chosen = "";
  1627.                         switch (oxidizer_Chosen) {
  1628.                             case "O2 (Oxygen)" -> {
  1629.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1630.                                         "C6H5NH2 (Aniline)", "NH3 (Ammonia)", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)",
  1631.                                         "CH3OH (Methanol)", "C12H24 (Kerosene)", "B2H6 (Diborane)", "B5H9 (Pentaborane)",
  1632.                                         "C2H6 (Ethane)"};
  1633.                                 fuel_Chosen = rand(fuel_List);
  1634.                             } case "F2 (Fluorine)" -> {
  1635.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH4 (Methane)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1636.                                         "C6H5NH2 (Aniline)", "NH3 (Ammonia)", "C2H8N2 (UnsymetricalDimethylHydrazine)",
  1637.                                         "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)", "CH3OH (Methanol)", "C12H24 (Kerosene)",
  1638.                                         "B2H6 (Diborane)", "B5H9 (Pentaborane)"};
  1639.                                 fuel_Chosen = rand(fuel_List);
  1640.                             } case "F2 (Fluorine) + O2 (Oxygen)", "O3 (Ozone)" -> {
  1641.                                 String[] fuel_List = {"H2 (Hydrogen)", "CH3OH (Methanol)", "C12H24 (Kerosene)", "B2H6 (Diborane)",
  1642.                                         "B5H9 (Pentaborane)"};
  1643.                                 fuel_Chosen = rand(fuel_List);
  1644.                             } case "AK20F: 80% HNO3 + 20% N2O4 (Nitric Acid)", "AK20I: 80% HNO3 + 20% N2O4 (Nitric Acid)",
  1645.                                     "AK20K: 80% HNO3 + 20% N2O4 (Nitric Acid)", "AK27I: 73% HNO3 + 27% N2O4 (Nitric Acid)",
  1646.                                     "AK27P: 73% HNO3 + 27% N2O4 (Nitric Acid)", "ClF3 (Chlorine Trifluoride)",
  1647.                                     "ClF5 (Chlorine Pentafluoride)" -> {
  1648.                                 String[] fuel_List = {"C2H5OH(Ethanol) 85%", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)",
  1649.                                         "CH3OH (Methanol)"};
  1650.                                 fuel_Chosen = rand(fuel_List);
  1651.                             } case "N2O4 (Nitrogen Tetroxide)", "H2O2 (Hydrogen Peroxide) 95%", "H2O2 (Hydrogen Peroxide) 85%" -> {
  1652.                                 String[] fuel_List = {"H2 (Hydrogen)", "C2H5OH(Ethanol) 85%", "C2H5OH(Ethanol) 75%",
  1653.                                         "C6H5NH2 (Aniline)", "75% CH6N2 + 25% N2H4 (UH-25)", "50% CH6N2 + 50% N2H4 (Aerosine-50)",
  1654.                                         "C2H8N2 (UnsymmetricalDimethylHydrazine)", "CH6N2 (MonomethylHydrazine)", "N2H4 (Hydrazine)",
  1655.                                         "CH3OH (Methanol)", "C12H24 (Kerosene)"};
  1656.                                 fuel_Chosen = rand(fuel_List);
  1657.                             }
  1658.                         }
  1659.                         f_calc_o(engine_Name, engine_Cycle_Chosen, oxidizer_Chosen, fuel_Chosen, tank_Repressurisation, altitude_Of_Operation);
  1660.                         y++;
  1661.                         h++;
  1662.                     }
  1663.                 }
  1664.             } else {
  1665.                 while (!(repeatCommand.equalsIgnoreCase("Y") && repeatCommand.equalsIgnoreCase("N"))) {
  1666.                     System.out.println("Wrong input! Please input an appropriate command [Y/N] ot [YES/NO]");
  1667.                     System.out.print("> ");
  1668.                     repeatCommand = scanner.next();
  1669.                     if (repeatCommand.equalsIgnoreCase("Y") || repeatCommand.equalsIgnoreCase("N") || repeatCommand.equalsIgnoreCase("YES") || repeatCommand.equalsIgnoreCase("NO")) {
  1670.                         break;
  1671.                     }
  1672.                 }
  1673.             }
  1674.         }
  1675.     }
  1676. }
Add Comment
Please, Sign In to add comment