Пример #1
0
    public void Output()
    {
        BaseNode baseNode = MainViweModel.instance.baseNode;
        BaseBox  baseBox  = BoxViewModel.instance.baseBox;

        ConfirmViewModel.instance.ShowWindow(() => {
            TunagumIO.ExportBaseBox(baseBox);
            this.HideWiondow();
        }, null, "出力しますか?", "");
    }
Пример #2
0
    public static BaseBox LoadBaseBox()
    {
        string   optionText = Import.ReadFile(DEFINE.OptionFileName);
        var      bb         = BaseBox.ConvertOptionText(optionText);
        XElement root       = TunagumIO.LoadFromPath();
        var      programs   = root.Elements("program");

        foreach (XElement prog in programs)
        {
            var titles = prog.Descendants("object");
            if (titles != null)
            {
                Dictionary <string, string> idToNextid = new Dictionary <string, string>();
                List <Box> boxlist = new List <Box>();

                foreach (var title in titles)
                {
                    string v      = title.Attribute("name").Value;
                    string boxid  = title.Attribute("boxID").Value;
                    string nextid = title.Attribute("nextBox").Value;
                    idToNextid[boxid] = nextid;
                    if (v == "Time")
                    {
                        var cbox = bb.AddBoxForTag("@<time>@");
                        cbox.id = int.Parse(boxid);
                        boxlist.Add(cbox);
                    }
                    if (v == "screen")
                    {
                        var cbox = bb.AddBoxForTag("@<screen>@");
                        cbox.id = int.Parse(boxid);
                        boxlist.Add(cbox);
                    }
                    if (v == "DVD")
                    {
                        var cbox = bb.AddBoxForTag("@<DVD>@");
                        cbox.id = int.Parse(boxid);
                        boxlist.Add(cbox);
                    }
                    if (v == "door")
                    {
                        var cbox = bb.AddBoxForTag("@<door>@");
                        cbox.id = int.Parse(boxid);
                        boxlist.Add(cbox);
                    }
                }
                //nextboxをchildにする処理.
                foreach (var b in boxlist)
                {
                    if (idToNextid.ContainsKey(b.id.ToString()))
                    {
                        string[] arr = idToNextid[b.id.ToString()].Split(',');
                        foreach (var str in arr)
                        {
                            foreach (var b2 in boxlist)
                            {
                                if (b2.id.ToString() == str)
                                {
                                    b.AddChildBox(b2);
                                }
                            }
                        }
                    }
                    if (b.id == 0)
                    {
                        bb.AddChildBox(b);
                    }
                }
            }
        }

        bb.RefreshProgramID();
        return(bb);
    }