58 lines
1.7 KiB
Java
58 lines
1.7 KiB
Java
package mindustry.entities.def;
|
|
|
|
import arc.graphics.g2d.*;
|
|
import arc.math.*;
|
|
import arc.scene.ui.layout.*;
|
|
import arc.util.*;
|
|
import mindustry.annotations.Annotations.*;
|
|
import mindustry.gen.*;
|
|
import mindustry.graphics.*;
|
|
import mindustry.ui.*;
|
|
|
|
import static mindustry.Vars.itemSize;
|
|
|
|
@Component
|
|
abstract class DrawItemsComp implements Drawc, Itemsc, Posc, Rotc{
|
|
transient float x, y, rotation;
|
|
|
|
float itemTime;
|
|
|
|
//drawn after base
|
|
@Override
|
|
@MethodPriority(3)
|
|
public void draw(){
|
|
boolean number = isLocal();
|
|
itemTime = Mathf.lerpDelta(itemTime, Mathf.num(hasItem()), 0.05f);
|
|
|
|
//draw back items
|
|
if(itemTime > 0.01f){
|
|
float backTrns = 5f;
|
|
float size = (itemSize + Mathf.absin(Time.time(), 5f, 1f)) * itemTime;
|
|
|
|
Draw.mixcol(Pal.accent, Mathf.absin(Time.time(), 5f, 0.5f));
|
|
Draw.rect(item().icon(Cicon.medium),
|
|
x + Angles.trnsx(rotation + 180f, backTrns),
|
|
y + Angles.trnsy(rotation + 180f, backTrns),
|
|
size, size, rotation);
|
|
|
|
Draw.mixcol();
|
|
|
|
Lines.stroke(1f, Pal.accent);
|
|
Lines.circle(
|
|
x + Angles.trnsx(rotation + 180f, backTrns),
|
|
y + Angles.trnsy(rotation + 180f, backTrns),
|
|
(3f + Mathf.absin(Time.time(), 5f, 1f)) * itemTime);
|
|
|
|
if(isLocal()){
|
|
Fonts.outline.draw(stack().amount + "",
|
|
x + Angles.trnsx(rotation + 180f, backTrns),
|
|
y + Angles.trnsy(rotation + 180f, backTrns) - 3,
|
|
Pal.accent, 0.25f * itemTime / Scl.scl(1f), false, Align.center
|
|
);
|
|
}
|
|
|
|
Draw.reset();
|
|
}
|
|
}
|
|
}
|