/// <summary> /// Handles loading the specified LogicControl asset from it's raw data. /// </summary> /// <param name="assetManager">The asset manager.</param> /// <param name="name">The name of the LogicControl script.</param> /// <param name="data">The raw data associated with the asset.</param> /// <returns>The ScriptAsset from the load.</returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return new ScriptAsset( name, data.GetProperty<string>("Code"), new LogicControlScriptEngine(data.GetProperty<string>("Code"))); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data is CompiledAsset) { return(new TextureAsset(this.m_AssetContentManager, name, null, data.GetProperty <PlatformData>("PlatformData"), false)); } PlatformData platformData = null; if (data.GetProperty <PlatformData>("PlatformData") != null) { platformData = new PlatformData { Platform = data.GetProperty <PlatformData>("PlatformData").Platform, Data = data.GetProperty <PlatformData>("PlatformData").Data }; } var texture = new TextureAsset( this.m_AssetContentManager, name, ByteReader.ReadAsByteArray(data.GetProperty <object>("RawData")), platformData, data.GetProperty <bool>("SourcedFromRaw")); return(texture); }
public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data is CompiledAsset) { return new UberEffectAsset(_kernel, _assetContentManager, _rawLaunchArguments, name, null, data.GetProperty<PlatformData>("PlatformData"), false); } PlatformData platformData = null; if (data.GetProperty<PlatformData>("PlatformData") != null) { platformData = new PlatformData { Platform = data.GetProperty<PlatformData>("PlatformData").Platform, Data = data.GetProperty<PlatformData>("PlatformData").Data }; } var effect = new UberEffectAsset( _kernel, _assetContentManager, _rawLaunchArguments, name, data.GetProperty<string>("Code"), platformData, data.GetProperty<bool>("SourcedFromRaw")); return effect; }
/// <summary> /// Handles loading the specified LogicControl asset from it's raw data. /// </summary> /// <param name="assetManager">The asset manager.</param> /// <param name="name">The name of the LogicControl script.</param> /// <param name="data">The raw data associated with the asset.</param> /// <returns>The ScriptAsset from the load.</returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return(new ScriptAsset( name, data.GetProperty <string>("Code"), new LogicControlScriptEngine(data.GetProperty <string>("Code")))); }
public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return(new UserInterfaceAsset( name, data.GetProperty <string>("UserInterfaceData"), data.GetProperty <UserInterfaceFormat>("UserInterfaceFormat"), data.GetProperty <string>("SourcePath"))); }
public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return new UserInterfaceAsset( name, data.GetProperty<string>("UserInterfaceData"), data.GetProperty<UserInterfaceFormat>("UserInterfaceFormat"), data.GetProperty<string>("SourcePath")); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return(new LevelAsset( name, data.GetProperty <string>("LevelData"), data.GetProperty <LevelDataFormat>("LevelDataFormat"), data.GetProperty <string>("SourcePath"))); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return new LevelAsset( name, data.GetProperty<string>("LevelData"), data.GetProperty<LevelDataFormat>("LevelDataFormat"), data.GetProperty<string>("SourcePath")); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return new TilesetAsset( assetManager, name, data.GetProperty<string>("TextureName"), data.GetProperty<int>("CellWidth"), data.GetProperty<int>("CellHeight")); }
/// <summary> /// Loads all potential raw asset candidates for the given asset name, including the last /// modification dates of the candidates. It is up to the caller to determine which /// representation will be used. /// </summary> /// <param name="name">The name of the asset.</param> /// <returns>The raw asset candidates.</returns> public IEnumerable <KeyValuePair <IRawAsset, DateTime?> > LoadRawAssetCandidatesWithModificationDates(string name) { foreach (var strategy in this.m_Strategies) { DateTime? lastModified = null; IRawAsset result = strategy.AttemptLoad(Environment.CurrentDirectory, name, ref lastModified, true); if (result != null) { yield return(new KeyValuePair <IRawAsset, DateTime?>(result, lastModified)); } } }
public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data is CompiledAsset) { return new UnifiedShaderAsset(_kernel, _assetContentManager, name, null, data.GetProperty<PlatformData>("PlatformData"), false); } return new UnifiedShaderAsset( _kernel, _assetContentManager, name, data.GetProperty<string>("Code"), data.GetProperty<PlatformData>("PlatformData"), data.GetProperty<bool>("SourcedFromRaw")); }
public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data is CompiledAsset) { return new TextureAtlasAsset( this.m_AssetContentManager, name, data.GetProperty<PlatformData>("PlatformData")); } var sourceTextureNames = (data.GetProperty<JArray>("SourceTextures")).Select(x => x.Value<string>()).ToArray(); return new TextureAtlasAsset( assetManager, name, sourceTextureNames); }
/// <summary> /// The save raw asset. /// </summary> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <exception cref="AssetNotFoundException"> /// </exception> public void SaveRawAsset(string name, IRawAsset data) { try { var file = new FileInfo(Path.Combine(this.m_Path, name.Replace('.', Path.DirectorySeparatorChar) + ".asset")); this.CreateDirectories(file.Directory); using (var writer = new StreamWriter(file.FullName, false, Encoding.UTF8)) { writer.Write(JsonConvert.SerializeObject(data.Properties.ToDictionary(k => k.Key, v => v.Value))); } } catch (Exception ex) { throw new AssetNotFoundException(name, ex); } }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { var groupDict = new Dictionary<string, Dictionary<string, object>>(); var groupCount = data.GetProperty<int>("GroupCount"); for (var i = 0; i < groupCount; i++) { var gi = i.ToString(System.Globalization.NumberFormatInfo.InvariantInfo); var groupName = data.GetProperty<string>("GroupName" + gi); var keyCount = data.GetProperty<int>("GroupKeyCount" + gi); var dict = new Dictionary<string, object>(); for (var k = 0; k < keyCount; k++) { var gk = k.ToString(System.Globalization.NumberFormatInfo.InvariantInfo); var keyName = data.GetProperty<string>("GroupKey" + gi + "KeyName" + gk); var keyType = data.GetProperty<string>("GroupKey" + gi + "KeyType" + gk); object keyValue; if (keyType == string.Empty) { keyValue = null; } else { keyValue = data.GetProperty( System.Type.GetType(keyType), "GroupKey" + gi + "KeyValue" + gk); } if (dict.ContainsKey(keyName)) { dict.Remove(keyName); } dict.Add(keyName, keyValue); } if (groupDict.ContainsKey(groupName)) { groupDict.Remove(groupName); } groupDict.Add(groupName, dict); } return new ConfigurationAsset(name, groupDict); }
/// <summary> /// The save compiled asset. /// </summary> /// <param name="rootPath"> /// The root path. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <param name="isCompiled"> /// The is compiled. /// </param> /// <exception cref="InvalidOperationException"> /// </exception> public void SaveCompiledAsset(string rootPath, string name, IRawAsset data, bool isCompiled, string embedPlatform = null) { var extension = "asset"; if (isCompiled) { extension = "bin"; } var filename = name.Replace('.', Path.DirectorySeparatorChar) + "." + extension; if (!string.IsNullOrWhiteSpace(embedPlatform)) { filename = name + "-" + embedPlatform + "." + extension; } var file = new FileInfo(Path.Combine(rootPath, filename)); this.CreateDirectories(file.Directory); if (isCompiled) { if (!(data is CompiledAsset)) { throw new InvalidOperationException(); } var compiledData = (CompiledAsset)data; using (var stream = new FileStream(file.FullName, FileMode.Create)) { stream.WriteByte(0); using (var memory = new MemoryStream()) { var serializer = new CompiledAssetSerializer(); serializer.Serialize(memory, compiledData); memory.Seek(0, SeekOrigin.Begin); LzmaHelper.Compress(memory, stream); } } } else { using (var writer = new StreamWriter(file.FullName, false, Encoding.UTF8)) { writer.Write(JsonConvert.SerializeObject(data.Properties.ToDictionary(k => k.Key, v => v.Value))); } } }
/// <summary> /// The save compiled asset. /// </summary> /// <param name="rootPath"> /// The root path. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <param name="isCompiled"> /// The is compiled. /// </param> /// <exception cref="InvalidOperationException"> /// </exception> public void SaveCompiledAsset(string rootPath, string name, IRawAsset data, bool isCompiled, string embedPlatform = null) { var extension = "asset"; if (isCompiled) { extension = "bin"; } var filename = name.Replace('.', Path.DirectorySeparatorChar) + "." + extension; if (!string.IsNullOrWhiteSpace(embedPlatform)) { filename = name + "-" + embedPlatform + "." + extension; } var file = new FileInfo(Path.Combine(rootPath, filename)); this.CreateDirectories(file.Directory); if (isCompiled) { if (!(data is CompiledAsset)) { throw new InvalidOperationException(); } var compiledData = (CompiledAsset)data; using (var stream = new FileStream(file.FullName, FileMode.Create)) { // LZMA compression is proving too expensive to decompress. We'll look into // LZ4 in the future, but for now, just store assets uncompressed. stream.WriteByte(CompiledAsset.FORMAT_UNCOMPRESSED); var serializer = new CompiledAssetSerializer(); serializer.Serialize(stream, compiledData); } } else { using (var writer = new StreamWriter(file.FullName, false, Encoding.UTF8)) { writer.Write(JsonConvert.SerializeObject(data.Properties.ToDictionary(k => k.Key, v => v.Value))); } } }
/// <summary> /// The can handle. /// </summary> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public bool CanHandle(IRawAsset data) { return data.GetProperty<string>("Loader") == typeof(TilesetAssetLoader).FullName; }
/// <summary> /// Returns whether this asset loader can handle the specified asset. /// </summary> /// <param name="data"> /// The raw asset data to check. /// </param> /// <returns> /// Whether this asset loader can handle the specified asset. /// </returns> public bool CanHandle(IRawAsset data) { return(data.GetProperty <string>("Loader") == typeof(LogicControlScriptAssetLoader).FullName); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { var value = (AIAsset)this.m_Kernel.Get(data.GetProperty<Type>("Type")); value.Name = name; return value; }
/// <summary> /// The can handle. /// </summary> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public bool CanHandle(IRawAsset data) { return typeof(AIAsset).IsAssignableFrom(data.GetProperty<Type>("Type")); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data.IsCompiled) { return new AudioAsset(name, null, data.GetProperty<PlatformData>("PlatformData"), false); } PlatformData platformData = null; if (data.GetProperty<PlatformData>("PlatformData") != null) { platformData = new PlatformData { Platform = data.GetProperty<PlatformData>("PlatformData").Platform, Data = data.GetProperty<PlatformData>("PlatformData").Data }; } var audio = new AudioAsset( name, ByteReader.ReadAsByteArray(data.GetProperty<object>("RawData")), platformData, data.GetProperty<bool>("SourcedFromRaw")); return audio; }
public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { return new VariableAsset(name, data.GetProperty<object>("Value")); }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data is CompiledAsset) { return new ModelAsset(name, null, null, data.GetProperty<PlatformData>("PlatformData"), false, string.Empty); } PlatformData platformData = null; if (data.GetProperty<PlatformData>("PlatformData") != null) { platformData = new PlatformData { Platform = data.GetProperty<PlatformData>("PlatformData").Platform, Data = data.GetProperty<PlatformData>("PlatformData").Data }; } var model = new ModelAsset( name, ByteReader.ReadAsByteArray(data.GetProperty<object>("RawData")), data.GetProperty<System.Collections.Generic.Dictionary<string, byte[]>>("RawAdditionalAnimations"), platformData, data.GetProperty<bool>("SourcedFromRaw"), data.GetProperty<string>("Extension")); return model; }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data.IsCompiled) { return new FontAsset(this.m_AssetContentManager, name, null, 0, false, 0, data.GetProperty<PlatformData>("PlatformData")); } PlatformData platformData = null; if (data.GetProperty<PlatformData>("PlatformData") != null) { platformData = new PlatformData { Platform = data.GetProperty<PlatformData>("PlatformData").Platform, Data = ByteReader.ReadAsByteArray(data.GetProperty<PlatformData>("PlatformData").Data) }; } var effect = new FontAsset( this.m_AssetContentManager, name, data.GetProperty<string>("FontName"), data.GetProperty<int>("FontSize"), data.GetProperty<bool>("UseKerning"), data.GetProperty<int>("Spacing"), platformData); return effect; }
/// <summary> /// Returns whether this asset loader can handle the specified asset. /// </summary> /// <param name="data"> /// The raw asset data to check. /// </param> /// <returns> /// Whether this asset loader can handle the specified asset. /// </returns> public bool CanHandle(IRawAsset data) { return data.GetProperty<string>("Loader") == typeof(LogicControlScriptAssetLoader).FullName; }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { if (data is CompiledAsset) { return new TextureAsset(this.m_AssetContentManager, name, null, data.GetProperty<PlatformData>("PlatformData"), false); } PlatformData platformData = null; if (data.GetProperty<PlatformData>("PlatformData") != null) { platformData = new PlatformData { Platform = data.GetProperty<PlatformData>("PlatformData").Platform, Data = data.GetProperty<PlatformData>("PlatformData").Data }; } var texture = new TextureAsset( this.m_AssetContentManager, name, ByteReader.ReadAsByteArray(data.GetProperty<object>("RawData")), platformData, data.GetProperty<bool>("SourcedFromRaw")); return texture; }
/// <summary> /// The handle. /// </summary> /// <param name="assetManager"> /// The asset manager. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="data"> /// The data. /// </param> /// <returns> /// The <see cref="IAsset"/>. /// </returns> public IAsset Handle(IAssetManager assetManager, string name, IRawAsset data) { // The text key is the asset name. return new LanguageAsset(name, data.GetProperty<string>("Value")); }