Skip to content
This repository was archived by the owner on Jan 3, 2020. It is now read-only.

Commit 7cf12e8

Browse files
committed
CreativeContainerBridge
1 parent 8a08bc4 commit 7cf12e8

File tree

5 files changed

+79
-5
lines changed

5 files changed

+79
-5
lines changed

src/main/java/org/devinprogress/YAIF/Bridges/BaseActionBridge.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public void bindKeys(JTextField textField){
5959
public void unlink(JTextField t){
6060
if(documentListener!=null)
6161
t.getDocument().removeDocumentListener(documentListener);
62+
t.setText("");
6263
}
6364
public void onTabComplete(GuiChat chatScreen){
6465
throw new RuntimeException("WTF TabComplete?!");
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package org.devinprogress.YAIF.Bridges;
2+
3+
import net.minecraft.client.gui.GuiTextField;
4+
import net.minecraft.client.gui.inventory.GuiContainerCreative;
5+
import org.devinprogress.YAIF.InputFieldWrapper;
6+
import org.devinprogress.YAIF.YetAnotherInputFix;
7+
8+
import javax.swing.*;
9+
import java.awt.event.ActionEvent;
10+
import java.awt.event.KeyEvent;
11+
12+
/**
13+
* Created by recursiveg on 14-11-12.
14+
*/
15+
public class CreativeInventoryBridge extends BaseActionBridge{
16+
private GuiContainerCreative gui;
17+
private GuiTextField searchField;
18+
private InputFieldWrapper wrapper;
19+
20+
public CreativeInventoryBridge(GuiContainerCreative gui,GuiTextField tf,InputFieldWrapper w){
21+
this.gui=gui;
22+
searchField=tf;
23+
wrapper=w;
24+
}
25+
26+
@Override
27+
public boolean needShow(){
28+
return true;
29+
}
30+
31+
@Override
32+
public void bindKeys(JTextField tf){
33+
super.bindKeys(tf);
34+
35+
bindKey(tf, KeyEvent.VK_ESCAPE, "esc", new AbstractAction() {
36+
@Override
37+
public void actionPerformed(ActionEvent e) {
38+
YetAnotherInputFix.log("CreativeInventoryBridge ESC Pressed");
39+
wrapper.bridgeQuit();
40+
}
41+
});
42+
43+
setListenDocumentEvent(tf);
44+
}
45+
46+
@Override
47+
protected void textUpdated(){
48+
final String str=wrapper.getText();
49+
if(str.length()>15){
50+
SwingUtilities.invokeLater(new Runnable() {
51+
@Override
52+
public void run() {
53+
textChangedByBridge=true;
54+
wrapper.setText(str.substring(0,15));
55+
}
56+
});
57+
searchField.setText(str.substring(0,15));
58+
}else {
59+
searchField.setText(str);
60+
}
61+
//gui.updateCreativeSearch();
62+
}
63+
}

src/main/java/org/devinprogress/YAIF/GuiStateManager.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import net.minecraft.client.gui.GuiScreen;
77
import net.minecraft.client.gui.GuiScreenBook;
88
import net.minecraft.client.gui.GuiTextField;
9+
import net.minecraft.client.gui.inventory.GuiContainerCreative;
910
import net.minecraft.client.gui.inventory.GuiEditSign;
1011
import org.devinprogress.YAIF.Bridges.*;
1112
import org.lwjgl.opengl.Display;
@@ -51,8 +52,9 @@ public void TextFieldFocusChanged(GuiScreen screen, GuiTextField textField, bool
5152
bridge=getNewBridge();
5253
wrapper.setupBridge(bridge);
5354
}else{//the TextField in a new bridge
54-
if(screen==incomingScreen) {
55-
currentScreen = incomingScreen;
55+
if(screen==incomingScreen||screen==currentScreen) {
56+
currentScreen = screen;
57+
incomingScreen=null;
5658
currentTextField = textField;
5759
bridge = getNewBridge();
5860
wrapper.setupBridge(bridge);/*
@@ -71,6 +73,8 @@ public void TextFieldFocusChanged(GuiScreen screen, GuiTextField textField, bool
7173
bridge = null;
7274
currentTextField=null;
7375
}
76+
if(currentScreen instanceof GuiContainerCreative)
77+
wrapper.closeInputField();
7478
}
7579
}
7680

@@ -79,6 +83,8 @@ private BaseActionBridge getNewBridge() {
7983
return new GuiChatBridge(currentTextField,(GuiChat)currentScreen,wrapper);
8084
else if(currentScreen instanceof GuiEditSign)
8185
return new EditSignBridge((GuiEditSign)currentScreen,wrapper);
86+
else if(currentScreen instanceof GuiContainerCreative)
87+
return new CreativeInventoryBridge((GuiContainerCreative)currentScreen,currentTextField,wrapper);
8288
else if(hasGuiTextField(currentScreen))
8389
return new CommonBridgeTextField(currentScreen,currentTextField,wrapper);
8490
else
@@ -104,13 +110,16 @@ public void preInitGuiEvent(GuiScreen gui){
104110
public void postInitGuiEvent(GuiScreen screen) {
105111
if(screen instanceof GuiEditSign||screen instanceof GuiScreenBook){
106112
currentScreen=screen;
113+
incomingScreen=null;
107114
bridge=getNewBridge();
108115
wrapper.setupBridge(bridge);
109116
}
110-
if (incomingScreen!=null) {
117+
if (incomingScreen==screen) {
111118
currentScreen = incomingScreen;
112119
incomingScreen = null;
113-
}else{
120+
}else if(currentScreen!=null){
121+
return;
122+
}else if(bridge==null){
114123
wrapper.closeInputField();
115124
bridge=null;
116125
this.currentScreen=null;

src/main/java/org/devinprogress/YAIF/YetAnotherInputFix.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static void TextFieldFocusChange(GuiTextField textField, boolean isFocuse
3939
}
4040

4141
//called from net.minecraft.client.network.NetHandlerPlayClient.handleTabComplete
42-
public static void onTabComplete(){
42+
public static void onTabCompletePacket(){
4343
log("TabComplete Packet Received");
4444
stateMachine.onTabCompletePacket(FMLClientHandler.instance().getClient().currentScreen);
4545
}

src/main/resources/inputfix_at.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ public net.minecraft.client.gui.inventory.GuiEditSign field_146851_h #editLine
33
public net.minecraft.client.gui.GuiChat func_73869_a(CI)V #keyTyped
44
public net.minecraft.client.gui.GuiSleepMP func_73869_a(CI)V #keyTyped
55
public net.minecraft.client.gui.GuiChat field_146409_v #defaultInputFieldText
6+
public net.minecraft.client.gui.inventory.GuiContainerCreative func_147053_i()V #updateCreativeSearch

0 commit comments

Comments
 (0)