public void ToExportCall(object sender)
        {
            SetExportEventArgs eventArgs = new SetExportEventArgs()
            {
                ExportItemList = SelectedNoExportList,
                doExport       = true
            };

            SetExportEventHandler?.Invoke(this, eventArgs);

            foreach (ExportItem item in SelectedNoExportList)
            {
                ExportList.Add(item);
                NoExportList.Remove(item);
                item.IsSelected = false;
            }

            SelectedNoExportList.Clear();
        }
Example #2
0
        /// <summary>
        /// Initialize the <see cref="Package"/> by reading from the given filename.
        /// </summary>
        /// <param name="state">The <see cref="State"/> this <see cref="Package"/> is to exist within.</param>
        /// <param name="fileName">The name of the file to open that contains the <see cref="Package"/>.</param>
        /// <param name="reader">The <see cref="BinaryReader"/> to read from.</param>
        public Package(State state, string fileName, BinaryReader reader)
        {
            if (state == null)
                throw new ArgumentNullException("state");
            if (reader == null)
                throw new ArgumentNullException("reader");

            if (reader.ReadInt32() != Magic)
                throw new Exception("Unreal package magic test failed.");
            Reader = reader;

            FileName = fileName;
            Export = new Unreal.Export(this, -1);
            Export.Name = Path.GetFileNameWithoutExtension(fileName);
            Export.LoadedObject = this;

            StateValue = state;
            FileVersion = reader.ReadUInt16();
            LicenseMode = reader.ReadUInt16();
            Flags = (PackageFlag)reader.ReadUInt32();
            var nameCount = reader.ReadInt32();
            var nameOffset = reader.ReadUInt32();
            var exportCount = reader.ReadInt32();
            var exportOffset = reader.ReadUInt32();
            var importCount = reader.ReadInt32();
            var importOffset = reader.ReadUInt32();
            if (FileVersion >= 68)
                Guid = new Guid(reader.ReadBytes(16));

            Imports = new ImportList(importCount);
            for (var index = 0; index < importCount; index++)
                Imports.Add(new Import(this, index));

            Exports = new ExportList(exportCount);
            for (var index = 0; index < exportCount; index++)
                Exports.Add(new Export(this, index));

            Names = new NameList(nameCount);
            reader.BaseStream.Position = nameOffset;
            for (var index = 0; index < nameCount; index++)
                Names.Add(new Name(this, reader));

            reader.BaseStream.Position = exportOffset;
            for (var index = 0; index < exportCount; index++)
                Exports[index].Load(reader);

            reader.BaseStream.Position = importOffset;
            for (var index = 0; index < importCount; index++)
                Imports[index].Load(reader);

            FilteredExports = new ExportList(exportCount);
            foreach (var export in Exports) {
                /*if(export.ObjectClassReference != null && export.ObjectClassReference.Name.EndsWith("Property")) {
                    if(((((Alexandria.Engines.Unreal.Core.Property)export.Object).PropertyFlags) & Alexandria.Engines.Unreal.Core.PropertyFlag.Test) != 0)
                        FilteredExports.Add(export);
                }*/
                if (export.ObjectClassReference == null || !export.ObjectClassReference.Name.EndsWith("Property"))
                    FilteredExports.Add(export);
            }

            Game = DetermineGame(FileVersion, LicenseMode, IsEncrypted);
        }
 public void AddExportItem(string name)
 {
     ExportList.Add(new ExportItem(name));
 }
Example #4
0
 internal protected void Add(string name, DyObject obj)
 {
     ExportList.Add(name, new ScopeVar(0 | ExportList.Count << 8, VarFlags.Foreign));
     Values.Add(obj);
 }