Bugfixes, tweaks

This commit is contained in:
Anuken 2020-03-04 13:48:00 -05:00
parent fbbec816e8
commit 3eea0ea065
3 changed files with 32 additions and 10 deletions

View File

@ -68,7 +68,7 @@ public class BuildBlock extends Block{
tile.entity.health(block.health * healthf); tile.entity.health(block.health * healthf);
} }
//last builder was this local client player, call placed() //last builder was this local client player, call placed()
if(!headless && builderID == player.id()){ if(!headless && builderID == player.unit().id()){
if(!skipConfig){ if(!skipConfig){
tile.block().playerPlaced(tile); tile.block().playerPlaced(tile);
} }

View File

@ -86,7 +86,7 @@ public class ItemBridge extends Block{
} }
public Tile findLink(int x, int y){ public Tile findLink(int x, int y){
if(world.tile(x, y) != null && linkValid(world.tile(x, y), world.tile(lastPlaced)) && lastPlaced != Point2.pack(x, y)){ if(world.tiles.in(x, y) && linkValid(world.tile(x, y), world.tile(lastPlaced)) && lastPlaced != Point2.pack(x, y)){
return world.tile(lastPlaced); return world.tile(lastPlaced);
} }
return null; return null;

View File

@ -1,14 +1,15 @@
package mindustry.world.blocks.power; package mindustry.world.blocks.power;
import arc.*; import arc.*;
import arc.struct.*;
import arc.func.*; import arc.func.*;
import arc.graphics.*; import arc.graphics.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import arc.math.geom.*; import arc.math.geom.*;
import arc.util.*; import arc.struct.*;
import arc.util.ArcAnnotate.*; import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.entities.units.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.ui.*; import mindustry.ui.*;
@ -20,6 +21,7 @@ import static mindustry.Vars.*;
public class PowerNode extends PowerBlock{ public class PowerNode extends PowerBlock{
protected static boolean returnValue = false; protected static boolean returnValue = false;
protected static BuildRequest otherReq;
protected final ObjectSet<PowerGraph> graphs = new ObjectSet<>(); protected final ObjectSet<PowerGraph> graphs = new ObjectSet<>();
protected final Vec2 t1 = new Vec2(), t2 = new Vec2(); protected final Vec2 t1 = new Vec2(), t2 = new Vec2();
@ -287,6 +289,25 @@ public class PowerNode extends PowerBlock{
Draw.reset(); Draw.reset();
} }
@Override
public void drawRequestConfigTop(BuildRequest req, Eachable<BuildRequest> list){
if(req.config instanceof Point2[]){
for(Point2 point : (Point2[])req.config){
otherReq = null;
list.each(other -> {
if(other.x == point.x && other.y == point.y){
Log.info("found match " + other);
otherReq = other;
}
});
if(otherReq == null || otherReq.block == null) return;
drawLaser(req.drawx(), req.drawy(), otherReq.drawx(), otherReq.drawy(), 1f, size, otherReq.block.size);
}
}
}
protected boolean linked(Tile tile, Tile other){ protected boolean linked(Tile tile, Tile other){
return tile.entity.power().links.contains(other.pos()); return tile.entity.power().links.contains(other.pos());
} }
@ -321,24 +342,25 @@ public class PowerNode extends PowerBlock{
} }
protected void drawLaser(Tile tile, Tile target){ protected void drawLaser(Tile tile, Tile target){
drawLaser(tile.drawx(), tile.drawy(), target.drawx(), target.drawy(), tile.entity.power().graph.getSatisfaction(), size, target.block().size);
}
protected void drawLaser(float x1, float y1, float x2, float y2, float satisfaction, int size1, int size2){
int opacityPercentage = Core.settings.getInt("lasersopacity"); int opacityPercentage = Core.settings.getInt("lasersopacity");
if(opacityPercentage == 0) return; if(opacityPercentage == 0) return;
float opacity = opacityPercentage / 100f; float opacity = opacityPercentage / 100f;
float x1 = tile.drawx(), y1 = tile.drawy(),
x2 = target.drawx(), y2 = target.drawy();
float angle1 = Angles.angle(x1, y1, x2, y2); float angle1 = Angles.angle(x1, y1, x2, y2);
t1.trns(angle1, tile.block().size * tilesize / 2f - 1.5f); t1.trns(angle1, size1 * tilesize / 2f - 1.5f);
t2.trns(angle1 + 180f, target.block().size * tilesize / 2f - 1.5f); t2.trns(angle1 + 180f, size2 * tilesize / 2f - 1.5f);
x1 += t1.x; x1 += t1.x;
y1 += t1.y; y1 += t1.y;
x2 += t2.x; x2 += t2.x;
y2 += t2.y; y2 += t2.y;
float fract = 1f - tile.entity.power().graph.getSatisfaction(); float fract = 1f - satisfaction;
Draw.color(Color.white, Pal.powerLight, fract * 0.86f + Mathf.absin(3f, 0.1f)); Draw.color(Color.white, Pal.powerLight, fract * 0.86f + Mathf.absin(3f, 0.1f));
Draw.alpha(opacity); Draw.alpha(opacity);