Example #1
0
 public void Read(AssetReader reader)
 {
     AvatarSkeleton.Read(reader);
     AvatarSkeletonPose.Read(reader);
     if (HasDefaultPose(reader.Version))
     {
         DefaultPose.Read(reader);
         SkeletonNameIDArray = reader.ReadUInt32Array();
     }
     Human.Read(reader);
     HumanSkeletonIndexArray = reader.ReadInt32Array();
     if (HasHumanSkeletonReverseIndexArray(reader.Version))
     {
         HumanSkeletonReverseIndexArray = reader.ReadInt32Array();
     }
     else
     {
         HumanSkeletonReverseIndexArray = new int[AvatarSkeleton.Instance.Node.Length];
         for (int i = 0; i < AvatarSkeleton.Instance.Node.Length; i++)
         {
             HumanSkeletonReverseIndexArray[i] = HumanSkeletonIndexArray.IndexOf(i);
         }
     }
     RootMotionBoneIndex = reader.ReadInt32();
     RootMotionBoneX.Read(reader);
     if (HasRootMotionSkeleton(reader.Version))
     {
         RootMotionSkeleton.Read(reader);
         RootMotionSkeletonPose.Read(reader);
         RootMotionSkeletonIndexArray = reader.ReadInt32Array();
     }
 }
Example #2
0
 public void Read(AssetReader reader)
 {
     AvatarSkeleton.Read(reader);
     AvatarSkeletonPose.Read(reader);
     if (IsReadDefaultPose(reader.Version))
     {
         DefaultPose.Read(reader);
         m_skeletonNameIDArray = reader.ReadUInt32Array();
     }
     Human.Read(reader);
     m_humanSkeletonIndexArray = reader.ReadInt32Array();
     if (IsReadHumanSkeletonReverseIndexArray(reader.Version))
     {
         m_humanSkeletonReverseIndexArray = reader.ReadInt32Array();
     }
     else
     {
         m_humanSkeletonReverseIndexArray = new int[AvatarSkeleton.Instance.Node.Count];
         for (int i = 0; i < AvatarSkeleton.Instance.Node.Count; i++)
         {
             m_humanSkeletonReverseIndexArray[i] = m_humanSkeletonIndexArray.IndexOf(i);
         }
     }
     RootMotionBoneIndex = reader.ReadInt32();
     RootMotionBoneX.Read(reader);
     if (IsReadRootMotionSkeleton(reader.Version))
     {
         RootMotionSkeleton.Read(reader);
         RootMotionSkeletonPose.Read(reader);
         m_rootMotionSkeletonIndexArray = reader.ReadInt32Array();
     }
 }
Example #3
0
 public void Read(AssetReader reader)
 {
     RootX.Read(reader);
     Skeleton.Read(reader);
     SkeletonPose.Read(reader);
     LeftHand.Read(reader);
     RightHand.Read(reader);
     if (IsReadHandles(reader.Version))
     {
         m_handles       = reader.ReadArray <Handle>();
         m_colliderArray = reader.ReadArray <Collider>();
     }
     m_humanBoneIndex = reader.ReadInt32Array();
     m_humanBoneMass  = reader.ReadSingleArray();
     if (IsReadColliderIndex(reader.Version))
     {
         m_colliderIndex = reader.ReadInt32Array();
     }
     Scale         = reader.ReadSingle();
     ArmTwist      = reader.ReadSingle();
     ForeArmTwist  = reader.ReadSingle();
     UpperLegTwist = reader.ReadSingle();
     LegTwist      = reader.ReadSingle();
     ArmStretch    = reader.ReadSingle();
     LegStretch    = reader.ReadSingle();
     FeetSpacing   = reader.ReadSingle();
     HasLeftHand   = reader.ReadBoolean();
     HasRightHand  = reader.ReadBoolean();
     if (IsReadHasTDoF(reader.Version))
     {
         HasTDoF = reader.ReadBoolean();
     }
     reader.AlignStream(AlignType.Align4);
 }
        public void Read(AssetReader reader)
        {
            Sprites = reader.ReadAssetArray <SpriteMetaData>();
            if (SpriteMetaData.HasOutline(reader.Version))
            {
                Outline = reader.ReadAssetArrayArray <Vector2f>();
            }
            if (SpriteMetaData.HasPhysicsShape(reader.Version))
            {
                PhysicsShape = reader.ReadAssetArrayArray <Vector2f>();
            }
            if (SpriteMetaData.HasBones(reader.Version))
            {
                Bones    = reader.ReadAssetArray <SpriteBone>();
                SpriteID = reader.ReadString();
            }
            if (SpriteMetaData.HasInternalID(reader.Version))
            {
                InternalID = reader.ReadInt64();
            }
            if (SpriteMetaData.HasBones(reader.Version))
            {
                Vertices = reader.ReadAssetArray <Vector2f>();
                Indices  = reader.ReadInt32Array();
                Edges    = reader.ReadAssetArray <Int2Storage>();
                reader.AlignStream();

                Weights = reader.ReadAssetArray <BoneWeights4>();
                reader.AlignStream();
            }
            if (HasSecondaryTextures(reader.Version))
            {
                SecondaryTextures = reader.ReadAssetArray <SecondarySpriteTexture>();
            }
        }
