コード例 #1
0
        public virtual int GetHashCode(IPlacedObjectGetter item)
        {
            var hash = new HashCode();

            hash.Add(base.GetHashCode());
            return(hash.ToHashCode());
        }
コード例 #2
0
 public void Write(
     MutagenWriter writer,
     IPlacedObjectGetter item,
     RecordTypeConverter?recordTypeConverter = null)
 {
     using (HeaderExport.Header(
                writer: writer,
                record: recordTypeConverter.ConvertToCustom(RecordTypes.REFR),
                type: ObjectType.Record))
     {
         try
         {
             Fallout4MajorRecordBinaryWriteTranslation.WriteEmbedded(
                 item: item,
                 writer: writer);
             MajorRecordBinaryWriteTranslation.WriteRecordTypes(
                 item: item,
                 writer: writer,
                 recordTypeConverter: recordTypeConverter);
         }
         catch (Exception ex)
         {
             throw RecordException.Enrich(ex, item);
         }
     }
 }
コード例 #3
0
 public void Write(
     MutagenWriter writer,
     IPlacedObjectGetter item,
     TypedWriteParams?translationParams = null)
 {
     using (HeaderExport.Record(
                writer: writer,
                record: translationParams.ConvertToCustom(RecordTypes.REFR)))
     {
         try
         {
             Fallout4MajorRecordBinaryWriteTranslation.WriteEmbedded(
                 item: item,
                 writer: writer);
             MajorRecordBinaryWriteTranslation.WriteRecordTypes(
                 item: item,
                 writer: writer,
                 translationParams: translationParams);
         }
         catch (Exception ex)
         {
             throw RecordException.Enrich(ex, item);
         }
     }
 }
コード例 #4
0
 public IEnumerable <IFormLinkGetter> GetContainedFormLinks(IPlacedObjectGetter obj)
 {
     foreach (var item in base.GetContainedFormLinks(obj))
     {
         yield return(item);
     }
     yield break;
 }
コード例 #5
0
 public static PlacedObject DeepCopy(
     this IPlacedObjectGetter item,
     PlacedObject.TranslationMask?copyMask = null)
 {
     return(((PlacedObjectSetterTranslationCommon)((IPlacedObjectGetter)item).CommonSetterTranslationInstance() !).DeepCopy(
                item: item,
                copyMask: copyMask));
 }
コード例 #6
0
 static partial void WriteBinaryOpenByDefaultCustom(MutagenWriter writer, IPlacedObjectGetter item)
 {
     if (item.OpenByDefault)
     {
         using (HeaderExport.Subrecord(writer, RecordTypes.ONAM))
         {
         }
     }
 }
