コード例 #1
0
 protected override void Save(IniKeyCollection iniData, NinepatchLayer data, LayerHandlerContext context)
 {
     iniData.Add("top", data.Top);
     iniData.Add("bottom", data.Bottom);
     iniData.Add("left", data.Left);
     iniData.Add("right", data.Right);
 }
コード例 #2
0
 protected override TooltipLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new TooltipLayer
     {
         Text = Encoding.UTF8.GetString(context.LoadExternalFile(TextFileKey))
     });
 }
コード例 #3
0
        protected override void Save(IniKeyCollection iniData, AudioLayer data, LayerHandlerContext context)
        {
            iniData.Add("id", data.Id);
            iniData.Add("volume", data.BaseVolume);

            context.SaveExternalFile(AudioFileKey, data.Data);
        }
コード例 #4
0
        protected override void Save(IniKeyCollection iniData, TileLayer data, LayerHandlerContext context)
        {
            iniData.Add("type", data.Type);
            iniData.Add("id", data.Id);
            iniData.Add("weight", data.Weight);

            context.SaveExternalFile(ImageFileKey, data.ImageData);
        }
コード例 #5
0
 protected override CodeLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new CodeLayer
     {
         Name = iniData.GetString("name"),
         ByteCode = context.LoadExternalFile(ClassFileKey)
     });
 }
コード例 #6
0
        protected override void Save(IniKeyCollection iniData, ImageLayer data, LayerHandlerContext context)
        {
            iniData.Add("id", data.Id);
            iniData.Add("z", data.Z);
            iniData.Add("subz", data.SubZ);
            iniData.Add("off", data.Offset);

            context.SaveExternalFile(ImageFileKey, data.Data);
        }
コード例 #7
0
 protected override AudioLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new AudioLayer
     {
         Id = iniData.GetString("id"),
         BaseVolume = iniData.GetDouble("volume", 1.0),
         Data = context.LoadExternalFile(AudioFileKey)
     });
 }
コード例 #8
0
 protected override NinepatchLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new NinepatchLayer
     {
         Top = iniData.GetByte("top", 0),
         Bottom = iniData.GetByte("bottom", 0),
         Left = iniData.GetByte("left", 0),
         Right = iniData.GetByte("right", 0)
     });
 }
コード例 #9
0
 protected override TileLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new TileLayer
     {
         ImageData = context.LoadExternalFile(ImageFileKey),
         Type = iniData.GetChar("type"),
         Id = iniData.GetByte("id"),
         Weight = iniData.GetUInt16("weight", 0)
     });
 }
コード例 #10
0
 protected override void Save(IniKeyCollection iniData, CodeEntryLayer data, LayerHandlerContext context)
 {
     foreach (var entry in data.Entries)
     {
         iniData.Add("entry", $"{entry.Name}:{entry.ClassName}");
     }
     foreach (var classpath in data.Classpath)
     {
         iniData.Add("ref", $"{classpath.Name}:{classpath.Version}");
     }
 }
コード例 #11
0
 protected override ImageLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new ImageLayer
     {
         Id = iniData.GetInt16("id", -1),
         Z = iniData.GetInt16("z", 0),
         SubZ = iniData.GetInt16("subz", 0),
         Offset = iniData.GetPoint("off", Point2D.Empty),
         Data = context.LoadExternalFile(ImageFileKey),
     });
 }
コード例 #12
0
        public void Save(IniKeyCollection iniData, object data, LayerHandlerContext context)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            using (var ms = new MemoryStream())
                using (var buffer = new BinaryDataWriter(ms))
                {
                    binaryHandler.Serialize(buffer, data);
                    ms.Position = 0;
                    context.SaveExternalFile(DataFileKey, ms.ToArray());
                }
        }
コード例 #13
0
        protected override void Save(IniKeyCollection iniData, TexLayer data, LayerHandlerContext context)
        {
            context.SaveExternalFile(ImageFileKey, data.ImageData);

            if (data.MaskImageData != null)
            {
                context.SaveExternalFile(MaskFileKey, data.MaskImageData);
            }

            iniData.Add("id", data.Id);
            iniData.Add("off", data.Offset);
            iniData.Add("size", data.Size);
            iniData.Add("magfilter", data.MagFilter.ToString());
            iniData.Add("minfilter", data.MinFilter.ToString());
            iniData.Add("mipmap", data.Mipmap.ToString());
        }