Example #5
0
 public void Read(AssetReader reader)
 {
     m_vertices = reader.ReadAssetArray <Vector3f>();
     m_indices  = reader.ReadInt32Array();
     Bounds.Read(reader);
     m_nodes = reader.ReadAssetArray <HeightMeshBVNode>();
 }
Example #6
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            m_scripts = reader.ReadAssetArray <PPtr <MonoScript> >();
            if (IsReadHasCompileErrors(reader.Version))
            {
                HasCompileErrors = reader.ReadBoolean();
                if (IsAlign(reader.Version))
                {
                    reader.AlignStream(AlignType.Align4);
                }

                EngineDllModDate.Read(reader);
            }
            if (IsReadCustomDlls(reader.Version))
            {
                m_customDlls = reader.ReadStringArray();
            }
            m_assemblyNames = reader.ReadStringArray();
            if (IsReadAssemblyIdentifiers(reader.Version))
            {
                m_assemblyIdentifiers = reader.ReadStringArray();
            }
            if (IsReadAssemblyTypes(reader.Version))
            {
                m_assemblyTypes = reader.ReadInt32Array();
            }
        }
Example #7
0
 public void Read(AssetReader reader)
 {
     ProbeOcclusionLightIndex = reader.ReadInt32Array();
     Occlusion = reader.ReadSingleArray();
     if (HasOcclusionMaskChannel(reader.Version))
     {
         OcclusionMaskChannel = reader.ReadByteArray();
     }
 }
Example #8
0
 public void Read(AssetReader reader)
 {
     m_probeOcclusionLightIndex = reader.ReadInt32Array();
     m_occlusion = reader.ReadSingleArray();
     if (IsReadOcclusionMaskChannel(reader.Version))
     {
         m_occlusionMaskChannel = reader.ReadByteArray();
     }
 }
Example #9
0
        public void Read(AssetReader reader)
        {
            if (IsPrimeFirst(reader.Version))
            {
                BoolValues = reader.ReadBooleanArray();
                reader.AlignStream();

                IntValues   = reader.ReadInt32Array();
                FloatValues = reader.ReadSingleArray();
            }

            if (HasVectorValues(reader.Version))
            {
                VectorValues = reader.ReadAssetArray <Vector4f>();
            }
            else
            {
                if (IsVector4(reader.Version))
                {
                    Position4Values = reader.ReadAssetArray <Vector4f>();
                }
                else
                {
                    Position3Values = reader.ReadAssetArray <Vector3f>();
                }
                QuaternionValues = reader.ReadAssetArray <Quaternionf>();
                if (IsVector4(reader.Version))
                {
                    Scale4Values = reader.ReadAssetArray <Vector4f>();
                }
                else
                {
                    Scale3Values = reader.ReadAssetArray <Vector3f>();
                }
            }

            if (!IsPrimeFirst(reader.Version))
            {
                FloatValues = reader.ReadSingleArray();
                IntValues   = reader.ReadInt32Array();
                BoolValues  = reader.ReadBooleanArray();
                reader.AlignStream();
            }
        }
