Smarter payload routers / 2x display / Campaign tweaks

This commit is contained in:
Anuken
2020-09-14 14:09:15 -04:00
parent d6447cb31a
commit 50816deb9e
25 changed files with 5163 additions and 5021 deletions

View File

@@ -108,6 +108,7 @@ public class PayloadConveyor extends Block{
if(curStep > step){
boolean valid = step != -1;
step = curStep;
boolean had = item != null;
if(valid && stepAccepted != curStep && item != null){
if(next != null){
@@ -129,9 +130,17 @@ public class PayloadConveyor extends Block{
}
}
}
if(had && item != null){
moveFailed();
}
}
}
public void moveFailed(){
}
public void moved(){
}

View File

@@ -5,7 +5,9 @@ import arc.math.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.blocks.payloads.*;
public class PayloadRouter extends PayloadConveyor{
public @Load("@-over") TextureRegion overRegion;
@@ -33,13 +35,25 @@ public class PayloadRouter extends PayloadConveyor{
smoothRot = rotdeg();
}
public void pickNext(){
if(item != null){
int rotations = 0;
do{
rotation = (rotation + 1) % 4;
onProximityUpdate();
}while((blocked || next == null || !next.acceptPayload(next, item)) && ++rotations < 4);
}
}
@Override
public void moved(){
int rotations = 0;
do{
rotation = (rotation + 1) % 4;
onProximityUpdate();
}while((blocked || next == null) && ++rotations < 4);
public void handlePayload(Building source, Payload payload){
super.handlePayload(source, payload);
pickNext();
}
@Override
public void moveFailed(){
pickNext();
}
@Override

View File

@@ -9,8 +9,8 @@ import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.world.*;
import mindustry.world.meta.*;
public class LogicDisplay extends Block{
public static final byte
@@ -34,11 +34,18 @@ public class LogicDisplay extends Block{
solid = true;
}
@Override
public void setStats(){
super.setStats();
stats.add(BlockStat.displaySize, "@x@", displaySize, displaySize);
}
public class LogicDisplayBuild extends Building{
public FrameBuffer buffer;
public float color = Color.whiteFloatBits;
public float stroke = 1f;
public LongQueue commands = new LongQueue(LExecutor.maxDisplayBuffer);
public LongQueue commands = new LongQueue(256);
@Override
public void draw(){

View File

@@ -8,6 +8,7 @@ import java.util.Locale;
public enum BlockStat{
health(StatCategory.general),
size(StatCategory.general),
displaySize(StatCategory.general),
buildTime(StatCategory.general),
buildCost(StatCategory.general),