OSDN Git Service

replaced the static static map with dynamic static map :)
[automap/automap.git] / Automap / Data / PngMetadataChunk.cs
1 using System;
2
3 using Vintagestory.API.Util;
4
5 using Hjg.Pngcs;
6 using Hjg.Pngcs.Chunks;
7
8 namespace Automap
9 {
10         /// <summary>
11         /// Png metadata chunk.
12         /// </summary>
13         /// <remarks>There can be only one. (per PNG file)</remarks>
14         public class PngMetadataChunk : PngChunkSingle
15         {
16                 // ID must follow the PNG conventions: four ascii letters,
17                 public readonly static string ID = "cHUK";
18
19                 public ColumnMeta ChunkMetadata { get; set; }
20
21
22                 public PngMetadataChunk(ImageInfo info) : base(ID, info)
23                 {
24
25                 }
26
27                 public override ChunkOrderingConstraint GetOrderingConstraint()
28                 {
29                         return ChunkOrderingConstraint.NONE;
30                 }
31
32                 public override ChunkRaw CreateRawChunk()
33                 {
34                         var datas = SerializerUtil.Serialize<ColumnMeta>(ChunkMetadata);
35
36                         ChunkRaw rawChunk = createEmptyChunk(datas.Length, true);
37                         rawChunk.Data = datas;
38
39                         return rawChunk;
40                 }
41
42                 public override void ParseFromRaw(ChunkRaw rawChunk)
43                 {
44                         this.ChunkMetadata = SerializerUtil.Deserialize<ColumnMeta>(rawChunk.Data);
45                 }
46
47                 public override void CloneDataFromRead(PngChunk other)
48                 {
49                         PngMetadataChunk clone = (PngMetadataChunk) other;
50                         this.ChunkMetadata = clone.ChunkMetadata;
51                 }
52
53         }
54 }
55