Example #10
0
        public void Read(AssetReader reader)
        {
            if (IsPrimeFirst(reader.Version))
            {
                m_boolValues = reader.ReadBooleanArray();
                reader.AlignStream(AlignType.Align4);

                m_intValues   = reader.ReadInt32Array();
                m_floatValues = reader.ReadSingleArray();
            }

            if (IsReadVectorValues(reader.Version))
            {
                m_vectorValues = reader.ReadArray <Vector4f>();
            }
            else
            {
                if (IsVector4(reader.Version))
                {
                    m_position4Values = reader.ReadArray <Vector4f>();
                }
                else
                {
                    m_position3Values = reader.ReadArray <Vector3f>();
                }
                m_quaternionValues = reader.ReadArray <Quaternionf>();
                if (IsVector4(reader.Version))
                {
                    m_scale4Values = reader.ReadArray <Vector4f>();
                }
                else
                {
                    m_scale3Values = reader.ReadArray <Vector3f>();
                }
            }

            if (!IsPrimeFirst(reader.Version))
            {
                m_floatValues = reader.ReadSingleArray();
                m_intValues   = reader.ReadInt32Array();
                m_boolValues  = reader.ReadBooleanArray();
                reader.AlignStream(AlignType.Align4);
            }
        }
Example #11
0
        public void Read(AssetReader reader)
        {
            RootX.Read(reader);
            Skeleton.Read(reader);
            SkeletonPose.Read(reader);
            LeftHand.Read(reader);
            RightHand.Read(reader);
            if (HasHandles(reader.Version))
            {
                Handles       = reader.ReadAssetArray <Handle>();
                ColliderArray = reader.ReadAssetArray <Collider>();
            }

            int[] humanBoneIndex = reader.ReadInt32Array();
            HumanBoneIndex = UpdateBoneArray(humanBoneIndex, reader.Version);
            float[] humanBoneMass = reader.ReadSingleArray();
            HumanBoneMass = UpdateBoneArray(humanBoneMass, reader.Version);
            if (HasColliderIndex(reader.Version))
            {
                int[] colliderIndex = reader.ReadInt32Array();
                ColliderIndex = UpdateBoneArray(colliderIndex, reader.Version);
            }

            Scale         = reader.ReadSingle();
            ArmTwist      = reader.ReadSingle();
            ForeArmTwist  = reader.ReadSingle();
            UpperLegTwist = reader.ReadSingle();
            LegTwist      = reader.ReadSingle();
            ArmStretch    = reader.ReadSingle();
            LegStretch    = reader.ReadSingle();
            FeetSpacing   = reader.ReadSingle();
            HasLeftHand   = reader.ReadBoolean();
            HasRightHand  = reader.ReadBoolean();
            if (HasHasTDoF(reader.Version))
            {
                HasTDoF = reader.ReadBoolean();
            }
            reader.AlignStream();
        }
Example #12
0
        public void Read(AssetReader reader)
        {
            TransitionConstantArray     = reader.ReadAssetArray <OffsetPtr <TransitionConstant> >();
            BlendTreeConstantIndexArray = reader.ReadInt32Array();
            if (HasLeafInfo(reader.Version))
            {
                LeafInfoArray = reader.ReadAssetArray <LeafInfoConstant>();
            }

            BlendTreeConstantArray = reader.ReadAssetArray <OffsetPtr <BlendTreeConstant> >();
            NameID = reader.ReadUInt32();
            if (HasPathID(reader.Version))
            {
                PathID = reader.ReadUInt32();
            }
            if (HasFullPathID(reader.Version))
            {
                FullPathID = reader.ReadUInt32();
            }

            TagID = reader.ReadUInt32();
            if (HasSpeedParam(reader.Version))
            {
                SpeedParamID       = reader.ReadUInt32();
                MirrorParamID      = reader.ReadUInt32();
                CycleOffsetParamID = reader.ReadUInt32();
            }
            if (HasTimeParam(reader.Version))
            {
                TimeParamID = reader.ReadUInt32();
            }

            Speed = reader.ReadSingle();
            if (HasCycleOffset(reader.Version))
            {
                CycleOffset = reader.ReadSingle();
            }

            IKOnFeet = reader.ReadBoolean();
            if (HasDefaultValues(reader.Version))
            {
                WriteDefaultValues = reader.ReadBoolean();
            }

            Loop = reader.ReadBoolean();
            if (HasMirror(reader.Version))
            {
                Mirror = reader.ReadBoolean();
            }
            reader.AlignStream();
        }
