Font improvements

This commit is contained in:
Anuken
2020-01-17 18:29:18 -05:00
parent 8d61ddbbd4
commit ca519a94af
9 changed files with 121 additions and 22 deletions

View File

@@ -88,7 +88,7 @@ public class Vars implements Loadable{
public static final Color[] playerColors = {
Color.valueOf("82759a"),
Color.valueOf("c0c1c5"),
Color.valueOf("fff0e7"),
Color.valueOf("ffffff"),
Color.valueOf("7d2953"),
Color.valueOf("ff074e"),
Color.valueOf("ff072a"),

View File

@@ -26,11 +26,17 @@ import mindustry.core.*;
import java.util.*;
public class Fonts{
private static ObjectIntMap<String> unicodeIcons = new ObjectIntMap<>();
public static BitmapFont def;
public static BitmapFont outline;
public static BitmapFont chat;
public static BitmapFont icon;
public static int getUnicode(String content){
return unicodeIcons.get(content, 0);
}
/** Called from a static context to make the cursor appear immediately upon startup.*/
public static void loadSystemCursors(){
SystemCursor.arrow.set(Core.graphics.newCursor("cursor"));
@@ -62,12 +68,15 @@ public class Fonts{
while(scan.hasNextLine()){
String line = scan.nextLine();
String[] split = line.split("=");
String character = split[0], texture = split[1].split("\\|")[1];
String[] nametex = split[1].split("\\|");
String character = split[0], texture = nametex[1];
int ch = Integer.parseInt(character);
TextureRegion region = Core.atlas.find(texture);
if(region.getTexture() != uitex) throw new IllegalArgumentException("Font icon '" + texture + "' is not in the UI texture.");
unicodeIcons.put(nametex[0], ch);
Glyph glyph = new Glyph();
glyph.id = ch;
glyph.srcX = 0;

View File

@@ -1,6 +1,7 @@
package mindustry.ui.dialogs;
import arc.*;
import arc.input.*;
import arc.struct.*;
import arc.graphics.*;
import arc.scene.event.*;
@@ -65,7 +66,12 @@ public class DatabaseDialog extends FloatingDialog{
}
if(unlocked(unlock)){
image.clicked(() -> Vars.ui.content.show(unlock));
image.clicked(() -> {
if(Core.input.keyDown(KeyCode.SHIFT_LEFT) && Fonts.getUnicode(unlock.name) != 0){
Core.app.setClipboardText((char)Fonts.getUnicode(unlock.name) + "");
}
Vars.ui.content.show(unlock);
});
image.addListener(new Tooltip(t -> t.background(Tex.button).add(unlock.localizedName)));
}

View File

@@ -35,29 +35,29 @@ public class PausedDialog extends FloatingDialog{
});
if(!mobile){
float dw = 210f;
cont.defaults().width(dw).height(50).pad(5f);
float dw = 220f;
cont.defaults().width(dw).height(55).pad(5f);
cont.addButton("$back", this::hide).colspan(2).width(dw * 2 + 20f);
cont.addImageTextButton("$back", Icon.left, this::hide).colspan(2).width(dw * 2 + 20f);
cont.row();
if(world.isZone()){
cont.addButton("$techtree", ui.tech::show);
cont.addImageTextButton("$techtree", Icon.tree, ui.tech::show);
}else{
cont.addButton("$database", ui.database::show);
cont.addImageTextButton("$database", Icon.book, ui.database::show);
}
cont.addButton("$settings", ui.settings::show);
cont.addImageTextButton("$settings", Icon.settings, ui.settings::show);
if(!state.rules.tutorial){
if(!world.isZone() && !state.isEditor()){
cont.row();
cont.addButton("$savegame", save::show);
cont.addButton("$loadgame", load::show).disabled(b -> net.active());
cont.addImageTextButton("$savegame", Icon.save, save::show);
cont.addImageTextButton("$loadgame", Icon.upload, load::show).disabled(b -> net.active());
}
cont.row();
cont.addButton("$hostserver", () -> {
cont.addImageTextButton("$hostserver", Icon.host, () -> {
if(net.server() && steam){
platform.inviteFriends();
}else{
@@ -72,7 +72,7 @@ public class PausedDialog extends FloatingDialog{
cont.row();
cont.addButton("$quit", this::showQuitConfirm).colspan(2).width(dw + 10f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit"));
cont.addImageTextButton("$quit", Icon.exit, this::showQuitConfirm).colspan(2).width(dw + 20f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit"));
}else{
cont.defaults().size(130f).pad(5);

View File

@@ -1,14 +1,15 @@
package mindustry.ui.fragments;
import arc.*;
import arc.struct.*;
import arc.graphics.*;
import arc.input.*;
import arc.math.geom.*;
import arc.scene.*;
import arc.scene.event.*;
import arc.scene.style.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.content.*;
import mindustry.entities.traits.BuilderTrait.*;
@@ -19,7 +20,6 @@ import mindustry.graphics.*;
import mindustry.input.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.ui.Cicon;
import mindustry.world.*;
import static mindustry.Vars.*;
@@ -206,6 +206,10 @@ public class PlacementFragment extends Fragment{
if(unlocked(block)){
control.input.block = control.input.block == block ? null : block;
selectedBlocks.put(currentCategory, control.input.block);
if(Core.input.keyDown(KeyCode.SHIFT_LEFT) && Fonts.getUnicode(block.name) != 0){
Core.app.setClipboardText((char)Fonts.getUnicode(block.name) + "");
}
}
}).size(46f).group(group).name("block-" + block.name).get();