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); }
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); } }
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); }
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); } }
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); }
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); }
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); }
public static bool TryGetBehaviour(string name, Version version, out EngineBuiltInAsset asset) { return(TryGetAsset(m_behaviours, name, version, out asset)); }
public static bool TryGetLightmapParams(string name, Version version, out EngineBuiltInAsset asset) { return(TryGetAsset(m_lightmapParams, name, version, out asset)); }
public static bool TryGetSprite(string name, Version version, out EngineBuiltInAsset asset) { return(TryGetAsset(m_sprites, name, version, out asset)); }
public static bool TryGetFont(string name, Version version, out EngineBuiltInAsset asset) { return(TryGetAsset(m_fonts, name, version, out asset)); }
public static bool TryGetMesh(string name, Version version, out EngineBuiltInAsset asset) { return(TryGetAsset(m_meshes, name, version, out asset)); }
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); }