Keybind search bar + modding support

This commit is contained in:
Anuken
2025-04-28 22:13:32 -04:00
parent ca550545bc
commit e414b02030
22 changed files with 326 additions and 421 deletions

View File

@@ -1,127 +1,109 @@
package mindustry.input;
import arc.KeyBinds.*;
import arc.input.InputDevice.*;
import arc.input.*;
import arc.input.KeyBind.*;
import mindustry.*;
public enum Binding implements KeyBind{
move_x(new Axis(KeyCode.a, KeyCode.d), "general"),
move_y(new Axis(KeyCode.s, KeyCode.w)),
mouse_move(KeyCode.mouseBack),
pan(KeyCode.mouseForward),
public class Binding{
public static final KeyBind
boost(KeyCode.shiftLeft),
respawn(KeyCode.v),
control(KeyCode.controlLeft),
select(KeyCode.mouseLeft),
deselect(KeyCode.mouseRight),
break_block(KeyCode.mouseRight),
moveX = KeyBind.add("move_x", new Axis(KeyCode.a, KeyCode.d), "general"),
moveY = KeyBind.add("move_y", new Axis(KeyCode.s, KeyCode.w)),
mouseMove = KeyBind.add("mouse_move", KeyCode.mouseBack),
pan = KeyBind.add("pan", KeyCode.mouseForward),
pickupCargo(KeyCode.leftBracket),
dropCargo(KeyCode.rightBracket),
boost = KeyBind.add("boost", KeyCode.shiftLeft),
respawn = KeyBind.add("respawn", KeyCode.v),
control = KeyBind.add("control", KeyCode.controlLeft),
select = KeyBind.add("select", KeyCode.mouseLeft),
deselect = KeyBind.add("deselect", KeyCode.mouseRight),
breakBlock = KeyBind.add("break_block", KeyCode.mouseRight),
clear_building(KeyCode.q),
pause_building(KeyCode.e),
rotate(new Axis(KeyCode.scroll)),
rotateplaced(KeyCode.r),
diagonal_placement(KeyCode.controlLeft),
pick(KeyCode.mouseMiddle),
pickupCargo = KeyBind.add("pickupCargo", KeyCode.leftBracket),
dropCargo = KeyBind.add("dropCargo", KeyCode.rightBracket),
rebuild_select(KeyCode.b),
schematic_select(KeyCode.f),
schematic_flip_x(KeyCode.z),
schematic_flip_y(KeyCode.x),
schematic_menu(KeyCode.t),
clearBuilding = KeyBind.add("clear_building", KeyCode.q),
pauseBuilding = KeyBind.add("pause_building", KeyCode.e),
rotate = KeyBind.add("rotate", new Axis(KeyCode.scroll)),
rotatePlaced = KeyBind.add("rotateplaced", KeyCode.r),
diagonalPlacement = KeyBind.add("diagonal_placement", KeyCode.controlLeft),
pick = KeyBind.add("pick", KeyCode.mouseMiddle),
rebuildSelect = KeyBind.add("rebuild_select", KeyCode.b),
schematicSelect = KeyBind.add("schematic_select", KeyCode.f),
schematicFlipX = KeyBind.add("schematic_flip_x", KeyCode.z),
schematicFlipY = KeyBind.add("schematic_flip_y", KeyCode.x),
schematicMenu = KeyBind.add("schematic_menu", KeyCode.t),
command_mode(KeyCode.shiftLeft, "command"),
command_queue(KeyCode.mouseMiddle),
create_control_group(KeyCode.controlLeft),
commandMode = KeyBind.add("command_mode", KeyCode.shiftLeft, "command"),
commandQueue = KeyBind.add("command_queue", KeyCode.mouseMiddle),
createControlGroup = KeyBind.add("create_control_group", KeyCode.controlLeft),
select_all_units(KeyCode.g),
select_all_unit_factories(KeyCode.h),
selectAllUnits = KeyBind.add("select_all_units", KeyCode.g),
selectAllUnitFactories = KeyBind.add("select_all_unit_factories", KeyCode.h),
cancel_orders(KeyCode.unset),
cancelOrders = KeyBind.add("cancel_orders", KeyCode.unset),
unit_stance_shoot(KeyCode.unset),
unit_stance_hold_fire(KeyCode.unset),
unit_stance_pursue_target(KeyCode.unset),
unit_stance_patrol(KeyCode.unset),
unit_stance_ram(KeyCode.unset),
unitStanceShoot = KeyBind.add("unit_stance_shoot", KeyCode.unset),
unitStanceHoldFire = KeyBind.add("unit_stance_hold_fire", KeyCode.unset),
unitStancePursueTarget = KeyBind.add("unit_stance_pursue_target", KeyCode.unset),
unitStancePatrol = KeyBind.add("unit_stance_patrol", KeyCode.unset),
unitStanceRam = KeyBind.add("unit_stance_ram", KeyCode.unset),
unit_command_move(KeyCode.unset),
unit_command_repair(KeyCode.unset),
unit_command_rebuild(KeyCode.unset),
unit_command_assist(KeyCode.unset),
unit_command_mine(KeyCode.unset),
unit_command_boost(KeyCode.unset),
unit_command_enter_payload(KeyCode.unset),
unit_command_load_units(KeyCode.unset),
unit_command_load_blocks(KeyCode.unset),
unit_command_unload_payload(KeyCode.unset),
unit_command_loop_payload(KeyCode.unset),
unitCommandMove = KeyBind.add("unit_command_move", KeyCode.unset),
unitCommandRepair = KeyBind.add("unit_command_repair", KeyCode.unset),
unitCommandRebuild = KeyBind.add("unit_command_rebuild", KeyCode.unset),
unitCommandAssist = KeyBind.add("unit_command_assist", KeyCode.unset),
unitCommandNine = KeyBind.add("unit_command_mine", KeyCode.unset),
unitCommandBoost = KeyBind.add("unit_command_boost", KeyCode.unset),
unitCommandEnterPayload = KeyBind.add("unit_command_enter_payload", KeyCode.unset),
unitCommandLoadUnits = KeyBind.add("unit_command_load_units", KeyCode.unset),
unitCommandLoadBlocks = KeyBind.add("unit_command_load_blocks", KeyCode.unset),
unitCommandUnloadPayload = KeyBind.add("unit_command_unload_payload", KeyCode.unset),
unitCommandLoopPayload = KeyBind.add("unit_command_loop_payload", KeyCode.unset),
category_prev(KeyCode.comma, "blocks"),
category_next(KeyCode.period),
categoryPrev = KeyBind.add("category_prev", KeyCode.comma, "blocks"),
categoryNext = KeyBind.add("category_next", KeyCode.period),
block_select_left(KeyCode.left),
block_select_right(KeyCode.right),
block_select_up(KeyCode.up),
block_select_down(KeyCode.down),
block_select_01(KeyCode.num1),
block_select_02(KeyCode.num2),
block_select_03(KeyCode.num3),
block_select_04(KeyCode.num4),
block_select_05(KeyCode.num5),
block_select_06(KeyCode.num6),
block_select_07(KeyCode.num7),
block_select_08(KeyCode.num8),
block_select_09(KeyCode.num9),
block_select_10(KeyCode.num0),
blockSelectLeft = KeyBind.add("block_select_left", KeyCode.left),
blockSelectRight = KeyBind.add("block_select_right", KeyCode.right),
blockSelectUp = KeyBind.add("block_select_up", KeyCode.up),
blockSelectDown = KeyBind.add("block_select_down", KeyCode.down),
blockSelect01 = KeyBind.add("block_select_01", KeyCode.num1),
blockSelect02 = KeyBind.add("block_select_02", KeyCode.num2),
blockSelect03 = KeyBind.add("block_select_03", KeyCode.num3),
blockSelect04 = KeyBind.add("block_select_04", KeyCode.num4),
blockSelect05 = KeyBind.add("block_select_05", KeyCode.num5),
blockSelect06 = KeyBind.add("block_select_06", KeyCode.num6),
blockSelect07 = KeyBind.add("block_select_07", KeyCode.num7),
blockSelect08 = KeyBind.add("block_select_08", KeyCode.num8),
blockSelect09 = KeyBind.add("block_select_09", KeyCode.num9),
blockSelect10 = KeyBind.add("block_select_10", KeyCode.num0),
zoom(new Axis(KeyCode.scroll), "view"),
detach_camera(KeyCode.unset),
menu(Vars.android ? KeyCode.back : KeyCode.escape),
fullscreen(KeyCode.f11),
pause(KeyCode.space),
skip_wave(KeyCode.unset),
minimap(KeyCode.m),
research(KeyCode.j),
planet_map(KeyCode.n),
block_info(KeyCode.f1),
toggle_menus(KeyCode.c),
screenshot(KeyCode.p),
toggle_power_lines(KeyCode.f5),
toggle_block_status(KeyCode.f6),
player_list(KeyCode.tab, "multiplayer"),
chat(KeyCode.enter),
chat_history_prev(KeyCode.up),
chat_history_next(KeyCode.down),
chat_scroll(new Axis(KeyCode.scroll)),
chat_mode(KeyCode.tab),
console(KeyCode.f8),
zoom = KeyBind.add("zoom", new Axis(KeyCode.scroll), "view"),
detachCamera = KeyBind.add("detach_camera", KeyCode.unset),
menu = KeyBind.add("menu", Vars.android ? KeyCode.back : KeyCode.escape),
fullscreen = KeyBind.add("fullscreen", KeyCode.f11),
pause = KeyBind.add("pause", KeyCode.space),
skipWave = KeyBind.add("skip_wave", KeyCode.unset),
minimap = KeyBind.add("minimap", KeyCode.m),
research = KeyBind.add("research", KeyCode.j),
planetMap = KeyBind.add("planet_map", KeyCode.n),
blockInfo = KeyBind.add("block_info", KeyCode.f1),
toggleMenus = KeyBind.add("toggle_menus", KeyCode.c),
screenshot = KeyBind.add("screenshot", KeyCode.p),
togglePowerLines = KeyBind.add("toggle_power_lines", KeyCode.f5),
toggleBlockStatus = KeyBind.add("toggle_block_status", KeyCode.f6),
playerList = KeyBind.add("player_list", KeyCode.tab, "multiplayer"),
chat = KeyBind.add("chat", KeyCode.enter),
chatHistoryPrev = KeyBind.add("chat_history_prev", KeyCode.up),
chatHistoryNext = KeyBind.add("chat_history_next", KeyCode.down),
chatScroll = KeyBind.add("chat_scroll", new Axis(KeyCode.scroll)),
chatMode = KeyBind.add("chat_mode", KeyCode.tab),
console = KeyBind.add("console", KeyCode.f8)
;
private final KeybindValue defaultValue;
private final String category;
Binding(KeybindValue defaultValue, String category){
this.defaultValue = defaultValue;
this.category = category;
}
Binding(KeybindValue defaultValue){
this(defaultValue, null);
}
@Override
public KeybindValue defaultValue(DeviceType type){
return defaultValue;
}
@Override
public String category(){
return category;
}
//dummy static class initializer
public static void init(){}
}