コード例 #14
0
 protected override void Save(IniKeyCollection iniData, ActionLayer data, LayerHandlerContext context)
 {
     iniData.Add("name", data.Name);
     iniData.Add("hotkey", data.Hotkey);
     if (!data.Parent.IsEmpty())
     {
         iniData.Add("parent", $"{data.Parent.Name}:{data.Parent.Version}");
     }
     if (!string.IsNullOrEmpty(data.Prerequisite))
     {
         iniData.Add("prereq", data.Prerequisite);
     }
     if (data.Verbs != null && data.Verbs.Length > 0)
     {
         iniData.Add("verbs", string.Join(",", data.Verbs));
     }
 }
コード例 #15
0
        protected override ActionLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
        {
            var data = new ActionLayer();

            data.Name   = iniData.GetString("name");
            data.Hotkey = iniData.GetChar("hotkey");
            var parent = iniData.GetString("parent", "");

            if (!string.IsNullOrEmpty(parent))
            {
                var parts = parent.Split(':');
                data.Parent = new ResourceRef(parts[0], ushort.Parse(parts[1]));
            }
            data.Prerequisite = iniData.GetString("prereq", string.Empty);
            data.Verbs        = iniData.GetString("verbs", "")?.Split(',');

            return(data);
        }
コード例 #16
0
        protected override TexLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
        {
            var data = new TexLayer();

            data.Id            = iniData.GetInt16("id", -1);
            data.ImageData     = context.LoadExternalFile(ImageFileKey);
            data.MaskImageData = context.HasExternalFile(MaskFileKey) ? context.LoadExternalFile(MaskFileKey) : null;
            data.Offset        = iniData.GetPoint("off", Point2D.Empty);
            data.Size          = iniData.GetPoint("size");
            data.Mipmap        = iniData.GetEnum("mipmap", TexMipmap.None);
            data.MagFilter     = iniData.GetEnum("magfilter", TexMagFilter.Nearest);

            var defaultMinFilter = (data.Mipmap != TexMipmap.None)
                                ? TexMinFilter.LinearMipmapLinear
                                : TexMinFilter.Linear;

            data.MinFilter = iniData.GetEnum("minfilter", defaultMinFilter);

            return(data);
        }
コード例 #17
0
        protected override CodeEntryLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
        {
            var entries = new List <CodeEntry>();
            var refs    = new List <ResourceRef>();

            foreach (var key in iniData)
            {
                switch (key.Name.ToLower())
                {
                case "entry":
                {
                    var parts = key.Value.Split(':');
                    if (parts.Length != 2)
                    {
                        throw new FormatException("Invalid entry: " + key.Value);
                    }
                    entries.Add(new CodeEntry(parts[0], parts[1]));
                    break;
                }

                case "ref":
                {
                    var parts = key.Value.Split(':');
                    if (parts.Length != 2)
                    {
                        throw new FormatException("Invalid ref: " + key.Value);
                    }
                    refs.Add(new ResourceRef(parts[0], ushort.Parse(parts[1])));
                    break;
                }
                }
            }

            return(new CodeEntryLayer
            {
                Entries = entries.ToArray(),
                Classpath = refs.ToArray()
            });
        }
コード例 #18
0
 protected override TilesetLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new TilesetLayer {
         HasTransitions = iniData.GetBool("has_transitions", false)
     });
 }
コード例 #19
0
 protected override void Save(IniKeyCollection iniData, TooltipLayer data, LayerHandlerContext context)
 {
     context.SaveExternalFile(TextFileKey, Encoding.UTF8.GetBytes(data.Text));
 }
コード例 #20
0
 protected override void Save(IniKeyCollection iniData, TilesetLayer data, LayerHandlerContext context)
 {
     iniData.Add("has_transitions", data.HasTransitions.ToString());
 }
コード例 #21
0
        protected override void Save(IniKeyCollection iniData, CodeLayer data, LayerHandlerContext context)
        {
            iniData.Add("name", data.Name);

            context.SaveExternalFile(ClassFileKey, data.ByteCode);
        }
コード例 #22
0
 protected override FontLayer Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     return(new FontLayer {
         Data = context.LoadExternalFile(FontFileKey)
     });
 }
コード例 #23
0
 protected override void Save(IniKeyCollection iniData, FontLayer data, LayerHandlerContext context)
 {
     context.SaveExternalFile(FontFileKey, data.Data);
 }
コード例 #24
0
 public object Load(IniKeyCollection iniData, LayerHandlerContext context)
 {
     using (var reader = new BinaryDataReader(context.LoadExternalFile(DataFileKey)))
         return(binaryHandler.Deserialize(reader));
 }