protected static ResourcePackManifest GetManifest(ZipArchive archive, ResourcePackType type) { if (type == ResourcePackType.Java) { var entry = archive.GetEntry("pack.mcmeta"); if (entry != null) { ResourcePackInfo info; using (TextReader reader = new StreamReader(entry.Open())) { ResourcePackInfoWrapper wrap = MCJsonConvert.DeserializeObject <ResourcePackInfoWrapper>(reader.ReadToEnd()); info = wrap.pack; } try { var imgEntry = archive.GetEntry("pack.png"); if (imgEntry != null) { // Bitmap bmp = new Bitmap(imgEntry.Open()); using (var stream = imgEntry.Open()) { var bmp = Image.Load <Rgba32>(stream.ReadToSpan(entry.Length)); return(new ResourcePackManifest(bmp, "", info.Description)); } } } catch (Exception ex) { Log.Warn(ex, $"Could not read resourcepack logo: {archive.ToString()}"); } return(new ResourcePackManifest("", info.Description)); } else { throw new InvalidResourcePackException(); } } else if (type == ResourcePackType.Bedrock) { } return(null); }
private void LoadMeta(ZipArchive archive) { ResourcePackInfo info; var entry = archive.GetEntry("pack.mcmeta"); if (entry == null) { info = new ResourcePackInfo(); } else { using (TextReader reader = new StreamReader(entry.Open())) { ResourcePackInfoWrapper wrap = MCJsonConvert.DeserializeObject <ResourcePackInfoWrapper>(reader.ReadToEnd()); info = wrap.pack; } } Info = info; }
private void LoadMeta(ZipArchive archive) { ResourcePackInfo info; var entry = archive.GetEntry("pack.mcmeta"); if (entry == null) { info = new ResourcePackInfo(); } else { using (var stream = entry.Open()) { ResourcePackInfoWrapper wrap = MCJsonConvert.DeserializeObject <ResourcePackInfoWrapper>( Encoding.UTF8.GetString(stream.ReadToSpan(entry.Length))); info = wrap.pack; } } Info = info; }
protected static ResourcePackManifest GetManifest(ZipArchive archive, ResourcePackType type) { if (type == ResourcePackType.Java) { var entry = archive.GetEntry("pack.mcmeta"); if (entry != null) { ResourcePackInfo info; using (TextReader reader = new StreamReader(entry.Open())) { ResourcePackInfoWrapper wrap = MCJsonConvert.DeserializeObject <ResourcePackInfoWrapper>(reader.ReadToEnd()); info = wrap.pack; } var imgEntry = archive.GetEntry("pack.png"); if (imgEntry != null) { // Bitmap bmp = new Bitmap(imgEntry.Open()); var bmp = Image.Load <Rgba32>(imgEntry.Open()); return(new ResourcePackManifest(bmp, "", info.Description)); } else { return(new ResourcePackManifest("", info.Description)); } } else { throw new InvalidResourcePackException(); } } else if (type == ResourcePackType.Bedrock) { } return(null); }
public static ResourcePackManifest GetManifest(IFilesystem archive) { //if (archive.GetEntry("pack.mcmeta") != null) var entry = archive.GetEntry("pack.mcmeta"); if (entry != null) { ResourcePackInfo info; using (TextReader reader = new StreamReader(entry.Open())) { ResourcePackInfoWrapper wrap = MCJsonConvert.DeserializeObject <ResourcePackInfoWrapper>(reader.ReadToEnd()); info = wrap.pack; } try { var imgEntry = archive.GetEntry("pack.png"); if (imgEntry != null && imgEntry.Length > 0) { // Bitmap bmp = new Bitmap(imgEntry.Open()); using (var stream = imgEntry.Open()) { //var data = stream.ReadToSpan(entry.Length); var bmp = Image.Load(stream).CloneAs <Rgba32>(); return(new ResourcePackManifest(bmp, "", info.Description, ResourcePackType.Java)); } } } catch (Exception ex) { Log.Warn(ex, $"Could not read resourcepack logo: {archive.ToString()}"); } return(new ResourcePackManifest("", info.Description, ResourcePackType.Java)); } entry = archive.GetEntry("manifest.json"); if (entry != null) { //Load bedrock meta McPackManifest info; using (TextReader reader = new StreamReader(entry.Open())) { info = MCJsonConvert.DeserializeObject <McPackManifest>(reader.ReadToEnd()); //info = new ResourcePackInfo() {Description = wrap.Header.Description}; //info = wrap.pack; } try { var imgEntry = archive.GetEntry("pack_icon.png"); if (imgEntry != null && imgEntry.Length > 0) { // Bitmap bmp = new Bitmap(imgEntry.Open()); using (var stream = imgEntry.Open()) { //var data = stream.ReadToSpan(entry.Length); var bmp = Image.Load(stream).CloneAs <Rgba32>(); return(new ResourcePackManifest(bmp, info.Header.Name, info.Header.Description, ResourcePackType.Bedrock)); } } } catch (Exception ex) { Log.Warn(ex, $"Could not read resourcepack logo: {archive.ToString()}"); } return(new ResourcePackManifest(info.Header.Name, info.Header.Description, ResourcePackType.Bedrock)); } return(null); }