Removed unit formation minSpeed

This commit is contained in:
Anuken
2024-03-30 09:53:08 -04:00
parent 1c4dd8011c
commit d4abcc91ef
4 changed files with 1 additions and 38 deletions

View File

@@ -12,30 +12,12 @@ import mindustry.async.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.core.*; import mindustry.core.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.world.blocks.environment.*;
public class UnitGroup{ public class UnitGroup{
public Seq<Unit> units = new Seq<>(); public Seq<Unit> units = new Seq<>();
public int collisionLayer; public int collisionLayer;
public volatile float[] positions, originalPositions; public volatile float[] positions, originalPositions;
public volatile boolean valid; public volatile boolean valid;
public long lastSpeedUpdate = -1;
public float minSpeed = 999999f;
public void updateMinSpeed(){
if(lastSpeedUpdate == Vars.state.updateId) return;
lastSpeedUpdate = Vars.state.updateId;
minSpeed = 999999f;
for(Unit unit : units){
//don't factor in the floor speed multiplier
Floor on = unit.isFlying() ? Blocks.air.asFloor() : unit.floorOn();
minSpeed = Math.min(unit.speed() / on.speedMultiplier, minSpeed);
}
if(Float.isInfinite(minSpeed) || Float.isNaN(minSpeed)) minSpeed = 999999f;
}
public void calculateFormation(Vec2 dest, int collisionLayer){ public void calculateFormation(Vec2 dest, int collisionLayer){
this.collisionLayer = collisionLayer; this.collisionLayer = collisionLayer;
@@ -58,8 +40,6 @@ public class UnitGroup{
unit.command().groupIndex = i; unit.command().groupIndex = i;
} }
updateMinSpeed();
//run on new thread to prevent stutter //run on new thread to prevent stutter
Vars.mainExecutor.submit(() -> { Vars.mainExecutor.submit(() -> {
//unused space between circles that needs to be reached for compression to end //unused space between circles that needs to be reached for compression to end

View File

@@ -148,10 +148,6 @@ public class CommandAI extends AIController{
} }
} }
if(group != null){
group.updateMinSpeed();
}
if(!net.client() && command == UnitCommand.enterPayloadCommand && unit.buildOn() != null && (targetPos == null || (world.buildWorld(targetPos.x, targetPos.y) != null && world.buildWorld(targetPos.x, targetPos.y) == unit.buildOn()))){ if(!net.client() && command == UnitCommand.enterPayloadCommand && unit.buildOn() != null && (targetPos == null || (world.buildWorld(targetPos.x, targetPos.y) != null && world.buildWorld(targetPos.x, targetPos.y) == unit.buildOn()))){
var build = unit.buildOn(); var build = unit.buildOn();
tmpPayload.unit = unit; tmpPayload.unit = unit;
@@ -363,11 +359,6 @@ public class CommandAI extends AIController{
} }
} }
@Override
public float prefSpeed(){
return group == null ? super.prefSpeed() : Math.min(group.minSpeed, unit.speed());
}
@Override @Override
public boolean shouldFire(){ public boolean shouldFire(){
return stance != UnitStance.holdFire; return stance != UnitStance.holdFire;

View File

@@ -311,18 +311,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
} }
} }
float minSpeed = 100000000f;
for(int i = 0; i < groups.length; i ++){ for(int i = 0; i < groups.length; i ++){
var group = groups[i]; var group = groups[i];
if(group != null && group.units.size > 0){ if(group != null && group.units.size > 0){
group.calculateFormation(targetAsVec, i); group.calculateFormation(targetAsVec, i);
minSpeed = Math.min(group.minSpeed, minSpeed);
}
}
for(var group : groups){
if(group != null){
group.minSpeed = minSpeed;
} }
} }
} }

View File

@@ -25,4 +25,4 @@ org.gradle.caching=true
#used for slow jitpack builds; TODO see if this actually works #used for slow jitpack builds; TODO see if this actually works
org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.socketTimeout=100000
org.gradle.internal.http.connectionTimeout=100000 org.gradle.internal.http.connectionTimeout=100000
archash=8d5651a6ad archash=e312cc96f5