package net.scapeemulator.game.tools; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; import net.scapeemulator.cache.Cache; import net.scapeemulator.cache.FileStore; import net.scapeemulator.cache.def.ObjectDefinition; import net.scapeemulator.game.model.definition.ObjectDefinitions; public final class ObjectDumper { public static void main(String[] args) throws IOException { Cache cache = new Cache(FileStore.open("data/game/cache")); ObjectDefinitions.init(cache); System.out.println("Dumping cache object data..."); try (BufferedWriter output = new BufferedWriter(new FileWriter("data/game/dumps/cache_object_defs", false))) { for (int id = 0; id < ObjectDefinitions.count(); id++) { ObjectDefinition def = ObjectDefinitions.forId(id); if (def != null) { try { output.write(id + "\t" + def.getName() + "\t\t\t"); output.write("len/width:[" + def.getLength() + "/" + def.getWidth() + "]\t" + "solid/impen:" + def.isSolid() + "/" + def.isImpenetrable() + "\t"); if (def.getAnimationId() > 0) { output.write("anim[" + def.getAnimationId() + "]\t"); } if (def.hasOptions()) { output.write("opts" + Arrays.toString(def.getOptions()) + "\t"); } if (def.getValidInteractSides() > 0) { output.write("validInteract[" + def.getValidInteractSides() + "]\t"); } if (def.getConfigId() > 0) { output.write("config[" + def.getConfigId() + "]\t"); } if (def.getVarbitId() > 0) { output.write("varbit[" + def.getVarbitId() + "]\t"); } if(def.getChildIds() != null) { output.write("childids" + Arrays.toString(def.getChildIds()) + "\t"); } output.newLine(); output.flush(); } catch (RuntimeException re) { } } } output.close(); } System.out.println("Successfully dumped item data."); } }