Merge remote-tracking branch 'origin/master' into fabric/master

# Conflicts:
#	src/main/java/appeng/client/gui/AEBaseScreen.java
#	src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java
#	src/main/java/appeng/client/gui/widgets/ITooltip.java
#	src/main/java/appeng/client/gui/widgets/IconButton.java
#	src/main/java/appeng/client/gui/widgets/ProgressBar.java
#	src/main/java/appeng/client/gui/widgets/SettingToggleButton.java
#	src/main/java/appeng/client/gui/widgets/ToggleButton.java
#	src/main/java/appeng/container/slot/PlayerInvSlot.java
#	src/main/java/appeng/fluids/client/gui/widgets/FluidSlotWidget.java
#	src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java
#	src/main/java/appeng/fluids/client/gui/widgets/OptionalFluidSlotWidget.java
#	src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java
#	src/main/java/appeng/parts/automation/AbstractFormationPlanePart.java
#	src/main/java/appeng/parts/automation/AnnihilationPlanePart.java
#	src/main/java/appeng/parts/automation/FormationPlanePart.java
#	src/main/java/appeng/parts/automation/IdentityAnnihilationPlanePart.java
#	src/main/java/appeng/parts/p2p/FluidP2PTunnelPart.java
This commit is contained in:
Sebastian Hartte
2020-08-05 23:40:58 +02:00
21 changed files with 591 additions and 580 deletions
@@ -168,14 +168,14 @@ public abstract class AEBaseScreen<T extends AEBaseContainer> extends HandledScr
protected void drawGuiSlot(MatrixStack matrices, CustomSlotWidget slot, int mouseX, int mouseY,
float partialTicks) {
if (slot.isSlotEnabled()) {
final int left = slot.xPos();
final int top = slot.yPos();
final int right = left + slot.getWidth();
final int bottom = top + slot.getHeight();
final int left = slot.getTooltipAreaX();
final int top = slot.getTooltipAreaY();
final int right = left + slot.getTooltipAreaWidth();
final int bottom = top + slot.getTooltipAreaHeight();
slot.drawContent(getClient(), mouseX, mouseY, partialTicks);
if (this.isPointWithinBounds(left, top, slot.getWidth(), slot.getHeight(), mouseX, mouseY)
if (this.isPointWithinBounds(left, top, slot.getTooltipAreaWidth(), slot.getTooltipAreaHeight(), mouseX, mouseY)
&& slot.canClick(getPlayer())) {
RenderSystem.colorMask(true, true, true, false);
this.fillGradient(matrices, left, top, right, bottom, -2130706433, -2130706433);
@@ -185,27 +185,28 @@ public abstract class AEBaseScreen<T extends AEBaseContainer> extends HandledScr
}
private void drawTooltip(MatrixStack matrices, ITooltip tooltip, int mouseX, int mouseY) {
final int x = tooltip.xPos();
int y = tooltip.yPos();
final int x = tooltip.getTooltipAreaX();
int y = tooltip.getTooltipAreaY();
if (x < mouseX && x + tooltip.getWidth() > mouseX && tooltip.isVisible()) {
if (y < mouseY && y + tooltip.getHeight() > mouseY) {
if (x < mouseX && x + tooltip.getTooltipAreaWidth() > mouseX && tooltip.isTooltipAreaVisible()) {
if (y < mouseY && y + tooltip.getTooltipAreaHeight() > mouseY) {
if (y < 15) {
y = 15;
}
final Text msg = tooltip.getMessage();
if (msg != null && !msg.getString().isEmpty()) {
this.drawTooltip(matrices, x + 11, y + 4, msg);
}
final Text msg = tooltip.getTooltipMessage();
this.drawTooltip(matrices, x + 11, y + 4, msg);
}
}
}
protected void drawTooltip(MatrixStack matrices, int x, int y, Text message) {
String[] lines = message.getString().split("\n"); // FIXME FABRIC
List<Text> textLines = Arrays.stream(lines).map(LiteralText::new).collect(Collectors.toList());
this.drawTooltip(matrices, x, y, textLines);
String tooltipText = message.getString();
if (!tooltipText.isEmpty()) {
String[] lines = tooltipText.split("\n"); // FIXME FABRIC
List<Text> textLines = Arrays.stream(lines).map(LiteralText::new).collect(Collectors.toList());
this.drawTooltip(matrices, x, y, textLines);}
}
// FIXME FABRIC: move out to json (?)
@@ -290,8 +291,8 @@ public abstract class AEBaseScreen<T extends AEBaseContainer> extends HandledScr
}
for (CustomSlotWidget slot : this.guiSlots) {
if (this.isPointWithinBounds(slot.xPos(), slot.yPos(), slot.getWidth(), slot.getHeight(), xCoord, yCoord)
&& slot.canClick(getPlayer())) {
if (this.isPointWithinBounds(slot.getTooltipAreaX(), slot.getTooltipAreaY(), slot.getTooltipAreaWidth(),
slot.getTooltipAreaHeight(), xCoord, yCoord) && slot.canClick(getPlayer())) {
slot.slotClicked(getPlayer().inventory.getCursorStack(), btn);
}
}
@@ -27,7 +27,7 @@ import net.minecraft.text.Text;
import appeng.api.config.ActionItems;
import appeng.core.localization.ButtonToolTips;
public class ActionButton extends IconButton implements ITooltip {
public class ActionButton extends IconButton {
private static final Pattern PATTERN_NEW_LINE = Pattern.compile("\\n", Pattern.LITERAL);
private final int iconIndex;
@@ -6,6 +6,7 @@ import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
public abstract class CustomSlotWidget extends DrawableHelper implements ITooltip {
@@ -37,32 +38,32 @@ public abstract class CustomSlotWidget extends DrawableHelper implements IToolti
}
@Override
public Text getMessage() {
return null;
public Text getTooltipMessage() {
return LiteralText.EMPTY;
}
@Override
public int xPos() {
public int getTooltipAreaX() {
return this.x;
}
@Override
public int yPos() {
public int getTooltipAreaY() {
return this.y;
}
@Override
public int getWidth() {
public int getTooltipAreaWidth() {
return 16;
}
@Override
public int getHeight() {
public int getTooltipAreaHeight() {
return 16;
}
@Override
public boolean isVisible() {
public boolean isTooltipAreaVisible() {
return false;
}
@@ -20,48 +20,53 @@ package appeng.client.gui.widgets;
import net.minecraft.text.Text;
import javax.annotation.Nonnull;
/**
* AEBaseGui controlled Tooltip Interface.
*/
public interface ITooltip {
/**
* returns the tooltip message.
* Returns the tooltip message.
*
* Should use {@link net.minecraft.text.LiteralText#EMPTY} for no tooltip
*
* @return tooltip message
*/
Text getMessage();
@Nonnull
Text getTooltipMessage();
/**
* x Location for the object that triggers the tooltip.
*
* @return xPosition
*/
int xPos();
int getTooltipAreaX();
/**
* y Location for the object that triggers the tooltip.
*
* @return yPosition
*/
int yPos();
int getTooltipAreaY();
/**
* Width of the object that triggers the tooltip.
*
* @return width
*/
int getWidth();
int getTooltipAreaWidth();
/**
* Height for the object that triggers the tooltip.
*
* @return height
*/
int getHeight();
int getTooltipAreaHeight();
/**
* @return true if button being drawn
*/
boolean isVisible();
boolean isTooltipAreaVisible();
}
@@ -25,6 +25,7 @@ import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.texture.TextureManager;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.LiteralText;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
public abstract class IconButton extends ButtonWidget implements ITooltip {
@@ -95,27 +96,32 @@ public abstract class IconButton extends ButtonWidget implements ITooltip {
protected abstract int getIconIndex();
@Override
public int xPos() {
public Text getTooltipMessage() {
return getMessage();
}
@Override
public int getTooltipAreaX() {
return this.x;
}
@Override
public int yPos() {
public int getTooltipAreaY() {
return this.y;
}
@Override
public int getWidth() {
public int getTooltipAreaWidth() {
return this.halfSize ? 8 : 16;
}
@Override
public int getHeight() {
public int getTooltipAreaHeight() {
return this.halfSize ? 8 : 16;
}
@Override
public boolean isVisible() {
public boolean isTooltipAreaVisible() {
return this.visible;
}
@@ -77,7 +77,7 @@ public class ProgressBar extends AbstractButtonWidget implements ITooltip {
}
@Override
public Text getMessage() {
public Text getTooltipMessage() {
if (this.fullMsg != null) {
return this.fullMsg;
}
@@ -88,27 +88,27 @@ public class ProgressBar extends AbstractButtonWidget implements ITooltip {
}
@Override
public int xPos() {
public int getTooltipAreaX() {
return this.x - 2;
}
@Override
public int yPos() {
public int getTooltipAreaY() {
return this.y - 2;
}
@Override
public int getWidth() {
public int getTooltipAreaWidth() {
return this.width + 4;
}
@Override
public int getHeight() {
public int getTooltipAreaHeight() {
return this.height + 4;
}
@Override
public boolean isVisible() {
public boolean isTooltipAreaVisible() {
return true;
}
@@ -279,7 +279,7 @@ public class SettingToggleButton<T extends Enum<T>> extends IconButton {
}
@Override
public Text getMessage() {
public Text getTooltipMessage() {
Text displayName = null;
Text displayValue = null;
@@ -93,27 +93,32 @@ public class TabButton extends ButtonWidget implements ITooltip {
}
@Override
public int xPos() {
public ITextComponent getTooltipMessage() {
return getMessage();
}
@Override
public int getTooltipAreaX() {
return this.x;
}
@Override
public int yPos() {
public int getTooltipAreaY() {
return this.y;
}
@Override
public int getWidth() {
public int getTooltipAreaWidth() {
return 22;
}
@Override
public int getHeight() {
public int getTooltipAreaHeight() {
return 22;
}
@Override
public boolean isVisible() {
public boolean isTooltipAreaVisible() {
return this.visible;
}
@@ -74,7 +74,7 @@ public class ToggleButton extends ButtonWidget implements ITooltip {
}
@Override
public Text getMessage() {
public Text getTooltipMessage() {
if (this.displayName != null) {
String name = this.displayName.getString();
String value = this.displayHint.getString();
@@ -96,27 +96,27 @@ public class ToggleButton extends ButtonWidget implements ITooltip {
}
@Override
public int xPos() {
public int getTooltipAreaX() {
return this.x;
}
@Override
public int yPos() {
public int getTooltipAreaY() {
return this.y;
}
@Override
public int getWidth() {
public int getTooltipAreaWidth() {
return 16;
}
@Override
public int getHeight() {
public int getTooltipAreaHeight() {
return 16;
}
@Override
public boolean isVisible() {
public boolean isTooltipAreaVisible() {
return this.visible;
}
}