public string RequestDependency(string dependency) { if (Files.TryGetValue(dependency, out string dependencyPath)) { return(dependencyPath); } foreach (string dataPath in DataPathes) { string filePath = Path.Combine(dataPath, dependency); if (MultiFileStream.Exists(filePath)) { return(filePath); } if (FilenameUtils.IsDefaultResource(dependency)) { return(FindEngineDependency(dataPath, FilenameUtils.DefaultResourceName1) ?? FindEngineDependency(dataPath, FilenameUtils.DefaultResourceName2)); } else if (FilenameUtils.IsBuiltinExtra(dependency)) { return(FindEngineDependency(dataPath, FilenameUtils.BuiltinExtraName1) ?? FindEngineDependency(dataPath, FilenameUtils.BuiltinExtraName2)); } } return(null); }
public bool RequestDependency(string dependency) { if (Files.TryGetValue(dependency, out string dependencyPath)) { LoadDependency(dependency, dependencyPath); return(true); } foreach (string dataPath in DataPathes) { string filePath = Path.Combine(dataPath, dependency); if (FileMultiStream.Exists(filePath)) { LoadDependency(dependency, filePath); return(true); } if (FilenameUtils.IsDefaultResource(dependency)) { if (LoadEngineDependency(dataPath, FilenameUtils.DefaultResourceName1)) { return(true); } if (LoadEngineDependency(dataPath, FilenameUtils.DefaultResourceName2)) { return(true); } } else if (FilenameUtils.IsBuiltinExtra(dependency)) { if (LoadEngineDependency(dataPath, FilenameUtils.BuiltinExtraName1)) { return(true); } if (LoadEngineDependency(dataPath, FilenameUtils.BuiltinExtraName2)) { return(true); } } } return(false); }
private void ReadScheme() { using (PartialStream stream = new PartialStream(m_stream, m_offset, m_size)) { using (EndianReader reader = new EndianReader(stream, EndianType.BigEndian)) { Header.Read(reader); } EndianType endianess = Header.SwapEndianess ? EndianType.BigEndian : EndianType.LittleEndian; using (SerializedFileReader reader = new SerializedFileReader(stream, endianess, Header.Generation)) { if (IsMetadataAtTheEnd(reader.Generation)) { reader.BaseStream.Position = Header.FileSize - Header.MetadataSize; reader.BaseStream.Position++; } Metadata.Read(reader); } } #warning TEMP HACK Flags = Metadata.Hierarchy.Platform == Platform.NoTarget ? TransferInstructionFlags.NoTransferInstructionFlags : Flags; if (FilenameUtils.IsEngineResource(Name) || Header.Generation < FileGeneration.FG_500a1 && FilenameUtils.IsBuiltinExtra(Name)) { Flags |= TransferInstructionFlags.IsBuiltinResourcesFile; } Flags |= Header.SwapEndianess ? TransferInstructionFlags.SwapEndianess : TransferInstructionFlags.NoTransferInstructionFlags; }
private void UpdateFlags() { Flags = TransferInstructionFlags.SerializeGameRelease; if (SerializedFileMetadata.HasPlatform(Header.Version)) { if (Metadata.TargetPlatform == Platform.NoTarget) { Flags = TransferInstructionFlags.NoTransferInstructionFlags; if (FilePath.EndsWith(".unity", StringComparison.Ordinal)) { Flags |= TransferInstructionFlags.SerializeEditorMinimalScene; } } } if (FilenameUtils.IsEngineResource(Name) || Header.Version < FormatVersion.Unknown_10 && FilenameUtils.IsBuiltinExtra(Name)) { Flags |= TransferInstructionFlags.IsBuiltinResourcesFile; } if (Header.Endianess || Metadata.SwapEndianess) { Flags |= TransferInstructionFlags.SwapEndianess; } }
private void UpdateFlags() { Flags = TransferInstructionFlags.SerializeGameRelease; if (RTTIClassHierarchyDescriptor.HasPlatform(Header.Generation)) { if (Metadata.Hierarchy.Platform == Platform.NoTarget) { Flags = TransferInstructionFlags.NoTransferInstructionFlags; if (FilePath.EndsWith(".unity", StringComparison.Ordinal)) { Flags |= TransferInstructionFlags.SerializeEditorMinimalScene; } } } if (FilenameUtils.IsEngineResource(Name) || Header.Generation < FileGeneration.FG_500a1 && FilenameUtils.IsBuiltinExtra(Name)) { Flags |= TransferInstructionFlags.IsBuiltinResourcesFile; } if (Header.SwapEndianess || Metadata.SwapEndianess) { Flags |= TransferInstructionFlags.SwapEndianess; } }
private void ReadScheme() { using (PartialStream stream = new PartialStream(m_stream, m_offset, m_size)) { using (EndianReader reader = new EndianReader(stream, EndianType.BigEndian)) { Header.Read(reader); } EndianType endianess = EndianType.LittleEndian; if (SerializedFileHeader.HasEndian(Header.Generation)) { endianess = Header.SwapEndianess ? EndianType.BigEndian : EndianType.LittleEndian; } using (SerializedReader reader = new SerializedReader(stream, endianess, Name, Header.Generation)) { if (SerializedFileMetadata.IsMetadataAtTheEnd(reader.Generation)) { reader.BaseStream.Position = Header.FileSize - Header.MetadataSize; reader.BaseStream.Position++; } Metadata.Read(reader); } } SerializedFileMetadataConverter.CombineFormats(Header.Generation, Metadata); RTTIClassHierarchyDescriptorConverter.FixResourceVersion(Name, ref Metadata.Hierarchy); #warning TEMP HACK if (Metadata.Hierarchy.Platform == Platform.NoTarget) { Flags = TransferInstructionFlags.NoTransferInstructionFlags; } if (FilenameUtils.IsEngineResource(Name) || Header.Generation < FileGeneration.FG_500a1 && FilenameUtils.IsBuiltinExtra(Name)) { Flags |= TransferInstructionFlags.IsBuiltinResourcesFile; } if (Header.SwapEndianess) { Flags |= TransferInstructionFlags.SwapEndianess; } }