Beispiel #1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="name"></param>
    /// <returns></returns>
    public XScene GetScene(string name)
    {
        XScene scene = null;

        scenes.TryGetValue(name, out scene);
        return(scene);
    }
Beispiel #2
0
    /// <summary>
    /// Add the specified scene.
    /// </summary>
    /// <param name="scene">Scene.</param>
    public void Add(XScene scene)
    {
#if UNITY_EDITOR
        Debug.Log(string.Format("<color=red> XSheet add [XScene] {0}.{1}.{2} </color>", scene.name, scene.size, scene.checksum));
#endif
        scenes.Add(scene.name, scene);
    }
Beispiel #3
0
 //constructor
 protected XScene(XScenario scenario)
 {
     this.mScenario    = scenario;
     this.mReturnScene = null;
 }
Beispiel #4
0
 public void setReturnScene(XScene scene)
 {
     this.mReturnScene = scene;
 }
Beispiel #5
0
    public Queue <XEntryDiff> GenerateSheetDiff(XSheetInfo newSheet)
    {
        Queue <XEntryDiff> diffFat = new Queue <XEntryDiff>();

        // pack diff
        for (int i = 0; i < newSheet.packs.Count; i++)
        {
            bool  diff = true;
            XPack pack = newSheet.packs[i];
            XPack localPack;
            if (packs.TryGetValue(pack.name, out localPack))
            {
                if (localPack.checksum == pack.checksum)
                {
                    diff = false;
                }
            }

            if (diff)
            {
                diffFat.Enqueue(new XEntryDiff()
                {
                    entryType = XEntryType.File, local = localPack, remote = pack
                });
            }
        }

        // file diff
        for (int i = 0; i < newSheet.files.Count; i++)
        {
            bool  diff = true;
            XFile file = newSheet.files[i];
            XFile localFile;
            if (files.TryGetValue(file.name, out localFile))
            {
                if (localFile.checksum == file.checksum)
                {
                    diff = false;
                }
            }

            if (diff)
            {
                diffFat.Enqueue(new XEntryDiff()
                {
                    entryType = XEntryType.Pack, local = localFile, remote = file
                });
            }
        }

        // scene diff
        for (int i = 0; i < newSheet.scenes.Count; i++)
        {
            bool   diff  = true;
            XScene scene = newSheet.scenes[i];
            XScene localScene;
            if (scenes.TryGetValue(scene.name, out localScene))
            {
                if (localScene.bundleName == scene.bundleName)
                {
                    diff = false;
                }
            }

            if (diff)
            {
                diffFat.Enqueue(new XEntryDiff()
                {
                    entryType = XEntryType.Scene, local = localScene, remote = scene
                });
            }
        }

        return(diffFat);
    }