Search in sources :

Example 31 with Store

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

the class OverlayDumper 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.OVERLAY.getId());
        byte[] archiveData = storage.loadArchive(archive);
        ArchiveFiles files = archive.getFiles(archiveData);
        for (FSFile file : files.getFiles()) {
            OverlayLoader loader = new OverlayLoader();
            OverlayDefinition overlay = loader.load(file.getFileId(), file.getContents());
            Files.write(gson.toJson(overlay), new File(outDir, file.getFileId() + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} overlays to {}", count, outDir);
}
Also used : Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) ArchiveFiles(net.runelite.cache.fs.ArchiveFiles) OverlayDefinition(net.runelite.cache.definitions.OverlayDefinition) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) File(java.io.File) FSFile(net.runelite.cache.fs.FSFile) OverlayLoader(net.runelite.cache.definitions.loaders.OverlayLoader) FSFile(net.runelite.cache.fs.FSFile) Test(org.junit.Test)

Example 32 with Store

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

the class FramemapDumper 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.FRAMEMAPS);
        for (Archive archive : index.getArchives()) {
            byte[] archiveData = storage.loadArchive(archive);
            byte[] contents = archive.decompress(archiveData);
            FramemapLoader loader = new FramemapLoader();
            FramemapDefinition framemap = loader.load(0, contents);
            Files.write(gson.toJson(framemap), new File(outDir, archive.getArchiveId() + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} framemaps to {}", count, outDir);
}
Also used : FramemapLoader(net.runelite.cache.definitions.loaders.FramemapLoader) Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) File(java.io.File) FramemapDefinition(net.runelite.cache.definitions.FramemapDefinition) Test(org.junit.Test)

Example 33 with Store

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

the class InterfaceManagerTest method test.

@Test
public void test() throws IOException {
    File dumpDir = folder.newFolder(), javaDir = folder.newFolder();
    Store store = new Store(StoreLocation.LOCATION);
    store.load();
    InterfaceManager dumper = new InterfaceManager(store);
    dumper.load();
    dumper.export(dumpDir);
    dumper.java(javaDir);
    logger.info("Dumped to {}, java {}", dumpDir, javaDir);
}
Also used : Store(net.runelite.cache.fs.Store) File(java.io.File) Test(org.junit.Test)

Example 34 with Store

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

the class SequenceDumper 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.SEQUENCE.getId());
        byte[] archiveData = storage.loadArchive(archive);
        ArchiveFiles files = archive.getFiles(archiveData);
        for (FSFile file : files.getFiles()) {
            SequenceLoader loader = new SequenceLoader();
            SequenceDefinition seq = loader.load(file.getFileId(), file.getContents());
            Files.write(gson.toJson(seq), new File(outDir, file.getFileId() + ".json"), Charset.defaultCharset());
            ++count;
        }
    }
    logger.info("Dumped {} sequences to {}", count, outDir);
}
Also used : Storage(net.runelite.cache.fs.Storage) Archive(net.runelite.cache.fs.Archive) ArchiveFiles(net.runelite.cache.fs.ArchiveFiles) SequenceDefinition(net.runelite.cache.definitions.SequenceDefinition) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) SequenceLoader(net.runelite.cache.definitions.loaders.SequenceLoader) File(java.io.File) FSFile(net.runelite.cache.fs.FSFile) FSFile(net.runelite.cache.fs.FSFile) Test(org.junit.Test)

Example 35 with Store

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

the class DiskStorageTest method testSaveArchive.

@Test
public void testSaveArchive() throws Exception {
    File file = folder.newFolder();
    DiskStorage storage = new DiskStorage(file);
    Archive archive;
    Archive archive2;
    try (Store store = new Store(storage)) {
        Index index = store.addIndex(0);
        archive = index.addArchive(0);
        archive2 = index.addArchive(1);
        FileData[] fileData = new FileData[1];
        archive.setFileData(fileData);
        fileData[0] = new FileData();
        FileData[] fileData2 = new FileData[1];
        archive2.setFileData(fileData2);
        fileData2[0] = new FileData();
        byte[] data = "test".getBytes();
        Container container = new Container(archive.getCompression(), -1);
        container.compress(data, null);
        byte[] compressedData = container.data;
        storage.saveArchive(archive, compressedData);
        container = new Container(archive.getCompression(), 42);
        container.compress(data, null);
        compressedData = container.data;
        archive2.setRevision(42);
        storage.saveArchive(archive2, compressedData);
        store.save();
    }
    storage = new DiskStorage(file);
    try (Store store = new Store(storage)) {
        store.load();
        Index index = store.findIndex(0);
        Archive archive2_1 = index.getArchive(0);
        Archive archive2_2 = index.getArchive(1);
        byte[] comprsesedData = storage.loadArchive(archive2_1);
        byte[] data = archive2_1.decompress(comprsesedData);
        assertArrayEquals("test".getBytes(), data);
        assertEquals(archive.getCrc(), archive2_1.getCrc());
        assertEquals(archive.getRevision(), archive2_1.getRevision());
        comprsesedData = storage.loadArchive(archive2_2);
        data = archive2_2.decompress(comprsesedData);
        assertArrayEquals("test".getBytes(), data);
        assertEquals(archive2.getCrc(), archive2_2.getCrc());
        assertEquals(archive2.getRevision(), archive2_2.getRevision());
    }
}
Also used : Container(net.runelite.cache.fs.Container) Archive(net.runelite.cache.fs.Archive) Store(net.runelite.cache.fs.Store) Index(net.runelite.cache.fs.Index) File(java.io.File) FileData(net.runelite.cache.index.FileData) 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