using System.Collections.Generic; using System.Diagnostics; using UnityEngine.Networking; using UnityEngine; using UnityEngine.Events; using System; public static class CommunicationEvents { public static UnityEvent<RaycastHit[]> TriggerEvent = new(); //TODO check if this needs further adjustments // public class HitEvent : UnityEvent<RaycastHit[]> { } public static UnityEvent<int> ToolModeChangedEvent = new(); public static UnityEvent<Fact> AddFactEvent = new(); public static UnityEvent<Fact> RemoveFactEvent = new(); public static UnityEvent<Fact, FactObject.FactMaterials> PushoutFactEvent = new(); public static UnityEvent<Fact> PushoutFactFailEvent = new(); public static UnityEvent gameSucceededEvent = new(); public static UnityEvent gameNotSucceededEvent = new(); public static UnityEvent NewAssignmentEvent = new(); public static UnityEvent<GameObject, string> ScrollFactHintEvent = new(); public static UnityEvent<Fact> AnimateExistingFactEvent = new(); public static UnityEvent<Fact> AnimateNonExistingFactEvent = new(); public static UnityEvent<List<string>> HintAvailableEvent = new(); //------------------------------------------------------------------------------------ //-------------------------------Global Variables------------------------------------- // TODO! move to GlobalStatic/Behaviour public static bool ServerAutoStart = true; public static bool ServerRunning = true; //CHANGE HERE PORT OF SERVER public static string ServerPortDefault = "8085"; //used for Local public static string ServerAddressLocalhost = "http://localhost"; //Without Port public static string ServerAddressLocal = "http://localhost:8085"; // "http://localhost:8085" public static string ServerAdress = "http://localhost:8085"; //need "http://" //used by dispalyScrolls.cs //http://10.231.4.95:8085"; public static Process process_mmt_frameIT_server; public static bool takeNewToolID = false; //0=no, 1=instead, 2=both public static int ToolID_new; public static int ToolID_selected;//Script /* * will be loaded from other config file */ public static string lastIP = ""; public static string newIP = ""; public static string IPslot1 = ""; public static string IPslot2 = "http://10.231.4.95:8085"; public static string IPslot3 = "10.231.4.95:8085"; public static string selecIP = ""; //------ public static int[] ServerRunningA = new int[7] { 0, 0, 0, 0, 0, 0, 0 }; //other, lastIP, newIP, IP1, IP2, IP3, selecIP} //0: offline, 1: Checking, 2: online, 3: NoNetworkAddress; public static bool[] ServerRunningA_test = new bool[7] { false, false, false, false, false, false, false }; //other, lastIP, newIP, IP1, IP2, IP3, selecIP} public static double IPcheckGeneration = 0; public static int CheckNetLoop = 1; public static int[] CheckServerA = new int[7] { 0, 0, 0, 0, 0, 0, 0 }; public static bool autoOSrecognition = true; public static OperationSystem Opsys = OperationSystem.Windows; //Scripts public enum OperationSystem { Windows=0, Android=1, } public static bool CursorVisDefault = true; //Script. public static bool GadgetCanBeUsed = false; // Configs public static bool VerboseURI = false; public enum Directories { misc, Stages, SaveGames, ValidationSets, FactStateMachines, } public static string debug_path = "hey"; public static string CreateHierarchiePath(List<Directories> hierarchie, string prefix = "", string postfix = "") { foreach (var dir in hierarchie) prefix = System.IO.Path.Combine(prefix, dir.ToString()); return System.IO.Path.Combine(prefix, postfix); } // TODO! avoid tree traversel with name public static string CreatePathToFile(out bool file_exists, string name, string format = null, List<Directories> hierarchie = null, bool use_install_folder = false) { string ending = ""; if (!string.IsNullOrEmpty(format)) switch (format) { case "JSON": ending = ".JSON"; break; default: break; } string path = Opsys switch { OperationSystem.Android => Application.persistentDataPath, OperationSystem.Windows or _ => use_install_folder ? Application.dataPath : Application.persistentDataPath, }; if (hierarchie != null) { path = CreateHierarchiePath(hierarchie, path); System.IO.Directory.CreateDirectory(path); } path = System.IO.Path.Combine(path, name + ending); file_exists = System.IO.File.Exists(path); debug_path = path; return path; } }