예제 #1
0
        protected internal override void DeserializeProperty(UnrealBinaryReader reader)
        {
            Value      = reader.ReadGuid();
            ActorState = (EFortBuildingPersistentState)reader.ReadByte();
            ActorPath  = reader.ReadFString();

            Rotation.DeserializeProperty(reader);
            Location.DeserializeProperty(reader);
            Scale.DeserializeProperty(reader);

            SpawnedActor = reader.ReadInt32() == 1;

            PropertyByteSize = reader.ReadInt32();

            long currentPosition = reader.BaseStream.Position;

            if (PropertyByteSize > 0)
            {
                ActorData = reader.ReadProperties();
                reader.ReadInt32(); //?
            }

            long remainingBytes = PropertyByteSize - (reader.BaseStream.Position - currentPosition);

            if (remainingBytes > 0)
            {
                UnknownExtraBytes = reader.ReadBytes((int)remainingBytes);
            }
        }
 protected internal override void DeserializeProperty(UnrealBinaryReader reader)
 {
     if (Name == null || Name == "None")
     {
         Value = reader.ReadByte();
     }
     else
     {
         Value = reader.ReadFString();
     }
 }
예제 #3
0
        protected internal override void DeserializeProperty(UnrealBinaryReader reader)
        {
            List <UProperty> items = new List <UProperty>();

            int count = reader.ReadInt32();

            string innerTypeName = null;

            if (_innerType == "StructProperty")
            {
                string settingName = reader.ReadFString();
                string typeName    = reader.ReadFString();

                UProperty property = UnrealTypes.GetPropertyByName(_innerType);
                property.DeserializeTypeInfo(reader);

                innerTypeName = property.TypeName;

                if (property is FStructProperty structProperty)
                {
                    if (UnrealTypes.HasPropertyName(structProperty._structName))
                    {
                        innerTypeName = structProperty._structName;
                    }
                }
            }

            for (int i = 0; i < count; i++)
            {
                UProperty arrayType = UnrealTypes.GetPropertyByName(innerTypeName ?? _innerType);

                arrayType.DeserializeProperty(reader);
                arrayType.ArrayIndex = i;

                items.Add(arrayType);
            }

            Value = items;
        }
예제 #4
0
 protected override void PreDeserializeProperty(UnrealBinaryReader reader)
 {
     _innerType = reader.ReadFString();
 }
 protected override void PreDeserializeProperty(UnrealBinaryReader reader)
 {
     _structName = reader.ReadFString();
     _structGuid = reader.ReadGuid();
 }
 protected internal override void DeserializeProperty(UnrealBinaryReader reader)
 {
     Value = reader.ReadFString();
 }
예제 #7
0
 protected override void PreDeserializeProperty(UnrealBinaryReader reader)
 {
     EnumName = reader.ReadFString();
 }