Example #13
0
        public void Read(AssetReader reader)
        {
            m_transitionConstantArray     = reader.ReadArray <OffsetPtr <TransitionConstant> >();
            m_blendTreeConstantIndexArray = reader.ReadInt32Array();
            if (IsReadLeafInfo(reader.Version))
            {
                m_leafInfoArray = reader.ReadArray <LeafInfoConstant>();
            }

            m_blendTreeConstantArray = reader.ReadArray <OffsetPtr <BlendTreeConstant> >();
            NameID = reader.ReadUInt32();
            if (IsReadPathID(reader.Version))
            {
                PathID = reader.ReadUInt32();
            }
            if (IsReadFullPathID(reader.Version))
            {
                FullPathID = reader.ReadUInt32();
            }

            TagID = reader.ReadUInt32();
            if (IsReadSpeedParam(reader.Version))
            {
                SpeedParamID       = reader.ReadUInt32();
                MirrorParamID      = reader.ReadUInt32();
                CycleOffsetParamID = reader.ReadUInt32();
            }
            if (IsReadTimeParam(reader.Version))
            {
                TimeParamID = reader.ReadUInt32();
            }

            Speed = reader.ReadSingle();
            if (IsReadCycleOffset(reader.Version))
            {
                CycleOffset = reader.ReadSingle();
            }

            IKOnFeet = reader.ReadBoolean();
            if (IsReadDefaultValues(reader.Version))
            {
                WriteDefaultValues = reader.ReadBoolean();
            }

            Loop = reader.ReadBoolean();
            if (IsReadMirror(reader.Version))
            {
                Mirror = reader.ReadBoolean();
            }
            reader.AlignStream(AlignType.Align4);
        }
Example #14
0
 public void Read(AssetReader reader)
 {
     AvatarSkeleton.Read(reader);
     AvatarSkeletonPose.Read(reader);
     if (IsReadDefaultPose(reader.Version))
     {
         DefaultPose.Read(reader);
         m_skeletonNameIDArray = reader.ReadUInt32Array();
     }
     Human.Read(reader);
     m_humanSkeletonIndexArray = reader.ReadInt32Array();
     if (IsReadHumanSkeletonReverseIndexArray(reader.Version))
     {
         m_humanSkeletonReverseIndexArray = reader.ReadInt32Array();
     }
     RootMotionBoneIndex = reader.ReadInt32();
     RootMotionBoneX.Read(reader);
     if (IsReadRootMotionSkeleton(reader.Version))
     {
         RootMotionSkeleton.Read(reader);
         RootMotionSkeletonPose.Read(reader);
         m_rootMotionSkeletonIndexArray = reader.ReadInt32Array();
     }
 }
 public void Read(AssetReader reader)
 {
     name = reader.ReadString();
     // TODO cbs
     reader.ReadInt32();
     // TODO textures
     reader.ReadInt32();
     // TODO builtinSamplers
     reader.ReadInt32();
     // TODO inBuffers
     reader.ReadInt32();
     m_outBuffers    = reader.ReadAssetArray <ComputeShaderResource>();
     code            = reader.ReadByteArray();
     disassemblyTxt  = D3DCompiler.D3DCompiler.DisassembleToText(code);
     threadGroupSize = reader.ReadInt32Array();
 }
Example #16
0
        public void Read(AssetReader reader)
        {
            Name = reader.ReadString();
            Rect.Read(reader);
            Alignment = (SpriteAlignment)reader.ReadInt32();
            Pivot.Read(reader);
            if (HasBorder(reader.Version))
            {
                Border.Read(reader);
            }
            if (HasOutline(reader.Version))
            {
                Outline = reader.ReadAssetArrayArray <Vector2f>();
            }
            if (HasPhysicsShape(reader.Version))
            {
                PhysicsShape = reader.ReadAssetArrayArray <Vector2f>();
            }
            if (HasTessellationDetail(reader.Version))
            {
                TessellationDetail = reader.ReadSingle();
            }
            if (HasBones(reader.Version))
            {
                Bones    = reader.ReadAssetArray <SpriteBone>();
                SpriteID = reader.ReadString();
            }
            if (HasInternalID(reader.Version))
            {
                InternalID = reader.ReadInt64();
            }
            if (HasBones(reader.Version))
            {
                Vertices = reader.ReadAssetArray <Vector2f>();
                Indices  = reader.ReadInt32Array();
                Edges    = reader.ReadAssetArray <Int2Storage>();
                reader.AlignStream();

                Weights = reader.ReadAssetArray <BoneWeights4>();
                reader.AlignStream();
            }
        }
