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

View File

@@ -36,7 +36,9 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.runelite.cache.definitions.NpcDefinition;
import net.runelite.cache.definitions.loaders.NpcLoader;
@@ -50,6 +52,7 @@ public class NpcDumper
private final File cache, out, java;
private final Gson gson;
private NpcLoader loader;
private final List<NpcDefinition> npcs = new ArrayList<>();
public NpcDumper(File cache, File out, File java)
{
@@ -90,14 +93,15 @@ public class NpcDumper
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
{
for (NpcDefinition def : loader.getNpcs())
for (NpcDefinition def : npcs)
{
out.mkdirs();
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("");
fw.println("public final class NpcID {");
for (NpcDefinition def : loader.getNpcs())
for (NpcDefinition def : npcs)
{
if (def.name.equalsIgnoreCase("NULL"))
continue;

View File

@@ -30,8 +30,6 @@
package net.runelite.cache.definitions.loaders;
import java.util.ArrayList;
import java.util.List;
import net.runelite.cache.definitions.ItemDefinition;
import net.runelite.cache.io.InputStream;
import org.slf4j.Logger;
@@ -40,14 +38,8 @@ import org.slf4j.LoggerFactory;
public class ItemLoader
{
private static final Logger logger = LoggerFactory.getLogger(ItemLoader.class);
private final List<ItemDefinition> items = new ArrayList<>();
public List<ItemDefinition> getItems()
{
return items;
}
public void load(int id, InputStream stream)
public ItemDefinition load(int id, InputStream stream)
{
ItemDefinition def = new ItemDefinition(id);
@@ -62,7 +54,7 @@ public class ItemLoader
this.decodeValues(opcode, def, stream);
}
items.add(def);
return def;
}
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
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package net.runelite.cache.definitions.loaders;
import java.util.ArrayList;
import java.util.List;
import net.runelite.cache.definitions.NpcDefinition;
import net.runelite.cache.io.InputStream;
import org.slf4j.Logger;
@@ -40,16 +37,11 @@ import org.slf4j.LoggerFactory;
public class NpcLoader
{
private static final Logger logger = LoggerFactory.getLogger(NpcLoader.class);
private final List<NpcDefinition> npcs = new ArrayList<>();
public List<NpcDefinition> getNpcs()
{
return npcs;
}
public void load(int id, InputStream stream)
public NpcDefinition load(int id, InputStream stream)
{
NpcDefinition def = new NpcDefinition(id);
while (true)
{
int opcode = stream.readUnsignedByte();
@@ -60,7 +52,8 @@ public class NpcLoader
this.decodeValues(opcode, def, stream);
}
npcs.add(def);
return def;
}
void decodeValues(int opcode, NpcDefinition def, InputStream stream)