Fully implement getStacksInRange, documentation needed still

This commit is contained in:
Pahimar 2014-07-14 18:37:50 -04:00
parent 53d224369b
commit 385ee4d8ea
2 changed files with 31 additions and 11 deletions

View file

@ -2,7 +2,6 @@ package com.pahimar.ee3.api;
import com.pahimar.ee3.EquivalentExchange3;
import cpw.mods.fml.common.Mod;
import net.minecraft.item.ItemStack;
import java.util.List;
@ -93,22 +92,29 @@ public final class EnergyValueRegistryProxy
return EE3Wrapper.ee3mod.getEnergyValueRegistry().getEnergyValue(object, strict);
}
public List<ItemStack> getStacksInRange(int start, int finish)
public List getStacksInRange(int start, int finish)
{
return getStacksInRange(new EnergyValue(start), new EnergyValue(finish));
}
public List<ItemStack> getStacksInRange(float start, float finish)
public List getStacksInRange(float start, float finish)
{
return getStacksInRange(new EnergyValue(start), new EnergyValue(finish));
}
public List<ItemStack> getStacksInRange(EnergyValue start, EnergyValue finish)
public List getStacksInRange(EnergyValue start, EnergyValue finish)
{
init();
// NOOP if EquivalentExchange3 is not present
if (ee3Mod == null)
{
// TODO Finish
return null;
}
return EE3Wrapper.ee3mod.getEnergyValueRegistry().getStacksInRange(start, finish);
}
private static void init()
{
if (ee3Mod != null)

View file

@ -7,6 +7,7 @@ import com.pahimar.ee3.recipe.RecipeRegistry;
import com.pahimar.ee3.util.EnergyValueHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import java.util.*;
@ -482,19 +483,19 @@ public class EnergyValueRegistry
return computedStackMap;
}
public List<WrappedStack> getStacksInRange(int start, int finish)
public List getStacksInRange(int start, int finish)
{
return getStacksInRange(new EnergyValue(start), new EnergyValue(finish));
}
public List<WrappedStack> getStacksInRange(float start, float finish)
public List getStacksInRange(float start, float finish)
{
return getStacksInRange(new EnergyValue(start), new EnergyValue(finish));
}
public List<WrappedStack> getStacksInRange(EnergyValue start, EnergyValue finish)
public List getStacksInRange(EnergyValue start, EnergyValue finish)
{
List<WrappedStack> stacksInRange = new ArrayList<WrappedStack>();
List stacksInRange = new ArrayList<WrappedStack>();
SortedMap<EnergyValue, List<WrappedStack>> tailMap = energyValueRegistry.valueMappings.tailMap(start);
SortedMap<EnergyValue, List<WrappedStack>> headMap = energyValueRegistry.valueMappings.headMap(finish);
@ -520,7 +521,20 @@ public class EnergyValueRegistry
{
if (biggerMap.containsKey(value))
{
stacksInRange.addAll(energyValueRegistry.valueMappings.get(value));
for (WrappedStack wrappedStack : energyValueRegistry.valueMappings.get(value))
{
if (wrappedStack.getWrappedStack() instanceof ItemStack || wrappedStack.getWrappedStack() instanceof FluidStack)
{
stacksInRange.add(wrappedStack.getWrappedStack());
}
else if (wrappedStack.getWrappedStack() instanceof OreStack)
{
for (ItemStack itemStack : OreDictionary.getOres(((OreStack) wrappedStack.getWrappedStack()).oreName))
{
stacksInRange.add(itemStack);
}
}
}
}
}
}