protected override void Load() { if (Owner.LoadedBlock == null) { var settingsFileName = Owner.Name + ".settings"; if (VirtualFile.Exists(settingsFileName)) { //!!!!check errors var block = TextBlockUtility.LoadFromVirtualFile(settingsFileName); Owner.LoadedBlock = block; } else { //!!!!так? var block = new TextBlock(); var child = block.AddChild(".component", MetadataManager.GetTypeOfNetType(typeof(Component_Font)).Name); //default configuration var b1 = child.AddChild("CharacterRanges"); var b2 = b1.AddChild("Value"); b2.SetAttribute("Count", "2"); b2.SetAttribute("0", "32 127"); b2.SetAttribute("1", "160 191"); Owner.LoadedBlock = block; } } base.Load(); }
bool InitInternal(string language, bool localizeEngine) { this.language = language; this.localizeEngine = localizeEngine; //alternative loader TextBlock rootBlock = null; bool error2 = false; if (AlternativeLanguageFileLoaderHandler != null) { AlternativeLanguageFileLoaderHandler(ref rootBlock, ref error2); } if (error2) { return(false); } //default loader if (rootBlock == null) { //!!!!локализация дополнений //!!!!!еще можно изменить Engine.language. сделать уровни видать. //!!!!!! string fileName = Path.Combine(Path.Combine(LanguagesDirectory, language), "Engine.language"); if (VirtualFile.Exists(fileName)) { string error; rootBlock = TextBlockUtility.LoadFromVirtualFile(fileName, out error); if (rootBlock == null) { Log.Fatal("Parsing file failed \"{0}\" ({1}).", fileName, error); return(false); } } } if (rootBlock != null) { ParseLanguageTextBlock(rootBlock); } return(true); }
public static string GetParameter(string virtualTextureFileName, string parameterName, out string error) { string fileName = virtualTextureFileName + ".settings"; if (!VirtualFile.Exists(fileName)) { error = ""; return(""); } var block = TextBlockUtility.LoadFromVirtualFile(fileName, out error); if (block == null) { return(""); } error = ""; return(block.GetAttribute(parameterName)); }
protected override void Load() { if (Owner.LoadedBlock == null) { var settingsFileName = Owner.Name + ".settings"; if (VirtualFile.Exists(settingsFileName)) { var block = TextBlockUtility.LoadFromVirtualFile(settingsFileName); Owner.LoadedBlock = block; } else { var block = new TextBlock(); var child = block.AddChild(".component", MetadataManager.GetTypeOfNetType(typeof(Component_Import3D)).Name); Owner.LoadedBlock = block; } } base.Load(); }
static void ReadCachedInfoFile(string destFileNameBase, out string sourceFileHash, out int sourceFileSize) //, out PixelFormat sourceFileFormat ) { sourceFileHash = ""; sourceFileSize = 0; //sourceFileFormat = PixelFormat.Unknown; GetDestFileNames(destFileNameBase, out var infoFileName, out var envFileName, out var irrFileName); if (VirtualFile.Exists(envFileName) && VirtualFile.Exists(irrFileName)) { var block = TextBlockUtility.LoadFromVirtualFile(infoFileName, out _); if (block != null) { try { sourceFileHash = block.GetAttribute("SourceFileHash"); sourceFileSize = int.Parse(block.GetAttribute("SourceFileSize")); //sourceFileFormat = (PixelFormat)Enum.Parse( typeof( PixelFormat ), block.GetAttribute( "SourceFileFormat" ) ); } catch { } } } }
public static bool SetParameter(string virtualTextureFileName, string parameterName, string parameterValue, out string error) { string fileName = virtualTextureFileName + ".settings"; if (!VirtualFile.Exists(fileName) && string.IsNullOrEmpty(parameterValue)) { //no sense to update error = ""; return(true); } TextBlock block = null; if (VirtualFile.Exists(fileName)) { block = TextBlockUtility.LoadFromVirtualFile(fileName, out error); if (block == null) { return(false); } } else { block = new TextBlock(); } if (!string.IsNullOrEmpty(parameterValue)) { block.SetAttribute(parameterName, parameterValue); } else { block.DeleteAttribute(parameterName); } if (block.Children.Count != 0 || block.Attributes.Count != 0) { if (!TextBlockUtility.SaveToVirtualFile(block, fileName, out error)) { return(false); } } else { if (VirtualFile.Exists(fileName)) { try { File.Delete(VirtualPathUtility.GetRealPathByVirtual(fileName)); } catch (Exception e) { error = e.Message; return(false); } } } error = ""; return(true); }
protected virtual void Load() { //override behavior by event if (ResultObject == null) { bool handled = false; LoadOverride?.Invoke(this, ref handled); if (handled) { return; } } //default behavior if (ResultObject == null) { //load block if (Owner.LoadedBlock == null) { string error; Owner.LoadedBlock = TextBlockUtility.LoadFromVirtualFile(Owner.Name, out error); if (Owner.LoadedBlock == null) { //!!!! // comment this fatal ! //Log.Fatal( error ); //TODO: also we can use exceptions! //throw new Exception( error ); StatusError = error; Status = StatusEnum.Error; return; } } //parse text block string error2; var component = ComponentUtility.LoadComponentFromTextBlock(null, Owner.LoadedBlock, Owner.Name, this, componentSetEnabled, componentCreateHierarchyController, out error2); //var component = ComponentUtils.LoadComponentFromTextBlock( Owner.LoadedBlock, Owner.Name, null, out error2 ); if (component == null) { ////!!!!!!! //Log.Fatal( "impl" ); //!!!!! StatusError = error2; Status = StatusEnum.Error; return; } //!!!! //if( componentSetEnabled != null ) // component.Enabled = componentSetEnabled.Value; //xx xx; //xx xx;//сначала выключить иерархию? потом всем разом включится? ////!!!!возможно это раньше нужно делать, т.к. в GetProvidedType() что-то там надо //if( componentCreateHierarchyController ) // ComponentUtils.CreateHierarchyControllerForRootComponent( component, this, true );//, true ); //resource is ready //ResultObject = component; Status = StatusEnum.Ready; } }