Beispiel #1
0
        public EngineBuiltInAssetInfo(Version version, EngineBuiltInAsset asset)
        {
            KeyValuePair <Version, EngineBuiltInAsset> kvp = new KeyValuePair <Version, EngineBuiltInAsset>(version, asset);

            m_variations = new List <KeyValuePair <Version, EngineBuiltInAsset> >(1);
            m_variations.Add(kvp);
        }
Beispiel #2
0
        public static bool IsEngineAsset(Object asset)
        {
            EngineBuiltInAsset engineAsset = GetEngineBuildInAsset(asset);

            if (!engineAsset.IsValid)
            {
                return(false);
            }

            if (IsEngineFile(asset.File.Name))
            {
                return(true);
            }

            switch (asset.ClassID)
            {
            case ClassIDType.Material:
            {
                Material meterial = (Material)asset;
                Shader   shader   = meterial.Shader.FindAsset(meterial.File);
                if (shader == null)
                {
                    return(true);
                }
                return(IsEngineAsset(shader));
            }

            case ClassIDType.Shader:
                return(true);

            default:
                return(false);
            }
        }
Beispiel #3
0
 public bool TryGetAsset(Version version, out EngineBuiltInAsset asset)
 {
     foreach (KeyValuePair <Version, EngineBuiltInAsset> kvp in m_variations)
     {
         if (version >= kvp.Key)
         {
             asset = kvp.Value;
             return(true);
         }
     }
     asset = default;
     return(false);
 }
Beispiel #4
0
        private static void AddAsset(Dictionary <string, EngineBuiltInAssetInfo> lookup, string name, Version version, uint exportID, uint param, bool isF)
        {
            EngineBuiltInAsset asset = new EngineBuiltInAsset(exportID, param, isF);

            if (lookup.TryGetValue(name, out EngineBuiltInAssetInfo assetInfo))
            {
                assetInfo.AddVariation(version, asset);
            }
            else
            {
                assetInfo = new EngineBuiltInAssetInfo(version, asset);
                lookup.Add(name, assetInfo);
            }
        }
Beispiel #5
0
        public void AddVariation(Version version, EngineBuiltInAsset asset)
        {
            KeyValuePair <Version, EngineBuiltInAsset> kvp = new KeyValuePair <Version, EngineBuiltInAsset>(version, asset);

            for (int i = 0; i < m_variations.Count; i++)
            {
                Version key = m_variations[i].Key;
                if (key < version)
                {
                    m_variations.Insert(i, kvp);
                    return;
                }
            }
            m_variations.Add(kvp);
        }
