raeleus / skin-composer

Create skins for LibGDX scene2d.ui with a graphical interface.
MIT License
427 stars 34 forks source link

Can't open .fnt with multiple .png #143

Closed SonicNorg closed 6 months ago

SonicNorg commented 10 months ago

Steps to reproduce:

  1. Create Bitmap font with many characters (I created it for 6 languages)

  2. Result:

    image
  3. Add new font to Skin Composer. I did it like that: choose class TextButton, click on "font", Add... -> Open FNT -> OK

  4. It is opened successfully sometimes, but when trying to do something else (change class, for example), I get the following stacktrace.

Stacktrace:

java.lang.RuntimeException: Actor: TextButton: font
    at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
    at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:148)
    at com.badlogic.gdx.scenes.scene2d.ui.Button.setChecked(Button.java:125)
    at com.badlogic.gdx.scenes.scene2d.ui.Button$1.clicked(Button.java:93)
    at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88)
    at com.ray3k.skincomposer.BrowseField$3.touchUp(BrowseField.java:102)
    at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:71)
    at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:355)
    at com.badlogic.gdx.InputEventQueue.drain(InputEventQueue.java:70)
    at com.badlogic.gdx.backends.lwjgl3.DefaultLwjgl3Input.update(DefaultLwjgl3Input.java:189)
    at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update(Lwjgl3Window.java:378)
    at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop(Lwjgl3Application.java:192)
    at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:166)
    at com.ray3k.skincomposer.desktop.DesktopLauncher.main(DesktopLauncher.java:487)
Caused by: java.lang.RuntimeException: Actor: BrowseField
|  Label: font
|  TextButton
|  |  Label: font
|  ImageButton
|  |  Image: icon-text-over
    at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
    at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:152)
    at com.ray3k.skincomposer.BrowseField$1.changed(BrowseField.java:69)
    at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
    at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
    ... 13 more
Caused by: java.lang.RuntimeException: Actor: RootTable
|  Table
|  |  StripeMenuBar
|  |  |  TextButton
|  |  |  |  Label: File
|  |  |  TextButton
|  |  |  |  Label: Edit
|
    at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
    at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:152)
    at com.ray3k.skincomposer.RootTable$StylePropertyChangeListener.changed(RootTable.java:969)
    at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
    at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
    ... 17 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: .skincomposer/temp/neutralizer-ui_data/exo2.png
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:190)
    at com.ray3k.skincomposer.utils.Utils.averageEdgeColor(Utils.java:107)
    at com.ray3k.skincomposer.dialog.DialogFonts.refreshTable(DialogFonts.java:422)
    at com.ray3k.skincomposer.dialog.DialogFactory.showDialogFonts(DialogFactory.java:201)
    at com.ray3k.skincomposer.dialog.DialogFactory.showDialogFonts(DialogFactory.java:206)
    at com.ray3k.skincomposer.MainListener.stylePropertyChanged(MainListener.java:510)
    at com.ray3k.skincomposer.RootTable$RootTableListener.handle(RootTable.java:2868)
    at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
    ... 21 more
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: .skincomposer\temp\neutralizer-ui_data\exo2.png (External)
    at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:150)
    at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:228)
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:187)
    ... 28 more
Caused by: java.io.FileNotFoundException: C:\Users\nepav\.skincomposer\temp\neutralizer-ui_data\exo2.png (Не удается найти указанный файл)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(Unknown Source)
    at java.base/java.io.FileInputStream.<init>(Unknown Source)
    at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:146)
    ... 30 more
SonicNorg commented 6 months ago

Any progress on this problem?

raeleus commented 6 months ago

I'll have time to look at it this weekend. Thanks.

raeleus commented 6 months ago

This one has taken a lot of my focus. I have a potential fix for you: a fix that resolves other issues that have been bothering me at least. Can I test with the font that you have, @SonicNorg? Thanks

SonicNorg commented 6 months ago

Absolutely! font.zip Thanks for your time!

raeleus commented 6 months ago

This should be resolved in the next version. Thank you very much.