Have NEI plugin iterate over possible fuel stacks, register sulfur dust in oredict
This commit is contained in:
parent
a5e33d0158
commit
3990ab4f42
9 changed files with 69 additions and 29 deletions
|
@ -1,6 +1,10 @@
|
|||
package mekanism.client.nei;
|
||||
|
||||
import static codechicken.core.gui.GuiDraw.changeTexture;
|
||||
import static codechicken.core.gui.GuiDraw.drawTexturedModalRect;
|
||||
|
||||
import java.awt.Rectangle;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
@ -13,18 +17,16 @@ import codechicken.nei.NEIServerUtils;
|
|||
import codechicken.nei.PositionedStack;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler;
|
||||
|
||||
import static codechicken.core.gui.GuiDraw.*;
|
||||
|
||||
public abstract class AdvancedMachineRecipeHandler extends TemplateRecipeHandler
|
||||
{
|
||||
private int ticksPassed;
|
||||
|
||||
public abstract String getRecipeId();
|
||||
|
||||
public abstract ItemStack getFuelStack();
|
||||
|
||||
public abstract Set<Entry<ItemStack, ItemStack>> getRecipes();
|
||||
|
||||
public abstract List<ItemStack> getFuelStacks();
|
||||
|
||||
@Override
|
||||
public void drawBackground(int i)
|
||||
{
|
||||
|
@ -67,7 +69,7 @@ public abstract class AdvancedMachineRecipeHandler extends TemplateRecipeHandler
|
|||
{
|
||||
for(Map.Entry irecipe : getRecipes())
|
||||
{
|
||||
arecipes.add(new CachedIORecipe(irecipe, getFuelStack()));
|
||||
arecipes.add(new CachedIORecipe(irecipe, getFuelStacks()));
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -82,7 +84,7 @@ public abstract class AdvancedMachineRecipeHandler extends TemplateRecipeHandler
|
|||
{
|
||||
if(NEIServerUtils.areStacksSameTypeCrafting((ItemStack)irecipe.getValue(), result))
|
||||
{
|
||||
arecipes.add(new CachedIORecipe(irecipe, getFuelStack()));
|
||||
arecipes.add(new CachedIORecipe(irecipe, getFuelStacks()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -94,16 +96,17 @@ public abstract class AdvancedMachineRecipeHandler extends TemplateRecipeHandler
|
|||
{
|
||||
if(NEIServerUtils.areStacksSameTypeCrafting((ItemStack)irecipe.getKey(), ingredient))
|
||||
{
|
||||
arecipes.add(new CachedIORecipe(irecipe, getFuelStack()));
|
||||
arecipes.add(new CachedIORecipe(irecipe, getFuelStacks()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class CachedIORecipe extends TemplateRecipeHandler.CachedRecipe
|
||||
{
|
||||
public List<ItemStack> fuelStacks;
|
||||
|
||||
public PositionedStack inputStack;
|
||||
public PositionedStack outputStack;
|
||||
public PositionedStack fuelStack;
|
||||
|
||||
@Override
|
||||
public PositionedStack getIngredient()
|
||||
|
@ -120,20 +123,20 @@ public abstract class AdvancedMachineRecipeHandler extends TemplateRecipeHandler
|
|||
@Override
|
||||
public PositionedStack getOtherStack()
|
||||
{
|
||||
return fuelStack;
|
||||
return new PositionedStack(fuelStacks.get(cycleticks/40 % fuelStacks.size()), 40, 48);
|
||||
}
|
||||
|
||||
public CachedIORecipe(ItemStack input, ItemStack output, ItemStack fuel)
|
||||
public CachedIORecipe(ItemStack input, ItemStack output, List<ItemStack> fuels)
|
||||
{
|
||||
super();
|
||||
inputStack = new PositionedStack(input, 40, 12);
|
||||
outputStack = new PositionedStack(output, 100, 30);
|
||||
fuelStack = new PositionedStack(fuel, 40, 48);
|
||||
fuelStacks = fuels;
|
||||
}
|
||||
|
||||
public CachedIORecipe(Map.Entry recipe, ItemStack fuel)
|
||||
public CachedIORecipe(Map.Entry recipe, List<ItemStack> fuels)
|
||||
{
|
||||
this((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue(), fuel);
|
||||
this((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue(), fuels);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
package mekanism.client.nei;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.client.gui.GuiChemicalInjectionChamber;
|
||||
import mekanism.common.RecipeHandler.Recipe;
|
||||
import mekanism.common.util.ListUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
@ -40,9 +44,9 @@ public class ChemicalInjectionChamberRecipeHandler extends AdvancedMachineRecipe
|
|||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getFuelStack()
|
||||
public List<ItemStack> getFuelStacks()
|
||||
{
|
||||
return new ItemStack(Item.gunpowder);
|
||||
return ListUtils.asList(new ItemStack(Item.gunpowder), MekanismUtils.getFullGasTank(GasRegistry.getGas("sulfuricAcid")));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package mekanism.client.nei;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import mekanism.client.gui.GuiCombiner;
|
||||
import mekanism.common.RecipeHandler.Recipe;
|
||||
import mekanism.common.util.ListUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class CombinerRecipeHandler extends AdvancedMachineRecipeHandler
|
||||
{
|
||||
|
@ -40,9 +42,9 @@ public class CombinerRecipeHandler extends AdvancedMachineRecipeHandler
|
|||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getFuelStack()
|
||||
public List<ItemStack> getFuelStacks()
|
||||
{
|
||||
return new ItemStack(Block.cobblestone);
|
||||
return ListUtils.asList(new ItemStack(Block.cobblestone));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package mekanism.client.nei;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import mekanism.client.gui.GuiOsmiumCompressor;
|
||||
import mekanism.common.Mekanism;
|
||||
import mekanism.common.RecipeHandler.Recipe;
|
||||
import mekanism.common.util.ListUtils;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class OsmiumCompressorRecipeHandler extends AdvancedMachineRecipeHandler
|
||||
{
|
||||
|
@ -40,9 +42,9 @@ public class OsmiumCompressorRecipeHandler extends AdvancedMachineRecipeHandler
|
|||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getFuelStack()
|
||||
public List<ItemStack> getFuelStacks()
|
||||
{
|
||||
return new ItemStack(Mekanism.Ingot, 1, 1);
|
||||
return ListUtils.asList(new ItemStack(Mekanism.Ingot, 1, 1), new ItemStack(Mekanism.BasicBlock, 1, 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
package mekanism.client.nei;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import mekanism.api.gas.GasRegistry;
|
||||
import mekanism.client.gui.GuiPurificationChamber;
|
||||
import mekanism.common.RecipeHandler.Recipe;
|
||||
import mekanism.common.util.ListUtils;
|
||||
import mekanism.common.util.MekanismUtils;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
@ -40,9 +44,9 @@ public class PurificationChamberRecipeHandler extends AdvancedMachineRecipeHandl
|
|||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getFuelStack()
|
||||
public List<ItemStack> getFuelStacks()
|
||||
{
|
||||
return new ItemStack(Item.flint);
|
||||
return ListUtils.asList(new ItemStack(Item.flint), MekanismUtils.getFullGasTank(GasRegistry.getGas("oxygen")));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -761,6 +761,7 @@ public class Mekanism
|
|||
OreDictionary.registerOre("dustTin", new ItemStack(Dust, 1, 7));
|
||||
OreDictionary.registerOre("dustSilver", new ItemStack(Dust, 1, 8));
|
||||
OreDictionary.registerOre("dustLead", new ItemStack(Dust, 1, 9));
|
||||
OreDictionary.registerOre("dustSulfur", new ItemStack(Dust, 1, 10));
|
||||
|
||||
OreDictionary.registerOre("ingotRefinedObsidian", new ItemStack(Ingot, 1, 0));
|
||||
OreDictionary.registerOre("ingotOsmium", new ItemStack(Ingot, 1, 1));
|
||||
|
|
|
@ -33,7 +33,7 @@ public class TileEntityChemicalInjectionChamber extends TileEntityAdvancedElectr
|
|||
@Override
|
||||
public int getFuelTicks(ItemStack itemstack)
|
||||
{
|
||||
if(itemstack.isItemEqual(new ItemStack(Item.gunpowder))) return 20;
|
||||
if(itemstack.isItemEqual(new ItemStack(Item.gunpowder))) return 5;
|
||||
if(itemstack.itemID == Mekanism.GasTank.blockID && ((IGasItem)itemstack.getItem()).getGas(itemstack) != null &&
|
||||
((IGasItem)itemstack.getItem()).getGas(itemstack).getGas() == GasRegistry.getGas("sulfuricAcid")) return 1;
|
||||
|
||||
|
|
|
@ -25,18 +25,26 @@ public class TileEntityOsmiumCompressor extends TileEntityAdvancedElectricMachin
|
|||
@Override
|
||||
public int getFuelTicks(ItemStack itemstack)
|
||||
{
|
||||
boolean hasOsmium = false;
|
||||
int amount = 0;
|
||||
|
||||
for(ItemStack ore : OreDictionary.getOres("ingotOsmium"))
|
||||
{
|
||||
if(ore.isItemEqual(itemstack))
|
||||
{
|
||||
hasOsmium = true;
|
||||
amount = 200;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(hasOsmium) return 200;
|
||||
return 0;
|
||||
for(ItemStack ore : OreDictionary.getOres("blockOsmium"))
|
||||
{
|
||||
if(ore.isItemEqual(itemstack))
|
||||
{
|
||||
amount = 1800;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return amount;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,8 @@ import java.util.Map;
|
|||
|
||||
import mekanism.api.Coord4D;
|
||||
import mekanism.api.EnumColor;
|
||||
import mekanism.api.gas.Gas;
|
||||
import mekanism.api.gas.GasStack;
|
||||
import mekanism.common.DynamicTankCache;
|
||||
import mekanism.common.EnergyDisplay;
|
||||
import mekanism.common.EnergyDisplay.ElectricUnit;
|
||||
|
@ -1175,6 +1177,20 @@ public final class MekanismUtils
|
|||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and returns a full gas tank with the specified gas type.
|
||||
* @param gas - gas to fill the tank with
|
||||
* @return filled gas tank
|
||||
*/
|
||||
public static ItemStack getFullGasTank(Gas gas)
|
||||
{
|
||||
ItemStack tank = getEmptyGasTank();
|
||||
ItemBlockGasTank item = (ItemBlockGasTank)tank.getItem();
|
||||
item.setGas(tank, new GasStack(gas, item.MAX_GAS));
|
||||
|
||||
return tank;
|
||||
}
|
||||
|
||||
public static enum ResourceType
|
||||
{
|
||||
GUI("gui"),
|
||||
|
|
Loading…
Reference in a new issue