예제 #1
0
    public void Add(SaveNode node)
    {
        SaveNodeContainer saveData = GetSaveData();

        saveData.saveNode.Add(node);
        Save(saveData);
    }
예제 #2
0
    public SaveNode AddNode(string NodeKey)
    {
        SaveNode NewNode = SaveNode.Create(NodeKey);

        _Nodes.Add(NewNode);
        return(NewNode);
    }
예제 #3
0
 public void AssignText(SaveNode node)
 {
     foodName.text = node.foodName;
     calorie.text  = node.cal + "kcal";
     menu.text     = node.menu;
     _node         = node;
 }
예제 #4
0
    private void Awake()
    {
        #region Singleton

        if (Instance == null)
        {
            Instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
        #endregion

        SaveNode.PopulateLists();
        BlockType = new List <string>
        {
            { "Single" },
            { "Di Ver" },
            { "Tri Ver" },
            { "Di Hor" },
            { "Cube" },
            { "Tri Hor" },

            { "SingleV" },
            { "CubeV" },
            { "ImmovableV" },
            { "IM_CubeV" },

            { "Immovable" },
            { "IM_Di Ver" },
            { "IM_Tri Ver" },
            { "IM_Di Hor" },
            { "IM_Cube" },
            { "IM_Tri Hor" }
        };

        BoosterType = new List <string>
        {
            { "shot_booster" },
            { "laser_V_booster" },
            { "laser_H_booster" },
            { "bomb_booster" },
            { "bigbomb_booster" },
            { "teleport_booster" },
            { "time_stop_booster" },
            { "PH_Slot" },
            { "PH_Slot2" },
            { "PH_Slot3" },
            { "PH_Slot4" },
            { "PH_Shrink" },
            { "PH_Move-enabler" },
            { "PH_Slow" },
            { "PH_Breaker" },
            { "PH_anti-immovables" }
        };
    }
예제 #5
0
    public static void WriteSave(SaveNode NewData, string NewPath)
    {
        string Path = NewPath;

        SaveHandler Cont = new SaveHandler();

        Cont._SaveGame = NewData;

        var Serializer = new XmlSerializer(typeof(SaveHandler));

        Cont.WriteFile <SaveHandler>(Serializer, Path, Cont);
    }
예제 #6
0
    public SaveNode AddNode(string NodeKey, List <SaveValueFloat> Floats, List <SaveValueInt> Ints, List <SaveValueString> Strings, List <SaveNode> Nodes)
    {
        SaveNode NewNode = SaveNode.Create(NodeKey);

        NewNode._Floats  = Floats;
        NewNode._Ints    = Ints;
        NewNode._Strings = Strings;
        NewNode._Nodes   = Nodes;

        this._Nodes.Add(NewNode);
        return(NewNode);
    }
예제 #7
0
    public void CalCalucalation()
    {
        int random = Random.Range(0, datas.Length);

        CalResult   = foodCal / datas[random].cal;
        myText.text = datas[random].menuName + "を\n" + CalResult + datas[random].unit;
        //セーブデータ作成
        SaveNode node = new SaveNode();

        node.foodName = foodName;
        node.cal      = (int)foodCal;
        node.menu     = datas[random].menuName + "を" + CalResult + datas[random].unit;
        MenuManager.Instance().Save.Add(node);
    }
예제 #8
0
    public static SaveNode GetParadiseIslandData()
    {
        SaveNode ConfigRoot = new SaveNode("Root");

        SaveNode Loading = ConfigRoot.AddNode("Loading");

        Loading.AddString("Bundle", "exterminator_main/loading");
        Loading.AddString("Asset", "Assets/Contents/exterminator_main/loading/loading.controller");

        SaveNode Bundles = ConfigRoot.AddNode("Bundles");

        Bundles.AddString("01", "core_content");
        Bundles.AddString("02", "common_assets");
        Bundles.AddString("03", "paradise_island_core");
        Bundles.AddString("04", "paradise_island_01");
        //ParadiseIsland01.AddString ("01", "stranded_dialog");

        return(ConfigRoot);
    }
예제 #9
0
    public static SaveNode GetLabyrinth2DData()
    {
        SaveNode ConfigRoot = new SaveNode("Root");

        SaveNode Loading = ConfigRoot.AddNode("Loading");

        Loading.AddString("Bundle", "labyrinth_2d_main/loading");
        Loading.AddString("Asset", "Assets/Contents/labyrinth_2d_main/loading/loading.controller");
        SaveNode Instances = ConfigRoot.AddNode("Instances");

        Instances.AddString("Engine", "labyrinth_2d_main:labyrinth_core:Scripts/Engine/Engine");
        Instances.AddString("Camera", "labyrinth_2d_main:labyrinth_core:Scripts/Camera/Camera");
        Instances.AddString("UserInterface", "labyrinth_2d_main:labyrinth_ui:Scripts/UserInterface");

        SaveNode Bundles = ConfigRoot.AddNode("Bundles");

        //SaveNode CoreContent = ConfigRoot.AddNode ("core_content");
        Bundles.AddString("01", "core_content");
        Bundles.AddString("02", "common_assets");
        Bundles.AddString("03", "labyrinth_2d_main");
        return(ConfigRoot);
    }
예제 #10
0
    public void Delete(SaveNode node)
    {
        SaveNodeContainer saveData = GetSaveData();

        //削除
        if (saveData.saveNode.Count != 0)
        {
            int count = 0;
            foreach (SaveNode data in  saveData.saveNode)
            {
                if (data.foodName == node.foodName && data.menu == node.menu)
                {
                    saveData.saveNode.RemoveAt(count);
                    Debug.Log("データを削除しました。");
                    //セーブ
                    Save(saveData);
                    return;
                }
                count++;
            }
        }
        Debug.Log("データの削除ができませんでした。");
    }
예제 #11
0
 public void Bake(string Name, SaveNode NodeData)
 {
     this.transform.name = Name;
     this._SaveData      = NodeData;
 }
예제 #12
0
 public static SaveNode CreateNode(string NewKey)
 {
     return(SaveNode.Create(NewKey));
 }
예제 #13
0
 public static void WriteSave(SaveNode SaveGame, string NewPath)
 {
     SaveHandler.WriteSave(SaveGame, NewPath);
 }
예제 #14
0
    public static List <SaveNode> GetNodesForSave(object dataObj, List <SaveItemBase> saveChilds = null)
    {
        var             dataType  = dataObj.GetType();
        List <SaveNode> saveNodes = new List <SaveNode>();

        List <FieldInfo> fieldList = new List <FieldInfo>();

        var fields = dataType.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);

        fieldList.AddRange(fields);


        foreach (var fieldInfo in fieldList)
        {
            SaveField[] attributes = (SaveField[])fieldInfo.GetCustomAttributes(typeof(SaveField), false);
            if (attributes != null && attributes.Length > 0)
            {
                SaveNode baseNode = new SaveNode();
                baseNode._SaveIDX = attributes[0]._SaveIDX;
                saveNodes.Add(baseNode);

                if (IsBaseType(fieldInfo.FieldType))
                {
                    baseNode._SaveType  = fieldInfo.FieldType.Name;
                    baseNode._SaveValue = fieldInfo.GetValue(dataObj).ToString();
                }
                else if (fieldInfo.FieldType.Name.Contains("List"))
                {
                    baseNode._SaveType = fieldInfo.FieldType.ToString();
                    var valueList = fieldInfo.GetValue(dataObj) as IList;

                    int    idx1          = baseNode._SaveType.IndexOf('[');
                    int    idx2          = baseNode._SaveType.IndexOf(']');
                    string childTypeName = baseNode._SaveType.Substring(idx1 + 1, idx2 - idx1 - 1);

                    Type childType = null;
                    if (valueList == null)
                    {
                        continue;
                    }

                    //Debug.Log("SaveList cnt:" + valueList.Count);
                    for (int j = 0; j < valueList.Count; ++j)
                    {
                        if (childType == null)
                        {
                            childType = Type.GetType(childTypeName);
                        }

                        SaveNode childNode = new SaveNode();
                        childNode._SaveIDX  = j;
                        childNode._SaveType = childType.Name;

                        baseNode._ChildNode.Add(childNode);

                        if (IsBaseType(childType))
                        {
                            childNode._SaveValue = valueList[j].ToString();
                        }
                        else if (valueList[j] is SaveItemBase)
                        {
                            var saveItem = (SaveItemBase)valueList[j];
                            if (dataObj is SaveItemBase)
                            {
                                saveItem._SaveFileName = ((SaveItemBase)dataObj)._SaveFileName + fieldInfo.Name + j.ToString();
                            }
                            else
                            {
                                saveItem._SaveFileName = dataObj.ToString() + fieldInfo.Name + j.ToString();
                            }
                            saveChilds.Add(saveItem);
                            childNode._SaveValue = saveItem._SaveFileName;
                        }
                        else
                        {
                            childNode._ChildNode = GetNodesForSave(valueList[j]);
                        }
                    }
                }
                else if (fieldInfo.FieldType.IsEnum)
                {
                    baseNode._SaveType  = fieldInfo.FieldType.Name;
                    baseNode._SaveValue = ((int)fieldInfo.GetValue(dataObj)).ToString();
                }
                else if (fieldInfo.FieldType.BaseType == typeof(Tables.TableRecordBase))
                {
                    var record = fieldInfo.GetValue(dataObj) as TableRecordBase;

                    if (record != null)
                    {
                        baseNode._SaveType  = typeof(string).Name;
                        baseNode._SaveValue = record.Id;
                    }
                }
                else if (fieldInfo.GetValue(dataObj) is SaveItemBase)
                {
                    baseNode._SaveType = fieldInfo.FieldType.Name;
                    var saveItem = (SaveItemBase)fieldInfo.GetValue(dataObj);
                    saveItem._SaveFileName = dataObj.ToString() + fieldInfo.Name;
                    saveChilds.Add(saveItem);
                    baseNode._SaveValue = saveItem._SaveFileName;
                }
                else
                {
                    baseNode._SaveType = fieldInfo.FieldType.Name;
                    var dataValue = fieldInfo.GetValue(dataObj);
                    if (dataValue != null)
                    {
                        baseNode._ChildNode = GetNodesForSave(dataValue);
                    }
                }
            }
        }
        saveNodes.Sort((node1, node2) =>
        {
            if (node1._SaveIDX > node2._SaveIDX)
            {
                return(1);
            }
            else if (node1._SaveIDX < node2._SaveIDX)
            {
                return(-1);
            }
            return(0);
        });
        return(saveNodes);
    }