Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2025-04-29 12:23:16 -04:00
38 changed files with 101 additions and 3 deletions

View File

@@ -42,6 +42,8 @@ public class Binding{
selectAllUnits = KeyBind.add("select_all_units", KeyCode.g),
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),

View File

@@ -294,9 +294,30 @@ public class DesktopInput extends InputHandler{
if(input.keyTap(Binding.selectAllUnits)){
selectedUnits.clear();
commandBuildings.clear();
for(var unit : player.team().data().units){
if(unit.allowCommand()){
selectedUnits.add(unit);
if(input.keyDown(Binding.selectAcrossScreen)){
camera.bounds(Tmp.r1);
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);
}
}
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++){