Fixed #2756
This commit is contained in:
@@ -35,7 +35,7 @@ public class BlockRenderer implements Disposable{
|
|||||||
private FrameBuffer dark = new FrameBuffer();
|
private FrameBuffer dark = new FrameBuffer();
|
||||||
private Seq<Building> outArray2 = new Seq<>();
|
private Seq<Building> outArray2 = new Seq<>();
|
||||||
private Seq<Tile> shadowEvents = new Seq<>();
|
private Seq<Tile> shadowEvents = new Seq<>();
|
||||||
private IntSet processedEntities = new IntSet();
|
private IntSet processedEntities = new IntSet(), processedLinks = new IntSet();
|
||||||
private boolean displayStatus = false;
|
private boolean displayStatus = false;
|
||||||
|
|
||||||
public BlockRenderer(){
|
public BlockRenderer(){
|
||||||
@@ -180,6 +180,7 @@ public class BlockRenderer implements Disposable{
|
|||||||
tileview.clear();
|
tileview.clear();
|
||||||
lightview.clear();
|
lightview.clear();
|
||||||
processedEntities.clear();
|
processedEntities.clear();
|
||||||
|
processedLinks.clear();
|
||||||
|
|
||||||
int minx = Math.max(avgx - rangex - expandr, 0);
|
int minx = Math.max(avgx - rangex - expandr, 0);
|
||||||
int miny = Math.max(avgy - rangey - expandr, 0);
|
int miny = Math.max(avgy - rangey - expandr, 0);
|
||||||
@@ -196,10 +197,15 @@ public class BlockRenderer implements Disposable{
|
|||||||
tile = tile.build.tile;
|
tile = tile.build.tile;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(block != Blocks.air && block.cacheLayer == CacheLayer.normal && (tile.build == null || !processedEntities.contains(tile.build.id()))){
|
if(block != Blocks.air && block.cacheLayer == CacheLayer.normal && (tile.build == null || !processedEntities.contains(tile.build.id))){
|
||||||
if(block.expanded || !expanded){
|
if(block.expanded || !expanded){
|
||||||
tileview.add(tile);
|
if(tile.build == null || processedLinks.add(tile.build.id)){
|
||||||
if(tile.build != null) processedEntities.add(tile.build.id());
|
tileview.add(tile);
|
||||||
|
if(tile.build != null){
|
||||||
|
processedEntities.add(tile.build.id);
|
||||||
|
processedLinks.add(tile.build.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//lights are drawn even in the expanded range
|
//lights are drawn even in the expanded range
|
||||||
@@ -209,7 +215,7 @@ public class BlockRenderer implements Disposable{
|
|||||||
|
|
||||||
if(tile.build != null && tile.build.power != null && tile.build.power.links.size > 0){
|
if(tile.build != null && tile.build.power != null && tile.build.power.links.size > 0){
|
||||||
for(Building other : tile.build.getPowerConnections(outArray2)){
|
for(Building other : tile.build.getPowerConnections(outArray2)){
|
||||||
if(other.block instanceof PowerNode){ //TODO need a generic way to render connections!
|
if(other.block instanceof PowerNode && processedLinks.add(other.id)){ //TODO need a generic way to render connections!
|
||||||
tileview.add(other.tile);
|
tileview.add(other.tile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ public class PowerNode extends PowerBlock{
|
|||||||
|
|
||||||
public PowerNode(String name){
|
public PowerNode(String name){
|
||||||
super(name);
|
super(name);
|
||||||
expanded = true;
|
|
||||||
configurable = true;
|
configurable = true;
|
||||||
consumesPower = false;
|
consumesPower = false;
|
||||||
outputsPower = false;
|
outputsPower = false;
|
||||||
@@ -392,7 +391,7 @@ public class PowerNode extends PowerBlock{
|
|||||||
|
|
||||||
if(!linkValid(this, link)) continue;
|
if(!linkValid(this, link)) continue;
|
||||||
|
|
||||||
if(link.block instanceof PowerNode && !(link.pos() < tile.pos())) continue;
|
if(link.block instanceof PowerNode && link.id >= id) continue;
|
||||||
|
|
||||||
drawLaser(team, x, y, link.x, link.y, size, link.block.size);
|
drawLaser(team, x, y, link.x, link.y, size, link.block.size);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user