Use sprites instead of polygons (#6725)

Lines.circle is quite expensive and used for some minor effects. This has been changed to use sprites in certain places.
This commit is contained in:
Qendolin
2022-04-20 20:15:35 +02:00
committed by GitHub
parent ee3911cceb
commit 2dae8fdef4
4 changed files with 11 additions and 7 deletions

View File

@@ -133,8 +133,8 @@ public class Fx{
float x = Tmp.v1.x, y = Tmp.v1.y;
float size = 1f;
stroke(e.fslope() * 2f * size, Pal.accent);
Lines.circle(x, y, e.fslope() * 2f * size);
color(Pal.accent);
Fill.circle(x, y, e.fslope() * 3f * size);
color(e.color);
Fill.circle(x, y, e.fslope() * 1.5f * size);

View File

@@ -39,6 +39,7 @@ import static mindustry.Vars.*;
public class UnitType extends UnlockableContent{
public static final float shadowTX = -12, shadowTY = -13;
private static final Vec2 legOffset = new Vec2();
private static TextureRegion itemCircleRegion;
/** If true, the unit is always at elevation 1. */
public boolean flying;
@@ -736,14 +737,16 @@ public class UnitType extends UnlockableContent{
unit.x + Angles.trnsx(unit.rotation + 180f, itemOffsetY),
unit.y + Angles.trnsy(unit.rotation + 180f, itemOffsetY),
size, size, unit.rotation);
Draw.mixcol();
Lines.stroke(1f, Pal.accent);
Lines.circle(
if(itemCircleRegion == null || itemCircleRegion.texture.isDisposed()){
itemCircleRegion = Core.atlas.find("ring-item");
}
size = (3f + Mathf.absin(Time.time, 5f, 1f)) * unit.itemTime + 0.5f;
Draw.color(Pal.accent);
Draw.rect(itemCircleRegion,
unit.x + Angles.trnsx(unit.rotation + 180f, itemOffsetY),
unit.y + Angles.trnsy(unit.rotation + 180f, itemOffsetY),
(3f + Mathf.absin(Time.time, 5f, 1f)) * unit.itemTime);
unit.y + Angles.trnsy(unit.rotation + 180f, itemOffsetY), size * 2, size * 2);
if(unit.isLocal() && !renderer.pixelator.enabled()){
Fonts.outline.draw(unit.stack.amount + "",