Example #17
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            Scenes = reader.ReadStringArray();
            if (HasPreloadPlugin(reader.Version))
            {
                PreloadedPlugins = reader.ReadStringArray();
            }

            if (HasEnabledVRDevices(reader.Version))
            {
                EnabledVRDevices = reader.ReadStringArray();
            }
            if (HasBuildTags(reader.Version))
            {
                BuildTags = reader.ReadStringArray();
                BuildGUID.Read(reader);
            }

            if (HasHasRenderTexture(reader.Version))
            {
                HasRenderTexture = reader.ReadBoolean();
            }
            HasPROVersion = reader.ReadBoolean();
            if (HasIsNoWatermarkBuild(reader.Version))
            {
                IsNoWatermarkBuild = reader.ReadBoolean();
                IsPrototypingBuild = reader.ReadBoolean();
            }
            if (HasIsEducationalBuild(reader.Version))
            {
                IsEducationalBuild = reader.ReadBoolean();
            }
            if (HasIsEmbedded(reader.Version))
            {
                IsEmbedded = reader.ReadBoolean();
            }
            HasPublishingRights = reader.ReadBoolean();
            if (HasHasShadows(reader.Version))
            {
                HasShadows = reader.ReadBoolean();
            }
            if (HasHasSoftShadows(reader.Version))
            {
                HasSoftShadows       = reader.ReadBoolean();
                HasLocalLightShadows = reader.ReadBoolean();
            }
            if (HasHasAdvancedVersion(reader.Version))
            {
                HasAdvancedVersion    = reader.ReadBoolean();
                EnableDynamicBatching = reader.ReadBoolean();
                IsDebugBuild          = reader.ReadBoolean();
            }
            if (HasUsesOnMouseEvents(reader.Version))
            {
                UsesOnMouseEvents = reader.ReadBoolean();
            }
            if (HasEnableMultipleDisplays(reader.Version))
            {
                EnableMultipleDisplays = reader.ReadBoolean();
            }
            if (HasHasOculusPlugin(reader.Version))
            {
                HasOculusPlugin = reader.ReadBoolean();
            }
            if (HasHasClusterRendering(reader.Version))
            {
                HasClusterRendering = reader.ReadBoolean();
            }
            if (IsAlignBools(reader.Version))
            {
                reader.AlignStream();
            }

            if (HasVersion(reader.Version))
            {
                Version = reader.ReadString();
            }
            if (HasAuthToken(reader.Version))
            {
                AuthToken = reader.ReadString();
            }

            if (HasRuntimeClassHashes(reader.Version))
            {
                RuntimeClassHashes = new Dictionary <int, Hash128>();
                if (IsRuntimeClassHashesUInt32(reader.Version))
                {
                    Dictionary <int, uint> runtimeClassHashes = new Dictionary <int, uint>();
                    runtimeClassHashes.Read(reader);
                    foreach (KeyValuePair <int, uint> kvp in runtimeClassHashes)
                    {
                        RuntimeClassHashes.Add(kvp.Key, new Hash128(kvp.Value));
                    }
                }
                else
                {
                    RuntimeClassHashes.Read(reader);
                }
            }
            if (HasScriptHashes(reader.Version))
            {
                ScriptHashes = new Dictionary <Hash128, Hash128>();
                ScriptHashes.Read(reader);
            }
            if (HasGraphicsAPIs(reader.Version))
            {
                GraphicsAPIs = reader.ReadInt32Array();
            }
        }
