Skip to content

Commit 7419d07

Browse files
Merge remote-tracking branch 'origin/1.11.2-forge' into 1.10.2-forge
2 parents 3946eee + 5acc6a3 commit 7419d07

4 files changed

Lines changed: 32 additions & 19 deletions

File tree

src/main/java/cam72cam/mod/gui/screen/ScreenBuilder.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
public class ScreenBuilder extends GuiScreen implements IScreenBuilder {
2323
private final IScreen screen;
2424
private final Map<GuiButton, Button> buttonMap = new HashMap<>();
25-
private final List<GuiTextField> textFields = new ArrayList<>();
25+
private final List<TextField> textFields = new ArrayList<>();
26+
private TextField active = null;
2627
private final Supplier<Boolean> valid;
2728
private GuiButton selectedButton;
2829

@@ -88,7 +89,7 @@ public void show() {
8889

8990
@Override
9091
public void addTextField(TextField textField) {
91-
this.textFields.add(textField.textfield);
92+
this.textFields.add(textField);
9293
}
9394

9495
// GuiScreen
@@ -110,7 +111,7 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
110111

111112
screen.draw(this, new RenderState().stage(RenderContext.Stage.GUI));
112113

113-
textFields.forEach(GuiTextField::drawTextBox);
114+
textFields.stream().map(t -> t.internal).forEach(GuiTextField::drawTextBox);
114115

115116
// draw buttons
116117
super.drawScreen(mouseX, mouseY, partialTicks);
@@ -129,7 +130,7 @@ protected void keyTyped(char typedChar, int keyCode) throws IOException {
129130
close();
130131
}
131132

132-
if (this.textFields.stream().noneMatch(x -> x.textboxKeyTyped(typedChar, keyCode))) {
133+
if (this.active != null && !active.internal.textboxKeyTyped(typedChar, keyCode)) {
133134
screen.onKeyType(this, Keyboard.KeyCode.of(keyCode));
134135
}
135136
}
@@ -146,9 +147,16 @@ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOEx
146147
}
147148
}
148149

149-
if (this.textFields.stream().noneMatch(x -> AGuiTextField.from(x).mouseClicked(mouseX, mouseY, mouseButton))) {
150-
screen.onMouseClick(mouseX, mouseY, hand);
150+
for (TextField field : textFields) {
151+
if (field.isVisible() && AGuiTextField.from(field.internal).mouseClicked(mouseX, mouseY, mouseButton)) {
152+
active = field;
153+
field.setFocused(true);
154+
return;
155+
}
156+
field.setFocused(false);
151157
}
158+
159+
screen.onMouseClick(mouseX, mouseY, hand);
152160
}
153161

154162
protected void mouseReleased(int p_mouseReleased_1_, int p_mouseReleased_2_, int p_mouseReleased_3_) {

src/main/java/cam72cam/mod/gui/screen/TextField.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,36 @@
77

88
/** Base text field */
99
public class TextField implements IWidget {
10-
protected final GuiTextField textfield;
10+
protected final GuiTextField internal;
1111

1212
/** Standard constructor */
1313
public TextField(IScreenBuilder builder, int x, int y, int width, int height) {
1414
this(builder,
1515
//Offset x&y by 1 and minus width&height by 2 to let border be within the range specified
1616
new GuiTextField(-1, Minecraft.getMinecraft().fontRendererObj, builder.getWidth() / 2 + x + 1, builder.getHeight() / 4 + y + 1, width - 2, height - 2));
17+
internal.setMaxStringLength(256);
1718
}
1819

1920
/** Internal, can be overridden to support custom GuiTextFields */
2021
protected TextField(IScreenBuilder builder, GuiTextField internal) {
21-
this.textfield = internal;
22+
this.internal = internal;
2223
builder.addTextField(this);
2324
}
2425

2526
@Override
2627
public void setText(String s) {
27-
textfield.setText(s);
28+
internal.setText(s);
2829
}
2930

3031
@Override
3132
public String getText() {
32-
return textfield.getText();
33+
return internal.getText();
3334
}
3435

3536
@Override
3637
public void setVisible(boolean visible) {
37-
textfield.setVisible(visible);
38-
textfield.setEnabled(visible);
38+
internal.setVisible(visible);
39+
internal.setEnabled(visible);
3940
}
4041

4142
@Deprecated
@@ -45,26 +46,26 @@ public void setVisible(Boolean visible) {
4546

4647
@Override
4748
public boolean isVisible() {
48-
return textfield.getVisible();
49+
return internal.getVisible();
4950
}
5051

5152
@Override
5253
public void setEnabled(boolean enabled) {
53-
textfield.setEnabled(enabled);
54+
internal.setEnabled(enabled);
5455
}
5556

5657
@Override
5758
public boolean isEnabled() {
58-
return textfield.isEnabled;
59+
return internal.isEnabled;
5960
}
6061

6162
/** Validator that can block a string from being entered */
6263
public void setValidator(Predicate<String> filter) {
63-
textfield.setValidator(filter::test);
64+
internal.setValidator(filter::test);
6465
}
6566

6667
/** Move cursor to this text field */
6768
public void setFocused(boolean b) {
68-
textfield.setFocused(b);
69+
internal.setFocused(b);
6970
}
7071
}

src/main/java/cam72cam/mod/render/EntityRenderer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,11 @@ public static void register(Class<? extends Entity> type, IEntityRender render)
5656

5757
/**
5858
* Sooo this is a fun one...
59-
*
59+
* <p>
6060
* MC culls out entities in chunks that are not in view, which breaks when entities span chunk boundaries
61+
* <p>
6162
* For 1-2 block entities, this is barely noticeable. For large entities it's a problem.
63+
* <p>
6264
* We try to detect entities in this edge case and render them here to prevent the issue.
6365
*/
6466
private static void renderLargeEntities(RenderState state, float partialTicks) {
@@ -86,6 +88,7 @@ private static void renderLargeEntities(RenderState state, float partialTicks) {
8688
AxisAlignedBB chunk = new AxisAlignedBB(min.internal(), max.internal());
8789
if (!camera.isBoundingBoxInFrustum(chunk) && camera.isBoundingBoxInFrustum(entity.internal.getRenderBoundingBox())) {
8890
Minecraft.getMinecraft().getRenderManager().renderEntityStatic(entity.internal, partialTicks, true);
91+
Minecraft.getMinecraft().getRenderManager().renderMultipass(entity.internal, partialTicks);
8992
}
9093
}
9194

src/main/java/cam72cam/mod/render/ItemRender.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ public static ItemRenderType from(TransformType cameraTransformType) {
109109
return type;
110110
}
111111
}
112-
return null;
112+
//We're facing enums added by other mods, use NONE as fallback
113+
return NONE;
113114
}
114115
}
115116

0 commit comments

Comments
 (0)