use of net.geforcemods.securitycraft.gui.components.CustomHoverChecker in project SecurityCraft by Geforce132.
the class GuiSCManual method updateRecipeAndIcons.
private void updateRecipeAndIcons() {
if (this.currentPage < 0) {
recipe = null;
this.hoverCheckers.clear();
return;
}
this.hoverCheckers.clear();
if (mod_SecurityCraft.instance.manualPages.get(currentPage).hasCustomRecipe()) {
this.recipe = mod_SecurityCraft.instance.manualPages.get(currentPage).getRecipe();
} else {
for (Object object : CraftingManager.getInstance().getRecipeList()) {
if (object instanceof ShapedRecipes) {
ShapedRecipes recipe = (ShapedRecipes) object;
if (recipe.getRecipeOutput() != null && recipe.getRecipeOutput().getItem() == mod_SecurityCraft.instance.manualPages.get(currentPage).getItem()) {
this.recipe = recipe.recipeItems;
break;
}
} else if (object instanceof ShapelessRecipes) {
ShapelessRecipes recipe = (ShapelessRecipes) object;
if (recipe.getRecipeOutput() != null && recipe.getRecipeOutput().getItem() == mod_SecurityCraft.instance.manualPages.get(currentPage).getItem()) {
this.recipe = this.toItemStackArray(recipe.recipeItems);
break;
}
}
this.recipe = null;
}
}
if (recipe != null) {
outer: for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if ((i * 3) + j == recipe.length)
break outer;
if (recipe[(i * 3) + j] != null)
hoverCheckers.add(new CustomHoverChecker(144 + (i * 20), 144 + (i * 20) + 16, (k + 100) + (j * 20), (k + 100) + (j * 20) + 16, 20, recipe[(i * 3) + j].getDisplayName()));
}
}
} else {
String name = mod_SecurityCraft.instance.manualPages.get(currentPage).getItemName();
//make first character lower case and remove spaces
name = name.substring(0, 1).toLowerCase() + name.substring(1, name.length()).replace(" ", "");
hoverCheckers.add(new CustomHoverChecker(144, 144 + (2 * 20) + 16, k + 100, (k + 100) + (2 * 20) + 16, 20, I18n.translateToLocal("gui.scManual.recipe." + name)));
}
Item item = mod_SecurityCraft.instance.manualPages.get(currentPage).getItem();
TileEntity te = ((item instanceof ItemBlock && ((ItemBlock) item).getBlock() instanceof ITileEntityProvider) ? ((ITileEntityProvider) ((ItemBlock) item).getBlock()).createNewTileEntity(Minecraft.getMinecraft().theWorld, 0) : null);
Block itemBlock = ((item instanceof ItemBlock) ? ((ItemBlock) item).getBlock() : null);
if (te != null) {
if (te instanceof IOwnable) {
this.hoverCheckers.add(new CustomHoverChecker(118, 118 + 16, k + 29, (k + 29) + 16, 20, I18n.translateToLocal("gui.scManual.ownableBlock")));
}
if (te instanceof IPasswordProtected) {
this.hoverCheckers.add(new CustomHoverChecker(118, 118 + 16, k + 55, (k + 55) + 16, 20, I18n.translateToLocal("gui.scManual.passwordProtectedBlock")));
}
if (te instanceof TileEntitySCTE && ((TileEntitySCTE) te).isActivatedByView()) {
this.hoverCheckers.add(new CustomHoverChecker(118, 118 + 16, k + 81, (k + 81) + 16, 20, I18n.translateToLocal("gui.scManual.viewActivatedBlock")));
}
if (itemBlock instanceof IExplosive) {
this.hoverCheckers.add(new CustomHoverChecker(118, 118 + 16, k + 107, (k + 107) + 16, 20, I18n.translateToLocal("gui.scManual.explosiveBlock")));
}
if (te instanceof CustomizableSCTE) {
this.hoverCheckers.add(new CustomHoverChecker(118, 118 + 16, k + 213, (k + 213) + 16, 20, I18n.translateToLocal("gui.scManual.customizableBlock")));
}
}
}
use of net.geforcemods.securitycraft.gui.components.CustomHoverChecker in project SecurityCraft by Geforce132.
the class GuiSCManual method drawScreen.
@Override
public void drawScreen(int par1, int par2, float par3) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
if (update) {
updateRecipeAndIcons();
update = false;
}
if (this.currentPage == -1) {
this.mc.getTextureManager().bindTexture(infoBookTitlePage);
} else {
if (this.recipe != null)
this.mc.getTextureManager().bindTexture(infoBookTexture);
else
this.mc.getTextureManager().bindTexture(infoBookTextureSpecial);
}
this.drawTexturedModalRect(k, 5, 0, 0, 256, 250);
if (this.currentPage > -1) {
this.fontRendererObj.drawString(I18n.translateToLocal(mod_SecurityCraft.instance.manualPages.get(currentPage).getItem().getUnlocalizedName() + ".name"), k + 39, 27, 0, false);
this.fontRendererObj.drawSplitString(mod_SecurityCraft.instance.manualPages.get(currentPage).getHelpInfo(), k + 18, 45, 225, 0);
} else {
this.fontRendererObj.drawString(I18n.translateToLocal("gui.scManual.intro.1"), k + 39, 27, 0, false);
this.fontRendererObj.drawString(I18n.translateToLocal("gui.scManual.intro.2"), k + 60, 159, 0, false);
if (I18n.canTranslate("gui.scManual.author")) {
this.fontRendererObj.drawString(I18n.translateToLocal("gui.scManual.author"), k + 65, 170, 0, false);
}
}
for (int i = 0; i < this.buttonList.size(); i++) {
this.buttonList.get(i).drawButton(this.mc, par1, par2);
}
if (this.currentPage > -1) {
Item item = mod_SecurityCraft.instance.manualPages.get(currentPage).getItem();
GuiUtils.drawItemStackToGui(mc, item, k + 19, 22, !(mod_SecurityCraft.instance.manualPages.get(currentPage).getItem() instanceof ItemBlock));
this.mc.getTextureManager().bindTexture(infoBookIcons);
TileEntity te = ((item instanceof ItemBlock && ((ItemBlock) item).getBlock() instanceof ITileEntityProvider) ? ((ITileEntityProvider) ((ItemBlock) item).getBlock()).createNewTileEntity(Minecraft.getMinecraft().theWorld, 0) : null);
Block itemBlock = ((item instanceof ItemBlock) ? ((ItemBlock) item).getBlock() : null);
if (itemBlock != null) {
if (itemBlock instanceof IExplosive) {
this.drawTexturedModalRect(k + 107, 117, 54, 1, 18, 18);
}
if (te != null) {
if (te instanceof IOwnable) {
this.drawTexturedModalRect(k + 29, 118, 1, 1, 16, 16);
}
if (te instanceof IPasswordProtected) {
this.drawTexturedModalRect(k + 55, 118, 18, 1, 17, 16);
}
if (te instanceof TileEntitySCTE && ((TileEntitySCTE) te).isActivatedByView()) {
this.drawTexturedModalRect(k + 81, 118, 36, 1, 17, 16);
}
if (te instanceof CustomizableSCTE) {
this.drawTexturedModalRect(k + 213, 118, 72, 1, 16, 16);
}
}
}
if (recipe != null) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (((i * 3) + j) >= recipe.length) {
break;
}
if (this.recipe[(i * 3) + j] == null) {
continue;
}
if (this.recipe[(i * 3) + j].getItem() instanceof ItemBlock) {
GuiUtils.drawItemStackToGui(mc, Block.getBlockFromItem(this.recipe[(i * 3) + j].getItem()), (k + 100) + (j * 20), 144 + (i * 20), !(this.recipe[(i * 3) + j].getItem() instanceof ItemBlock));
} else {
GuiUtils.drawItemStackToGui(mc, this.recipe[(i * 3) + j].getItem(), this.recipe[(i * 3) + j].getItemDamage(), (k + 100) + (j * 20), 144 + (i * 20), !(this.recipe[(i * 3) + j].getItem() instanceof ItemBlock));
}
}
}
}
for (CustomHoverChecker chc : hoverCheckers) {
if (chc != null && chc.checkHover(par1, par2)) {
if (chc.getName() != null)
drawHoveringText(mc.fontRendererObj.listFormattedStringToWidth(chc.getName(), 250), par1, par2, mc.fontRendererObj);
}
}
}
}
Aggregations