/// <summary> /// Register a custom class with the manager, allowing it to show up in game. /// </summary> /// <param name="classData">The custom class data to register</param> public static void RegisterCustomClass(ClassData classData) { if (!CustomClassData.ContainsKey(classData.GetID())) { CustomClassData.Add(classData.GetID(), classData); ProviderManager.SaveManager.GetAllGameData().GetAllClassDatas().Add(classData); ProviderManager.SaveManager.GetAllGameData().GetBalanceData().GetClassDatas().Add(classData); } else { Trainworks.Log(LogLevel.Warning, "Attempted to register duplicate class data with name: " + classData.name); } }
public override void OnReceiveData(ref NetworkState.NETWORK_STATE_TYPE state) { CustomClassDataInstance = (CustomClassData)BufferedNetworkUtilsClient.ReadSerializableClass(ref state); IntInstance = BufferedNetworkUtilsClient.ReadInt(ref state); Vector3Instance = BufferedNetworkUtilsClient.ReadVector3(ref state); StringInstance = BufferedNetworkUtilsClient.ReadString(ref state); CustomDataInstance = (CustomStructData)BufferedNetworkUtilsClient.ReadStruct(typeof(CustomStructData), ref state); ListData = BufferedNetworkUtilsClient.ReadList <InsideCustomData>(ref state); DicData = BufferedNetworkUtilsClient.ReadDic <string, Vector3>(ref state); }
public void DataRefresh() { IntInstance = Random.Range(0, 50); Vector3Instance = Vector3.one * Random.Range(0, 50); string all = "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+"; int slength = Random.Range(1, 20); StringInstance = ""; for (int i = 0; i < slength; ++i) { StringInstance += all[Random.Range(0, all.Length)]; } CustomDataInstance.CustomVector3Data = Vector3.one * Random.Range(0, 50); CustomDataInstance.CustomColorData = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f)); CustomDataInstance.CustomEnumData = (CustomEnum)Random.Range(0, 3); CustomDataInstance.InsideData.insideData = Random.Range(0, 50); ListData.Clear(); ListData.Add(new InsideCustomData(Random.Range(0, 50))); ListData.Add(new InsideCustomData(Random.Range(0, 50))); ListData.Add(new InsideCustomData(Random.Range(0, 50))); DicData.Clear(); DicData.Add("Key1", Vector3.one * Random.Range(0, 50)); DicData.Add("Key2", Vector3.one * Random.Range(0, 50)); DicData.Add("Key3", Vector3.one * Random.Range(0, 50)); CustomClassDataInstance = new CustomClassData(); int len = Random.Range(1, 5); CustomClassDataInstance.CustomClassStringData = ""; for (int i = 0; i < len; ++i) { CustomClassDataInstance.CustomClassList.Add(Random.Range(0, 50)); CustomClassDataInstance.CustomClassDictionaryData.Add("Key" + i, Random.Range(0, 50)); CustomClassDataInstance.CustomClassStringData += all[Random.Range(0, all.Length)]; } ClusterCommand c = ClusterCommand.create("666"); c.addParameters("123", 456, "555", "miao"); c.addDic <string, Vector3>("dicName", DicData); FduClusterCommandDispatcher.SendClusterCommand(c); }
/// <summary> /// Get the class data corresponding to the given ID. /// </summary> /// <param name="classID">ID of the class to get</param> /// <returns>The class data for the given ID</returns> public static ClassData GetClassDataByID(string classID) { // Search for custom clan matching ID var guid = GUIDGenerator.GenerateDeterministicGUID(classID); if (CustomClassData.ContainsKey(guid)) { return(CustomClassData[guid]); } // No custom clan found; search for vanilla clan matching ID var vanillaClan = ProviderManager.SaveManager.GetAllGameData().FindClassData(classID); if (vanillaClan == null) { Trainworks.Log(LogLevel.All, "Couldn't find clan: " + classID + " - This will cause crashes."); } return(vanillaClan); }