示例#1
0
            static partial void FillBinaryBoundDataCustom(MutagenFrame frame, IPlacedObjectInternal item)
            {
                var header = frame.ReadSubrecordFrame();

                if (header.Content.Length != 4)
                {
                    throw new ArgumentException($"Unexpected data header length: {header.Content.Length} != 4");
                }
                item.Unknown = BinaryPrimitives.ReadInt16LittleEndian(header.Content.Slice(2));
                while (frame.Reader.TryReadSubrecord(out var subHeader))
                {
                    switch (subHeader.RecordTypeInt)
                    {
                    case RecordTypeInts.LNAM:
                        item.LightingTemplate = FormKeyBinaryTranslation.Instance.Parse(frame);
                        break;

                    case RecordTypeInts.INAM:
                        item.ImageSpace = FormKeyBinaryTranslation.Instance.Parse(frame);
                        break;

                    case RecordTypeInts.XLRM:
                        item.LinkedRooms.Add(new FormLink <PlacedObject>(FormKeyBinaryTranslation.Instance.Parse(frame)));
                        break;

                    default:
                        frame.Reader.Position -= subHeader.HeaderLength;
                        return;
                    }
                }
            }
示例#2
0
 public static void FillBinaryStructs(
     IPlacedObjectInternal item,
     MutagenFrame frame)
 {
     Fallout4MajorRecordBinaryCreateTranslation.FillBinaryStructs(
         item: item,
         frame: frame);
 }
示例#3
0
 public static void CopyInFromBinary(
     this IPlacedObjectInternal item,
     MutagenFrame frame,
     TypedParseParams?translationParams = null)
 {
     ((PlacedObjectSetterCommon)((IPlacedObjectGetter)item).CommonSetterInstance() !).CopyInFromBinary(
         item: item,
         frame: frame,
         translationParams: translationParams);
 }
示例#4
0
 public static void CopyInFromBinary(
     this IPlacedObjectInternal item,
     MutagenFrame frame,
     RecordTypeConverter?recordTypeConverter = null)
 {
     ((PlacedObjectSetterCommon)((IPlacedObjectGetter)item).CommonSetterInstance() !).CopyInFromBinary(
         item: item,
         frame: frame,
         recordTypeConverter: recordTypeConverter);
 }
示例#5
0
 public virtual void CopyInFromBinary(
     IPlacedObjectInternal item,
     MutagenFrame frame,
     TypedParseParams?translationParams = null)
 {
     PluginUtilityTranslation.MajorRecordParse <IPlacedObjectInternal>(
         record: item,
         frame: frame,
         translationParams: translationParams,
         fillStructs: PlacedObjectBinaryCreateTranslation.FillBinaryStructs,
         fillTyped: PlacedObjectBinaryCreateTranslation.FillBinaryRecordTypes);
 }
 public virtual void CopyInFromBinary(
     IPlacedObjectInternal item,
     MutagenFrame frame,
     RecordTypeConverter?recordTypeConverter = null)
 {
     UtilityTranslation.MajorRecordParse <IPlacedObjectInternal>(
         record: item,
         frame: frame,
         recordTypeConverter: recordTypeConverter,
         fillStructs: PlacedObjectBinaryCreateTranslation.FillBinaryStructs,
         fillTyped: PlacedObjectBinaryCreateTranslation.FillBinaryRecordTypes);
 }
示例#7
0
 public static void DeepCopyIn(
     this IPlacedObjectInternal lhs,
     IPlacedObjectGetter rhs,
     ErrorMaskBuilder?errorMask,
     TranslationCrystal?copyMask)
 {
     ((PlacedObjectSetterTranslationCommon)((IPlacedObjectGetter)lhs).CommonSetterTranslationInstance() !).DeepCopyIn(
         item: lhs,
         rhs: rhs,
         errorMask: errorMask,
         copyMask: copyMask,
         deepCopy: false);
 }
示例#8
0
 public void DeepCopyIn(
     IPlacedObjectInternal item,
     IPlacedObjectGetter rhs,
     ErrorMaskBuilder?errorMask,
     TranslationCrystal?copyMask,
     bool deepCopy)
 {
     base.DeepCopyIn(
         item,
         rhs,
         errorMask,
         copyMask,
         deepCopy: deepCopy);
 }
示例#9
0
        public static void DeepCopyIn(
            this IPlacedObjectInternal lhs,
            IPlacedObjectGetter rhs,
            out PlacedObject.ErrorMask errorMask,
            PlacedObject.TranslationMask?copyMask = null)
        {
            var errorMaskBuilder = new ErrorMaskBuilder();

            ((PlacedObjectSetterTranslationCommon)((IPlacedObjectGetter)lhs).CommonSetterTranslationInstance() !).DeepCopyIn(
                item: lhs,
                rhs: rhs,
                errorMask: errorMaskBuilder,
                copyMask: copyMask?.GetCrystal(),
                deepCopy: false);
            errorMask = PlacedObject.ErrorMask.Factory(errorMaskBuilder);
        }
示例#10
0
 public static partial void FillBinaryOpenByDefaultCustom(MutagenFrame frame, IPlacedObjectInternal item)
 {
     item.OpenByDefault = true;
     frame.Position    += frame.MetaData.Constants.SubConstants.HeaderLength;
 }
示例#11
0
 public void Clear(IPlacedObjectInternal item)
 {
     ClearPartial();
     base.Clear(item);
 }
示例#12
0
 public static void Clear(this IPlacedObjectInternal item)
 {
     ((PlacedObjectSetterCommon)((IPlacedObjectGetter)item).CommonSetterInstance() !).Clear(item: item);
 }