Ejemplo n.º 1
0
 /// <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);
    }
Ejemplo n.º 4
0
        /// <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);
        }