Example #18
0
        public void Read(AssetReader reader)
        {
            DeltaPose.Read(reader);
            StartX.Read(reader);
            if (IsReadStopX(reader.Version))
            {
                StopX.Read(reader);
            }
            LeftFootStartX.Read(reader);
            RightFootStartX.Read(reader);

            if (IsReadMotion(reader.Version))
            {
                MotionStartX.Read(reader);
                MotionStopX.Read(reader);
            }

            if (IsVector3(reader.Version))
            {
                AverageSpeed.Read3(reader);
            }
            else
            {
                AverageSpeed.Read(reader);
            }

            Clip.Read(reader);

            StartTime          = reader.ReadSingle();
            StopTime           = reader.ReadSingle();
            OrientationOffsetY = reader.ReadSingle();
            Level               = reader.ReadSingle();
            CycleOffset         = reader.ReadSingle();
            AverageAngularSpeed = reader.ReadSingle();

            m_indexArray = reader.ReadInt32Array();
            if (IsReadAdditionalCurveIndexArray(reader.Version))
            {
                m_additionalCurveIndexArray = reader.ReadInt32Array();
            }
            m_valueArrayDelta = reader.ReadArray <ValueDelta>();

            if (IsReadValueArrayReferencePose(reader.Version))
            {
                m_valueArrayReferencePose = reader.ReadSingleArray();
            }

            Mirror = reader.ReadBoolean();
            if (IsReadLoopTime(reader.Version))
            {
                LoopTime = reader.ReadBoolean();
            }
            LoopBlend            = reader.ReadBoolean();
            LoopBlendOrientation = reader.ReadBoolean();
            LoopBlendPositionY   = reader.ReadBoolean();
            LoopBlendPositionXZ  = reader.ReadBoolean();

            if (IsReadStartAtOrigin(reader.Version))
            {
                StartAtOrigin = reader.ReadBoolean();
            }

            KeepOriginalOrientation = reader.ReadBoolean();
            KeepOriginalPositionY   = reader.ReadBoolean();
            KeepOriginalPositionXZ  = reader.ReadBoolean();
            HeightFromFeet          = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
        }
Example #19
0
        public void Read(AssetReader reader)
        {
            switch (Type.Type)
            {
            case PrimitiveType.Bool:
                if (IsArray)
                {
                    Value = reader.ReadBooleanArray();
                }
                else
                {
                    Value = reader.ReadBoolean();
                }
                reader.AlignStream(AlignType.Align4);
                break;

            case PrimitiveType.Char:
                if (IsArray)
                {
                    Value = reader.ReadCharArray();
                }
                else
                {
                    Value = reader.ReadChar();
                }
                reader.AlignStream(AlignType.Align4);
                break;

            case PrimitiveType.SByte:
                if (IsArray)
                {
                    Value = reader.ReadByteArray();
                }
                else
                {
                    Value = reader.ReadSByte();
                }
                reader.AlignStream(AlignType.Align4);
                break;

            case PrimitiveType.Byte:
                if (IsArray)
                {
                    Value = reader.ReadByteArray();
                }
                else
                {
                    Value = reader.ReadByte();
                }
                reader.AlignStream(AlignType.Align4);
                break;

            case PrimitiveType.Short:
                if (IsArray)
                {
                    Value = reader.ReadInt16Array();
                }
                else
                {
                    Value = reader.ReadInt16();
                }
                reader.AlignStream(AlignType.Align4);
                break;

            case PrimitiveType.UShort:
                if (IsArray)
                {
                    Value = reader.ReadUInt16Array();
                }
                else
                {
                    Value = reader.ReadUInt16();
                }
                reader.AlignStream(AlignType.Align4);
                break;

            case PrimitiveType.Int:
                if (IsArray)
                {
                    Value = reader.ReadInt32Array();
                }
                else
                {
                    Value = reader.ReadInt32();
                }
                break;

            case PrimitiveType.UInt:
                if (IsArray)
                {
                    Value = reader.ReadUInt32Array();
                }
                else
                {
                    Value = reader.ReadUInt32();
                }
                break;

            case PrimitiveType.Long:
                if (IsArray)
                {
                    Value = reader.ReadInt64Array();
                }
                else
                {
                    Value = reader.ReadInt64();
                }
                break;

            case PrimitiveType.ULong:
                if (IsArray)
                {
                    Value = reader.ReadUInt64Array();
                }
                else
                {
                    Value = reader.ReadUInt64();
                }
                break;

            case PrimitiveType.Single:
                if (IsArray)
                {
                    Value = reader.ReadSingleArray();
                }
                else
                {
                    Value = reader.ReadSingle();
                }
                break;

            case PrimitiveType.Double:
                if (IsArray)
                {
                    Value = reader.ReadDoubleArray();
                }
                else
                {
                    Value = reader.ReadDouble();
                }
                break;

            case PrimitiveType.String:
                if (IsArray)
                {
                    Value = reader.ReadStringArray();
                }
                else
                {
                    Value = reader.ReadString();
                }
                break;

            case PrimitiveType.Complex:
                if (IsArray)
                {
                    int count = reader.ReadInt32();
                    IScriptStructure[] structures = new IScriptStructure[count];
                    for (int i = 0; i < count; i++)
                    {
                        IScriptStructure structure = Type.ComplexType.CreateCopy();
                        structure.Read(reader);
                        structures[i] = structure;
                    }
                    Value = structures;
                }
                else
                {
                    IScriptStructure structure = Type.ComplexType.CreateCopy();
                    structure.Read(reader);
                    Value = structure;
                }
                break;

            default:
                throw new NotImplementedException($"Unknown {nameof(PrimitiveType)} '{Type.Type}'");
            }
        }
