示例#1
0
        Map GetMapMetadata(byte[] data, string springVersion)
        {
            var ret = (Map) new XmlSerializer(typeof(Map)).Deserialize(new MemoryStream(data.Decompress()));

            ret.Name = ret.Name.Replace(".smf", ""); // hack remove this after server data reset

            if (UseSpringHashes)
            {
                if (scanner != null)
                {
                    var hash = scanner.GetSpringHash(ret.Name, springVersion);
                    ret.Checksum = hash;
                }
                else
                {
                    var cs = new ContentService.ContentService();
                    try
                    {
                        var rd = cs.GetResourceDataByInternalName(ret.Name);
                        ret.Checksum = rd.SpringHashes.Single(x => x.SpringVersion == springVersion).SpringHash;
                    }
                    catch (Exception ex)
                    {
                        ret.Checksum = 0;
                        Trace.TraceWarning(string.Format("Failed to get ResourcedData for {0}: {1}", ret.Name, ex));
                    }
                }
            }
            else
            {
                ret.Checksum = 0;
            }

            return(ret);
        }
示例#2
0
 public ResourceData GetResourceDataByInternalName(string name)
 {
     try
     {
         var cs = new ContentService.ContentService();
         return(cs.GetResourceDataByInternalName(name));
     }
     catch (Exception ex)
     {
         Trace.TraceWarning(string.Format("Error getting data for resource {0} : {1}", name, ex));
         return(null);
     }
 }
示例#3
0
        Mod GetModMetadata(byte[] data, string springVersion)
        {
            var ret = (Mod) new XmlSerializer(typeof(Mod)).Deserialize(new MemoryStream(data.Decompress()));

            if (UseSpringHashes)
            {
                if (scanner != null)
                {
                    var hash = scanner.GetSpringHash(ret.Name, springVersion);
                    ret.Checksum = hash;
                }
                else
                {
                    var cs = new ContentService.ContentService();
                    try
                    {
                        var rd = cs.GetResourceDataByInternalName(ret.Name);
                        ret.Checksum = rd.SpringHashes.Single(x => x.SpringVersion == springVersion).SpringHash;
                    }
                    catch (Exception ex)
                    {
                        ret.Checksum = 0;
                        Trace.TraceWarning(string.Format("Failed to get ResourcedData for {0}: {1}", ret.Name, ex));
                    }
                }
            }
            else
            {
                ret.Checksum = 0;
            }

            if (ret.Options != null)
            {
                foreach (var option in ret.Options)
                {
                    if (option.Type == OptionType.Number)
                    {
                        option.Default = option.Default.Replace(",", ".");
                    }
                }
            }
            return(ret);
        }
示例#4
0
        public ResourceData[] FindResourceData(string[] words, ResourceType?type)
        {
            var cs = new ContentService.ContentService();

            return(cs.FindResourceData(words, type));
        }