示例#1
0
        public override int Write(AssetBinaryWriter writer, bool includeHeader)
        {
            this.ShouldSerializeStructsDifferently = false;

            if (Value.Length > 0)
            {
                ArrayType = Value[0].PropertyType;
            }

            if (includeHeader)
            {
                writer.Write(ArrayType);
                writer.WritePropertyGuid(PropertyGuid);
            }

            var removedItemsDummy = new ArrayPropertyData(new FName("ElementsToRemove"));

            removedItemsDummy.ShouldSerializeStructsDifferently = false;
            removedItemsDummy.ArrayType = ArrayType;
            removedItemsDummy.Value     = ElementsToRemove;

            int leng1 = removedItemsDummy.Write(writer, false);

            return(leng1 + base.Write(writer, false));
        }
示例#2
0
        protected override void HandleCloned(PropertyData res)
        {
            ArrayPropertyData cloningProperty = (ArrayPropertyData)res;

            cloningProperty.ArrayType   = (FName)this.ArrayType?.Clone();
            cloningProperty.DummyStruct = (StructPropertyData)this.DummyStruct?.Clone();
        }
示例#3
0
        public override void Read(AssetBinaryReader reader, bool includeHeader, long leng1, long leng2 = 0)
        {
            this.ShouldSerializeStructsDifferently = false;

            if (includeHeader)
            {
                ArrayType    = reader.ReadFName();
                PropertyGuid = reader.ReadPropertyGuid();
            }

            var removedItemsDummy = new ArrayPropertyData(new FName("ElementsToRemove"));

            removedItemsDummy.ShouldSerializeStructsDifferently = false;
            removedItemsDummy.ArrayType = ArrayType;
            removedItemsDummy.Read(reader, false, leng1, leng2);
            ElementsToRemove = removedItemsDummy.Value;

            base.Read(reader, false, leng1, leng2);
        }