Search in sources :

Example 21 with Store

use of net.runelite.cache.fs.Store in project runelite by runelite.

the class VarbitDumper method extract.

@Test
public void extract() throws IOException {
    File base = StoreLocation.LOCATION, outDir = folder.newFolder();
    int count = 0;
    try (Store store = new Store(base)) {
        store.load();
        Storage storage = store.getStorage();
        Index index = store.getIndex(IndexType.CONFIGS);
        Archive archive = index.getArchive(ConfigType.VARBIT.getId());
        byte[] archiveData = storage.loadArchive(archive);
        ArchiveFiles files = archive.getFiles(archiveData);
        for (FSFile file : files.getFiles()) {
            VarbitLoader loader = new VarbitLoader();
            VarbitDefinition varbit = loader.load(file.getFileId(), file.getContents());
            Files.write(gson.toJson(varbit), new File(outDir, file.getFileId() + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} varbits to {}", count, outDir);
}
Also used : VarbitDefinition(net.runelite.cache.definitions.VarbitDefinition) Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) ArchiveFiles(net.runelite.cache.fs.ArchiveFiles) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) File(java.io.File) FSFile(net.runelite.cache.fs.FSFile) VarbitLoader(net.runelite.cache.definitions.loaders.VarbitLoader) FSFile(net.runelite.cache.fs.FSFile) Test(org.junit.Test)

Example 22 with Store

use of net.runelite.cache.fs.Store in project runelite by runelite.

the class WorldMapDumperTest method extract.

@Test
public void extract() throws IOException {
    File base = StoreLocation.LOCATION, outDir = folder.newFolder();
    int count = 0;
    try (Store store = new Store(base)) {
        store.load();
        Storage storage = store.getStorage();
        Index index = store.getIndex(IndexType.WORLDMAP);
        // there is also archive 1/2, but their data format is not this
        Archive archive = index.getArchive(0);
        byte[] archiveData = storage.loadArchive(archive);
        ArchiveFiles files = archive.getFiles(archiveData);
        for (FSFile file : files.getFiles()) {
            WorldMapLoader loader = new WorldMapLoader();
            WorldMapDefinition def = loader.load(file.getContents(), file.getFileId());
            Files.write(gson.toJson(def), new File(outDir, file.getFileId() + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} world map data to {}", count, outDir);
}
Also used : Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) ArchiveFiles(net.runelite.cache.fs.ArchiveFiles) WorldMapDefinition(net.runelite.cache.definitions.WorldMapDefinition) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) File(java.io.File) FSFile(net.runelite.cache.fs.FSFile) FSFile(net.runelite.cache.fs.FSFile) WorldMapLoader(net.runelite.cache.definitions.loaders.WorldMapLoader) Test(org.junit.Test)

Example 23 with Store

use of net.runelite.cache.fs.Store in project runelite by runelite.

the class InterfaceSaverTest method testSave.

@Test
public void testSave() throws Exception {
    File base = StoreLocation.LOCATION;
    try (Store store = new Store(base)) {
        store.load();
        Storage storage = store.getStorage();
        Index index = store.getIndex(IndexType.INTERFACES);
        Archive archive = index.getArchive(149);
        byte[] archiveData = storage.loadArchive(archive);
        ArchiveFiles files = archive.getFiles(archiveData);
        FSFile file = files.findFile(0);
        byte[] contents = file.getContents();
        InterfaceDefinition def = new InterfaceLoader().load(0, contents);
        byte[] b = new InterfaceSaver().save(def);
        assertArrayEquals(contents, b);
    }
}
Also used : Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) ArchiveFiles(net.runelite.cache.fs.ArchiveFiles) InterfaceLoader(net.runelite.cache.definitions.loaders.InterfaceLoader) InterfaceDefinition(net.runelite.cache.definitions.InterfaceDefinition) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) File(java.io.File) FSFile(net.runelite.cache.fs.FSFile) FSFile(net.runelite.cache.fs.FSFile) Test(org.junit.Test)

Example 24 with Store

use of net.runelite.cache.fs.Store in project runelite by runelite.

the class AreaDumper method extract.

@Test
public void extract() throws IOException {
    File base = StoreLocation.LOCATION, outDir = folder.newFolder();
    int count = 0;
    try (Store store = new Store(base)) {
        store.load();
        AreaManager areaManager = new AreaManager(store);
        areaManager.load();
        for (AreaDefinition area : areaManager.getAreas()) {
            Files.write(gson.toJson(area), new File(outDir, area.id + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} areas to {}", count, outDir);
}
Also used : AreaDefinition(net.runelite.cache.definitions.AreaDefinition) Store(net.runelite.cache.fs.Store) File(java.io.File) Test(org.junit.Test)

Example 25 with Store

use of net.runelite.cache.fs.Store in project runelite by runelite.

the class EnumDumperTest method test.

@Test
public void test() throws IOException {
    File dumpDir = folder.newFolder();
    int count = 0;
    try (Store store = new Store(StoreLocation.LOCATION)) {
        store.load();
        Storage storage = store.getStorage();
        Index index = store.getIndex(IndexType.CONFIGS);
        Archive archive = index.getArchive(ConfigType.ENUM.getId());
        byte[] archiveData = storage.loadArchive(archive);
        ArchiveFiles files = archive.getFiles(archiveData);
        EnumLoader loader = new EnumLoader();
        for (FSFile file : files.getFiles()) {
            byte[] b = file.getContents();
            EnumDefinition def = loader.load(file.getFileId(), b);
            Files.write(gson.toJson(def), new File(dumpDir, file.getFileId() + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} enums to {}", count, dumpDir);
}
Also used : Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) ArchiveFiles(net.runelite.cache.fs.ArchiveFiles) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) EnumLoader(net.runelite.cache.definitions.loaders.EnumLoader) EnumDefinition(net.runelite.cache.definitions.EnumDefinition) File(java.io.File) FSFile(net.runelite.cache.fs.FSFile) FSFile(net.runelite.cache.fs.FSFile) Test(org.junit.Test)

Aggregations

Store (net.runelite.cache.fs.Store)38 File (java.io.File)34 Test (org.junit.Test)32 Archive (net.runelite.cache.fs.Archive)21 Index (net.runelite.cache.fs.Index)20 Storage (net.runelite.cache.fs.Storage)18 ArchiveFiles (net.runelite.cache.fs.ArchiveFiles)9 FSFile (net.runelite.cache.fs.FSFile)9 Ignore (org.junit.Ignore)7 BufferedImage (java.awt.image.BufferedImage)4 IOException (java.io.IOException)3 CacheClient (net.runelite.cache.client.CacheClient)3 ModelLoader (net.runelite.cache.definitions.loaders.ModelLoader)3 TextureManager (net.runelite.cache.TextureManager)2 FramemapDefinition (net.runelite.cache.definitions.FramemapDefinition)2 ModelDefinition (net.runelite.cache.definitions.ModelDefinition)2 FramemapLoader (net.runelite.cache.definitions.loaders.FramemapLoader)2 FileData (net.runelite.cache.index.FileData)2 HandshakeResponseType (net.runelite.protocol.api.login.HandshakeResponseType)2 RemoteCache (com.ostracker.cache.RemoteCache)1