Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        /// <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;
        }
Ejemplo n.º 5
0
 /// <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;
 }
Ejemplo n.º 6
0
 public PapyrusHeaderUserflagCollection(PapyrusAssemblyDefinition asm)
 {
     this.asm = asm;
 }
Ejemplo n.º 7
0
 public PapyrusPropertyDefinition(PapyrusAssemblyDefinition declaringAssembly)
 {
     DeclaringAssembly = declaringAssembly;
 }
Ejemplo n.º 8
0
 /// <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;
 }
Ejemplo n.º 9
0
 /// <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();
 }
Ejemplo n.º 10
0
 public PapyrusMethodDefinition(PapyrusAssemblyDefinition declaringAssembly)
 {
     DeclaringAssembly = declaringAssembly;
     Parameters        = new List <PapyrusParameterDefinition>();
     Body = new PapyrusMethodBody(this);
 }
Ejemplo n.º 11
0
 /// <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));
 }
Ejemplo n.º 12
0
 /// <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());
 }