Cause a rescan in the main thread and wait for controller rescanning to complete before processing controller configuration.
Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com> Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
daf9122bcd
commit
d3bc17a26e
@ -75,6 +75,8 @@ public class RabiClone {
|
||||
public static long TIME = 0;
|
||||
public static long scaleTime;
|
||||
|
||||
public static boolean reloadControllerList = false;
|
||||
|
||||
public static HashMap<Action,List<KeyBind>> DEFAULT_KEYBINDS = new HashMap<>();
|
||||
|
||||
public static RenderingHints RENDERHINTS = new RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
|
||||
@ -134,10 +136,14 @@ public class RabiClone {
|
||||
|
||||
KeyBind.poll();
|
||||
|
||||
if (Key.isKeyHeld(KeyEvent.VK_F5) && System.currentTimeMillis() - lastControllerScan > 5000) {
|
||||
if ((Key.isKeyHeld(KeyEvent.VK_F5)||reloadControllerList) && System.currentTimeMillis() - lastControllerScan > 5000) {
|
||||
CONTROLLERS = ControllerEnvironment.getDefaultEnvironment().rescanControllers();
|
||||
System.out.println(Arrays.toString(CONTROLLERS));
|
||||
lastControllerScan = System.currentTimeMillis();
|
||||
if (reloadControllerList) {
|
||||
ConfigureControls.LoadControls();
|
||||
}
|
||||
reloadControllerList=false;
|
||||
}
|
||||
|
||||
FRIENDLY_OBJ.clear();
|
||||
|
||||
@ -5,7 +5,6 @@ import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@ -13,7 +12,6 @@ import java.util.List;
|
||||
|
||||
import net.java.games.input.Component;
|
||||
import net.java.games.input.Controller;
|
||||
import net.java.games.input.ControllerEnvironment;
|
||||
import net.java.games.input.Event;
|
||||
import net.java.games.input.Component.Identifier;
|
||||
import net.java.games.input.Component.POV;
|
||||
@ -46,7 +44,7 @@ public class ConfigureControls extends Object{
|
||||
super(panel);
|
||||
RabiClone.BACKGROUND_COLOR = PaletteColor.WHITE;
|
||||
if (GAME_CONTROLS_FILE.exists()) {
|
||||
LoadControls();
|
||||
RabiClone.reloadControllerList = true;
|
||||
}
|
||||
updateHighlightSections();
|
||||
}
|
||||
@ -54,7 +52,6 @@ public class ConfigureControls extends Object{
|
||||
public static void LoadControls() {
|
||||
try {
|
||||
DataInputStream stream = new DataInputStream(new FileInputStream(GAME_CONTROLS_FILE));
|
||||
Controller[] CONTROLLERS = ControllerEnvironment.getDefaultEnvironment().rescanControllers();
|
||||
KeyBind.KEYBINDS.clear();
|
||||
while (stream.available()>0) {
|
||||
Action a = Action.valueOf(readString(stream));
|
||||
@ -67,13 +64,13 @@ public class ConfigureControls extends Object{
|
||||
} else {
|
||||
java.lang.String controllerName = readString(stream);
|
||||
Controller controller=null;
|
||||
for (int i = 0; i < CONTROLLERS.length; i++) {
|
||||
if (CONTROLLERS[i].getType() == Controller.Type.KEYBOARD
|
||||
|| CONTROLLERS[i].getType() == Controller.Type.MOUSE) {
|
||||
for (int i = 0; i < RabiClone.CONTROLLERS.length; i++) {
|
||||
if (RabiClone.CONTROLLERS[i].getType() == Controller.Type.KEYBOARD
|
||||
|| RabiClone.CONTROLLERS[i].getType() == Controller.Type.MOUSE) {
|
||||
continue;
|
||||
} else
|
||||
if (CONTROLLERS[i].getName().equals(controllerName)) {
|
||||
controller=CONTROLLERS[i];
|
||||
if (RabiClone.CONTROLLERS[i].getName().equals(controllerName)) {
|
||||
controller=RabiClone.CONTROLLERS[i];
|
||||
}
|
||||
}
|
||||
if (controller==null) {
|
||||
@ -205,6 +202,7 @@ public class ConfigureControls extends Object{
|
||||
|
||||
@Override
|
||||
public void draw(byte[] p) {
|
||||
if (!RabiClone.reloadControllerList) {
|
||||
int y = 4;
|
||||
if (!assigningKey) {
|
||||
selectedAction=null;
|
||||
@ -237,6 +235,9 @@ public class ConfigureControls extends Object{
|
||||
} else {
|
||||
Draw_Text_Ext(4, 4, new String("Press a key to assign to ").append(selectedAction), Font.PROFONT_12, Alpha.ALPHA0, PaletteColor.MIDNIGHT_BLUE);
|
||||
}
|
||||
} else {
|
||||
Draw_Text_Ext(4, 4, new String("Preparing controller list..."), Font.PROFONT_12, Alpha.ALPHA0, PaletteColor.MIDNIGHT_BLUE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user