fix #2298, add list tooltips, fix inserting lists inside lists, fix list stackability
This commit is contained in:
parent
6858738d4d
commit
883de2d8bb
5 changed files with 30 additions and 5 deletions
|
@ -159,6 +159,8 @@ gui.heat=Heat
|
|||
gui.assemblyRate=Energy Rate
|
||||
gui.assemblyCurrentRequired=Energy Required
|
||||
gui.clickcraft=-Click to Craft-
|
||||
gui.list.metadata=Accept Variations
|
||||
gui.list.oredict=Accept Equivalents
|
||||
gui.pipes.emerald.title=Filters
|
||||
gui.pipes.emerald.blocking=Blocking
|
||||
gui.pipes.emerald.blocking.tip=Extraction is blocked if one element in filter is missing
|
||||
|
|
|
@ -209,6 +209,11 @@ public class ItemList extends ItemBuildCraft {
|
|||
}
|
||||
}
|
||||
|
||||
public ItemList() {
|
||||
super();
|
||||
setMaxStackSize(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIconIndex(ItemStack stack) {
|
||||
if (NBTUtils.getItemData(stack).hasKey("written")) {
|
||||
|
|
|
@ -15,6 +15,7 @@ import net.minecraft.client.renderer.texture.TextureMap;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
||||
import buildcraft.core.DefaultProps;
|
||||
|
||||
|
@ -38,7 +39,7 @@ public abstract class AdvancedSlot {
|
|||
}
|
||||
|
||||
public final void drawTooltip(GuiAdvancedInterface gui, int x, int y) {
|
||||
String s = getDescription();
|
||||
String s = StatCollector.translateToLocal(getDescription());
|
||||
|
||||
if (s != null) {
|
||||
gui.drawTooltip(s, x, y);
|
||||
|
|
|
@ -54,7 +54,7 @@ public class ContainerList extends BuildCraftContainer implements ICommandReceiv
|
|||
ItemList.saveLine(player.getCurrentEquippedItem(), lines[lineIndex], lineIndex);
|
||||
|
||||
if (player.worldObj.isRemote) {
|
||||
BuildCraftCore.instance.sendToServer(new PacketCommand(this, "switchButton", new CommandWriter() {
|
||||
BuildCraftCore.instance.sendToServer(new PacketCommand(this, "setStack", new CommandWriter() {
|
||||
public void write(ByteBuf data) {
|
||||
data.writeByte(lineIndex);
|
||||
data.writeByte(slotIndex);
|
||||
|
|
|
@ -10,6 +10,7 @@ package buildcraft.core.gui;
|
|||
|
||||
import net.minecraft.client.gui.GuiTextField;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
|
@ -76,12 +77,19 @@ public class GuiList extends GuiAdvancedInterface {
|
|||
|
||||
public int line;
|
||||
public int kind;
|
||||
private String desc;
|
||||
|
||||
public Button(GuiAdvancedInterface gui, int x, int y, int iLine, int iKind) {
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
public Button(GuiAdvancedInterface gui, int x, int y, int iLine, int iKind, String iDesc) {
|
||||
super(gui, x, y);
|
||||
|
||||
line = iLine;
|
||||
kind = iKind;
|
||||
desc = iDesc;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -99,8 +107,8 @@ public class GuiList extends GuiAdvancedInterface {
|
|||
slots.add(new SecondarySlot(this, 44 + sx * 18, 31 + sy * 18, sy, sx));
|
||||
}
|
||||
|
||||
slots.add(new Button(this, 8, 31 + sy * 18, sy, 0));
|
||||
slots.add(new Button(this, 26, 31 + sy * 18, sy, 1));
|
||||
slots.add(new Button(this, 8, 31 + sy * 18, sy, 0, "gui.list.metadata"));
|
||||
slots.add(new Button(this, 26, 31 + sy * 18, sy, 1, "gui.list.oredict"));
|
||||
}
|
||||
|
||||
player = iPlayer;
|
||||
|
@ -166,10 +174,19 @@ public class GuiList extends GuiAdvancedInterface {
|
|||
drawTooltipForSlotAt(par1, par2);
|
||||
}
|
||||
|
||||
private boolean isCarryingList() {
|
||||
ItemStack stack = mc.thePlayer.inventory.getItemStack();
|
||||
return (stack != null && stack.getItem() != null && stack.getItem() instanceof ItemList);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int b) {
|
||||
super.mouseClicked(x, y, b);
|
||||
|
||||
if (isCarryingList()) {
|
||||
return;
|
||||
}
|
||||
|
||||
AdvancedSlot slot = getSlotAtLocation(x, y);
|
||||
ContainerList container = (ContainerList) getContainer();
|
||||
|
||||
|
|
Loading…
Reference in a new issue