Make item and npc loaders simply load a definition

This commit is contained in:
Adam
2016-09-16 23:24:22 -04:00
parent 520df7f8f4
commit 7d6609713e
4 changed files with 18 additions and 26 deletions

View File

@@ -36,7 +36,9 @@ import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.Set; import java.util.Set;
import net.runelite.cache.definitions.ItemDefinition; import net.runelite.cache.definitions.ItemDefinition;
import net.runelite.cache.definitions.loaders.ItemLoader; import net.runelite.cache.definitions.loaders.ItemLoader;
@@ -50,6 +52,7 @@ public class ItemDumper
private final File cache, out, java; private final File cache, out, java;
private final Gson gson; private final Gson gson;
private ItemLoader loader; private ItemLoader loader;
private final List<ItemDefinition> items = new ArrayList<>();
public ItemDumper(File cache, File out, File java) public ItemDumper(File cache, File out, File java)
{ {
@@ -97,7 +100,7 @@ public class ItemDumper
public void dump() throws IOException public void dump() throws IOException
{ {
for (ItemDefinition def : loader.getItems()) for (ItemDefinition def : items)
{ {
out.mkdirs(); out.mkdirs();
java.io.File targ = new java.io.File(out, def.id + ".json"); java.io.File targ = new java.io.File(out, def.id + ".json");
@@ -120,7 +123,7 @@ public class ItemDumper
fw.println("package net.runelite.api;"); fw.println("package net.runelite.api;");
fw.println(""); fw.println("");
fw.println("public final class ItemID {"); fw.println("public final class ItemID {");
for (ItemDefinition def : loader.getItems()) for (ItemDefinition def : items)
{ {
if (def.name.equalsIgnoreCase("NULL")) if (def.name.equalsIgnoreCase("NULL"))
continue; continue;

View File

@@ -36,7 +36,9 @@ import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.Set; import java.util.Set;
import net.runelite.cache.definitions.NpcDefinition; import net.runelite.cache.definitions.NpcDefinition;
import net.runelite.cache.definitions.loaders.NpcLoader; import net.runelite.cache.definitions.loaders.NpcLoader;
@@ -50,6 +52,7 @@ public class NpcDumper
private final File cache, out, java; private final File cache, out, java;
private final Gson gson; private final Gson gson;
private NpcLoader loader; private NpcLoader loader;
private final List<NpcDefinition> npcs = new ArrayList<>();
public NpcDumper(File cache, File out, File java) public NpcDumper(File cache, File out, File java)
{ {
@@ -90,14 +93,15 @@ public class NpcDumper
for (net.runelite.cache.fs.File f : archive.getFiles()) for (net.runelite.cache.fs.File f : archive.getFiles())
{ {
loader.load(f.getFileId(), new InputStream(f.getContents())); NpcDefinition npc = loader.load(f.getFileId(), new InputStream(f.getContents()));
npcs.add(npc);
} }
} }
} }
public void dump() throws IOException public void dump() throws IOException
{ {
for (NpcDefinition def : loader.getNpcs()) for (NpcDefinition def : npcs)
{ {
out.mkdirs(); out.mkdirs();
java.io.File targ = new java.io.File(out, def.id + ".json"); java.io.File targ = new java.io.File(out, def.id + ".json");
@@ -120,7 +124,7 @@ public class NpcDumper
fw.println("package net.runelite.api;"); fw.println("package net.runelite.api;");
fw.println(""); fw.println("");
fw.println("public final class NpcID {"); fw.println("public final class NpcID {");
for (NpcDefinition def : loader.getNpcs()) for (NpcDefinition def : npcs)
{ {
if (def.name.equalsIgnoreCase("NULL")) if (def.name.equalsIgnoreCase("NULL"))
continue; continue;

View File

@@ -30,8 +30,6 @@
package net.runelite.cache.definitions.loaders; package net.runelite.cache.definitions.loaders;
import java.util.ArrayList;
import java.util.List;
import net.runelite.cache.definitions.ItemDefinition; import net.runelite.cache.definitions.ItemDefinition;
import net.runelite.cache.io.InputStream; import net.runelite.cache.io.InputStream;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -40,14 +38,8 @@ import org.slf4j.LoggerFactory;
public class ItemLoader public class ItemLoader
{ {
private static final Logger logger = LoggerFactory.getLogger(ItemLoader.class); private static final Logger logger = LoggerFactory.getLogger(ItemLoader.class);
private final List<ItemDefinition> items = new ArrayList<>();
public List<ItemDefinition> getItems() public ItemDefinition load(int id, InputStream stream)
{
return items;
}
public void load(int id, InputStream stream)
{ {
ItemDefinition def = new ItemDefinition(id); ItemDefinition def = new ItemDefinition(id);
@@ -62,7 +54,7 @@ public class ItemLoader
this.decodeValues(opcode, def, stream); this.decodeValues(opcode, def, stream);
} }
items.add(def); return def;
} }
private void decodeValues(int opcode, ItemDefinition def, InputStream stream) private void decodeValues(int opcode, ItemDefinition def, InputStream stream)

View File

@@ -27,11 +27,8 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
package net.runelite.cache.definitions.loaders; package net.runelite.cache.definitions.loaders;
import java.util.ArrayList;
import java.util.List;
import net.runelite.cache.definitions.NpcDefinition; import net.runelite.cache.definitions.NpcDefinition;
import net.runelite.cache.io.InputStream; import net.runelite.cache.io.InputStream;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -40,16 +37,11 @@ import org.slf4j.LoggerFactory;
public class NpcLoader public class NpcLoader
{ {
private static final Logger logger = LoggerFactory.getLogger(NpcLoader.class); private static final Logger logger = LoggerFactory.getLogger(NpcLoader.class);
private final List<NpcDefinition> npcs = new ArrayList<>();
public List<NpcDefinition> getNpcs() public NpcDefinition load(int id, InputStream stream)
{
return npcs;
}
public void load(int id, InputStream stream)
{ {
NpcDefinition def = new NpcDefinition(id); NpcDefinition def = new NpcDefinition(id);
while (true) while (true)
{ {
int opcode = stream.readUnsignedByte(); int opcode = stream.readUnsignedByte();
@@ -60,7 +52,8 @@ public class NpcLoader
this.decodeValues(opcode, def, stream); this.decodeValues(opcode, def, stream);
} }
npcs.add(def);
return def;
} }
void decodeValues(int opcode, NpcDefinition def, InputStream stream) void decodeValues(int opcode, NpcDefinition def, InputStream stream)