Unit Transport And on Screen selecting instead (#10740)

* Select all Transport Hotkey,

- hotkey for selecting Payloadc units
- Changed all select all keys to be only select units on screen

* s

* Inverse

* maybe actually set the temp var

* overlap

* blindness
This commit is contained in:
RushieWashie
2025-04-29 22:18:30 +08:00
committed by GitHub
parent e06229c5ac
commit f9fb59fb06
4 changed files with 33 additions and 3 deletions

View File

@@ -1359,6 +1359,8 @@ keybind.pick.name = Pick Block
keybind.break_block.name = Break Block keybind.break_block.name = Break Block
keybind.select_all_units.name = Select All Units keybind.select_all_units.name = Select All Units
keybind.select_all_unit_factories.name = Select All Unit Factories keybind.select_all_unit_factories.name = Select All Unit Factories
keybind.select_all_unit_transport.name = Select All Unit Transports
keybind.select_across_screen.name = Select Across Screen (Hold)
keybind.deselect.name = Deselect keybind.deselect.name = Deselect
keybind.pickupCargo.name = Pickup Cargo keybind.pickupCargo.name = Pickup Cargo
keybind.dropCargo.name = Drop Cargo keybind.dropCargo.name = Drop Cargo

View File

@@ -179,3 +179,4 @@ cardillan
Justacommonegg Justacommonegg
IchMagSchokolade IchMagSchokolade
MonoChronos MonoChronos
RushieWashie

View File

@@ -42,6 +42,8 @@ public class Binding{
selectAllUnits = KeyBind.add("select_all_units", KeyCode.g), selectAllUnits = KeyBind.add("select_all_units", KeyCode.g),
selectAllUnitFactories = KeyBind.add("select_all_unit_factories", KeyCode.h), selectAllUnitFactories = KeyBind.add("select_all_unit_factories", KeyCode.h),
selectAllUnitTransport = KeyBind.add("select_all_unit_transport", KeyCode.unset),
selectAcrossScreen = KeyBind.add("select_across_screen", KeyCode.altLeft),
cancelOrders = KeyBind.add("cancel_orders", KeyCode.unset), cancelOrders = KeyBind.add("cancel_orders", KeyCode.unset),

View File

@@ -294,9 +294,30 @@ public class DesktopInput extends InputHandler{
if(input.keyTap(Binding.selectAllUnits)){ if(input.keyTap(Binding.selectAllUnits)){
selectedUnits.clear(); selectedUnits.clear();
commandBuildings.clear(); commandBuildings.clear();
for(var unit : player.team().data().units){ if(input.keyDown(Binding.selectAcrossScreen)){
if(unit.allowCommand()){ camera.bounds(Tmp.r1);
selectedUnits.add(unit); selectedUnits.set(selectedCommandUnits(Tmp.r1.x, Tmp.r1.y, Tmp.r1.width, Tmp.r1.height));
}else {
for(var unit : player.team().data().units){
if(unit.allowCommand()){
selectedUnits.add(unit);
}
}
}
}
if(input.keyTap(Binding.selectAllUnitTransport)){
selectedUnits.clear();
commandBuildings.clear();
if(input.keyDown(Binding.selectAcrossScreen)){
camera.bounds(Tmp.r1);
selectedUnits.set(selectedCommandUnits(Tmp.r1.x, Tmp.r1.y, Tmp.r1.width, Tmp.r1.height, u -> u instanceof Payloadc));
}else {
for(var unit : player.team().data().units){
if(unit.allowCommand() && unit instanceof Payloadc){
selectedUnits.add(unit);
}
} }
} }
} }
@@ -309,6 +330,10 @@ public class DesktopInput extends InputHandler{
commandBuildings.add(build); commandBuildings.add(build);
} }
} }
if(input.keyDown(Binding.selectAcrossScreen)){
camera.bounds(Tmp.r1);
commandBuildings.retainAll(b -> Tmp.r1.overlaps(b.x - (b.hitSize() /2), b.y - (b.hitSize() /2), b.hitSize(), b.hitSize()));
}
} }
for(int i = 0; i < controlGroupBindings.length; i++){ for(int i = 0; i < controlGroupBindings.length; i++){