mirror of
https://github.com/GTNewHorizons/Botania.git
synced 2026-11-14 01:04:16 +00:00
New multiblock pages implemented. Not functional yet, I'll do that tomorrow >_>
This commit is contained in:
1 parent
4ef18f8ce0
commit
bf1230e84b
23 files changed
+202
-45
No files matched your search
@@ -29,12 +29,15 @@ public class Multiblock {
|
||||
|
||||
public List<MultiblockComponent> components = new ArrayList();
|
||||
|
||||
public int minX, minY, minZ, maxX, maxY, maxZ, offX, offY, offZ;
|
||||
|
||||
/**
|
||||
* Adds a multiblock component to this multiblock. The component's x y z
|
||||
* coords should be pivoted to the center of the structure.
|
||||
*/
|
||||
public void addComponent(MultiblockComponent component) {
|
||||
components.add(component);
|
||||
changeAxisForNewComponent(component.relPos.posX, component.relPos.posY, component.relPos.posZ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,7 +45,30 @@ public class Multiblock {
|
||||
* coords should be pivoted to the center of the structure.
|
||||
*/
|
||||
public void addComponent(int x, int y, int z, Block block, int meta) {
|
||||
components.add(new MultiblockComponent(new ChunkCoordinates(x, y, z), block, meta));
|
||||
addComponent(new MultiblockComponent(new ChunkCoordinates(x, y, z), block, meta));
|
||||
}
|
||||
|
||||
private void changeAxisForNewComponent(int x, int y, int z) {
|
||||
if(x < minX)
|
||||
minX = x;
|
||||
else if(x > maxX)
|
||||
maxX = x;
|
||||
|
||||
if(y < minY)
|
||||
minY = y;
|
||||
else if(y > maxY)
|
||||
maxY = y;
|
||||
|
||||
if(z < minZ)
|
||||
minZ = z;
|
||||
else if(z > maxZ)
|
||||
maxZ = z;
|
||||
}
|
||||
|
||||
public void setRenderOffset(int x, int y, int z) {
|
||||
offX = x;
|
||||
offY = y;
|
||||
offZ = z;
|
||||
}
|
||||
|
||||
public List<MultiblockComponent> getComponents() {
|
||||
@@ -92,4 +118,16 @@ public class Multiblock {
|
||||
return new MultiblockSet(this);
|
||||
}
|
||||
|
||||
public int getXSize() {
|
||||
return Math.abs(minX) + Math.abs(maxX) + 1;
|
||||
}
|
||||
|
||||
public int getYSize() {
|
||||
return Math.abs(minY) + Math.abs(maxY) + 1;
|
||||
}
|
||||
|
||||
public int getZSize() {
|
||||
return Math.abs(minZ) + Math.abs(maxZ) + 1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -49,9 +49,6 @@ public final class MultiblockRenderHandler {
|
||||
}
|
||||
|
||||
private void renderPlayerLook(EntityPlayer player, MovingObjectPosition src) {
|
||||
//if(currentMultiblock == null) // TODO Remove debug
|
||||
currentMultiblock = ModMultiblocks.gaiaRitual;
|
||||
|
||||
if(currentMultiblock != null) {
|
||||
Multiblock mb = currentMultiblock.getForEntity(player);
|
||||
for(MultiblockComponent comp : mb.getComponents())
|
||||
@@ -73,7 +70,6 @@ public final class MultiblockRenderHandler {
|
||||
if(IMultiblockRenderHook.renderHooks.containsKey(block))
|
||||
IMultiblockRenderHook.renderHooks.get(block).renderBlockForMultiblock(world, mb, block, comp.getMeta(), blockRender);
|
||||
else blockRender.renderBlockAsItem(comp.getBlock(), comp.getMeta(), 1F);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ public final class LibResources {
|
||||
public static final String GUI_TERRASTEEL_OVERLAY = PREFIX_GUI + "terrasteelOverlay.png";
|
||||
public static final String GUI_ELVEN_TRADE_OVERLAY = PREFIX_GUI + "elvenTradeOverlay.png";
|
||||
public static final String GUI_SHEDDING_OVERLAY = PREFIX_GUI + "sheddingOverlay.png";
|
||||
public static final String GUI_MULTIBLOCK_OVERLAY = PREFIX_GUI + "multiblockOverlay.png";
|
||||
public static final String GUI_CREATIVE = "botania.png";
|
||||
public static final String GUI_TOFF = PREFIX_GUI + "toff.png";
|
||||
public static final String GUI_BOSS_BAR = PREFIX_GUI + "bossBar.png";
|
||||
@@ -50,18 +51,8 @@ public final class LibResources {
|
||||
public static final String ENTRY_SPREADER = PREFIX_ENTRIES + "spreader.png";
|
||||
public static final String ENTRY_UNSTABLE_BLOCK = PREFIX_ENTRIES + "unstableBlock.png";
|
||||
public static final String ENTRY_UNSTABLE_BEACON = PREFIX_ENTRIES + "unstableBeacon.png";
|
||||
public static final String ENTRY_ENCHANTER0 = PREFIX_ENTRIES + "enchanter0.png";
|
||||
public static final String ENTRY_ENCHANTER1 = PREFIX_ENTRIES + "enchanter1.png";
|
||||
public static final String ENTRY_ENCHANTER2 = PREFIX_ENTRIES + "enchanter2.png";
|
||||
public static final String ENTRY_ENCHANTER3 = PREFIX_ENTRIES + "enchanter3.png";
|
||||
public static final String ENTRY_BAUBLES = PREFIX_ENTRIES + "baubles.png";
|
||||
public static final String ENTRY_PORTAL0 = PREFIX_ENTRIES + "portal0.png";
|
||||
public static final String ENTRY_PORTAL1 = PREFIX_ENTRIES + "portal1.png";
|
||||
public static final String ENTRY_PORTAL2 = PREFIX_ENTRIES + "portal2.png";
|
||||
public static final String ENTRY_PORTAL3 = PREFIX_ENTRIES + "portal3.png";
|
||||
public static final String ENTRY_PORTAL4 = PREFIX_ENTRIES + "portal4.png";
|
||||
public static final String ENTRY_ELVEN_GARDE = PREFIX_ENTRIES + "elvenGarde.png";
|
||||
public static final String ENTRY_GAIA_RITUAL = PREFIX_ENTRIES + "gaiaRitual.png";
|
||||
public static final String ENTRY_DIMINISHING_RETURNS = PREFIX_ENTRIES + "diminishingReturns.png";
|
||||
public static final String ENTRY_HYDROANGEAS = PREFIX_ENTRIES + "hydroangeas.png";
|
||||
public static final String ENTRY_CRAFT_CRATE = PREFIX_ENTRIES + "craftCrate.png";
|
||||
|
||||
@@ -108,7 +108,8 @@ public class TileAlfPortal extends TileMod {
|
||||
mb.addComponent(-p[0], p[1] + 1, -p[2], ModBlocks.pool, 0);
|
||||
|
||||
mb.addComponent(0, 1, 0, ModBlocks.alfPortal, 0);
|
||||
|
||||
mb.setRenderOffset(0, -1, 0);
|
||||
|
||||
return mb.makeSet();
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,8 @@ public class TileTerraPlate extends TileMod implements ISparkAttachable {
|
||||
mb.addComponent(l[0], 0, l[1], ModBlocks.livingrock, 0);
|
||||
|
||||
mb.addComponent(0, 1, 0, ModBlocks.terraPlate, 0);
|
||||
|
||||
mb.setRenderOffset(0, 1, 0);
|
||||
|
||||
return mb.makeSet();
|
||||
}
|
||||
|
||||
|
||||
@@ -122,6 +122,7 @@ public class EntityDoppleganger extends EntityCreature implements IBotaniaBossWi
|
||||
mb.addComponent(i - 1, 0, j - 1, Blocks.iron_block, 0);
|
||||
|
||||
mb.addComponent(0, 1, 0, Blocks.beacon, 0);
|
||||
mb.setRenderOffset(0, -1, 0);
|
||||
|
||||
return mb.makeSet();
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import vazkii.botania.api.lexicon.LexiconRecipeMappings;
|
||||
import vazkii.botania.client.lib.LibResources;
|
||||
import vazkii.botania.common.Botania;
|
||||
import vazkii.botania.common.block.ModBlocks;
|
||||
import vazkii.botania.common.block.ModMultiblocks;
|
||||
import vazkii.botania.common.brew.ModBrews;
|
||||
import vazkii.botania.common.core.handler.ConfigHandler;
|
||||
import vazkii.botania.common.core.handler.SheddingHandler;
|
||||
@@ -45,6 +46,7 @@ import vazkii.botania.common.lexicon.page.PageGuide;
|
||||
import vazkii.botania.common.lexicon.page.PageImage;
|
||||
import vazkii.botania.common.lexicon.page.PageLoreText;
|
||||
import vazkii.botania.common.lexicon.page.PageManaInfusionRecipe;
|
||||
import vazkii.botania.common.lexicon.page.PageMultiblock;
|
||||
import vazkii.botania.common.lexicon.page.PagePetalRecipe;
|
||||
import vazkii.botania.common.lexicon.page.PageRuneRecipe;
|
||||
import vazkii.botania.common.lexicon.page.PageTerrasteel;
|
||||
@@ -309,7 +311,7 @@ public final class LexiconData {
|
||||
new PageRuneRecipe("13", ModRuneRecipes.recipeLustRune), new PageRuneRecipe("14", ModRuneRecipes.recipeGluttonyRune), new PageRuneRecipe("15", ModRuneRecipes.recipeGreedRune), new PageRuneRecipe("16", ModRuneRecipes.recipeSlothRune), new PageRuneRecipe("17", ModRuneRecipes.recipeWrathRune), new PageRuneRecipe("18", ModRuneRecipes.recipeEnvyRune), new PageRuneRecipe("19", ModRuneRecipes.recipePrideRune));
|
||||
|
||||
terrasteel = new BLexiconEntry(LibLexicon.BASICS_TERRASTEEL, categoryBasics);
|
||||
terrasteel.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeTerraPlate), new PageText("2"), new PageTerrasteel("3")).setIcon(new ItemStack(ModItems.manaResource, 1, 4));
|
||||
terrasteel.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeTerraPlate), new PageText("2"), new PageMultiblock("4", ModMultiblocks.terrasteelPlate), new PageTerrasteel("3")).setIcon(new ItemStack(ModItems.manaResource, 1, 4));
|
||||
|
||||
blackLotus = new BLexiconEntry(LibLexicon.BASICS_BLACK_LOTUS, categoryBasics);
|
||||
blackLotus.setLexiconPages(new PageText("0")).setIcon(new ItemStack(ModItems.blackLotus));
|
||||
@@ -526,9 +528,7 @@ public final class LexiconData {
|
||||
|
||||
if(ConfigHandler.enchanterEnabled) {
|
||||
manaEnchanting = new BLexiconEntry(LibLexicon.DEVICE_MANA_ENCHANTING, categoryDevices);
|
||||
manaEnchanting.setLexiconPages(new PageText("0"), new PageText("1"),
|
||||
new PageImage("2", LibResources.ENTRY_ENCHANTER0), new PageImage("3", LibResources.ENTRY_ENCHANTER1), new PageImage("4", LibResources.ENTRY_ENCHANTER2), new PageImage("5", LibResources.ENTRY_ENCHANTER3),
|
||||
new PageText("6"), new PageText("7"), new PageText("8"), new PageText("9"), new PageText("10")).setIcon(new ItemStack(ModBlocks.enchanter));
|
||||
manaEnchanting.setLexiconPages(new PageText("0"), new PageText("1"), new PageMultiblock("2", ModMultiblocks.enchanter), new PageText("3"), new PageText("4"), new PageText("5"), new PageText("6"), new PageText("7")).setIcon(new ItemStack(ModBlocks.enchanter));
|
||||
}
|
||||
|
||||
turntable = new BLexiconEntry(LibLexicon.DEVICE_TURNTABLE, categoryDevices);
|
||||
@@ -849,9 +849,8 @@ public final class LexiconData {
|
||||
|
||||
// ALFHOMANCY ENTRIES
|
||||
alfhomancyIntro = new BLexiconEntry(LibLexicon.ALF_INTRO, categoryAlfhomancy);
|
||||
alfhomancyIntro.setPriority().setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeAlfPortal), new PageCraftingRecipe("3", ModCraftingRecipes.recipeNaturaPylon),
|
||||
new PageImage("4", LibResources.ENTRY_PORTAL0), new PageImage("5", LibResources.ENTRY_PORTAL1), new PageImage("6", LibResources.ENTRY_PORTAL2), new PageImage("7", LibResources.ENTRY_PORTAL3),
|
||||
new PageImage("8", LibResources.ENTRY_PORTAL4), new PageText("9"), new PageText("10"), new PageText("11")).setIcon(new ItemStack(ModItems.lexicon));
|
||||
alfhomancyIntro.setPriority().setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeAlfPortal), new PageCraftingRecipe("3", ModCraftingRecipes.recipeNaturaPylon), new PageMultiblock("4", ModMultiblocks.alfPortal),
|
||||
new PageText("5"), new PageText("6"), new PageText("7")).setIcon(new ItemStack(ModItems.lexicon));
|
||||
|
||||
elvenMessage = new ALexiconEntry(LibLexicon.ALF_MESSAGE, categoryAlfhomancy);
|
||||
elvenMessage.setPriority().setLexiconPages(new PageImage("0", LibResources.ENTRY_ELVEN_GARDE), new PageLoreText("1"), new PageLoreText("2"), new PageLoreText("3"), new PageLoreText("4"), new PageLoreText("5"), new PageLoreText("6")).setIcon(new ItemStack(Items.writable_book));
|
||||
@@ -860,7 +859,7 @@ public final class LexiconData {
|
||||
elvenResources.setPriority().setLexiconPages(new PageText("0"), new PageElvenRecipe("1", ModElvenTradeRecipes.dreamwoodRecipe), new PageText("2"), new PageCraftingRecipe("10", ModCraftingRecipes.recipeDreamwoodTwig), new PageElvenRecipe("3", ModElvenTradeRecipes.elementiumRecipes), new PageElvenRecipe("4", ModElvenTradeRecipes.pixieDustRecipe), new PageElvenRecipe("5", ModElvenTradeRecipes.dragonstoneRecipes), new PageText("6"), new PageElvenRecipe("7", ModElvenTradeRecipes.elvenQuartzRecipe), new PageText("8"), new PageElvenRecipe("9", ModElvenTradeRecipes.alfglassRecipe)).setIcon(new ItemStack(ModItems.manaResource, 1, 9));
|
||||
|
||||
gaiaRitual = new ALexiconEntry(LibLexicon.ALF_GAIA_RITUAL, categoryAlfhomancy);
|
||||
gaiaRitual.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeGaiaPylon), new PageImage("2", LibResources.ENTRY_GAIA_RITUAL), new PageText("3"), new PageText("4")).setIcon(new ItemStack(ModItems.manaResource, 1, 5));
|
||||
gaiaRitual.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeGaiaPylon), new PageMultiblock("2", ModMultiblocks.gaiaRitual), new PageText("3"), new PageText("4")).setIcon(new ItemStack(ModItems.manaResource, 1, 5));
|
||||
LexiconRecipeMappings.map(new ItemStack(ModItems.manaResource, 1, 5), gaiaRitual, 0);
|
||||
|
||||
gaiaRitualHardmode = new ALexiconEntry(LibLexicon.ALF_GAIA_RITUAL_HARDMODE, categoryAlfhomancy);
|
||||
|
||||
@@ -70,7 +70,6 @@ public class PageCraftingRecipe extends PageRecipe {
|
||||
IRecipe recipe = recipes.get(recipeAt);
|
||||
renderCraftingRecipe(gui, recipe);
|
||||
|
||||
|
||||
TextureManager render = Minecraft.getMinecraft().renderEngine;
|
||||
render.bindTexture(craftingOverlay);
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.lwjgl.opengl.GL11;
|
||||
|
||||
import vazkii.botania.api.internal.IGuiLexiconEntry;
|
||||
import vazkii.botania.api.lexicon.LexiconPage;
|
||||
import vazkii.botania.client.lib.LibResources;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
/**
|
||||
* This class was created by <Vazkii>. It's distributed as
|
||||
* part of the Botania Mod. Get the Source Code in github:
|
||||
* https://github.com/Vazkii/Botania
|
||||
*
|
||||
* Botania is Open Source and distributed under the
|
||||
* Botania License: http://botaniamod.net/license.php
|
||||
*
|
||||
* File Created @ [Jun 28, 2015, 1:48:58 AM (GMT)]
|
||||
*/
|
||||
package vazkii.botania.common.lexicon.page;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.ChatStyle;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import vazkii.botania.api.internal.IGuiLexiconEntry;
|
||||
import vazkii.botania.api.lexicon.LexiconPage;
|
||||
import vazkii.botania.api.lexicon.multiblock.Multiblock;
|
||||
import vazkii.botania.api.lexicon.multiblock.MultiblockSet;
|
||||
import vazkii.botania.api.lexicon.multiblock.component.MultiblockComponent;
|
||||
import vazkii.botania.client.gui.lexicon.GuiLexicon;
|
||||
import vazkii.botania.client.lib.LibResources;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class PageMultiblock extends LexiconPage {
|
||||
|
||||
private static final ResourceLocation multiblockOverlay = new ResourceLocation(LibResources.GUI_MULTIBLOCK_OVERLAY);
|
||||
|
||||
GuiButton button;
|
||||
Multiblock mb;
|
||||
int ticksElapsed;
|
||||
|
||||
public PageMultiblock(String unlocalizedName, Multiblock mb) {
|
||||
super(unlocalizedName);
|
||||
this.mb = mb;
|
||||
}
|
||||
|
||||
public PageMultiblock(String unlocalizedName, MultiblockSet mb) {
|
||||
this(unlocalizedName, mb.getForIndex(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void renderScreen(IGuiLexiconEntry gui, int mx, int my) {
|
||||
TextureManager render = Minecraft.getMinecraft().renderEngine;
|
||||
render.bindTexture(multiblockOverlay);
|
||||
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
((GuiScreen) gui).drawTexturedModalRect(gui.getLeft(), gui.getTop(), 0, 0, gui.getWidth(), gui.getHeight());
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
|
||||
final float maxX = 90, maxY = 60;
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(gui.getLeft() + gui.getWidth() / 2, gui.getTop() + 90, gui.getZLevel() + 500F);
|
||||
|
||||
float diag = (float) Math.sqrt(mb.getXSize() * mb.getXSize() + mb.getZSize() * mb.getZSize());
|
||||
float height = mb.getYSize();
|
||||
float scaleX = maxX / diag;
|
||||
float scaleY = maxY / height;
|
||||
float scale = -Math.min(scaleY, scaleX);
|
||||
GL11.glScalef(scale, scale, scale);
|
||||
|
||||
GL11.glRotatef(-20F, 1, 0, 0);
|
||||
GL11.glRotatef(gui.getElapsedTicks(), 0, 1, 0);
|
||||
|
||||
for(MultiblockComponent comp : mb.getComponents()) {
|
||||
ChunkCoordinates pos = comp.getRelativePosition();
|
||||
renderBlock(comp.getBlock(), comp.getMeta(), pos.posX + mb.offX, pos.posY + mb.offY, pos.posZ + mb.offZ);
|
||||
}
|
||||
GL11.glPopMatrix();
|
||||
|
||||
FontRenderer font = Minecraft.getMinecraft().fontRenderer;
|
||||
boolean unicode = font.getUnicodeFlag();
|
||||
String s = EnumChatFormatting.BOLD + StatCollector.translateToLocal(getUnlocalizedName());
|
||||
font.setUnicodeFlag(true);
|
||||
font.drawString(s, gui.getLeft() + gui.getWidth() / 2 - font.getStringWidth(s) / 2, gui.getTop() + 16, 0x000000);
|
||||
font.setUnicodeFlag(unicode);
|
||||
}
|
||||
|
||||
public void renderBlock(Block block, int meta, int x, int y, int z) {
|
||||
if(block != null) {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(x, y, z);
|
||||
RenderBlocks.getInstance().renderBlockAsItem(block, meta, 0.8F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOpened(IGuiLexiconEntry gui) {
|
||||
button = new GuiButton(101, gui.getLeft() + 30, gui.getTop() + gui.getHeight() - 50, gui.getWidth() - 60, 20, StatCollector.translateToLocal("botaniamisc.visualize"));
|
||||
gui.getButtonList().add(button);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClosed(IGuiLexiconEntry gui) {
|
||||
gui.getButtonList().remove(button);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void onActionPerformed(IGuiLexiconEntry gui, GuiButton button) {
|
||||
if(button == this.button) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void updateScreen() {
|
||||
++ticksElapsed;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -77,7 +77,6 @@ public class PageShedding extends PageEntity {
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
((GuiScreen) gui).drawTexturedModalRect(gui.getLeft(), gui.getTop(), 0, 0, gui.getWidth(), gui.getHeight());
|
||||
|
||||
|
||||
if(tooltipStack != null) {
|
||||
List<String> tooltipData = tooltipStack.getTooltip(Minecraft.getMinecraft().thePlayer, false);
|
||||
List<String> parsedTooltip = new ArrayList();
|
||||
|
||||
Reference in new issue
Block a user