예제 #1
0
 public IEnumerable <Object> FetchDependencies(ISerializedFile file, bool isLog = false)
 {
     if (IsReadDefaultPhysicMaterial(file.Version))
     {
         yield return(DefaultPhysicMaterial.FetchDependency(file, isLog, () => nameof(Heightmap), "m_DefaultPhysicMaterial"));
     }
 }
예제 #2
0
        public void Write(AssetWriter writer)
        {
            Heights.Write(writer);
            if (HasAlign(writer.Version))
            {
                writer.AlignStream();
            }
            if (HasShifts(writer.Version))
            {
                Shifts.Write(writer);
                writer.AlignStream();
            }

            PrecomputedError.Write(writer);
            MinMaxPatchHeights.Write(writer);
            if (HasDefaultPhysicMaterial(writer.Version))
            {
                DefaultPhysicMaterial.Write(writer);
            }

            writer.Write(Width);
            writer.Write(Height);
            if (HasThickness(writer.Version))
            {
                writer.Write(Thickness);
            }

            writer.Write(Levels);
            Scale.Write(writer);
        }
예제 #3
0
        public void Read(AssetStream stream)
        {
            m_heights = stream.ReadInt16Array();
            if (IsReadAlign(stream.Version))
            {
                stream.AlignStream(AlignType.Align4);
            }
            if (IsReadShifts(stream.Version))
            {
                m_shifts = stream.ReadArray <Shift>();
                stream.AlignStream(AlignType.Align4);
            }

            m_precomputedError   = stream.ReadSingleArray();
            m_minMaxPatchHeights = stream.ReadSingleArray();

            if (IsReadDefaultPhysicMaterial(stream.Version))
            {
                DefaultPhysicMaterial.Read(stream);
            }
            Width  = stream.ReadInt32();
            Height = stream.ReadInt32();
            if (IsReadThickness(stream.Version))
            {
                Thickness = stream.ReadSingle();
            }
            Levels = stream.ReadInt32();
            Scale.Read(stream);
        }
예제 #4
0
        public void Read(AssetReader reader)
        {
            Heights = reader.ReadInt16Array();
            if (HasAlign(reader.Version))
            {
                reader.AlignStream();
            }
            if (HasShifts(reader.Version))
            {
                Shifts = reader.ReadAssetArray <Shift>();
                reader.AlignStream();
            }

            PrecomputedError   = reader.ReadSingleArray();
            MinMaxPatchHeights = reader.ReadSingleArray();
            if (HasDefaultPhysicMaterial(reader.Version))
            {
                DefaultPhysicMaterial.Read(reader);
            }

            Width  = reader.ReadInt32();
            Height = reader.ReadInt32();
            if (HasThickness(reader.Version))
            {
                Thickness = reader.ReadSingle();
            }

            Levels = reader.ReadInt32();
            Scale.Read(reader);
        }
예제 #5
0
        public YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = new YAMLMappingNode();

            node.AddSerializedVersion(ToSerializedVersion(container.ExportVersion));
            node.Add(HeightsName, Heights.ExportYAML(true));
            if (HasShifts(container.ExportVersion))
            {
                node.Add(ShiftsName, Shifts.ExportYAML(container));
            }

            node.Add(PrecomputedErrorName, PrecomputedError.ExportYAML());
            node.Add(MinMaxPatchHeightsName, MinMaxPatchHeights.ExportYAML());
            if (HasDefaultPhysicMaterial(container.ExportVersion))
            {
                node.Add(DefaultPhysicMaterialName, DefaultPhysicMaterial.ExportYAML(container));
            }

            node.Add(WidthName, Width);
            node.Add(HeightName, Height);
            if (HasThickness(container.ExportVersion))
            {
                node.Add(ThicknessName, Thickness);
            }

            node.Add(LevelsName, Levels);
            node.Add(ScaleName, Scale.ExportYAML(container));
            return(node);
        }
예제 #6
0
        public void Read(AssetReader reader)
        {
            m_heights = reader.ReadInt16Array();
            if (IsReadAlign(reader.Version))
            {
                reader.AlignStream(AlignType.Align4);
            }
            if (IsReadShifts(reader.Version))
            {
                m_shifts = reader.ReadAssetArray <Shift>();
                reader.AlignStream(AlignType.Align4);
            }

            m_precomputedError   = reader.ReadSingleArray();
            m_minMaxPatchHeights = reader.ReadSingleArray();

            if (IsReadDefaultPhysicMaterial(reader.Version))
            {
                DefaultPhysicMaterial.Read(reader);
            }
            Width  = reader.ReadInt32();
            Height = reader.ReadInt32();
            if (IsReadThickness(reader.Version))
            {
                Thickness = reader.ReadSingle();
            }
            Levels = reader.ReadInt32();
            Scale.Read(reader);
        }
        public void Read(AssetReader reader)
        {
            Heights = reader.ReadInt16Array();
            if (HasHoles(reader.Version))
            {
                Holes    = reader.ReadByteArray();
                HolesLOD = reader.ReadByteArray();
                EnableHolesTextureCompression = reader.ReadBoolean();
            }
            if (HasAlign(reader.Version))
            {
                reader.AlignStream();
            }
            if (HasShifts(reader.Version))
            {
                Shifts = reader.ReadAssetArray <Shift>();
                reader.AlignStream();
            }

            PrecomputedError   = reader.ReadSingleArray();
            MinMaxPatchHeights = reader.ReadSingleArray();
            if (HasDefaultPhysicMaterial(reader.Version))
            {
                DefaultPhysicMaterial.Read(reader);
            }

            if (HasWidth(reader.Version))
            {
                Width  = reader.ReadInt32();
                Height = reader.ReadInt32();
            }
            if (HasThickness(reader.Version))
            {
                Thickness = reader.ReadSingle();
            }
            if (HasResolution(reader.Version))
            {
                Resolution = reader.ReadInt32();
            }

            Levels = reader.ReadInt32();
            Scale.Read(reader);
        }
        public void Write(AssetWriter writer)
        {
            Heights.Write(writer);
            if (HasHoles(writer.Version))
            {
                writer.Write(Holes);
                writer.Write(HolesLOD);
                writer.Write(EnableHolesTextureCompression);
            }
            if (HasAlign(writer.Version))
            {
                writer.AlignStream();
            }
            if (HasShifts(writer.Version))
            {
                Shifts.Write(writer);
                writer.AlignStream();
            }

            PrecomputedError.Write(writer);
            MinMaxPatchHeights.Write(writer);
            if (HasDefaultPhysicMaterial(writer.Version))
            {
                DefaultPhysicMaterial.Write(writer);
            }

            if (HasWidth(writer.Version))
            {
                writer.Write(Width);
                writer.Write(Height);
            }
            if (HasThickness(writer.Version))
            {
                writer.Write(Thickness);
            }
            if (HasResolution(writer.Version))
            {
                writer.Write(Resolution);
            }

            writer.Write(Levels);
            Scale.Write(writer);
        }