public PapyrusPropertyDefinition(PapyrusAssemblyDefinition declaringAssembly, string name, string typeName) : base(new PapyrusStringRef(declaringAssembly, name), null, PapyrusPrimitiveType.None) { DeclaringAssembly = declaringAssembly; TypeName = typeName.Ref(declaringAssembly); DeclaringType = DeclaringAssembly.Types.FirstOrDefault(); }
/// <summary> /// Reads the papyrus assembly. /// </summary> /// <param name="pexFile">The pex file.</param> /// <returns></returns> public static PapyrusAssemblyDefinition ReadAssembly(string pexFile) { var asm = new PapyrusAssemblyDefinition(); asm.filePath = pexFile; using (var reader = new PapyrusAssemblyReader(asm, pexFile, PapyrusReaderSettings.Default)) { var def = reader.Read(); def.IsCorrupted = reader.IsCorrupted; return(def); } }
public PapyrusTypeDefinition(PapyrusAssemblyDefinition assembly, bool isStruct = false) { Assembly = assembly; Fields = new Collection <PapyrusFieldDefinition>(); NestedTypes = new Collection <PapyrusTypeDefinition>(); Properties = new Collection <PapyrusPropertyDefinition>(); States = new Collection <PapyrusStateDefinition>(); if (!isStruct) { Assembly.Types.Add(this); } }
/// <summary> /// Initializes a new instance of the <see cref="PapyrusFieldDefinition"/> class. /// </summary> /// <param name="declaringAssembly">The declaring assembly.</param> /// <param name="declaringType">Type of the declaring.</param> /// <param name="name">The name.</param> /// <param name="typeName">Name of the type.</param> public PapyrusFieldDefinition(PapyrusAssemblyDefinition declaringAssembly, PapyrusTypeDefinition declaringType, string name, string typeName) : this(declaringAssembly, declaringType) { name = "::" + name.Replace('<', '_').Replace('>', '_'); name = name.Replace("::::", "::"); if (declaringType != null && declaringType.IsStruct) { name = name.Replace(":", ""); } Name = name.Ref(declaringAssembly); TypeName = typeName; }
/// <summary> /// Initializes a new instance of the <see cref="PapyrusFieldDefinition"/> class. /// </summary> /// <param name="declaringAssembly">The declaring assembly.</param> /// <param name="declaringType">Type of the declaring.</param> public PapyrusFieldDefinition(PapyrusAssemblyDefinition declaringAssembly, PapyrusTypeDefinition declaringType) { DeclaringType = declaringType; DeclaringAssembly = declaringAssembly; }
public PapyrusHeaderUserflagCollection(PapyrusAssemblyDefinition asm) { this.asm = asm; }
public PapyrusPropertyDefinition(PapyrusAssemblyDefinition declaringAssembly) { DeclaringAssembly = declaringAssembly; }
/// <summary> /// Initializes a new instance of the <see cref="PapyrusAssemblyMerger" /> class. /// </summary> /// <param name="source">The source.</param> /// <param name="otherAssembly">The other assembly.</param> public PapyrusAssemblyMerger(PapyrusAssemblyDefinition source, PapyrusAssemblyDefinition otherAssembly) { this.source = source; this.otherAssembly = otherAssembly; }
/// <summary> /// Initializes a new instance of the <see cref="PapyrusHeader"/> class. /// </summary> /// <param name="assembly">The assembly.</param> public PapyrusHeader(PapyrusAssemblyDefinition assembly) { this.assembly = assembly; UserflagReferenceHeader = new PapyrusHeaderUserflagCollection(assembly); SourceHeader = new PapyrusSourceHeader(); }
public PapyrusMethodDefinition(PapyrusAssemblyDefinition declaringAssembly) { DeclaringAssembly = declaringAssembly; Parameters = new List <PapyrusParameterDefinition>(); Body = new PapyrusMethodBody(this); }
/// <summary> /// Reloads the papyrus assembly specified. /// </summary> /// <param name="definitionToReload">The definition to reload.</param> /// <returns></returns> public static PapyrusAssemblyDefinition ReloadAssembly(PapyrusAssemblyDefinition definitionToReload) { return(ReadAssembly(definitionToReload.filePath, PapyrusReaderSettings.Default)); }
/// <summary> /// Merges the other assembly with this one to form a new one. /// </summary> /// <param name="otherAssembly">The other assembly.</param> /// <returns></returns> public PapyrusAssemblyDefinition Merge(PapyrusAssemblyDefinition otherAssembly) { return(new PapyrusAssemblyMerger(this, otherAssembly).Merge()); }