Smarter payload routers / 2x display / Campaign tweaks
This commit is contained in:
@@ -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(){
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user