use of mekanism.client.gui.GuiMekanismTile in project Mekanism by mekanism.
the class GuiTankGauge method mouseClicked.
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (isMouseOver(mouseX, mouseY) && tankType != null) {
ItemStack stack = minecraft.player.inventory.getCarried();
if (gui() instanceof GuiMekanismTile && !stack.isEmpty() && stack.getItem() instanceof ItemGaugeDropper) {
int index = infoHandler.getTankIndex();
if (index != -1) {
DropperAction action;
if (button == 0) {
action = Screen.hasShiftDown() ? DropperAction.DUMP_TANK : DropperAction.FILL_DROPPER;
} else {
action = DropperAction.DRAIN_DROPPER;
}
Mekanism.packetHandler.sendToServer(new PacketDropperUse(((GuiMekanismTile<?, ?>) gui()).getTileEntity().getBlockPos(), action, tankType, index));
}
return true;
}
}
return super.mouseClicked(mouseX, mouseY, button);
}
use of mekanism.client.gui.GuiMekanismTile in project Mekanism by mekanism.
the class GuiGauge method renderToolTip.
@Override
public void renderToolTip(@Nonnull MatrixStack matrix, int mouseX, int mouseY) {
super.renderToolTip(matrix, mouseX, mouseY);
ItemStack stack = minecraft.player.inventory.getCarried();
EnumColor color = getGaugeColor().getColor();
if (!stack.isEmpty() && stack.getItem() instanceof ItemConfigurator && color != null) {
if (gui() instanceof GuiMekanismTile) {
TileEntityMekanism tile = ((GuiMekanismTile<?, ?>) gui()).getTileEntity();
if (tile instanceof ISideConfiguration && getTransmission() != null) {
DataType dataType = null;
ConfigInfo config = ((ISideConfiguration) tile).getConfig().getConfig(getTransmission());
if (config != null) {
Set<DataType> supportedDataTypes = config.getSupportedDataTypes();
for (DataType type : supportedDataTypes) {
if (type.getColor() == color) {
dataType = type;
break;
}
}
}
if (dataType == null) {
displayTooltip(matrix, MekanismLang.GENERIC_PARENTHESIS.translateColored(color, color.getName()), mouseX, mouseY);
} else {
displayTooltip(matrix, MekanismLang.GENERIC_WITH_PARENTHESIS.translateColored(color, dataType, color.getName()), mouseX, mouseY);
}
}
}
} else {
List<ITextComponent> list = new ArrayList<>();
if (getLabel() != null) {
list.add(getLabel());
}
list.addAll(getTooltipText());
displayTooltips(matrix, list, mouseX, mouseY);
}
}
use of mekanism.client.gui.GuiMekanismTile in project Mekanism by mekanism.
the class GuiTankBar method mouseClicked.
@Override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (isMouseOver(mouseX, mouseY)) {
ItemStack stack = Minecraft.getInstance().player.inventory.getCarried();
if (gui() instanceof GuiMekanismTile && !stack.isEmpty() && stack.getItem() instanceof ItemGaugeDropper) {
TankType tankType = getType(getHandler().getStack());
if (tankType != null) {
int index = getHandler().getTankIndex();
if (index != -1) {
DropperAction action;
if (button == 0) {
action = Screen.hasShiftDown() ? DropperAction.DUMP_TANK : DropperAction.FILL_DROPPER;
} else {
action = DropperAction.DRAIN_DROPPER;
}
Mekanism.packetHandler.sendToServer(new PacketDropperUse(((GuiMekanismTile<?, ?>) gui()).getTileEntity().getBlockPos(), action, tankType, index));
}
return true;
}
}
}
return super.mouseClicked(mouseX, mouseY, button);
}
Aggregations