Fungus.FlowchartData.Decode C# (CSharp) Method

Decode() public static method

Decodes a FlowchartData object and uses it to restore the state of a Flowchart in the scene.
public static Decode ( FlowchartData flowchartData ) : void
flowchartData FlowchartData
return void
        public static void Decode(FlowchartData flowchartData)
        {
            var go = GameObject.Find(flowchartData.FlowchartName);
            if (go == null)
            {
                Debug.LogError("Failed to find flowchart object specified in save data");
                return;
            }

            var flowchart = go.GetComponent<Flowchart>();
            if (flowchart == null)
            {
                Debug.LogError("Failed to find flowchart object specified in save data");
                return;
            }

            for (int i = 0; i < flowchartData.BoolVars.Count; i++)
            {
                var boolVar = flowchartData.BoolVars[i];
                flowchart.SetBooleanVariable(boolVar.Key, boolVar.Value);
            }
            for (int i = 0; i < flowchartData.IntVars.Count; i++)
            {
                var intVar = flowchartData.IntVars[i];
                flowchart.SetIntegerVariable(intVar.Key, intVar.Value);
            }
            for (int i = 0; i < flowchartData.FloatVars.Count; i++)
            {
                var floatVar = flowchartData.FloatVars[i];
                flowchart.SetFloatVariable(floatVar.Key, floatVar.Value);
            }
            for (int i = 0; i < flowchartData.StringVars.Count; i++)
            {
                var stringVar = flowchartData.StringVars[i];
                flowchart.SetStringVariable(stringVar.Key, stringVar.Value);
            }
        }

Usage Example

Beispiel #1
0
        /// <summary>
        /// Decodes the loaded list of SaveDataItems to restore the saved game state.
        /// </summary>
        public virtual void Decode(List <SaveDataItem> saveDataItems)
        {
            for (int i = 0; i < saveDataItems.Count; i++)
            {
                var saveDataItem = saveDataItems[i];
                if (saveDataItem == null)
                {
                    continue;
                }

                if (saveDataItem.DataType == FlowchartDataKey)
                {
                    var flowchartData = JsonUtility.FromJson <FlowchartData>(saveDataItem.Data);
                    if (flowchartData == null)
                    {
                        Debug.LogError("Failed to decode Flowchart save data item");
                        return;
                    }

                    FlowchartData.Decode(flowchartData);
                }

                if (saveDataItem.DataType == NarrativeLogKey)
                {
                    FungusManager.Instance.NarrativeLog.LoadHistory(saveDataItem.Data);
                }
            }
        }
FlowchartData