Example #20
0
 public void Read(AssetReader reader)
 {
     m_handBoneIndex = reader.ReadInt32Array();
 }
Example #21
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            m_scenes = reader.ReadStringArray();
            if (IsReadPreloadPlugin(reader.Version))
            {
                m_preloadedPlugins = reader.ReadStringArray();
            }

            if (IsReadEnabledVRDevices(reader.Version))
            {
                m_enabledVRDevices = reader.ReadStringArray();
            }
            if (IsReadBuildTags(reader.Version))
            {
                m_buildTags = reader.ReadStringArray();
                BuildGUID.Read(reader);
            }

            if (IsReadHasRenderTexture(reader.Version))
            {
                HasRenderTexture = reader.ReadBoolean();
            }
            HasPROVersion = reader.ReadBoolean();
            if (IsReadIsNoWatermarkBuild(reader.Version))
            {
                IsNoWatermarkBuild = reader.ReadBoolean();
                IsPrototypingBuild = reader.ReadBoolean();
            }
            if (IsReadIsEducationalBuild(reader.Version))
            {
                IsEducationalBuild = reader.ReadBoolean();
            }
            if (IsReadIsEmbedded(reader.Version))
            {
                IsEmbedded = reader.ReadBoolean();
            }
            HasPublishingRights = reader.ReadBoolean();
            if (IsReadHasShadows(reader.Version))
            {
                HasShadows = reader.ReadBoolean();
            }
            if (IsReadHasSoftShadows(reader.Version))
            {
                HasSoftShadows       = reader.ReadBoolean();
                HasLocalLightShadows = reader.ReadBoolean();
            }
            if (IsReadHasAdvancedVersion(reader.Version))
            {
                HasAdvancedVersion    = reader.ReadBoolean();
                EnableDynamicBatching = reader.ReadBoolean();
                IsDebugBuild          = reader.ReadBoolean();
            }
            if (IsReadUsesOnMouseEvents(reader.Version))
            {
                UsesOnMouseEvents = reader.ReadBoolean();
            }
            if (IsReadEnableMultipleDisplays(reader.Version))
            {
                EnableMultipleDisplays = reader.ReadBoolean();
            }
            if (IsReadHasOculusPlugin(reader.Version))
            {
                HasOculusPlugin = reader.ReadBoolean();
            }
            if (IsReadHasClusterRendering(reader.Version))
            {
                HasClusterRendering = reader.ReadBoolean();
            }
            if (IsAlignBools(reader.Version))
            {
                reader.AlignStream(AlignType.Align4);
            }

            if (IsReadBSVersion(reader.Version))
            {
                BSVersion = reader.ReadStringAligned();
            }
            if (IsReadAuthToken(reader.Version))
            {
                AuthToken = reader.ReadStringAligned();
            }

            if (IsReadRuntimeClassHashes(reader.Version))
            {
                if (IsRuntimeClassHashesUInt32(reader.Version))
                {
                    m_runtimeClassHashesUInt32 = new Dictionary <int, uint>();
                    m_runtimeClassHashesUInt32.Read(reader);
                }
                else
                {
                    m_runtimeClassHashes.Read(reader);
                }
            }
            if (IsReadScriptHashes(reader.Version))
            {
                m_scriptHashes.Read(reader);
            }
            if (IsReadGraphicsAPIs(reader.Version))
            {
                m_graphicsAPIs = reader.ReadInt32Array();
            }
        }