Skip to content

Commit 3285fc9

Browse files
committed
made Escape actually remove the key binding on key fields
also made empty key fields display None instead also made the outline of key fields be yellow when selected
1 parent d1d6546 commit 3285fc9

File tree

5 files changed

+68
-5
lines changed

5 files changed

+68
-5
lines changed

src/main/java/io/github/techstreet/dfscript/screen/CScreen.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,15 @@ public double translateMouseY(double mouseY) {
114114
mouseY += height/2f;
115115
return mouseY;
116116
}
117+
118+
@Override
119+
public boolean shouldCloseOnEsc() {
120+
for(CWidget widget : widgets) {
121+
if(!widget.enableClosingOnEsc()) {
122+
return false;
123+
}
124+
}
125+
126+
return super.shouldCloseOnEsc();
127+
}
117128
}

src/main/java/io/github/techstreet/dfscript/screen/widget/CKeyField.java

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.github.techstreet.dfscript.DFScript;
44
import io.github.techstreet.dfscript.util.RenderUtil;
5+
import io.github.techstreet.dfscript.util.chat.ChatUtil;
56
import net.minecraft.client.font.TextRenderer;
67
import net.minecraft.client.gui.DrawableHelper;
78
import net.minecraft.client.util.InputUtil;
@@ -16,6 +17,8 @@ public class CKeyField implements CWidget {
1617

1718
boolean selected;
1819
boolean editable;
20+
21+
boolean blockEsc = false;
1922
public int textColor = 0xFFFFFFFF;
2023
InputUtil.Key key;
2124
Runnable changedListener;
@@ -38,7 +41,14 @@ public void render(MatrixStack stack, int mouseX, int mouseY, float tickDelta) {
3841
stack.push();
3942
stack.translate(x, y, 0);
4043

41-
DrawableHelper.fill(stack, 0, 0, width, height, 0xFF888888);
44+
int outlineColor = 0xFF888888;
45+
46+
if(editable && selected)
47+
{
48+
outlineColor = 0xFFFFFF00;
49+
}
50+
51+
DrawableHelper.fill(stack, 0, 0, width, height, outlineColor);
4252
DrawableHelper.fill(stack, 1, 1, width - 1, height - 1, 0xFF000000);
4353

4454
Vector4f begin = new Vector4f(0, 0, 1, 1);
@@ -61,12 +71,16 @@ public void render(MatrixStack stack, int mouseX, int mouseY, float tickDelta) {
6171

6272
stack.push();
6373

64-
String line = null;
74+
String line;
6575
int color = textColor;
6676

6777
if(key != null) {
6878
line = key.getLocalizedText().getString();
6979
}
80+
else
81+
{
82+
line = "None";
83+
}
7084

7185
if(editable && selected) {
7286
color = 0xFFFF00;
@@ -89,23 +103,26 @@ public boolean mouseClicked(double x, double y, int button) {
89103
if (button == 0) {
90104
if (x >= this.x && x <= this.x + this.width && y >= this.y && y <= this.y + this.height) {
91105
this.selected = true;
106+
blockEsc = true;
92107
}
93108
else {
94109
this.selected = false;
110+
blockEsc = false;
95111
}
96112
}
97113
}
98114
else {
99115
this.selected = false;
116+
blockEsc = false;
100117
}
101118
return false;
102119
}
103120

104121
@Override
105-
public void keyPressed(int keyCode, int scanCode, int modifiers) { // wth github is having a seizure and is forcing me to make this comment what
122+
public void keyPressed(int keyCode, int scanCode, int modifiers) {
106123
if(editable && selected) {
107124
if(keyCode != -1) {
108-
if(keyCode == 10) {
125+
if(keyCode == 256) {
109126
key = null;
110127
}
111128
else
@@ -117,6 +134,10 @@ public void keyPressed(int keyCode, int scanCode, int modifiers) { // wth github
117134
}
118135

119136
selected = false;
137+
blockEsc = true;
138+
}
139+
else {
140+
blockEsc = false;
120141
}
121142
}
122143

@@ -136,5 +157,9 @@ public InputUtil.Key getKey() {
136157
public void setKey(InputUtil.Key k) {
137158
key = k;
138159
}
139-
}
140160

161+
@Override
162+
public boolean enableClosingOnEsc() {
163+
return !blockEsc;
164+
}
165+
}

src/main/java/io/github/techstreet/dfscript/screen/widget/CPlainPanel.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,15 @@ public CWidget[] getChildren() {
110110
return children.toArray(new CWidget[0]);
111111
}
112112

113+
@Override
114+
public boolean enableClosingOnEsc() {
115+
for(CWidget widget : children) {
116+
if(!widget.enableClosingOnEsc())
117+
{
118+
return false;
119+
}
120+
}
121+
122+
return CWidget.super.enableClosingOnEsc();
123+
}
113124
}

src/main/java/io/github/techstreet/dfscript/screen/widget/CScrollPanel.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,16 @@ public void setScroll(int s) {
157157
public void remove(CWidget w) {
158158
children.remove(w);
159159
}
160+
161+
@Override
162+
public boolean enableClosingOnEsc() {
163+
for(CWidget widget : children) {
164+
if(!widget.enableClosingOnEsc())
165+
{
166+
return false;
167+
}
168+
}
169+
170+
return CWidget.super.enableClosingOnEsc();
171+
}
160172
}

src/main/java/io/github/techstreet/dfscript/screen/widget/CWidget.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ default void renderOverlay(MatrixStack stack, int mouseX, int mouseY, float tick
2525
}
2626

2727
Rectangle getBounds();
28+
29+
default boolean enableClosingOnEsc(){
30+
return true;
31+
}
2832
}

0 commit comments

Comments
 (0)