Skip to content

Commit

Permalink
Fix #1214 Locked slots have no tooltip
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed May 24, 2016
1 parent 790197d commit 5021600
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/main/java/forestry/core/gui/ContainerForestry.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public ItemStack slotClick(int slotId, int dragType_or_button, ClickType clickTy
return null;
}

if (clickTypeIn == ClickType.QUICK_MOVE && dragType_or_button >= 0 && dragType_or_button < 9) {
if (clickTypeIn == ClickType.SWAP && dragType_or_button >= 0 && dragType_or_button < 9) {
// hotkey used to move item from slot to hotbar
int hotbarSlotIndex = 27 + dragType_or_button;
Slot hotbarSlot = getSlot(hotbarSlotIndex);
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/forestry/core/gui/slots/SlotLocked.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@ public boolean isItemValid(ItemStack par1ItemStack) {
return false;
}

@Override
public boolean getHasStack() {
return false;
}

@Override
public ItemStack decrStackSize(int i) {
return null;
Expand Down
10 changes: 8 additions & 2 deletions src/main/java/forestry/core/gui/widgets/ItemStackWidgetBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,13 @@
******************************************************************************/
package forestry.core.gui.widgets;

import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import forestry.core.gui.GuiUtil;
import forestry.core.gui.tooltips.ToolTip;
import forestry.core.proxy.Proxies;
Expand All @@ -32,13 +36,15 @@ public void draw(int startX, int startY) {
}
}

@SideOnly(Side.CLIENT)
@Override
public ToolTip getToolTip(int mouseX, int mouseY) {
EntityPlayer player = Proxies.common.getPlayer();
Minecraft minecraft = Proxies.common.getClientInstance();
EntityPlayer player = minecraft.thePlayer;
ItemStack itemStack = getItemStack();
ToolTip tip = new ToolTip();
if (itemStack != null) {
tip.add(itemStack.getTooltip(player, false));
tip.add(itemStack.getTooltip(player, minecraft.gameSettings.advancedItemTooltips));
}
return tip;
}
Expand Down
11 changes: 9 additions & 2 deletions src/main/java/forestry/core/gui/widgets/SocketWidget.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@
******************************************************************************/
package forestry.core.gui.widgets;

import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;

import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import forestry.core.circuits.ISocketable;
import forestry.core.circuits.ISolderingIron;
import forestry.core.circuits.ItemCircuitBoard;
Expand Down Expand Up @@ -43,19 +47,22 @@ public void draw(int startX, int startY) {
}
}

@SideOnly(Side.CLIENT)
@Override
public ToolTip getToolTip(int mouseX, int mouseY) {
return toolTip;
}

private final ToolTip toolTip = new ToolTip(250) {
@Override
@SideOnly(Side.CLIENT)
public void refresh() {
toolTip.clear();
ItemStack stack = tile.getSocket(slot);
if (stack != null) {
EntityPlayer player = Proxies.common.getClientInstance().thePlayer;
toolTip.add(stack.getTooltip(player, false));
Minecraft minecraft = Proxies.common.getClientInstance();
EntityPlayer player = minecraft.thePlayer;
toolTip.add(stack.getTooltip(player, minecraft.gameSettings.advancedItemTooltips));
toolTip.add(TextFormatting.ITALIC + Translator.translateToLocal("for.gui.socket.remove"));
} else {
toolTip.add(Translator.translateToLocal("for.gui.emptysocket"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
import net.minecraft.item.ItemStack;
import net.minecraft.util.text.TextFormatting;

import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import forestry.api.core.EnumCamouflageType;
import forestry.api.core.ICamouflageHandler;
import forestry.api.greenhouse.GreenhouseManager;
Expand Down Expand Up @@ -68,7 +71,9 @@ public void handleMouseClick(int mouseX, int mouseY, int mouseButton) {
Block block = Block.getBlockFromItem(stack.getItem());
if (!GreenhouseManager.greenhouseAccess.isOnCamouflageBlockBlackList(type, stack)) {
IBlockState stateFromMeta = block.getStateFromMeta(stack.getItemDamage());
if (type == EnumCamouflageType.DEFAULT && block.isOpaqueCube(stateFromMeta) && !block.hasTileEntity(stateFromMeta) && block.isNormalCube(stateFromMeta, player.worldObj, camouflageHandler.getCoordinates()) || type == EnumCamouflageType.GLASS && GreenhouseManager.greenhouseAccess.isGreenhouseGlass(stack)) {
if (type == EnumCamouflageType.DEFAULT && block.isOpaqueCube(stateFromMeta) && !block.hasTileEntity(stateFromMeta) && block.isNormalCube(stateFromMeta, player.worldObj, camouflageHandler.getCoordinates())) {
camouflageHandler.setCamouflageBlock(type, stack);
} else if (type == EnumCamouflageType.GLASS && GreenhouseManager.greenhouseAccess.isGreenhouseGlass(stack)) {
camouflageHandler.setCamouflageBlock(type, stack);
}
}
Expand All @@ -87,6 +92,7 @@ public ToolTip getToolTip(int mouseX, int mouseY) {

protected final ToolTip toolTip = new ToolTip(250) {
@Override
@SideOnly(Side.CLIENT)
public void refresh() {
toolTip.clear();
String typeName = type.name().toLowerCase(Locale.ENGLISH);
Expand All @@ -100,7 +106,8 @@ public void refresh() {
if (camouflageHandler == null || camouflageBlock == null) {
toolTip.add(TextFormatting.ITALIC.toString() + Translator.translateToLocal("for.gui.empty"));
} else {
toolTip.add(TextFormatting.ITALIC.toString() + camouflageBlock.getTooltip(Proxies.common.getClientInstance().thePlayer, false));
Minecraft minecraft = Proxies.common.getClientInstance();
toolTip.add(TextFormatting.ITALIC.toString() + camouflageBlock.getTooltip(minecraft.thePlayer, minecraft.gameSettings.advancedItemTooltips));
}
}
};
Expand Down

0 comments on commit 5021600

Please sign in to comment.