store only biome IDs not instances

reorganized utility methods
This commit is contained in:
octarine-noise
2014-08-21 15:23:28 +02:00
parent 4bc6a4a2f9
commit 85b4880391
13 changed files with 247 additions and 237 deletions

View File

@@ -1,13 +1,11 @@
package mods.betterfoliage.client.gui;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import mods.betterfoliage.common.config.Config;
import mods.betterfoliage.common.util.BiomeUtils;
import net.minecraft.world.biome.BiomeGenBase;
import com.google.common.base.Predicates;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
@@ -19,31 +17,20 @@ import cpw.mods.fml.client.config.IConfigElement;
public class BiomeListConfigEntry extends SelectListConfigEntry<BiomeGenBase> {
public static List<BiomeGenBase> reedBiomeList = Lists.newArrayList();
public static List<BiomeGenBase> algaeBiomeList = Lists.newArrayList();
public static List<BiomeGenBase> coralBiomeList = Lists.newArrayList();
public BiomeListConfigEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement<?> configElement) {
super(owningScreen, owningEntryList, configElement);
}
@Override
protected List<BiomeGenBase> getBaseSet(String qualifiedName) {
List<BiomeGenBase> biomes = Lists.newArrayList(Collections2.filter(Arrays.asList(BiomeGenBase.getBiomeGenArray()), Predicates.notNull()));
Collections.sort(biomes, new Comparator<BiomeGenBase>() {
@Override
public int compare(BiomeGenBase o1, BiomeGenBase o2) {
return o1.biomeName.compareTo(o2.biomeName);
}
});
return biomes;
protected List<BiomeGenBase> getBaseSet(String name) {
return BiomeUtils.getAllBiomes();
}
@Override
protected List<BiomeGenBase> getDefaultSelected(String name) {
if (name.equals("reedBiomeList")) return reedBiomeList;
if (name.equals("algaeBiomeList")) return algaeBiomeList;
if (name.equals("coralBiomeList")) return coralBiomeList;
if (name.equals("reedBiomeList")) return Lists.newArrayList(Collections2.filter(getBaseSet(name), BiomeUtils.biomeIdFilter(Config.reedBiomeList)));
if (name.equals("algaeBiomeList")) return Lists.newArrayList(Collections2.filter(getBaseSet(name), BiomeUtils.biomeIdFilter(Config.algaeBiomeList)));
if (name.equals("coralBiomeList")) return Lists.newArrayList(Collections2.filter(getBaseSet(name), BiomeUtils.biomeIdFilter(Config.coralBiomeList)));
return ImmutableList.<BiomeGenBase>of();
}

View File

@@ -1,6 +1,6 @@
package mods.betterfoliage.client.gui;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.common.util.RenderUtils;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.EnumChatFormatting;
import cpw.mods.fml.client.config.GuiConfig;
@@ -14,7 +14,7 @@ public class NonVerboseArrayEntry extends GuiConfigEntries.ArrayEntry {
public NonVerboseArrayEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement<?> configElement) {
super(owningScreen, owningEntryList, configElement);
Utils.stripTooltipDefaultText(toolTip);
RenderUtils.stripTooltipDefaultText(toolTip);
String shortDefaults = I18n.format("betterfoliage.arrayEntryDisplay", configElement.getDefaults().length);
toolTip.addAll(this.mc.fontRenderer.listFormattedStringToWidth(EnumChatFormatting.AQUA + I18n.format("fml.configgui.tooltip.default", shortDefaults),300));
}

View File

@@ -4,7 +4,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.common.util.RenderUtils;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.EnumChatFormatting;
@@ -28,7 +28,7 @@ public abstract class SelectListConfigEntry<T> extends CategoryEntry {
@SuppressWarnings("unchecked")
public SelectListConfigEntry(GuiConfig owningScreen, GuiConfigEntries owningEntryList, IConfigElement<?> configElement) {
super(owningScreen, owningEntryList, configElement);
Utils.stripTooltipDefaultText(toolTip);
RenderUtils.stripTooltipDefaultText(toolTip);
}
@Override

View File

@@ -1,6 +1,6 @@
package mods.betterfoliage.client.render;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.common.util.ResourceUtils;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
@@ -37,7 +37,7 @@ public class IconSet {
// if the path contains a domain, use that to check if the resource exists
String resolvedDomain = path.contains(":") ? new ResourceLocation(path).getResourceDomain() : domain;
String resolvedPath = String.format("textures/blocks/" + (path.contains(":") ? new ResourceLocation(path).getResourcePath() : path) + ".png", idx);
if (Utils.resourceExists(new ResourceLocation(resolvedDomain, resolvedPath)))
if (ResourceUtils.resourceExists(new ResourceLocation(resolvedDomain, resolvedPath)))
icons[numLoaded++] = register.registerIcon(domain + ":" + String.format(path, idx));
}
}

View File

@@ -6,7 +6,7 @@ import java.util.Iterator;
import java.util.List;
import mods.betterfoliage.common.util.Double3;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.common.util.RenderUtils;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderBlocks;
@@ -138,7 +138,7 @@ public class RenderBlockAOBase extends RenderBlocks {
// render block
setPassCounters(1);
setRenderBoundsFromBlock(block);
ISimpleBlockRenderingHandler handler = Utils.getRenderingHandler(block.getRenderType());
ISimpleBlockRenderingHandler handler = RenderUtils.getRenderingHandler(block.getRenderType());
if (handler != null) {
handler.renderWorldBlock(world, x, y, z, block, block.getRenderType(), this);
} else {

View File

@@ -6,7 +6,7 @@ import java.util.Map;
import java.util.Set;
import mods.betterfoliage.BetterFoliage;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.common.util.ResourceUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.resources.IResource;
@@ -47,7 +47,7 @@ public abstract class BlockTextureGenerator implements IResourceManager {
if (event.map.getTextureType() != 0) return;
blockTextures = event.map;
Map<String, IResourceManager> domainManagers = Utils.getDomainResourceManagers();
Map<String, IResourceManager> domainManagers = ResourceUtils.getDomainResourceManagers();
if (domainManagers == null) {
BetterFoliage.log.warn("Failed to inject texture generator");
return;
@@ -61,7 +61,7 @@ public abstract class BlockTextureGenerator implements IResourceManager {
if (event.map.getTextureType() != 0) return;
// don't leave a mess
Map<String, IResourceManager> domainManagers = Utils.getDomainResourceManagers();
Map<String, IResourceManager> domainManagers = ResourceUtils.getDomainResourceManagers();
if (domainManagers != null) domainManagers.remove(domainName);
}

View File

@@ -6,7 +6,7 @@ import java.io.IOException;
import javax.imageio.ImageIO;
import mods.betterfoliage.client.resource.LeafTextureEnumerator.LeafTextureFoundEvent;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.common.util.ResourceUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IResource;
import net.minecraft.client.resources.IResourceManager;
@@ -58,13 +58,13 @@ public abstract class LeafGeneratorBase extends BlockTextureGenerator {
// check for provided texture
ResourceLocation handDrawnLocation = new ResourceLocation(nonGeneratedDomain, String.format(handDrawnLocationFormat, originalNoDirs.getResourceDomain(), originalNoDirs.getResourcePath()));
if (Utils.resourceExists(handDrawnLocation)) {
if (ResourceUtils.resourceExists(handDrawnLocation)) {
drawnCounter++;
return resourceManager.getResource(handDrawnLocation);
}
// generate our own
if (!Utils.resourceExists(originalWithDirs)) return getMissingResource();
if (!ResourceUtils.resourceExists(originalWithDirs)) return getMissingResource();
BufferedImage result;
try {

View File

@@ -7,7 +7,6 @@ import java.util.Set;
import mods.betterfoliage.BetterFoliage;
import mods.betterfoliage.client.BetterFoliageClient;
import mods.betterfoliage.common.config.Config;
import mods.betterfoliage.common.util.Utils;
import mods.betterfoliage.loader.DeobfHelper;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -22,6 +21,8 @@ import com.google.common.collect.Sets;
import cpw.mods.fml.common.eventhandler.Event;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.ReflectionHelper;
import cpw.mods.fml.relauncher.ReflectionHelper.UnableToAccessFieldException;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -83,21 +84,21 @@ public class LeafTextureEnumerator implements IIconRegister {
}
// enumerate all registered textures, find leaf textures among them
Map<String, TextureAtlasSprite> mapAtlas = null;
mapAtlas = Utils.getField(blockTextures, DeobfHelper.transformElementSearge("mapRegisteredSprites"), Map.class);
if (mapAtlas == null) mapAtlas = Utils.getField(blockTextures, "mapRegisteredSprites", Map.class);
if (mapAtlas == null) {
BetterFoliage.log.warn("Failed to reflect texture atlas, textures may be missing");
} else {
Set<TextureAtlasSprite> foundLeafTextures = Sets.newHashSet();
for (TextureAtlasSprite icon : mapAtlas.values())
if (BetterFoliageClient.isLeafTexture(icon)) foundLeafTextures.add(icon);
for (TextureAtlasSprite icon : foundLeafTextures) {
BetterFoliage.log.debug(String.format("Found non-block-registered leaf texture: %s", icon.getIconName()));
MinecraftForge.EVENT_BUS.post(new LeafTextureFoundEvent(blockTextures, icon));
}
}
try {
Map<String, TextureAtlasSprite> mapAtlas = ReflectionHelper.<Map<String, TextureAtlasSprite>, TextureMap> getPrivateValue(
TextureMap.class, blockTextures, DeobfHelper.transformElementSearge("mapRegisteredSprites"), "mapRegisteredSprites"
);
Set<TextureAtlasSprite> foundLeafTextures = Sets.newHashSet();
for (TextureAtlasSprite icon : mapAtlas.values())
if (BetterFoliageClient.isLeafTexture(icon)) foundLeafTextures.add(icon);
for (TextureAtlasSprite icon : foundLeafTextures) {
BetterFoliage.log.debug(String.format("Found non-block-registered leaf texture: %s", icon.getIconName()));
MinecraftForge.EVENT_BUS.post(new LeafTextureFoundEvent(blockTextures, icon));
}
} catch (UnableToAccessFieldException e) {
BetterFoliage.log.warn("Failed to reflect texture atlas, textures may be missing");
}
}
@SubscribeEvent