71 lines
2.1 KiB
Java
71 lines
2.1 KiB
Java
package mindustry.ui.dialogs;
|
|
|
|
import arc.*;
|
|
import arc.graphics.*;
|
|
import arc.graphics.g2d.*;
|
|
import arc.input.*;
|
|
import arc.scene.event.*;
|
|
import arc.scene.ui.layout.*;
|
|
import mindustry.gen.*;
|
|
|
|
import static mindustry.Vars.*;
|
|
|
|
public class MinimapDialog extends BaseDialog{
|
|
|
|
public MinimapDialog(){
|
|
super("@minimap");
|
|
setFillParent(true);
|
|
|
|
shown(this::setup);
|
|
|
|
addCloseButton();
|
|
shouldPause = true;
|
|
titleTable.remove();
|
|
onResize(this::setup);
|
|
}
|
|
|
|
void setup(){
|
|
cont.clear();
|
|
|
|
cont.table(Tex.pane,t -> {
|
|
t.rect((x, y, width, height) -> {
|
|
if(renderer.minimap.getRegion() == null) return;
|
|
Draw.color(Color.white);
|
|
Draw.alpha(parentAlpha);
|
|
Draw.rect(renderer.minimap.getRegion(), x + width / 2f, y + height / 2f, width, height);
|
|
|
|
if(renderer.minimap.getTexture() != null){
|
|
renderer.minimap.drawEntities(x, y, width, height);
|
|
}
|
|
}).grow();
|
|
}).size(Math.min(Core.graphics.getWidth() / 1.1f, Core.graphics.getHeight() / 1.3f) / Scl.scl(1f)).padTop(-20f);
|
|
|
|
cont.addListener(new InputListener(){
|
|
@Override
|
|
public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){
|
|
renderer.minimap.zoomBy(amounty);
|
|
return true;
|
|
}
|
|
});
|
|
|
|
cont.addListener(new ElementGestureListener(){
|
|
float lzoom = -1f;
|
|
|
|
@Override
|
|
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
|
|
lzoom = renderer.minimap.getZoom();
|
|
}
|
|
|
|
@Override
|
|
public void zoom(InputEvent event, float initialDistance, float distance){
|
|
if(lzoom < 0){
|
|
lzoom = renderer.minimap.getZoom();
|
|
}
|
|
renderer.minimap.setZoom(initialDistance / distance * lzoom);
|
|
}
|
|
});
|
|
|
|
Core.app.post(() -> Core.scene.setScrollFocus(cont));
|
|
}
|
|
}
|