Esempio n. 1
0
        /// <summary>
        /// Gets the index of the asset depend material by index.
        /// </summary>
        /// <returns>
        /// The asset depend material by index.
        /// </returns>
        /// <param name='assetFile'>
        /// If set to <c>true</c> asset file.
        /// </param>
        /// <param name='index'>
        /// If set to <c>true</c> index.
        /// </param>
        /// <param name='matAsset'>
        /// If set to <c>true</c> material asset.
        /// </param>
        /// <param name='matIndex'>
        /// If set to <c>true</c> material index.
        /// </param>
        /// <param name='matTransform'>
        /// If set to <c>true</c> material transform.
        /// </param>
        public bool GetAssetDependMatByIndex(string assetFile, int index, out string matAsset, out int matIndex, out string matTransform)
        {
            matAsset     = "";
            matIndex     = 0;
            matTransform = "";

            Asset asset = GetAsset(assetFile);

            if (asset == null)
            {
                return(false);
            }

            DependentMaterial depMat = asset.GetDependMatByIndex(index);

            if (depMat == null)
            {
                return(false);
            }

            matAsset     = depMat.Asset;
            matIndex     = depMat.MaterialIndex;
            matTransform = depMat.TransformPath;

            return(true);
        }
Esempio n. 2
0
            public bool HasDependMaterial(DependentMaterial dstDepMat)
            {
                foreach (DependentMaterial depMat in _dependMatList)
                {
                    if (depMat.IsSame(dstDepMat))
                    {
                        return(true);
                    }
                }

                return(false);
            }
Esempio n. 3
0
            public static Asset Load(SecurityElement e)
            {
                if (e.Tag != "Asset")
                {
                    return(null);
                }

                Asset asset = new Asset();

                asset._file      = StrParser.ParseStr(e.Attribute("File"), "");
                asset._version   = StrParser.ParseDecInt(e.Attribute("Version"), 0);
                asset._fromAsset = StrParser.ParseStr(e.Attribute("FromAsset"), "");

                if (e.Children != null)
                {
                    foreach (SecurityElement c in e.Children)
                    {
                        if (c.Tag == "DependentAnimation")
                        {
                            DependentAnimation depAnim = DependentAnimation.Load(c);

                            if (depAnim != null && !asset.HasDependAnimation(depAnim))
                            {
                                asset._dependAnimList.Add(depAnim);
                            }
                        }
                        else if (c.Tag == "DependentMaterial")
                        {
                            DependentMaterial depMat = DependentMaterial.Load(c);

                            if (depMat != null && !asset.HasDependMaterial(depMat))
                            {
                                asset._dependMatList.Add(depMat);
                            }
                        }
                        else if (c.Tag == "DependentTexture")
                        {
                            DependentTexture depTex = DependentTexture.Load(c);

                            if (depTex != null && !asset.HasDependTexture(depTex))
                            {
                                asset._dependTexList.Add(depTex);
                            }
                        }
                    }
                }

                return(asset);
            }
Esempio n. 4
0
            public bool AddDependMaterial(string matAssetFile, string transformPath, int matIndex)
            {
                DependentMaterial depMat = new DependentMaterial();

                depMat.Asset         = matAssetFile;
                depMat.TransformPath = transformPath;
                depMat.MaterialIndex = matIndex;

                if (!HasDependMaterial(depMat))
                {
                    _dependMatList.Add(depMat);
                }

                return(true);
            }
Esempio n. 5
0
            public static DependentMaterial Load(SecurityElement e)
            {
                if (e.Tag != "DependentMaterial")
                {
                    return(null);
                }

                DependentMaterial depMat = new DependentMaterial();

                depMat._asset         = StrParser.ParseStr(e.Attribute("Asset"), "");
                depMat._materialIndex = StrParser.ParseDecInt(e.Attribute("MaterialIndex"), 0);
                depMat._transformPath = StrParser.ParseStr(e.Attribute("TransformPath"), "");

                return(depMat);
            }
Esempio n. 6
0
 public bool IsSame(DependentMaterial depMat)
 {
     return(Asset.Equals(depMat.Asset) && MaterialIndex == depMat.MaterialIndex && TransformPath.Equals(depMat.TransformPath));
 }