コード例 #7
0
 public static string ToString(
     this IPlacedObjectGetter item,
     string?name = null,
     PlacedObject.Mask <bool>?printMask = null)
 {
     return(((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).ToString(
                item: item,
                name: name,
                printMask: printMask));
 }
コード例 #8
0
 public static PlacedObject.Mask <bool> GetEqualsMask(
     this IPlacedObjectGetter item,
     IPlacedObjectGetter rhs,
     EqualsMaskHelper.Include include = EqualsMaskHelper.Include.All)
 {
     return(((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).GetEqualsMask(
                item: item,
                rhs: rhs,
                include: include));
 }
コード例 #9
0
 protected static void ToStringFields(
     IPlacedObjectGetter item,
     FileGeneration fg,
     PlacedObject.Mask <bool>?printMask = null)
 {
     Fallout4MajorRecordCommon.ToStringFields(
         item: item,
         fg: fg,
         printMask: printMask);
 }
コード例 #10
0
 public static bool Equals(
     this IPlacedObjectGetter item,
     IPlacedObjectGetter rhs,
     PlacedObject.TranslationMask?equalsMask = null)
 {
     return(((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).Equals(
                lhs: item,
                rhs: rhs,
                crystal: equalsMask?.GetCrystal()));
 }
コード例 #11
0
        public PlacedObject Duplicate(
            IPlacedObjectGetter item,
            FormKey formKey,
            TranslationCrystal?copyMask)
        {
            var newRec = new PlacedObject(formKey);

            newRec.DeepCopyIn(item, default(ErrorMaskBuilder?), copyMask);
            return(newRec);
        }
コード例 #12
0
 public static PlacedObject Duplicate(
     this IPlacedObjectGetter item,
     FormKey formKey,
     PlacedObject.TranslationMask?copyMask = null)
 {
     return(((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).Duplicate(
                item: item,
                formKey: formKey,
                copyMask: copyMask?.GetCrystal()));
 }
コード例 #13
0
 public static PlacedObject DeepCopy(
     this IPlacedObjectGetter item,
     ErrorMaskBuilder?errorMask,
     TranslationCrystal?copyMask = null)
 {
     return(((PlacedObjectSetterTranslationCommon)((IPlacedObjectGetter)item).CommonSetterTranslationInstance() !).DeepCopy(
                item: item,
                copyMask: copyMask,
                errorMask: errorMask));
 }
コード例 #14
0
 public static void ToString(
     this IPlacedObjectGetter item,
     FileGeneration fg,
     string?name = null,
     PlacedObject.Mask <bool>?printMask = null)
 {
     ((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).ToString(
         item: item,
         fg: fg,
         name: name,
         printMask: printMask);
 }
コード例 #15
0
 public void FillEqualsMask(
     IPlacedObjectGetter item,
     IPlacedObjectGetter rhs,
     PlacedObject.Mask <bool> ret,
     EqualsMaskHelper.Include include = EqualsMaskHelper.Include.All)
 {
     if (rhs == null)
     {
         return;
     }
     base.FillEqualsMask(item, rhs, ret, include);
 }
コード例 #16
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);
 }
コード例 #17
0
        public string ToString(
            IPlacedObjectGetter item,
            string?name = null,
            PlacedObject.Mask <bool>?printMask = null)
        {
            var fg = new FileGeneration();

            ToString(
                item: item,
                fg: fg,
                name: name,
                printMask: printMask);
            return(fg.ToString());
        }
コード例 #18
0
        public PlacedObject.Mask <bool> GetEqualsMask(
            IPlacedObjectGetter item,
            IPlacedObjectGetter rhs,
            EqualsMaskHelper.Include include = EqualsMaskHelper.Include.All)
        {
            var ret = new PlacedObject.Mask <bool>(false);

            ((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).FillEqualsMask(
                item: item,
                rhs: rhs,
                ret: ret,
                include: include);
            return(ret);
        }
コード例 #19
0
 public void DeepCopyIn(
     IPlacedObject item,
     IPlacedObjectGetter rhs,
     ErrorMaskBuilder?errorMask,
     TranslationCrystal?copyMask,
     bool deepCopy)
 {
     base.DeepCopyIn(
         (IFallout4MajorRecord)item,
         (IFallout4MajorRecordGetter)rhs,
         errorMask,
         copyMask,
         deepCopy: deepCopy);
 }
コード例 #20
0
        public PlacedObject DeepCopy(
            IPlacedObjectGetter item,
            PlacedObject.TranslationMask?copyMask = null)
        {
            PlacedObject ret = (PlacedObject)((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).GetNew();

            ((PlacedObjectSetterTranslationCommon)((IPlacedObjectGetter)ret).CommonSetterTranslationInstance() !).DeepCopyIn(
                item: ret,
                rhs: item,
                errorMask: null,
                copyMask: copyMask?.GetCrystal(),
                deepCopy: true);
            return(ret);
        }
コード例 #21
0
 public void DeepCopyIn(
     IPlacedObjectInternal item,
     IPlacedObjectGetter rhs,
     ErrorMaskBuilder?errorMask,
     TranslationCrystal?copyMask,
     bool deepCopy)
 {
     base.DeepCopyIn(
         item,
         rhs,
         errorMask,
         copyMask,
         deepCopy: deepCopy);
 }
コード例 #22
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);
        }
コード例 #23
0
        public PlacedObject DeepCopy(
            IPlacedObjectGetter item,
            out PlacedObject.ErrorMask errorMask,
            PlacedObject.TranslationMask?copyMask = null)
        {
            var          errorMaskBuilder = new ErrorMaskBuilder();
            PlacedObject ret = (PlacedObject)((PlacedObjectCommon)((IPlacedObjectGetter)item).CommonInstance() !).GetNew();

            ((PlacedObjectSetterTranslationCommon)((IPlacedObjectGetter)ret).CommonSetterTranslationInstance() !).DeepCopyIn(
                ret,
                item,
                errorMask: errorMaskBuilder,
                copyMask: copyMask?.GetCrystal(),
                deepCopy: true);
            errorMask = PlacedObject.ErrorMask.Factory(errorMaskBuilder);
            return(ret);
        }
コード例 #24
0
            static partial void WriteBinaryBoundDataCustom(MutagenWriter writer, IPlacedObjectGetter item)
            {
                var lightingTemplate = item.LightingTemplate;
                var imageSpace       = item.ImageSpace;
                var linkedRooms      = item.LinkedRooms;
                var unknown2         = item.Unknown;

                if (lightingTemplate.FormKeyNullable == null &&
                    imageSpace.FormKeyNullable == null &&
                    linkedRooms.Count == 0 &&
                    unknown2 == 0)
                {
                    return;
                }
                using (HeaderExport.Subrecord(writer, RecordTypes.XRMR))
                {
                    writer.Write((byte)item.LinkedRooms.Count);
                    byte flags = 0;
                    if (lightingTemplate.FormKeyNullable != null)
                    {
                        flags = EnumExt.SetFlag(flags, PlacedObjectBinaryCreateTranslation.HasLightingTemplateFlag, true);
                    }
                    if (imageSpace.FormKeyNullable != null)
                    {
                        flags = EnumExt.SetFlag(flags, PlacedObjectBinaryCreateTranslation.HasImageSpaceFlag, true);
                    }
                    writer.Write(flags);
                    writer.Write(unknown2);
                }
                if (lightingTemplate.FormKeyNullable != null)
                {
                    FormKeyBinaryTranslation.Instance.Write(writer, lightingTemplate.FormKeyNullable.Value, RecordTypes.LNAM);
                }
                if (imageSpace.FormKeyNullable != null)
                {
                    FormKeyBinaryTranslation.Instance.Write(writer, imageSpace.FormKeyNullable.Value, RecordTypes.INAM);
                }
                foreach (var room in linkedRooms)
                {
                    FormKeyBinaryTranslation.Instance.Write(writer, room.FormKey, RecordTypes.XLRM);
                }
            }
コード例 #25
0
 public void ToString(
     IPlacedObjectGetter item,
     FileGeneration fg,
     string?name = null,
     PlacedObject.Mask <bool>?printMask = null)
 {
     if (name == null)
     {
         fg.AppendLine($"PlacedObject =>");
     }
     else
     {
         fg.AppendLine($"{name} (PlacedObject) =>");
     }
     fg.AppendLine("[");
     using (new DepthWrapper(fg))
     {
         ToStringFields(
             item: item,
             fg: fg,
             printMask: printMask);
     }
     fg.AppendLine("]");
 }