Add a constructor that sets an elementName for ElementSlider, and set up a cached copy of the OreDictionary (since we should be doing that rather than constantly rebuilding it with queries all the time)
This commit is contained in:
parent
5dd7f5a835
commit
ad83088933
|
@ -2,6 +2,7 @@ package com.pahimar.ee3;
|
||||||
|
|
||||||
import com.pahimar.ee3.array.AlchemyArrayRegistry;
|
import com.pahimar.ee3.array.AlchemyArrayRegistry;
|
||||||
import com.pahimar.ee3.command.CommandEE;
|
import com.pahimar.ee3.command.CommandEE;
|
||||||
|
import com.pahimar.ee3.exchange.CachedOreDictionary;
|
||||||
import com.pahimar.ee3.exchange.EnergyValueRegistry;
|
import com.pahimar.ee3.exchange.EnergyValueRegistry;
|
||||||
import com.pahimar.ee3.handler.*;
|
import com.pahimar.ee3.handler.*;
|
||||||
import com.pahimar.ee3.init.*;
|
import com.pahimar.ee3.init.*;
|
||||||
|
@ -110,6 +111,7 @@ public class EquivalentExchange3
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void postInit(FMLPostInitializationEvent event)
|
public void postInit(FMLPostInitializationEvent event)
|
||||||
{
|
{
|
||||||
|
CachedOreDictionary.getInstance();
|
||||||
RecipeRegistry.getInstance().registerVanillaRecipes();
|
RecipeRegistry.getInstance().registerVanillaRecipes();
|
||||||
AludelRecipeManager.registerRecipes();
|
AludelRecipeManager.registerRecipes();
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class GuiTransmutationTablet extends GuiBase
|
||||||
};
|
};
|
||||||
setTooltipByState();
|
setTooltipByState();
|
||||||
|
|
||||||
slider = new ElementSlider(this, 239, 36, 12, 201, 187, 0)
|
slider = new ElementSlider(this, "scrollBar", 239, 36, 12, 201, 187, 0)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
protected void dragSlider(int x, int y)
|
protected void dragSlider(int x, int y)
|
||||||
|
@ -123,7 +123,6 @@ public class GuiTransmutationTablet extends GuiBase
|
||||||
return _value;
|
return _value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
slider.setName("scrollBar");
|
|
||||||
slider.backgroundColor = new GuiColor(0, 0, 0, 0).getColor();
|
slider.backgroundColor = new GuiColor(0, 0, 0, 0).getColor();
|
||||||
slider.borderColor = new GuiColor(0, 0, 0, 0).getColor();
|
slider.borderColor = new GuiColor(0, 0, 0, 0).getColor();
|
||||||
slider.setSliderSize(12, 15);
|
slider.setSliderSize(12, 15);
|
||||||
|
@ -137,7 +136,7 @@ public class GuiTransmutationTablet extends GuiBase
|
||||||
protected void drawGuiContainerForegroundLayer(int x, int y)
|
protected void drawGuiContainerForegroundLayer(int x, int y)
|
||||||
{
|
{
|
||||||
super.drawGuiContainerForegroundLayer(x, y);
|
super.drawGuiContainerForegroundLayer(x, y);
|
||||||
fontRendererObj.drawString(String.format("%s:", StatCollector.translateToLocal(Messages.ENERGY_VALUE)), 8, 140, Integer.parseInt(Colors.PURE_WHITE, 16)); // TODO Localize
|
fontRendererObj.drawString(String.format("%s:", StatCollector.translateToLocal(Messages.ENERGY_VALUE)), 8, 140, Integer.parseInt(Colors.PURE_WHITE, 16));
|
||||||
fontRendererObj.drawString(String.format("%s", energyValueDecimalFormat.format(tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue())), 8, 150, Integer.parseInt(Colors.PURE_WHITE, 16));
|
fontRendererObj.drawString(String.format("%s", energyValueDecimalFormat.format(tileEntityTransmutationTablet.getStoredEnergyValue().getEnergyValue())), 8, 150, Integer.parseInt(Colors.PURE_WHITE, 16));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
package com.pahimar.ee3.exchange;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
import com.google.common.collect.ImmutableMultimap;
|
||||||
|
import com.google.common.collect.Multimap;
|
||||||
|
import com.google.common.collect.TreeMultimap;
|
||||||
|
import com.pahimar.ee3.reference.Comparators;
|
||||||
|
import com.pahimar.ee3.util.ItemHelper;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class CachedOreDictionary
|
||||||
|
{
|
||||||
|
private static CachedOreDictionary cachedOreDictionary = null;
|
||||||
|
private ImmutableMap<String, List<ItemStack>> oreNameToItemStackMap;
|
||||||
|
private ImmutableMultimap<ItemStack, String> itemStackToOreNameMap;
|
||||||
|
|
||||||
|
private CachedOreDictionary()
|
||||||
|
{
|
||||||
|
Map<String, List<ItemStack>> nameToStackMap = new TreeMap<String, List<ItemStack>>(Comparators.stringComparator);
|
||||||
|
Multimap<ItemStack, String> stackToNameMultiMap = TreeMultimap.create(ItemHelper.idComparator, Comparators.stringComparator);
|
||||||
|
|
||||||
|
for (String oreName : OreDictionary.getOreNames())
|
||||||
|
{
|
||||||
|
List<ItemStack> oreNameItemStacks = OreDictionary.getOres(oreName);
|
||||||
|
|
||||||
|
nameToStackMap.put(oreName, oreNameItemStacks);
|
||||||
|
|
||||||
|
for (ItemStack itemStack : oreNameItemStacks)
|
||||||
|
{
|
||||||
|
stackToNameMultiMap.put(itemStack, oreName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
oreNameToItemStackMap = ImmutableMap.copyOf(nameToStackMap);
|
||||||
|
itemStackToOreNameMap = ImmutableMultimap.copyOf(stackToNameMultiMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CachedOreDictionary getInstance()
|
||||||
|
{
|
||||||
|
if (cachedOreDictionary == null)
|
||||||
|
{
|
||||||
|
cachedOreDictionary = new CachedOreDictionary();
|
||||||
|
}
|
||||||
|
|
||||||
|
return cachedOreDictionary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<String> getOreNames()
|
||||||
|
{
|
||||||
|
return oreNameToItemStackMap.keySet();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ItemStack> getItemStacksForOreName(String oreName)
|
||||||
|
{
|
||||||
|
if (oreNameToItemStackMap.containsKey(oreName))
|
||||||
|
{
|
||||||
|
return oreNameToItemStackMap.get(oreName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ArrayList<ItemStack>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getOreNamesForItemStack(ItemStack itemStack)
|
||||||
|
{
|
||||||
|
List<String> oreNameList = new ArrayList<String>();
|
||||||
|
if (itemStackToOreNameMap.containsKey(itemStack))
|
||||||
|
{
|
||||||
|
for (String oreName : itemStackToOreNameMap.get(itemStack))
|
||||||
|
{
|
||||||
|
oreNameList.add(oreName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return oreNameList;
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,4 +7,13 @@ import java.util.Comparator;
|
||||||
public class Comparators
|
public class Comparators
|
||||||
{
|
{
|
||||||
public static final Comparator[] itemComparators = {ItemHelper.displayNameComparator, ItemHelper.energyValueComparator, ItemHelper.idComparator};
|
public static final Comparator[] itemComparators = {ItemHelper.displayNameComparator, ItemHelper.energyValueComparator, ItemHelper.idComparator};
|
||||||
|
|
||||||
|
public static Comparator<String> stringComparator = new Comparator<String>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public int compare(String string1, String string2)
|
||||||
|
{
|
||||||
|
return string1.compareToIgnoreCase(string2);
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,14 @@ public abstract class ElementSlider extends ElementBase
|
||||||
_valueMin = minValue;
|
_valueMin = minValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected ElementSlider(GuiBase containerScreen, String elementName, int x, int y, int width, int height, int maxValue, int minValue)
|
||||||
|
{
|
||||||
|
super(containerScreen, x, y, width, height);
|
||||||
|
this.name = elementName;
|
||||||
|
_valueMax = maxValue;
|
||||||
|
_valueMin = minValue;
|
||||||
|
}
|
||||||
|
|
||||||
public ElementSlider setColor(int backgroundColor, int borderColor)
|
public ElementSlider setColor(int backgroundColor, int borderColor)
|
||||||
{
|
{
|
||||||
this.borderColor = borderColor;
|
this.borderColor = borderColor;
|
||||||
|
@ -54,6 +62,16 @@ public abstract class ElementSlider extends ElementBase
|
||||||
return this._value;
|
return this._value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getValueMin()
|
||||||
|
{
|
||||||
|
return this._valueMin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValueMax()
|
||||||
|
{
|
||||||
|
return this._valueMax;
|
||||||
|
}
|
||||||
|
|
||||||
public ElementSlider setValue(int value)
|
public ElementSlider setValue(int value)
|
||||||
{
|
{
|
||||||
value = Math.max(_valueMin, Math.min(_valueMax, value));
|
value = Math.max(_valueMin, Math.min(_valueMax, value));
|
||||||
|
@ -65,6 +83,18 @@ public abstract class ElementSlider extends ElementBase
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ElementSlider setMinValue(int minValue)
|
||||||
|
{
|
||||||
|
_valueMin = minValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ElementSlider setMaxValue(int maxValue)
|
||||||
|
{
|
||||||
|
_valueMax = maxValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawBackground(int mouseX, int mouseY, float gameTicks)
|
public void drawBackground(int mouseX, int mouseY, float gameTicks)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue