public static ActorValueInformationBinaryOverlay ActorValueInformationFactory(
            OverlayStream stream,
            BinaryOverlayFactoryPackage package,
            RecordTypeConverter?recordTypeConverter = null)
        {
            stream = UtilityTranslation.DecompressStream(stream);
            var ret = new ActorValueInformationBinaryOverlay(
                bytes: HeaderTranslation.ExtractRecordMemory(stream.RemainingMemory, package.MetaData.Constants),
                package: package);
            var finalPos = checked ((int)(stream.Position + stream.GetMajorRecord().TotalLength));
            int offset   = stream.Position + package.MetaData.Constants.MajorConstants.TypeAndLengthLength;

            ret._package.FormVersion = ret;
            stream.Position         += 0x10 + package.MetaData.Constants.MajorConstants.TypeAndLengthLength;
            ret.CustomFactoryEnd(
                stream: stream,
                finalPos: finalPos,
                offset: offset);
            ret.FillSubrecordTypes(
                majorReference: ret,
                stream: stream,
                finalPos: finalPos,
                offset: offset,
                recordTypeConverter: recordTypeConverter,
                fill: ret.FillRecordType);
            return(ret);
        }
示例#2
0
            public static GroupListOverlay <T> Factory(
                IBinaryReadStream stream,
                ReadOnlyMemorySlice <byte> data,
                BinaryOverlayFactoryPackage package,
                ObjectType objectType,
                int offset)
            {
                List <int> locations = new List <int>();

                stream.Position -= package.MetaData.Constants.GroupConstants.HeaderLength;
                var groupMeta = stream.GetGroup(package);
                var finalPos  = stream.Position + groupMeta.TotalLength;

                stream.Position += package.MetaData.Constants.GroupConstants.HeaderLength;
                // Parse locations
                while (stream.Position < finalPos)
                {
                    VariableHeader meta = package.MetaData.Constants.Constants(objectType).VariableMeta(stream.RemainingMemory);
                    locations.Add(checked ((int)stream.Position - offset));
                    stream.Position += checked ((int)meta.TotalLength);
                }

                return(new GroupListOverlay <T>(
                           locations,
                           data,
                           package));
            }
示例#3
0
        public static LensFlareBinaryOverlay LensFlareFactory(
            OverlayStream stream,
            BinaryOverlayFactoryPackage package,
            TypedParseParams?parseParams = null)
        {
            stream = PluginUtilityTranslation.DecompressStream(stream);
            var ret = new LensFlareBinaryOverlay(
                bytes: HeaderTranslation.ExtractRecordMemory(stream.RemainingMemory, package.MetaData.Constants),
                package: package);
            var finalPos = checked ((int)(stream.Position + stream.GetMajorRecord().TotalLength));
            int offset   = stream.Position + package.MetaData.Constants.MajorConstants.TypeAndLengthLength;

            ret._package.FormVersion = ret;
            stream.Position         += 0x10 + package.MetaData.Constants.MajorConstants.TypeAndLengthLength;
            ret.CustomFactoryEnd(
                stream: stream,
                finalPos: finalPos,
                offset: offset);
            ret.FillSubrecordTypes(
                majorReference: ret,
                stream: stream,
                finalPos: finalPos,
                offset: offset,
                parseParams: parseParams,
                fill: ret.FillRecordType);
            return(ret);
        }
示例#4
0
文件: Global.cs 项目: erri120/Mutagen
            public static GlobalBinaryOverlay GlobalFactory(
                OverlayStream stream,
                BinaryOverlayFactoryPackage package,
                RecordTypeConverter recordTypeConverter)
            {
                var majorFrame = package.MetaData.Constants.MajorRecordFrame(stream.RemainingMemory);
                var globalChar = GlobalCustomParsing.GetGlobalChar(majorFrame);

                switch (globalChar)
                {
                case GlobalInt.TRIGGER_CHAR:
                    return(GlobalIntBinaryOverlay.GlobalIntFactory(
                               stream,
                               package));

                case GlobalShort.TRIGGER_CHAR:
                    return(GlobalShortBinaryOverlay.GlobalShortFactory(
                               stream,
                               package));

                case GlobalFloat.TRIGGER_CHAR:
                    return(GlobalFloatBinaryOverlay.GlobalFloatFactory(
                               stream,
                               package));

                default:
                    throw new ArgumentException($"Unknown trigger char: {globalChar}");
                }
            }
示例#5
0
 public static PathGridPointBinaryOverlay Factory(
     ReadOnlyMemorySlice <byte> stream,
     BinaryOverlayFactoryPackage package)
 {
     return(new PathGridPointBinaryOverlay(
                bytes: stream.Slice(0, 16),
                package: package));
 }
