Merge pull request #220 from MrBretze/master
Adding iron alloy smelter to not enough items and fix ChargedHud (possible crash)
This commit is contained in:
commit
cc49f03ee5
7 changed files with 141 additions and 48 deletions
|
@ -43,57 +43,56 @@ public class ChargeHud {
|
||||||
|
|
||||||
public void drawChargeHud(ScaledResolution res) {
|
public void drawChargeHud(ScaledResolution res) {
|
||||||
EntityPlayer player = mc.thePlayer;
|
EntityPlayer player = mc.thePlayer;
|
||||||
ItemStack stack = player.getCurrentArmor(2);
|
ItemStack armorstack = player.getCurrentArmor(2);
|
||||||
ItemStack stack2 = mc.thePlayer.inventory.getCurrentItem();
|
ItemStack stack = mc.thePlayer.inventory.getCurrentItem();
|
||||||
if (showHud) {
|
|
||||||
if (stack2 != null) {
|
|
||||||
if ((stack2.getItem() instanceof IEnergyInterfaceItem)) {
|
|
||||||
double MaxCharge = ((IEnergyInterfaceItem) stack2.getItem()).getMaxPower(stack2);
|
|
||||||
double CurrentCharge = ((IEnergyInterfaceItem) stack2.getItem()).getEnergy(stack2);
|
|
||||||
Color color = Color.GREEN;
|
|
||||||
double quarter = MaxCharge / 4;
|
|
||||||
double half = MaxCharge / 2;
|
|
||||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
|
||||||
GL11.glEnable(32826);
|
|
||||||
RenderHelper.enableStandardItemLighting();
|
|
||||||
RenderHelper.enableGUIStandardItemLighting();
|
|
||||||
RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack2, 0, 20);
|
|
||||||
RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack2, 0, 20);
|
|
||||||
if (CurrentCharge <= half) {
|
|
||||||
color = Color.YELLOW;
|
|
||||||
}
|
|
||||||
if (CurrentCharge <= quarter) {
|
|
||||||
color = Color.DARK_RED;
|
|
||||||
}
|
|
||||||
mc.fontRenderer.drawString(color + GetEUString(CurrentCharge) + "/" + GetEUString(MaxCharge), 20, 25, 0);
|
|
||||||
|
|
||||||
}
|
int y = 5;
|
||||||
|
|
||||||
|
if (armorstack != null && ConfigTechReborn.ShowChargeHud && armorstack.getItem() instanceof IEnergyInterfaceItem) {
|
||||||
|
double MaxCharge = ((IEnergyInterfaceItem) armorstack.getItem()).getMaxPower(armorstack);
|
||||||
|
double CurrentCharge = ((IEnergyInterfaceItem) armorstack.getItem()).getEnergy(armorstack);
|
||||||
|
Color color = Color.GREEN;
|
||||||
|
double quarter = MaxCharge / 4;
|
||||||
|
double half = MaxCharge / 2;
|
||||||
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
GL11.glEnable(32826);
|
||||||
|
RenderHelper.enableStandardItemLighting();
|
||||||
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
|
//Render the stack
|
||||||
|
RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, armorstack, 0, y - 5);
|
||||||
|
//Render Overlay
|
||||||
|
RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, armorstack, 0, y - 5);
|
||||||
|
//Get the color depending on current charge
|
||||||
|
if (CurrentCharge <= half) {
|
||||||
|
color = Color.YELLOW;
|
||||||
}
|
}
|
||||||
|
if (CurrentCharge <= quarter) {
|
||||||
|
color = Color.DARK_RED;
|
||||||
|
}
|
||||||
|
mc.fontRenderer.drawString(color + GetEUString(CurrentCharge) + "/" + GetEUString(MaxCharge), 20, y, 0);
|
||||||
|
y += 20;
|
||||||
|
}
|
||||||
|
|
||||||
if (stack != null) {
|
if (showHud) {
|
||||||
if ((stack.getItem() instanceof IEnergyInterfaceItem) && ConfigTechReborn.ShowChargeHud) {
|
if (stack != null && stack.getItem() instanceof IEnergyInterfaceItem) {
|
||||||
double MaxCharge = ((IEnergyInterfaceItem) stack.getItem()).getMaxPower(stack);
|
double MaxCharge = ((IEnergyInterfaceItem) stack.getItem()).getMaxPower(stack);
|
||||||
double CurrentCharge = ((IEnergyInterfaceItem) stack2.getItem()).getEnergy(stack2);
|
double CurrentCharge = ((IEnergyInterfaceItem) stack.getItem()).getEnergy(stack);
|
||||||
Color color = Color.GREEN;
|
Color color = Color.GREEN;
|
||||||
double quarter = MaxCharge / 4;
|
double quarter = MaxCharge / 4;
|
||||||
double half = MaxCharge / 2;
|
double half = MaxCharge / 2;
|
||||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
GL11.glEnable(32826);
|
GL11.glEnable(32826);
|
||||||
RenderHelper.enableStandardItemLighting();
|
RenderHelper.enableStandardItemLighting();
|
||||||
RenderHelper.enableGUIStandardItemLighting();
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
//Render the stack
|
RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, y - 5);
|
||||||
RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, 0);
|
RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, y - 5);
|
||||||
//Render Overlay
|
if (CurrentCharge <= half) {
|
||||||
RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, 0);
|
color = Color.YELLOW;
|
||||||
//Get the color depending on current charge
|
|
||||||
if (CurrentCharge <= half) {
|
|
||||||
color = Color.YELLOW;
|
|
||||||
}
|
|
||||||
if (CurrentCharge <= quarter) {
|
|
||||||
color = Color.DARK_RED;
|
|
||||||
}
|
|
||||||
mc.fontRenderer.drawString(color + GetEUString(CurrentCharge) + "/" + GetEUString(MaxCharge), 20, 5, 0);
|
|
||||||
}
|
}
|
||||||
|
if (CurrentCharge <= quarter) {
|
||||||
|
color = Color.DARK_RED;
|
||||||
|
}
|
||||||
|
mc.fontRenderer.drawString(color + GetEUString(CurrentCharge) + "/" + GetEUString(MaxCharge), 20, y, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
|
|
@ -31,6 +31,10 @@ public class NEIConfig implements IConfigureNEI {
|
||||||
API.registerUsageHandler(alloy);
|
API.registerUsageHandler(alloy);
|
||||||
API.registerRecipeHandler(alloy);
|
API.registerRecipeHandler(alloy);
|
||||||
|
|
||||||
|
IronAlloySmelterRecipeHandler ironAlloy = new IronAlloySmelterRecipeHandler();
|
||||||
|
API.registerUsageHandler(ironAlloy);
|
||||||
|
API.registerRecipeHandler(ironAlloy);
|
||||||
|
|
||||||
IndustrialSawmillRecipeHandler sawmill = new IndustrialSawmillRecipeHandler();
|
IndustrialSawmillRecipeHandler sawmill = new IndustrialSawmillRecipeHandler();
|
||||||
API.registerUsageHandler(sawmill);
|
API.registerUsageHandler(sawmill);
|
||||||
API.registerRecipeHandler(sawmill);
|
API.registerRecipeHandler(sawmill);
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.awt.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class AlloySmelterRecipeHandler extends GenericRecipeHander implements INeiBaseRecipe {
|
public class AlloySmelterRecipeHandler extends GenericRecipeHander implements INeiBaseRecipe {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addPositionedStacks(List<PositionedStack> input, List<PositionedStack> outputs, IBaseRecipeType recipeType) {
|
public void addPositionedStacks(List<PositionedStack> input, List<PositionedStack> outputs, IBaseRecipeType recipeType) {
|
||||||
int offset = 4;
|
int offset = 4;
|
||||||
|
|
|
@ -85,7 +85,7 @@ public abstract class GenericRecipeHander extends TemplateRecipeHandler {
|
||||||
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
|
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
|
||||||
symbols.setGroupingSeparator('.');
|
symbols.setGroupingSeparator('.');
|
||||||
formatter.setDecimalFormatSymbols(symbols);
|
formatter.setDecimalFormatSymbols(symbols);
|
||||||
GuiDraw.drawString("EU needed:" + formatter.format(new Integer(genericRecipe.recipie.euPerTick() * genericRecipe.recipie.tickTime()).longValue()), 16, 105, -1);
|
GuiDraw.drawString("EU needed: " + formatter.format(new Integer(genericRecipe.recipie.euPerTick() * genericRecipe.recipie.tickTime()).longValue()), 16, 105, -1);
|
||||||
GuiDraw.drawString("Ticks to process: " + genericRecipe.recipie.tickTime(), 14, 115, -1);
|
GuiDraw.drawString("Ticks to process: " + genericRecipe.recipie.tickTime(), 14, 115, -1);
|
||||||
GuiDraw.drawString("Time to process: " + genericRecipe.recipie.tickTime() / 20 + " seconds", 14, 125, -1);
|
GuiDraw.drawString("Time to process: " + genericRecipe.recipie.tickTime() / 20 + " seconds", 14, 125, -1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
package techreborn.compat.nei.recipes;
|
||||||
|
|
||||||
|
import codechicken.lib.gui.GuiDraw;
|
||||||
|
import codechicken.nei.ItemList;
|
||||||
|
import codechicken.nei.PositionedStack;
|
||||||
|
import codechicken.nei.recipe.FurnaceRecipeHandler;
|
||||||
|
import codechicken.nei.recipe.TemplateRecipeHandler;
|
||||||
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntityFurnace;
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
import techreborn.api.recipe.IBaseRecipeType;
|
||||||
|
import techreborn.client.gui.GuiAlloyFurnace;
|
||||||
|
import techreborn.lib.Reference;
|
||||||
|
import techreborn.util.ItemUtils;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by MrBretzel on 01/11/2015.
|
||||||
|
*/
|
||||||
|
public class IronAlloySmelterRecipeHandler extends GenericRecipeHander implements INeiBaseRecipe {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addPositionedStacks(List<PositionedStack> input, List<PositionedStack> outputs, IBaseRecipeType recipeType) {
|
||||||
|
int offset = 4;
|
||||||
|
PositionedStack pStack = new PositionedStack(ItemUtils.getStackWithAllOre(recipeType.getInputs().get(0)), 46 - offset, 9 - offset, false);
|
||||||
|
input.add(pStack);
|
||||||
|
|
||||||
|
PositionedStack pStack2 = new PositionedStack(ItemUtils.getStackWithAllOre(recipeType.getInputs().get(1)), 64 - offset, 9 - offset, false);
|
||||||
|
input.add(pStack2);
|
||||||
|
|
||||||
|
Iterator i = ItemList.items.iterator();
|
||||||
|
List<ItemStack> fuels = new ArrayList<ItemStack>();
|
||||||
|
while(i.hasNext()) {
|
||||||
|
ItemStack item = (ItemStack) i.next();
|
||||||
|
if(!fuels.contains(new ItemStack(item.getItem()))) {
|
||||||
|
int burnTime = TileEntityFurnace.getItemBurnTime(item);
|
||||||
|
if(burnTime > 0) {
|
||||||
|
fuels.add(new ItemStack(item.getItem()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PositionedStack pStack3 = new PositionedStack(fuels, 51, 42, false);
|
||||||
|
input.add(pStack3);
|
||||||
|
|
||||||
|
PositionedStack pStack4 = new PositionedStack(recipeType.getOutput(0), 115 - offset, 28 - offset, false);
|
||||||
|
outputs.add(pStack4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getRecipeName() {
|
||||||
|
return Reference.ironalloySmelteRecipe;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGuiTexture() {
|
||||||
|
return "techreborn:textures/gui/alloy_furnace.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<? extends GuiContainer> getGuiClass() {
|
||||||
|
return GuiAlloyFurnace.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public INeiBaseRecipe getNeiBaseRecipe() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void loadTransferRects() {
|
||||||
|
this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(
|
||||||
|
new Rectangle(75, 20, 25, 20), Reference.alloySmelteRecipe, new Object[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawBackground(int recipeIndex) {
|
||||||
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
GuiDraw.changeTexture(getGuiTexture());
|
||||||
|
GuiDraw.drawTexturedModalRect(0, 0, 5, 11, 166, 65);
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import net.minecraft.util.StatCollector;
|
||||||
|
|
||||||
public class Reference {
|
public class Reference {
|
||||||
public static String alloySmelteRecipe = StatCollector.translateToLocal("techreborn.recipe.alloysmelter");
|
public static String alloySmelteRecipe = StatCollector.translateToLocal("techreborn.recipe.alloysmelter");
|
||||||
|
public static String ironalloySmelteRecipe = StatCollector.translateToLocal("techreborn.recipe.ironalloysmelter");
|
||||||
public static String assemblingMachineRecipe = StatCollector.translateToLocal("techreborn.recipe.assemblingmachine");
|
public static String assemblingMachineRecipe = StatCollector.translateToLocal("techreborn.recipe.assemblingmachine");
|
||||||
public static String blastFurnaceRecipe = StatCollector.translateToLocal("techreborn.recipe.blastfurnace");
|
public static String blastFurnaceRecipe = StatCollector.translateToLocal("techreborn.recipe.blastfurnace");
|
||||||
public static String centrifugeRecipe = StatCollector.translateToLocal("techreborn.recipe.centrifuge");
|
public static String centrifugeRecipe = StatCollector.translateToLocal("techreborn.recipe.centrifuge");
|
||||||
|
|
|
@ -766,6 +766,7 @@ config.techreborn.category.emc=EMC Configs
|
||||||
|
|
||||||
#Recipe Handlers
|
#Recipe Handlers
|
||||||
techreborn.recipe.alloysmelter=Alloy Furnace Recipe
|
techreborn.recipe.alloysmelter=Alloy Furnace Recipe
|
||||||
|
techreborn.recipe.ironalloysmelter=Iron Alloy Furnace Recipe
|
||||||
techreborn.recipe.assemblingmachine=Assembling Machine Recipe
|
techreborn.recipe.assemblingmachine=Assembling Machine Recipe
|
||||||
techreborn.recipe.blastfurnace=Blast Furnace Recipe
|
techreborn.recipe.blastfurnace=Blast Furnace Recipe
|
||||||
techreborn.recipe.centrifuge=Centrifuge Recipe
|
techreborn.recipe.centrifuge=Centrifuge Recipe
|
||||||
|
|
Loading…
Add table
Reference in a new issue