public override void Read(AssetReader reader) { base.Read(reader); Modification.Read(reader); SourcePrefab.Read(reader); RootGameObject.Read(reader); IsPrefabParent = reader.ReadBoolean(); reader.AlignStream(AlignType.Align64); }
protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container) { YAMLMappingNode node = base.ExportYAMLRoot(container); node.AddSerializedVersion(GetSerializedVersion(container.ExportVersion)); node.Add(ModificationName, Modification.ExportYAML(container)); node.Add(ParentPrefabName, SourcePrefab.ExportYAML(container)); node.Add(RootGameObjectName, RootGameObject.ExportYAML(container)); node.Add(IsPrefabParentName, IsPrefabParent); return(node); }
protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container) { PrefabInstanceLayout layout = container.ExportLayout.PrefabInstance; if (layout.IsModificationFormat) { YAMLMappingNode node = ExportYAMLRootObject(container); node.AddSerializedVersion(layout.Version); if (layout.HasRootGameObject && layout.IsRootGameObjectFirst) { node.Add(layout.RootGameObjectName, RootGameObject.ExportYAML(container)); } node.Add(layout.ModificationName, Modification.ExportYAML(container)); node.Add(layout.SourcePrefabInvariantName, SourcePrefab.ExportYAML(container)); if (!layout.IsRootGameObjectFirst) { node.Add(layout.RootGameObjectName, RootGameObject.ExportYAML(container)); } if (layout.HasIsPrefabAssetInvariant) { node.Add(layout.IsPrefabAssetInvariantName, IsPrefabAsset); } if (layout.HasIsExploded) { node.Add(layout.IsExplodedName, IsExploded); } return(node); } else { YAMLMappingNode node = new YAMLMappingNode(); node.Add(layout.LastMergeIdentifierName, LastMergeIdentifier.ExportYAML(container)); if (layout.HasLastTemplateIdentifier) { node.Add(layout.LastTemplateIdentifierName, LastTemplateIdentifier.ExportYAML(container)); } node.Add(layout.ObjectsName, Objects.ExportYAML(container)); node.Add(layout.FatherName, Father.ExportYAML(container)); node.Add(layout.IsDataTemplateName, IsDataTemplate); YAMLMappingNode baseNode = base.ExportYAMLRoot(container); node.Append(baseNode); return(node); } }
protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container) { if (IsModificationsFormat(container.Version)) { YAMLMappingNode node = ExportYAMLRootObject(container); node.AddSerializedVersion(ToSerializedVersion(container.ExportVersion)); bool hasRootGameObject = IsRootGameObjectRelevant(container.ExportFlags); bool isRootGameObjectFirst = IsRootGameObjectFirst(container.ExportVersion); if (hasRootGameObject && isRootGameObjectFirst) { node.Add(RootGameObjectName, RootGameObject.ExportYAML(container)); } node.Add(ModificationName, Modification.ExportYAML(container)); node.Add(GetSourcePrefabName(container.ExportVersion), SourcePrefab.ExportYAML(container)); if (hasRootGameObject && !isRootGameObjectFirst) { node.Add(RootGameObjectName, RootGameObject.ExportYAML(container)); } if (IsPrefabAssetRelevant(container.ExportVersion)) { node.Add(GetIsPrefabAssetName(container.ExportVersion), IsPrefabAsset); } if (IsExplodedRelevant(container.ExportVersion)) { node.Add(IsExplodedName, IsExploded); } return(node); } else { YAMLMappingNode node = new YAMLMappingNode(); node.Add(LastMergeIdentifierName, LastMergeIdentifier.ExportYAML(container)); if (HasLastTemplateIdentifier(container.ExportVersion)) { node.Add(LastTemplateIdentifierName, LastTemplateIdentifier.ExportYAML(container)); } node.Add(ObjectsName, Objects.ExportYAML(container)); node.Add(FatherName, Father.ExportYAML(container)); node.Add(IsDataTemplateName, IsDataTemplate); YAMLMappingNode baseNode = base.ExportYAMLRoot(container); node.Append(baseNode); return(node); } }
public override void Write(AssetWriter writer) { PrefabInstanceLayout layout = writer.Layout.PrefabInstance; if (layout.IsModificationFormat) { WriteObject(writer); if (layout.HasRootGameObject && layout.IsRootGameObjectFirst) { RootGameObject.Write(writer); } Modification.Write(writer); SourcePrefab.Write(writer); if (!layout.IsRootGameObjectFirst) { RootGameObject.Write(writer); } if (layout.HasIsPrefabAsset) { writer.Write(IsPrefabAsset); } if (layout.HasIsExploded) { writer.Write(IsExploded); } writer.AlignStream(); } else { LastMergeIdentifier.Write(writer); if (layout.HasLastTemplateIdentifier) { LastTemplateIdentifier.Write(writer); } Objects.Write(writer); Father.Write(writer); writer.Write(IsDataTemplate); writer.AlignStream(); base.Write(writer); } }
public override void Read(AssetReader reader) { PrefabInstanceLayout layout = reader.Layout.PrefabInstance; if (layout.IsModificationFormat) { ReadObject(reader); if (layout.HasRootGameObject && layout.IsRootGameObjectFirst) { RootGameObject.Read(reader); } Modification.Read(reader); SourcePrefab.Read(reader); if (!layout.IsRootGameObjectFirst) { RootGameObject.Read(reader); } if (layout.HasIsPrefabAsset) { IsPrefabAsset = reader.ReadBoolean(); } if (layout.HasIsExploded) { IsExploded = reader.ReadBoolean(); } reader.AlignStream(); } else { LastMergeIdentifier.Read(reader); if (layout.HasLastTemplateIdentifier) { LastTemplateIdentifier.Read(reader); } Objects = reader.ReadAssetArray <PPtr <EditorExtension> >(); Father = reader.ReadAsset <PPtr <PrefabInstance> >(); IsDataTemplate = reader.ReadBoolean(); reader.AlignStream(); base.Read(reader); } }
public override void Write(AssetWriter writer) { if (IsModificationsFormat(writer.Version)) { WriteObject(writer); bool hasRootGameObject = IsRootGameObjectRelevant(writer.Flags); bool isRootGameObjectFirst = IsRootGameObjectFirst(writer.Version); if (hasRootGameObject && isRootGameObjectFirst) { RootGameObject.Write(writer); } Modification.Write(writer); SourcePrefab.Write(writer); if (hasRootGameObject && !isRootGameObjectFirst) { RootGameObject.Write(writer); } if (IsPrefabAssetRelevant(writer.Version)) { writer.Write(IsPrefabAsset); } if (IsExplodedRelevant(writer.Version)) { writer.Write(IsExploded); } writer.AlignStream(); } else { LastMergeIdentifier.Write(writer); if (HasLastTemplateIdentifier(writer.Version)) { LastTemplateIdentifier.Write(writer); } Objects.Write(writer); Father.Write(writer); writer.Write(IsDataTemplate); writer.AlignStream(); base.Write(writer); } }
public override void Read(AssetReader reader) { if (IsModificationsFormat(reader.Version)) { ReadObject(reader); bool isRootGameObjectFirst = IsRootGameObjectFirst(reader.Version); if (isRootGameObjectFirst && IsRootGameObjectRelevant(reader.Flags)) { RootGameObject.Read(reader); } Modification.Read(reader); SourcePrefab.Read(reader); if (!isRootGameObjectFirst) { RootGameObject.Read(reader); } if (IsPrefabAssetRelevant(reader.Version)) { IsPrefabAsset = reader.ReadBoolean(); } if (IsExplodedRelevant(reader.Version)) { IsExploded = reader.ReadBoolean(); } reader.AlignStream(); } else { LastMergeIdentifier.Read(reader); if (HasLastTemplateIdentifier(reader.Version)) { LastTemplateIdentifier.Read(reader); } Objects = reader.ReadAssetArray <PPtr <EditorExtension> >(); Father = reader.ReadAsset <PPtr <PrefabInstance> >(); IsDataTemplate = reader.ReadBoolean(); reader.AlignStream(); base.Read(reader); } }