示例#6
0
 public GroupListOverlay(
     IReadOnlyList <int> locs,
     ReadOnlyMemorySlice <byte> data,
     BinaryOverlayFactoryPackage package)
 {
     this._locs    = locs;
     this._data    = data;
     this._package = package;
 }
示例#7
0
 protected AnimationSoundTagSetBinaryOverlay(
     ReadOnlyMemorySlice <byte> bytes,
     BinaryOverlayFactoryPackage package)
     : base(
         bytes: bytes,
         package: package)
 {
     this.CustomCtor();
 }
 protected ActorValueInformationBinaryOverlay(
     ReadOnlyMemorySlice <byte> bytes,
     BinaryOverlayFactoryPackage package)
     : base(
         bytes: bytes,
         package: package)
 {
     this.CustomCtor();
 }
 protected MagicEffectWerewolfArchetypeBinaryOverlay(
     ReadOnlyMemorySlice <byte> bytes,
     BinaryOverlayFactoryPackage package)
     : base(
         bytes: bytes,
         package: package)
 {
     this.CustomCtor();
 }
示例#10
0
 protected LensFlareBinaryOverlay(
     ReadOnlyMemorySlice <byte> bytes,
     BinaryOverlayFactoryPackage package)
     : base(
         bytes: bytes,
         package: package)
 {
     this.CustomCtor();
 }
示例#11
0
 protected SoundDescriptorBinaryOverlay(
     ReadOnlyMemorySlice <byte> bytes,
     BinaryOverlayFactoryPackage package)
     : base(
         bytes: bytes,
         package: package)
 {
     this.CustomCtor();
 }
示例#12
0
文件: AGroup.cs 项目: Deigue/Mutagen
 public GroupMajorRecordCacheWrapper(
     IReadOnlyDictionary <FormKey, int> locs,
     ReadOnlyMemorySlice <byte> data,
     BinaryOverlayFactoryPackage package)
 {
     this._locs    = locs;
     this._data    = data;
     this._package = package;
 }
示例#13
0
 protected VirtualMachineAdapterBinaryOverlay(
     ReadOnlyMemorySlice <byte> bytes,
     BinaryOverlayFactoryPackage package)
     : base(
         bytes: bytes,
         package: package)
 {
     this.CustomCtor();
 }
示例#14
0
 public static MaterialSwapBinaryOverlay MaterialSwapFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(MaterialSwapFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
示例#15
0
 public static MiscItemBinaryOverlay MiscItemFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(MiscItemFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
 public static MagicEffectWerewolfArchetypeBinaryOverlay MagicEffectWerewolfArchetypeFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(MagicEffectWerewolfArchetypeFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
示例#17
0
 public static VirtualMachineAdapterBinaryOverlay VirtualMachineAdapterFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(VirtualMachineAdapterFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
示例#18
0
 public static ActorValueInformationBinaryOverlay ActorValueInformationFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(ActorValueInformationFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
示例#19
0
 public static PlacedObjectBinaryOverlay PlacedObjectFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(PlacedObjectFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
示例#20
0
 public static SoundDescriptorBinaryOverlay SoundDescriptorFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(SoundDescriptorFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
 public static VirtualMachineAdapterBinaryOverlay VirtualMachineAdapterFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(VirtualMachineAdapterFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
示例#22
0
 public static SoundDescriptorBinaryOverlay SoundDescriptorFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(SoundDescriptorFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
示例#23
0
 public static LeveledSpellBinaryOverlay LeveledSpellFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(LeveledSpellFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
示例#24
0
 public static LensFlareBinaryOverlay LensFlareFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(LensFlareFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
 public static SpellLeveledBinaryOverlay SpellLeveledFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(SpellLeveledFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
示例#26
0
 public static AnimationSoundTagSetBinaryOverlay AnimationSoundTagSetFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(AnimationSoundTagSetFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
 public static ActorValueInformationBinaryOverlay ActorValueInformationFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(ActorValueInformationFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
示例#28
0
 public static MagicEffectSpawnHazardArchetypeBinaryOverlay MagicEffectSpawnHazardArchetypeFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(MagicEffectSpawnHazardArchetypeFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }
示例#29
0
 public static AttractionRuleBinaryOverlay AttractionRuleFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     RecordTypeConverter?recordTypeConverter = null)
 {
     return(AttractionRuleFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                recordTypeConverter: recordTypeConverter));
 }
 public static AnimationSoundTagSetBinaryOverlay AnimationSoundTagSetFactory(
     ReadOnlyMemorySlice <byte> slice,
     BinaryOverlayFactoryPackage package,
     TypedParseParams?parseParams = null)
 {
     return(AnimationSoundTagSetFactory(
                stream: new OverlayStream(slice, package),
                package: package,
                parseParams: parseParams));
 }