move text resource reading to util class

This commit is contained in:
octarine-noise
2014-08-26 21:21:45 +02:00
parent 4bba2b06c2
commit 5a5daf6750
2 changed files with 29 additions and 23 deletions

View File

@@ -1,19 +1,15 @@
package mods.betterfoliage.client; package mods.betterfoliage.client;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
import java.util.Set; import java.util.Set;
import mods.betterfoliage.BetterFoliage; import mods.betterfoliage.common.util.ResourceUtils;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.multiplayer.WorldClient;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.event.world.WorldEvent;
import com.google.common.base.Charsets;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -63,24 +59,12 @@ public class BlockMatcher {
} }
public static void loadDefaultLists(ResourceLocation defaults, Collection<String> blacklist, Collection<String> whitelist) { public static void loadDefaultLists(ResourceLocation defaults, Collection<String> blacklist, Collection<String> whitelist) {
BufferedReader reader = null; for (String line : ResourceUtils.getLines(defaults)) {
try { if (line.startsWith("-"))
reader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(defaults).getInputStream(), Charsets.UTF_8)); blacklist.add(line.substring(1));
String line = reader.readLine(); else
while(line != null) { whitelist.add(line);
line = line.trim(); }
if (!line.isEmpty() && !line.startsWith("//")) {
if (line.startsWith("-"))
blacklist.add(line.substring(1));
else
whitelist.add(line);
}
line = reader.readLine();
}
reader.close();
} catch (Exception e) {
BetterFoliage.log.warn(String.format("Error reading configuration %s", defaults.toString()));
}
} }
/** Caches block IDs on world load for fast lookup /** Caches block IDs on world load for fast lookup

View File

@@ -5,8 +5,10 @@ import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.List;
import java.util.Map; import java.util.Map;
import mods.betterfoliage.BetterFoliage;
import mods.betterfoliage.loader.DeobfHelper; import mods.betterfoliage.loader.DeobfHelper;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IResource; import net.minecraft.client.resources.IResource;
@@ -15,6 +17,7 @@ import net.minecraft.client.resources.SimpleReloadableResourceManager;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import com.google.common.base.Charsets; import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.ReflectionHelper.UnableToAccessFieldException; import cpw.mods.fml.relauncher.ReflectionHelper.UnableToAccessFieldException;
@@ -69,4 +72,23 @@ public class ResourceUtils {
reader.close(); reader.close();
writer.close(); writer.close();
} }
public static Iterable<String> getLines(ResourceLocation resource) {
BufferedReader reader = null;
List<String> result = Lists.newArrayList();
try {
reader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(resource).getInputStream(), Charsets.UTF_8));
String line = reader.readLine();
while(line != null) {
line = line.trim();
if (!line.isEmpty() && !line.startsWith("//")) result.add(line);
line = reader.readLine();
}
reader.close();
} catch (Exception e) {
BetterFoliage.log.warn(String.format("Error reading resource %s", resource.toString()));
return Lists.newArrayList();
}
return result;
}
} }