Beispiel #6
0
        public EngineExportCollection(Object asset)
        {
            if (asset == null)
            {
                throw new ArgumentNullException(nameof(asset));
            }

            File = asset.File;
            if (IsEngineFile(asset.File.Name))
            {
                foreach (Object builtInAsset in File.FetchAssets())
                {
                    EngineBuiltInAsset engineAsset = GetEngineBuildInAsset(builtInAsset);
                    if (engineAsset.IsValid)
                    {
                        m_assets.Add(builtInAsset);
                    }
                }
            }
            else
            {
                m_assets.Add(asset);
            }
        }
        private static bool GetEngineBuildInAsset(Object asset, Version version, out EngineBuiltInAsset engineAsset)
        {
            switch (asset.ClassID)
            {
            case ClassIDType.Material:
            {
                Material material = (Material)asset;
                if (EngineBuiltInAssets.TryGetMaterial(material.Name, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Texture2D:
            {
                Texture2D texture = (Texture2D)asset;
                if (EngineBuiltInAssets.TryGetTexture(texture.Name, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Mesh:
            {
                Mesh mesh = (Mesh)asset;
                if (EngineBuiltInAssets.TryGetMesh(mesh.Name, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Shader:
            {
                Shader shader = (Shader)asset;
                if (EngineBuiltInAssets.TryGetShader(shader.ValidName, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Font:
            {
                Font font = (Font)asset;
                if (EngineBuiltInAssets.TryGetFont(font.Name, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Sprite:
            {
                Sprite sprite = (Sprite)asset;
                if (EngineBuiltInAssets.TryGetSprite(sprite.Name, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.LightmapParameters:
            {
                LightmapParameters lightParams = (LightmapParameters)asset;
                if (EngineBuiltInAssets.TryGetLightmapParams(lightParams.Name, version, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.MonoBehaviour:
            {
                MonoBehaviour behaviour = (MonoBehaviour)asset;
                if (behaviour.Name != string.Empty)
                {
                    if (EngineBuiltInAssets.TryGetBehaviour(behaviour.Name, version, out engineAsset))
                    {
                        return(true);
                    }
                }
            }
            break;
            }
            engineAsset = default;
            return(false);
        }
Beispiel #8
0
 private static bool TryGetAsset(Dictionary <string, EngineBuiltInAssetInfo> lookup, string name, Version version, out EngineBuiltInAsset asset)
 {
     if (lookup.TryGetValue(name, out EngineBuiltInAssetInfo info))
     {
         return(info.TryGetAsset(version, out asset));
     }
     asset = default;
     return(false);
 }
Beispiel #9
0
 public static bool TryGetBehaviour(string name, Version version, out EngineBuiltInAsset asset)
 {
     return(TryGetAsset(m_behaviours, name, version, out asset));
 }
Beispiel #10
0
 public static bool TryGetLightmapParams(string name, Version version, out EngineBuiltInAsset asset)
 {
     return(TryGetAsset(m_lightmapParams, name, version, out asset));
 }
Beispiel #11
0
 public static bool TryGetSprite(string name, Version version, out EngineBuiltInAsset asset)
 {
     return(TryGetAsset(m_sprites, name, version, out asset));
 }
Beispiel #12
0
 public static bool TryGetFont(string name, Version version, out EngineBuiltInAsset asset)
 {
     return(TryGetAsset(m_fonts, name, version, out asset));
 }
Beispiel #13
0
 public static bool TryGetMesh(string name, Version version, out EngineBuiltInAsset asset)
 {
     return(TryGetAsset(m_meshes, name, version, out asset));
 }
Beispiel #14
0
 public static bool TryGetMaterial(string name, Version version, out EngineBuiltInAsset asset)
 {
     return(TryGetAsset(m_materials, name, version, out asset));
 }
        private static bool GetEngineBuildInAsset(Object asset, out EngineBuiltInAsset engineAsset)
        {
            switch (asset.ClassID)
            {
            case ClassIDType.Material:
            {
                Material material = (Material)asset;
                if (EngineBuiltInAssets.Materials.TryGetValue(material.Name, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Texture2D:
            {
                Texture2D texture = (Texture2D)asset;
                if (EngineBuiltInAssets.Textures.TryGetValue(texture.Name, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Mesh:
            {
                Mesh mesh = (Mesh)asset;
                if (EngineBuiltInAssets.Meshes.TryGetValue(mesh.Name, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Shader:
            {
                Shader shader = (Shader)asset;
                if (EngineBuiltInAssets.Shaders.TryGetValue(shader.ValidName, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Font:
            {
                Font font = (Font)asset;
                if (EngineBuiltInAssets.Fonts.TryGetValue(font.Name, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.Sprite:
            {
                Sprite sprite = (Sprite)asset;
                if (EngineBuiltInAssets.Sprites.TryGetValue(sprite.Name, out engineAsset))
                {
                    return(true);
                }
            }
            break;

            case ClassIDType.LightmapParameters:
            {
                LightmapParameters lightParams = (LightmapParameters)asset;
                if (EngineBuiltInAssets.LightmapParams.TryGetValue(lightParams.Name, out engineAsset))
                {
                    return(true);
                }
            }
            break;
            }
            engineAsset = default;
            return(false);
        }