Compare commits
No commits in common. "develop" and "fxgl" have entirely different histories.
@ -1,18 +0,0 @@
|
||||
# https://editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.{java,scala,groovy,kt,kts}]
|
||||
indent_size = 4
|
||||
|
||||
[*.gradle]
|
||||
indent_size = 2
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
2
.gitattributes
vendored
@ -1,2 +0,0 @@
|
||||
* text=auto eol=lf
|
||||
*.bat text=auto eol=crlf
|
174
.gitignore
vendored
Normal file → Executable file
@ -1,166 +1,14 @@
|
||||
## Gradle:
|
||||
.gradle/
|
||||
gradle-app.setting
|
||||
/build/
|
||||
/android/build/
|
||||
/core/build/
|
||||
/lwjgl2/build/
|
||||
/lwjgl3/build/
|
||||
/html/build/
|
||||
/teavm/build/
|
||||
/ios/build/
|
||||
/ios-moe/build/
|
||||
/headless/build/
|
||||
/server/build/
|
||||
/shared/build/
|
||||
#files to ignore
|
||||
|
||||
*.metadata/**
|
||||
*.recommenders/**
|
||||
*/target/**
|
||||
target
|
||||
*/build/**
|
||||
*.idea/**
|
||||
|
||||
## Java:
|
||||
*.class
|
||||
*.war
|
||||
*.ear
|
||||
hs_err_pid*
|
||||
.attach_pid*
|
||||
logs/*
|
||||
dist/*
|
||||
system/*
|
||||
|
||||
## Android:
|
||||
/android/libs/armeabi-v7a/
|
||||
/android/libs/arm64-v8a/
|
||||
/android/libs/x86/
|
||||
/android/libs/x86_64/
|
||||
/android/gen/
|
||||
/android/out/
|
||||
local.properties
|
||||
com_crashlytics_export_strings.xml
|
||||
|
||||
## Robovm:
|
||||
/ios/robovm-build/
|
||||
|
||||
## iOS:
|
||||
/ios/xcode/*.xcodeproj/*
|
||||
!/ios/xcode/*.xcodeproj/xcshareddata
|
||||
!/ios/xcode/*.xcodeproj/project.pbxproj
|
||||
/ios/xcode/native/
|
||||
/ios/IOSLauncher.app
|
||||
/ios/IOSLauncher.app.dSYM
|
||||
|
||||
## GWT:
|
||||
/html/war/
|
||||
/html/gwt-unitCache/
|
||||
.apt_generated/
|
||||
/html/war/WEB-INF/deploy/
|
||||
/html/war/WEB-INF/classes/
|
||||
.gwt/
|
||||
gwt-unitCache/
|
||||
www-test/
|
||||
.gwt-tmp/
|
||||
|
||||
## TeaVM:
|
||||
# Not sure yet...
|
||||
|
||||
## IntelliJ, Android Studio:
|
||||
.idea/
|
||||
*.ipr
|
||||
*.iws
|
||||
*.iml
|
||||
|
||||
## Eclipse:
|
||||
.classpath
|
||||
.project
|
||||
.metadata/
|
||||
/android/bin/
|
||||
/core/bin/
|
||||
/lwjgl2/bin/
|
||||
/lwjgl3/bin/
|
||||
/html/bin/
|
||||
/teavm/bin/
|
||||
/ios/bin/
|
||||
/ios-moe/bin/
|
||||
/headless/bin/
|
||||
/server/bin/
|
||||
/shared/bin/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
.settings/
|
||||
.loadpath
|
||||
.externalToolBuilders/
|
||||
*.launch
|
||||
|
||||
|
||||
## NetBeans:
|
||||
|
||||
/nbproject/private/
|
||||
/android/nbproject/private/
|
||||
/core/nbproject/private/
|
||||
/lwjgl2/nbproject/private/
|
||||
/lwjgl3/nbproject/private/
|
||||
/html/nbproject/private/
|
||||
/teavm/nbproject/private/
|
||||
/ios/nbproject/private/
|
||||
/ios-moe/nbproject/private/
|
||||
/headless/nbproject/private/
|
||||
/server/nbproject/private/
|
||||
/shared/nbproject/private/
|
||||
|
||||
/nbbuild/
|
||||
/android/nbbuild/
|
||||
/core/nbbuild/
|
||||
/lwjgl2/nbbuild/
|
||||
/lwjgl3/nbbuild/
|
||||
/html/nbbuild/
|
||||
/teavm/nbbuild/
|
||||
/ios/nbbuild/
|
||||
/ios-moe/nbbuild/
|
||||
/headless/nbbuild/
|
||||
/server/nbbuild/
|
||||
/shared/nbbuild/
|
||||
|
||||
/dist/
|
||||
/android/dist/
|
||||
/core/dist/
|
||||
/lwjgl2/dist/
|
||||
/lwjgl3/dist/
|
||||
/html/dist/
|
||||
/teavm/dist/
|
||||
/ios/dist/
|
||||
/ios-moe/dist/
|
||||
/headless/dist/
|
||||
/server/dist/
|
||||
/shared/dist/
|
||||
|
||||
/nbdist/
|
||||
/android/nbdist/
|
||||
/core/nbdist/
|
||||
/lwjgl2/nbdist/
|
||||
/lwjgl3/nbdist/
|
||||
/html/nbdist/
|
||||
/teavm/nbdist/
|
||||
/ios/nbdist/
|
||||
/ios-moe/nbdist/
|
||||
/headless/nbdist/
|
||||
/server/nbdist/
|
||||
/shared/nbdist/
|
||||
|
||||
nbactions.xml
|
||||
nb-configuration.xml
|
||||
|
||||
## OS-Specific:
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
## Miscellaneous:
|
||||
*~
|
||||
*.*#
|
||||
*#*#
|
||||
/assets/assets.txt
|
||||
/assets/assets_.txt
|
||||
|
||||
|
||||
## Special cases:
|
||||
|
||||
## There is a resource-config.json file generated by nativeimage.gradle if you use Graal Native Image.
|
||||
## Some usage may need extra resource configuration in a different file with the same name.
|
||||
## You could also add that configuration to the text in nativeimage.gradle .
|
||||
## You should delete or comment out the next line if you have configuration in a different resource-config.json .
|
||||
**/resource-config.json
|
||||
**pixel-app*
|
||||
|
4
.gitmodules
vendored
@ -1,4 +0,0 @@
|
||||
[submodule "assets/embedded_mods/speedy-blupi-I-legacy-mods"]
|
||||
path = assets/embedded_mods/speedy-blupi-I-legacy-mods
|
||||
url = https://github.com/openeggbert/speedy-blupi-I-legacy-mods
|
||||
branch = develop
|
59
README.md
@ -1,61 +1,2 @@
|
||||
# Open Eggbert
|
||||
|
||||
Free recreation of the computer game Speedy Eggbert.
|
||||
|
||||
## Development
|
||||
|
||||
A [libGDX](https://libgdx.com/) project generated with [gdx-liftoff](https://github.com/libgdx/gdx-liftoff).
|
||||
|
||||
This project was generated with a template including simple application launchers and an `ApplicationAdapter` extension that draws libGDX logo.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Java 17 is installed
|
||||
|
||||
## Platforms
|
||||
|
||||
- `core`: Main module with the application logic shared by all platforms.
|
||||
- `lwjgl3`: Primary desktop platform using LWJGL3.
|
||||
- `android`: Android mobile platform. Needs Android SDK.
|
||||
- `html`: Web platform using GWT and WebGL. Supports only Java projects.
|
||||
- `teavm`: Experimental web platform using TeaVM and WebGL.
|
||||
|
||||
## Gradle
|
||||
|
||||
This project uses [Gradle](https://gradle.org/) to manage dependencies.
|
||||
The Gradle wrapper was included, so you can run Gradle tasks using `gradlew.bat` or `./gradlew` commands.
|
||||
Useful Gradle tasks and flags:
|
||||
|
||||
- `--continue`: when using this flag, errors will not stop the tasks from running.
|
||||
- `--daemon`: thanks to this flag, Gradle daemon will be used to run chosen tasks.
|
||||
- `--offline`: when using this flag, cached dependency archives will be used.
|
||||
- `--refresh-dependencies`: this flag forces validation of all dependencies. Useful for snapshot versions.
|
||||
- `android:lint`: performs Android project validation.
|
||||
- `build`: builds sources and archives of every project.
|
||||
- `cleanEclipse`: removes Eclipse project data.
|
||||
- `cleanIdea`: removes IntelliJ project data.
|
||||
- `clean`: removes `build` folders, which store compiled classes and built archives.
|
||||
- `eclipse`: generates Eclipse project data.
|
||||
- `html:dist`: compiles GWT sources. The compiled application can be found at `html/build/dist`: you can use any HTTP server to deploy it.
|
||||
- `html:superDev`: compiles GWT sources and runs the application in SuperDev mode. It will be available at [localhost:8080/html](http://localhost:8080/html). Use only during development.
|
||||
- `idea`: generates IntelliJ project data.
|
||||
- `lwjgl3:jar`: builds application's runnable jar, which can be found at `lwjgl3/build/lib`.
|
||||
- `lwjgl3:run`: starts the application.
|
||||
- `teavm:build`: builds the JavaScript application into the build/dist/webapp folder.
|
||||
- `teavm:run`: serves the JavaScript application at http://localhost:8080 via a local Jetty server.
|
||||
- `test`: runs unit tests (if any).
|
||||
|
||||
Note that most tasks that are not specific to a single project can be run with `name:` prefix, where the `name` should be replaced with the ID of a specific project.
|
||||
For example, `core:clean` removes `build` folder only from the `core` project.
|
||||
|
||||
## FAQ
|
||||
|
||||
### How to clean Gradle cache
|
||||
|
||||
`./gradlew clean build --refresh-dependencies`
|
||||
|
||||
### Deploy HTML to localhost
|
||||
|
||||
Change directory to html/build/dist and run:
|
||||
|
||||
`python3 -m http.server 8000`
|
||||
|
@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:fullBackupContent="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:isGame="true"
|
||||
android:appCategory="game"
|
||||
android:label="@string/app_name"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:theme="@style/GdxTheme">
|
||||
<activity
|
||||
android:name="com.openeggbert.android.AndroidLauncher"
|
||||
android:label="@string/app_name"
|
||||
android:screenOrientation="landscape"
|
||||
android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|screenLayout"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
</manifest>
|
@ -1,131 +0,0 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
|
||||
android {
|
||||
namespace "com.openeggbert"
|
||||
compileSdk 34
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile 'AndroidManifest.xml'
|
||||
java.setSrcDirs(['src/main/java'])
|
||||
aidl.setSrcDirs(['src/main/java'])
|
||||
renderscript.setSrcDirs(['src/main/java'])
|
||||
res.setSrcDirs(['res'])
|
||||
assets.setSrcDirs(['../assets'])
|
||||
jniLibs.setSrcDirs(['libs'])
|
||||
}
|
||||
}
|
||||
packagingOptions {
|
||||
resources {
|
||||
excludes += ['META-INF/robovm/ios/robovm.xml', 'META-INF/DEPENDENCIES.txt', 'META-INF/DEPENDENCIES',
|
||||
'META-INF/dependencies.txt', '**/*.gwt.xml']
|
||||
pickFirsts += ['META-INF/LICENSE.txt', 'META-INF/LICENSE', 'META-INF/license.txt', 'META-INF/LGPL2.1',
|
||||
'META-INF/NOTICE.txt', 'META-INF/NOTICE', 'META-INF/notice.txt']
|
||||
}
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId 'com.openeggbert'
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 34
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
multiDexEnabled true
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility "11"
|
||||
targetCompatibility "11"
|
||||
coreLibraryDesugaringEnabled true
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
// needed for AAPT2, may be needed for other tools
|
||||
google()
|
||||
}
|
||||
|
||||
configurations { natives }
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
|
||||
implementation "com.badlogicgames.gdx-controllers:gdx-controllers-android:$gdxControllersVersion"
|
||||
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
||||
implementation "com.github.MrStahlfelge.gdx-websockets:common:$websocketVersion"
|
||||
implementation project(':core')
|
||||
implementation "com.pixelgamelibrary:pixel:$pixelVersion"
|
||||
implementation "com.pixelgamelibrary:pixel-backend-libgdx:$pixelVersion"
|
||||
|
||||
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a"
|
||||
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
|
||||
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
|
||||
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"
|
||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
|
||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
|
||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
|
||||
natives "games.rednblack.miniaudio:miniaudio:$miniaudioVersion:natives-arm64-v8a"
|
||||
natives "games.rednblack.miniaudio:miniaudio:$miniaudioVersion:natives-armeabi-v7a"
|
||||
natives "games.rednblack.miniaudio:miniaudio:$miniaudioVersion:natives-x86"
|
||||
natives "games.rednblack.miniaudio:miniaudio:$miniaudioVersion:natives-x86_64"
|
||||
|
||||
}
|
||||
|
||||
// Called every time gradle gets executed, takes the native dependencies of
|
||||
// the natives configuration, and extracts them to the proper libs/ folders
|
||||
// so they get packed with the APK.
|
||||
tasks.register('copyAndroidNatives') {
|
||||
doFirst {
|
||||
file("libs/armeabi-v7a/").mkdirs()
|
||||
file("libs/arm64-v8a/").mkdirs()
|
||||
file("libs/x86_64/").mkdirs()
|
||||
file("libs/x86/").mkdirs()
|
||||
|
||||
configurations.natives.copy().files.each { jar ->
|
||||
def outputDir = null
|
||||
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
|
||||
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
|
||||
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
|
||||
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
|
||||
if(outputDir != null) {
|
||||
copy {
|
||||
from zipTree(jar)
|
||||
into outputDir
|
||||
include "*.so"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { packageTask ->
|
||||
packageTask.dependsOn 'copyAndroidNatives'
|
||||
}
|
||||
|
||||
tasks.register('run', Exec) {
|
||||
def path
|
||||
def localProperties = project.file("../local.properties")
|
||||
if (localProperties.exists()) {
|
||||
Properties properties = new Properties()
|
||||
localProperties.withInputStream { instr ->
|
||||
properties.load(instr)
|
||||
}
|
||||
def sdkDir = properties.getProperty('sdk.dir')
|
||||
if (sdkDir) {
|
||||
path = sdkDir
|
||||
} else {
|
||||
path = "$System.env.ANDROID_SDK_ROOT"
|
||||
}
|
||||
} else {
|
||||
path = "$System.env.ANDROID_SDK_ROOT"
|
||||
}
|
||||
|
||||
def adb = path + "/platform-tools/adb"
|
||||
commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.openeggbert/com.openeggbert.android.AndroidLauncher'
|
||||
}
|
||||
|
||||
eclipse.project.name = appName + "-android"
|
Before Width: | Height: | Size: 42 KiB |
54
android/proguard-rules.pro
vendored
@ -1,54 +0,0 @@
|
||||
# To enable ProGuard in your project, edit project.properties
|
||||
# to define the proguard.config property as described in that file.
|
||||
#
|
||||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in ${sdk.dir}/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the ProGuard
|
||||
# include property in project.properties.
|
||||
#
|
||||
# For more details, see
|
||||
# https://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
-verbose
|
||||
|
||||
-dontwarn android.support.**
|
||||
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication
|
||||
|
||||
# Needed by the gdx-controllers official extension.
|
||||
-keep class com.badlogic.gdx.controllers.android.AndroidControllers
|
||||
|
||||
# Needed by the Box2D official extension.
|
||||
-keepclassmembers class com.badlogic.gdx.physics.box2d.World {
|
||||
boolean contactFilter(long, long);
|
||||
void beginContact(long);
|
||||
void endContact(long);
|
||||
void preSolve(long, long);
|
||||
void postSolve(long, long);
|
||||
boolean reportFixture(long);
|
||||
float reportRayFixture(long, float, float, float, float, float);
|
||||
}
|
||||
|
||||
# You will need the next three lines if you use scene2d for UI or gameplay.
|
||||
# If you don't use scene2d at all, you can remove or comment out the next line:
|
||||
-keep public class com.badlogic.gdx.scenes.scene2d.** { *; }
|
||||
# You will need the next two lines if you use BitmapFont or any scene2d.ui text:
|
||||
-keep public class com.badlogic.gdx.graphics.g2d.BitmapFont { *; }
|
||||
# You will probably need this line in most cases:
|
||||
-keep public class com.badlogic.gdx.graphics.Color { *; }
|
||||
|
||||
# These two lines are used with mapping files; see https://developer.android.com/build/shrink-code#retracing
|
||||
-keepattributes LineNumberTable,SourceFile
|
||||
-renamesourcefileattribute SourceFile
|
||||
|
||||
#Lombok
|
||||
-dontwarn lombok.Generated
|
@ -1,14 +0,0 @@
|
||||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must be checked in Version Control Systems.
|
||||
#
|
||||
# To customize properties used by the Ant build system edit
|
||||
# "ant.properties", and override values to adapt the script to your
|
||||
# project structure.
|
||||
#
|
||||
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
|
||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-rules.pro
|
||||
|
||||
# Project target.
|
||||
target=android-19
|
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 11 KiB |
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_background_color">#F5A623FF</color>
|
||||
</resources>
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">open-eggbert</string>
|
||||
</resources>
|
@ -1,10 +0,0 @@
|
||||
<resources>
|
||||
<style name="GdxTheme" parent="android:Theme">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowFullscreen">true</item>
|
||||
</style>
|
||||
</resources>
|
@ -1,22 +0,0 @@
|
||||
package com.openeggbert.android;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.badlogic.gdx.backends.android.AndroidApplication;
|
||||
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
|
||||
import com.openeggbert.core.main.OpenEggbertApplication;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.pixelgamelibrary.backend.libgdx.interfaces.PixelBackendLibGDX;
|
||||
import com.pixelgamelibrary.backend.libgdx.game.LibGdxGame;
|
||||
|
||||
/** Launches the Android application. */
|
||||
public class AndroidLauncher extends AndroidApplication {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
AndroidApplicationConfiguration configuration = new AndroidApplicationConfiguration();
|
||||
configuration.useImmersiveMode = true; // Recommended, but not required.
|
||||
Pixel.initBackend(new PixelBackendLibGDX());
|
||||
initialize(new LibGdxGame(new OpenEggbertApplication().createGame()), configuration);
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 8.3 KiB |
@ -1,246 +0,0 @@
|
||||
info face="LSans" size=15 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
|
||||
common lineHeight=18 base=14 scaleW=256 scaleH=128 pages=1 packed=0
|
||||
page id=0 file="lsans-15.png"
|
||||
chars count=168
|
||||
char id=0 x=83 y=85 width=11 height=13 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=4 page=0 chnl=0
|
||||
char id=33 x=184 y=17 width=5 height=13 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=34 x=27 y=85 width=7 height=5 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=35 x=189 y=17 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=36 x=125 y=17 width=10 height=15 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=37 x=199 y=17 width=15 height=13 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=0
|
||||
char id=38 x=10 y=72 width=12 height=12 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=39 x=34 y=85 width=5 height=5 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=40 x=24 y=0 width=7 height=16 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=41 x=31 y=0 width=7 height=16 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=42 x=0 y=85 width=8 height=7 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=43 x=57 y=72 width=11 height=11 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=44 x=251 y=72 width=4 height=6 xoffset=0 yoffset=11 xadvance=4 page=0 chnl=0
|
||||
char id=45 x=50 y=85 width=7 height=4 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0
|
||||
char id=46 x=57 y=85 width=4 height=4 xoffset=0 yoffset=11 xadvance=4 page=0 chnl=0
|
||||
char id=47 x=214 y=17 width=6 height=13 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0
|
||||
char id=48 x=220 y=17 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=49 x=230 y=17 width=9 height=13 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=50 x=239 y=17 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=51 x=0 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=52 x=10 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=53 x=20 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=54 x=30 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=55 x=40 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=56 x=50 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=57 x=60 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=58 x=68 y=72 width=4 height=10 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=59 x=22 y=72 width=4 height=12 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=60 x=229 y=72 width=11 height=9 xoffset=-1 yoffset=4 xadvance=9 page=0 chnl=0
|
||||
char id=61 x=8 y=85 width=11 height=7 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=62 x=240 y=72 width=11 height=9 xoffset=-1 yoffset=4 xadvance=9 page=0 chnl=0
|
||||
char id=63 x=70 y=33 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=64 x=135 y=17 width=15 height=15 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
|
||||
char id=65 x=80 y=33 width=11 height=13 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=66 x=91 y=33 width=11 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=67 x=102 y=33 width=13 height=13 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=68 x=115 y=33 width=12 height=13 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=69 x=127 y=33 width=11 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=70 x=138 y=33 width=10 height=13 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=71 x=148 y=33 width=12 height=13 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=72 x=160 y=33 width=10 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=73 x=249 y=17 width=4 height=13 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=74 x=170 y=33 width=8 height=13 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=75 x=178 y=33 width=11 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=76 x=189 y=33 width=9 height=13 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=77 x=198 y=33 width=11 height=13 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=78 x=209 y=33 width=10 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=79 x=219 y=33 width=14 height=13 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=80 x=233 y=33 width=11 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=81 x=38 y=0 width=14 height=16 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=82 x=0 y=46 width=12 height=13 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=83 x=12 y=46 width=12 height=13 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=84 x=244 y=33 width=11 height=13 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=85 x=24 y=46 width=10 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=86 x=34 y=46 width=11 height=13 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=87 x=45 y=46 width=17 height=13 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=0
|
||||
char id=88 x=62 y=46 width=11 height=13 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=89 x=73 y=46 width=11 height=13 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=90 x=84 y=46 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=91 x=52 y=0 width=5 height=16 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=0
|
||||
char id=92 x=94 y=46 width=6 height=13 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0
|
||||
char id=93 x=57 y=0 width=5 height=16 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0
|
||||
char id=94 x=19 y=85 width=8 height=7 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=95 x=71 y=85 width=12 height=3 xoffset=-2 yoffset=15 xadvance=8 page=0 chnl=0
|
||||
char id=96 x=61 y=85 width=6 height=4 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=97 x=72 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=98 x=100 y=46 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=99 x=82 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=100 x=110 y=46 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=101 x=92 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=102 x=120 y=46 width=7 height=13 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0
|
||||
char id=103 x=127 y=46 width=10 height=13 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=104 x=137 y=46 width=9 height=13 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=105 x=146 y=46 width=5 height=13 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=106 x=62 y=0 width=6 height=16 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=107 x=151 y=46 width=10 height=13 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=108 x=161 y=46 width=5 height=13 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=109 x=102 y=72 width=13 height=10 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=0
|
||||
char id=110 x=115 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=111 x=125 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=112 x=166 y=46 width=10 height=13 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=113 x=176 y=46 width=10 height=13 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=114 x=135 y=72 width=6 height=10 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=115 x=141 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=116 x=26 y=72 width=6 height=12 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=117 x=151 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=118 x=161 y=72 width=9 height=10 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=119 x=170 y=72 width=15 height=10 xoffset=-2 yoffset=5 xadvance=11 page=0 chnl=0
|
||||
char id=120 x=185 y=72 width=9 height=10 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=121 x=186 y=46 width=9 height=13 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=122 x=194 y=72 width=10 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=123 x=68 y=0 width=7 height=16 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=124 x=75 y=0 width=4 height=16 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=125 x=79 y=0 width=7 height=16 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0
|
||||
char id=126 x=39 y=85 width=11 height=5 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=0 xadvance=4 page=0 chnl=0
|
||||
char id=161 x=32 y=72 width=5 height=12 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=162 x=195 y=46 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=163 x=205 y=46 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=164 x=204 y=72 width=10 height=10 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=165 x=215 y=46 width=12 height=13 xoffset=-2 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=166 x=86 y=0 width=4 height=16 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=181 x=227 y=46 width=10 height=13 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=183 x=67 y=85 width=4 height=4 xoffset=1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=191 x=37 y=72 width=10 height=12 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=192 x=90 y=0 width=11 height=16 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0
|
||||
char id=193 x=101 y=0 width=11 height=16 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0
|
||||
char id=194 x=112 y=0 width=11 height=16 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0
|
||||
char id=195 x=123 y=0 width=11 height=16 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0
|
||||
char id=196 x=134 y=0 width=11 height=16 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0
|
||||
char id=197 x=0 y=0 width=11 height=17 xoffset=-1 yoffset=-2 xadvance=9 page=0 chnl=0
|
||||
char id=198 x=237 y=46 width=17 height=13 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=0
|
||||
char id=199 x=11 y=0 width=13 height=17 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=200 x=145 y=0 width=11 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=201 x=156 y=0 width=11 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=202 x=167 y=0 width=11 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=203 x=178 y=0 width=11 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=204 x=189 y=0 width=6 height=16 xoffset=-2 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=205 x=195 y=0 width=7 height=16 xoffset=0 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=206 x=202 y=0 width=8 height=16 xoffset=-2 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=207 x=210 y=0 width=8 height=16 xoffset=-2 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=208 x=0 y=59 width=13 height=13 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=209 x=218 y=0 width=10 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=210 x=228 y=0 width=14 height=16 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=211 x=0 y=17 width=14 height=16 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=212 x=14 y=17 width=14 height=16 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=213 x=28 y=17 width=14 height=16 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=214 x=42 y=17 width=14 height=16 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=216 x=150 y=17 width=14 height=15 xoffset=-1 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=217 x=242 y=0 width=10 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=218 x=56 y=17 width=10 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=219 x=66 y=17 width=10 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=220 x=76 y=17 width=10 height=16 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
|
||||
char id=221 x=86 y=17 width=11 height=16 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0
|
||||
char id=222 x=13 y=59 width=11 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=223 x=24 y=59 width=10 height=13 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=224 x=34 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=225 x=44 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=226 x=54 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=227 x=64 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=228 x=74 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=229 x=164 y=17 width=10 height=15 xoffset=-1 yoffset=0 xadvance=8 page=0 chnl=0
|
||||
char id=230 x=214 y=72 width=15 height=10 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=0
|
||||
char id=231 x=174 y=17 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=232 x=84 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=233 x=94 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=234 x=104 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=235 x=114 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=236 x=124 y=59 width=6 height=13 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=237 x=130 y=59 width=7 height=13 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=238 x=137 y=59 width=8 height=13 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=239 x=145 y=59 width=8 height=13 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=240 x=153 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=241 x=163 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=242 x=173 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=243 x=183 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=244 x=193 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=245 x=203 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=246 x=213 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=248 x=47 y=72 width=10 height=12 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=249 x=223 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=250 x=233 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=251 x=243 y=59 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=252 x=0 y=72 width=10 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=253 x=97 y=17 width=9 height=16 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=254 x=106 y=17 width=10 height=16 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=255 x=116 y=17 width=9 height=16 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
kernings count=73
|
||||
kerning first=70 second=46 amount=-2
|
||||
kerning first=84 second=121 amount=-1
|
||||
kerning first=121 second=44 amount=-1
|
||||
kerning first=86 second=58 amount=-1
|
||||
kerning first=89 second=101 amount=-1
|
||||
kerning first=89 second=46 amount=-2
|
||||
kerning first=84 second=45 amount=-1
|
||||
kerning first=119 second=44 amount=-1
|
||||
kerning first=89 second=59 amount=-1
|
||||
kerning first=84 second=58 amount=-2
|
||||
kerning first=87 second=46 amount=-1
|
||||
kerning first=65 second=84 amount=-1
|
||||
kerning first=84 second=105 amount=-1
|
||||
kerning first=86 second=97 amount=-1
|
||||
kerning first=84 second=97 amount=-2
|
||||
kerning first=76 second=87 amount=-1
|
||||
kerning first=65 second=89 amount=-1
|
||||
kerning first=76 second=32 amount=-1
|
||||
kerning first=76 second=121 amount=-1
|
||||
kerning first=89 second=111 amount=-1
|
||||
kerning first=121 second=46 amount=-1
|
||||
kerning first=119 second=46 amount=-1
|
||||
kerning first=84 second=115 amount=-2
|
||||
kerning first=76 second=84 amount=-1
|
||||
kerning first=65 second=86 amount=-1
|
||||
kerning first=86 second=65 amount=-1
|
||||
kerning first=86 second=44 amount=-1
|
||||
kerning first=84 second=65 amount=-1
|
||||
kerning first=84 second=99 amount=-2
|
||||
kerning first=89 second=45 amount=-1
|
||||
kerning first=84 second=44 amount=-2
|
||||
kerning first=76 second=89 amount=-1
|
||||
kerning first=89 second=113 amount=-1
|
||||
kerning first=89 second=58 amount=-1
|
||||
kerning first=86 second=117 amount=-1
|
||||
kerning first=80 second=65 amount=-1
|
||||
kerning first=89 second=105 amount=-1
|
||||
kerning first=80 second=44 amount=-2
|
||||
kerning first=89 second=118 amount=-1
|
||||
kerning first=84 second=117 amount=-1
|
||||
kerning first=89 second=97 amount=-1
|
||||
kerning first=76 second=86 amount=-1
|
||||
kerning first=118 second=44 amount=-1
|
||||
kerning first=86 second=101 amount=-1
|
||||
kerning first=87 second=97 amount=-1
|
||||
kerning first=86 second=46 amount=-1
|
||||
kerning first=86 second=114 amount=-1
|
||||
kerning first=86 second=59 amount=-1
|
||||
kerning first=84 second=101 amount=-2
|
||||
kerning first=84 second=46 amount=-2
|
||||
kerning first=32 second=65 amount=-1
|
||||
kerning first=84 second=114 amount=-1
|
||||
kerning first=114 second=44 amount=-1
|
||||
kerning first=84 second=59 amount=-2
|
||||
kerning first=70 second=65 amount=-1
|
||||
kerning first=80 second=46 amount=-2
|
||||
kerning first=70 second=44 amount=-2
|
||||
kerning first=84 second=119 amount=-1
|
||||
kerning first=89 second=65 amount=-1
|
||||
kerning first=86 second=111 amount=-1
|
||||
kerning first=89 second=44 amount=-2
|
||||
kerning first=89 second=112 amount=-1
|
||||
kerning first=87 second=65 amount=-1
|
||||
kerning first=118 second=46 amount=-1
|
||||
kerning first=84 second=111 amount=-2
|
||||
kerning first=87 second=44 amount=-1
|
||||
kerning first=49 second=49 amount=-1
|
||||
kerning first=89 second=117 amount=-1
|
||||
kerning first=114 second=46 amount=-1
|
||||
kerning first=86 second=121 amount=-1
|
||||
kerning first=65 second=87 amount=-1
|
||||
kerning first=65 second=32 amount=-1
|
||||
kerning first=86 second=45 amount=-1
|
Before Width: | Height: | Size: 10 KiB |
@ -1,102 +0,0 @@
|
||||
info face="Droid Sans" size=17 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
|
||||
common lineHeight=20 base=18 scaleW=256 scaleH=128 pages=1 packed=0
|
||||
page id=0 file="default.png"
|
||||
chars count=96
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0
|
||||
char id=124 x=0 y=0 width=6 height=20 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=106 x=6 y=0 width=9 height=20 xoffset=-4 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=81 x=15 y=0 width=15 height=19 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=74 x=30 y=0 width=11 height=19 xoffset=-5 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=125 x=41 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=123 x=51 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=93 x=61 y=0 width=8 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=91 x=69 y=0 width=8 height=18 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=41 x=77 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=40 x=86 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=64 x=95 y=0 width=18 height=17 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=121 x=113 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=113 x=126 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=112 x=139 y=0 width=13 height=17 xoffset=-2 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=103 x=152 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=38 x=165 y=0 width=16 height=16 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=37 x=181 y=0 width=18 height=16 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=36 x=199 y=0 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=63 x=211 y=0 width=11 height=16 xoffset=-3 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=33 x=222 y=0 width=7 height=16 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=48 x=229 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=57 x=242 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=56 x=0 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=54 x=13 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=53 x=26 y=20 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=51 x=38 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=100 x=51 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=98 x=64 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=85 x=77 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=83 x=91 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=79 x=104 y=20 width=15 height=16 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=71 x=119 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=67 x=133 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=127 x=146 y=20 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=35 x=158 y=20 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=92 x=173 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=47 x=184 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=59 x=195 y=20 width=8 height=15 xoffset=-3 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=55 x=203 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=52 x=216 y=20 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=50 x=230 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=49 x=243 y=20 width=9 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=116 x=0 y=36 width=10 height=15 xoffset=-3 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=108 x=10 y=36 width=6 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=107 x=16 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=105 x=28 y=36 width=7 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=104 x=35 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=102 x=47 y=36 width=11 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=90 x=58 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=89 x=71 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=88 x=84 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=87 x=98 y=36 width=19 height=15 xoffset=-3 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=86 x=117 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=84 x=131 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=82 x=144 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=80 x=157 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=78 x=169 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=77 x=183 y=36 width=17 height=15 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=76 x=200 y=36 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=75 x=211 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=73 x=224 y=36 width=10 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=72 x=234 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=70 x=0 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=69 x=11 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=68 x=22 y=51 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=66 x=36 y=51 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=65 x=49 y=51 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=58 x=64 y=51 width=7 height=13 xoffset=-2 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=117 x=71 y=51 width=12 height=13 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=115 x=83 y=51 width=11 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=111 x=94 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=101 x=107 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=99 x=120 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=97 x=132 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=60 x=144 y=51 width=13 height=12 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=122 x=157 y=51 width=11 height=12 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=120 x=168 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=119 x=181 y=51 width=17 height=12 xoffset=-3 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=118 x=198 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=114 x=211 y=51 width=10 height=12 xoffset=-2 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=110 x=221 y=51 width=12 height=12 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=109 x=233 y=51 width=17 height=12 xoffset=-2 yoffset=6 xadvance=15 page=0 chnl=0
|
||||
char id=94 x=0 y=66 width=13 height=11 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=62 x=13 y=66 width=13 height=11 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=42 x=26 y=66 width=13 height=10 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=43 x=39 y=66 width=13 height=10 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=61 x=52 y=66 width=13 height=8 xoffset=-3 yoffset=7 xadvance=9 page=0 chnl=0
|
||||
char id=39 x=65 y=66 width=6 height=8 xoffset=-2 yoffset=3 xadvance=3 page=0 chnl=0
|
||||
char id=34 x=71 y=66 width=9 height=8 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=44 x=80 y=66 width=8 height=7 xoffset=-3 yoffset=14 xadvance=4 page=0 chnl=0
|
||||
char id=126 x=88 y=66 width=13 height=6 xoffset=-3 yoffset=8 xadvance=9 page=0 chnl=0
|
||||
char id=46 x=101 y=66 width=7 height=6 xoffset=-2 yoffset=13 xadvance=4 page=0 chnl=0
|
||||
char id=96 x=108 y=66 width=8 height=6 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=45 x=116 y=66 width=9 height=5 xoffset=-3 yoffset=10 xadvance=5 page=0 chnl=0
|
||||
char id=95 x=125 y=66 width=13 height=4 xoffset=-4 yoffset=17 xadvance=6 page=0 chnl=0
|
||||
kernings count=-1
|
||||
|
Before Width: | Height: | Size: 10 KiB |
@ -1,200 +0,0 @@
|
||||
|
||||
uiskin.png
|
||||
size: 256,128
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
check-off
|
||||
rotate: false
|
||||
xy: 11, 5
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
textfield
|
||||
rotate: false
|
||||
xy: 11, 5
|
||||
size: 14, 14
|
||||
split: 3, 3, 3, 3
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check-on
|
||||
rotate: false
|
||||
xy: 125, 35
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor
|
||||
rotate: false
|
||||
xy: 23, 1
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default
|
||||
rotate: false
|
||||
xy: 1, 50
|
||||
size: 254, 77
|
||||
orig: 254, 77
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-pane
|
||||
rotate: false
|
||||
xy: 11, 1
|
||||
size: 5, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 5, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-rect-pad
|
||||
rotate: false
|
||||
xy: 11, 1
|
||||
size: 5, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 5, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-pane-noborder
|
||||
rotate: false
|
||||
xy: 170, 44
|
||||
size: 1, 1
|
||||
split: 0, 0, 0, 0
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-rect
|
||||
rotate: false
|
||||
xy: 38, 25
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-rect-down
|
||||
rotate: false
|
||||
xy: 170, 46
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-round
|
||||
rotate: false
|
||||
xy: 112, 29
|
||||
size: 12, 20
|
||||
split: 5, 5, 5, 4
|
||||
pad: 4, 4, 1, 1
|
||||
orig: 12, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-round-down
|
||||
rotate: false
|
||||
xy: 99, 29
|
||||
size: 12, 20
|
||||
split: 5, 5, 5, 4
|
||||
pad: 4, 4, 1, 1
|
||||
orig: 12, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-round-large
|
||||
rotate: false
|
||||
xy: 57, 29
|
||||
size: 20, 20
|
||||
split: 5, 5, 5, 4
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-scroll
|
||||
rotate: false
|
||||
xy: 78, 29
|
||||
size: 20, 20
|
||||
split: 2, 2, 2, 2
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-select
|
||||
rotate: false
|
||||
xy: 29, 29
|
||||
size: 27, 20
|
||||
split: 4, 14, 4, 4
|
||||
orig: 27, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-select-selection
|
||||
rotate: false
|
||||
xy: 26, 16
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-slider
|
||||
rotate: false
|
||||
xy: 29, 20
|
||||
size: 8, 8
|
||||
split: 2, 2, 2, 2
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-slider-knob
|
||||
rotate: false
|
||||
xy: 1, 1
|
||||
size: 9, 18
|
||||
orig: 9, 18
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-splitpane
|
||||
rotate: false
|
||||
xy: 17, 1
|
||||
size: 5, 3
|
||||
split: 0, 5, 0, 0
|
||||
orig: 5, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-splitpane-vertical
|
||||
rotate: false
|
||||
xy: 125, 29
|
||||
size: 3, 5
|
||||
split: 0, 0, 0, 5
|
||||
orig: 3, 5
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-window
|
||||
rotate: false
|
||||
xy: 1, 20
|
||||
size: 27, 29
|
||||
split: 4, 3, 20, 3
|
||||
orig: 27, 29
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
selection
|
||||
rotate: false
|
||||
xy: 174, 48
|
||||
size: 1, 1
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
tree-minus
|
||||
rotate: false
|
||||
xy: 140, 35
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
tree-plus
|
||||
rotate: false
|
||||
xy: 155, 35
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
white
|
||||
rotate: false
|
||||
xy: 129, 31
|
||||
size: 3, 3
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
@ -1,71 +0,0 @@
|
||||
{
|
||||
BitmapFont: { default-font: { file: default.fnt } },
|
||||
Color: {
|
||||
green: { a: 1, b: 0, g: 1, r: 0 },
|
||||
white: { a: 1, b: 1, g: 1, r: 1 },
|
||||
red: { a: 1, b: 0, g: 0, r: 1 },
|
||||
black: { a: 1, b: 0, g: 0, r: 0 },
|
||||
gray: { a: 1, b: 0.8, g: 0.8, r: 0.8 },
|
||||
},
|
||||
TintedDrawable: {
|
||||
dialogDim: { name: white, color: { r: 0, g: 0, b: 0, a: 0.45 } },
|
||||
},
|
||||
ButtonStyle: {
|
||||
default: { down: default-round-down, up: default-round, disabled: default-round },
|
||||
toggle: { parent: default, checked: default-round-down }
|
||||
},
|
||||
TextButtonStyle: {
|
||||
default: { parent: default, font: default-font, fontColor: white, disabledFontColor: gray },
|
||||
toggle: { parent: default, checked: default-round-down, downFontColor: red }
|
||||
},
|
||||
ScrollPaneStyle: {
|
||||
default: { vScroll: default-scroll, hScrollKnob: default-round-large, background: default-rect, hScroll: default-scroll, vScrollKnob: default-round-large }
|
||||
},
|
||||
SelectBoxStyle: {
|
||||
default: {
|
||||
font: default-font, fontColor: white, background: default-select,
|
||||
scrollStyle: default,
|
||||
listStyle: { font: default-font, selection: default-select-selection }
|
||||
}
|
||||
},
|
||||
SplitPaneStyle: {
|
||||
default-vertical: { handle: default-splitpane-vertical },
|
||||
default-horizontal: { handle: default-splitpane }
|
||||
},
|
||||
WindowStyle: {
|
||||
default: { titleFont: default-font, background: default-window, titleFontColor: white },
|
||||
dialog: { parent: default, stageBackground: dialogDim }
|
||||
},
|
||||
ProgressBarStyle: {
|
||||
default-horizontal: { background: default-slider, knob: default-slider-knob },
|
||||
default-vertical: { background: default-slider, knob: default-round-large }
|
||||
},
|
||||
SliderStyle: {
|
||||
default-horizontal: { parent: default-horizontal },
|
||||
default-vertical: { parent: default-vertical }
|
||||
},
|
||||
LabelStyle: {
|
||||
default: { font: default-font, fontColor: white }
|
||||
},
|
||||
TextFieldStyle: {
|
||||
default: { selection: selection, background: textfield, font: default-font, fontColor: white, cursor: cursor }
|
||||
},
|
||||
CheckBoxStyle: {
|
||||
default: { checkboxOn: check-on, checkboxOff: check-off, font: default-font, fontColor: white }
|
||||
},
|
||||
ListStyle: {
|
||||
default: { fontColorUnselected: white, selection: selection, fontColorSelected: white, font: default-font }
|
||||
},
|
||||
TouchpadStyle: {
|
||||
default: { background: default-pane, knob: default-round-large }
|
||||
},
|
||||
TreeStyle: {
|
||||
default: { minus: tree-minus, plus: tree-plus, selection: default-select-selection }
|
||||
},
|
||||
TextTooltipStyle: {
|
||||
default: {
|
||||
label: { font: default-font, fontColor: white },
|
||||
background: default-pane, wrapWidth: 150
|
||||
}
|
||||
},
|
||||
}
|
Before Width: | Height: | Size: 28 KiB |
@ -1 +0,0 @@
|
||||
Subproject commit 257e5ee2f8dd8c1c68c7366f76bb3eb01b0de976
|
Before Width: | Height: | Size: 2.4 KiB |
@ -1,198 +0,0 @@
|
||||
info face="font-list" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=1,1,1,1 spacing=0,0
|
||||
common lineHeight=15 base=11 scaleW=505 scaleH=30 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="font-list.png"
|
||||
chars count=193
|
||||
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=33 x=391 y=14 width=2 height=7 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=34 x=248 y=23 width=3 height=3 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=35 x=466 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=36 x=9 y=2 width=5 height=10 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=37 x=490 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=38 x=450 y=14 width=7 height=7 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=39 x=267 y=23 width=2 height=3 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=40 x=126 y=2 width=3 height=9 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=41 x=131 y=2 width=2 height=9 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=42 x=46 y=23 width=4 height=5 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=43 x=73 y=23 width=6 height=5 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=44 x=263 y=23 width=2 height=3 xoffset=-1 yoffset=9 xadvance=3 page=0 chnl=0
|
||||
char id=45 x=306 y=23 width=4 height=1 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0
|
||||
char id=46 x=296 y=23 width=2 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=0
|
||||
char id=47 x=354 y=2 width=4 height=8 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=48 x=383 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=49 x=317 y=14 width=3 height=7 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=50 x=322 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=51 x=329 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=52 x=336 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=53 x=344 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=54 x=352 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=55 x=360 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=56 x=367 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=57 x=375 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=58 x=201 y=23 width=2 height=4 xoffset=-1 yoffset=7 xadvance=3 page=0 chnl=0
|
||||
char id=59 x=118 y=23 width=2 height=5 xoffset=-1 yoffset=7 xadvance=3 page=0 chnl=0
|
||||
char id=60 x=59 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=61 x=271 y=23 width=5 height=3 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=62 x=52 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=63 x=395 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=64 x=161 y=2 width=10 height=9 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=0
|
||||
char id=65 x=443 y=2 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=66 x=494 y=2 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=67 x=0 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=68 x=8 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=69 x=16 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=70 x=24 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=71 x=31 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=72 x=54 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=73 x=502 y=2 width=2 height=7 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=74 x=332 y=2 width=3 height=8 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=75 x=69 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=76 x=77 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=77 x=84 y=14 width=8 height=7 xoffset=-1 yoffset=4 xadvance=9 page=0 chnl=0
|
||||
char id=78 x=94 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=79 x=102 y=14 width=7 height=7 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=80 x=111 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=81 x=117 y=2 width=7 height=9 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=82 x=126 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=83 x=134 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=84 x=141 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=85 x=174 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=86 x=199 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=87 x=207 y=14 width=9 height=7 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=0
|
||||
char id=88 x=218 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=89 x=226 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=90 x=234 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=91 x=135 y=2 width=3 height=9 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=92 x=367 y=2 width=4 height=8 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=93 x=140 y=2 width=3 height=9 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=94 x=187 y=23 width=5 height=4 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=95 x=285 y=23 width=5 height=1 xoffset=0 yoffset=12 xadvance=7 page=0 chnl=0
|
||||
char id=96 x=258 y=23 width=3 height=3 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=0
|
||||
char id=97 x=88 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=98 x=241 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=99 x=95 y=23 width=4 height=5 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=100 x=248 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=101 x=101 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=102 x=255 y=14 width=4 height=7 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=103 x=261 y=14 width=5 height=7 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=104 x=268 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=105 x=275 y=14 width=2 height=7 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=106 x=4 y=2 width=3 height=10 xoffset=-2 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=107 x=279 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=108 x=286 y=14 width=2 height=7 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=109 x=108 y=23 width=8 height=5 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=110 x=122 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=111 x=129 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=112 x=290 y=14 width=5 height=7 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=113 x=297 y=14 width=5 height=7 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=114 x=15 y=23 width=4 height=6 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=115 x=136 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=116 x=304 y=14 width=4 height=7 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=117 x=143 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=118 x=150 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=119 x=157 y=23 width=8 height=5 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=120 x=167 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=121 x=310 y=14 width=5 height=7 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=122 x=174 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=123 x=145 y=2 width=4 height=9 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=124 x=157 y=2 width=2 height=9 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=125 x=151 y=2 width=4 height=9 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=126 x=278 y=23 width=5 height=2 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=0
|
||||
char id=161 x=195 y=14 width=2 height=7 xoffset=-1 yoffset=6 xadvance=3 page=0 chnl=0
|
||||
char id=162 x=189 y=14 width=4 height=7 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=163 x=182 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=164 x=8 y=23 width=5 height=6 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=165 x=166 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=166 x=180 y=2 width=2 height=9 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=167 x=415 y=2 width=5 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=168 x=312 y=23 width=4 height=1 xoffset=-2 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=169 x=0 y=23 width=6 height=6 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=170 x=181 y=23 width=4 height=4 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=171 x=66 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=172 x=241 y=23 width=5 height=3 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=174 x=498 y=14 width=6 height=6 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=175 x=300 y=23 width=4 height=1 xoffset=-2 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=176 x=235 y=23 width=4 height=3 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=177 x=38 y=23 width=6 height=5 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=178 x=230 y=23 width=3 height=3 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=179 x=225 y=23 width=3 height=3 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=180 x=220 y=23 width=3 height=3 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=181 x=47 y=14 width=5 height=7 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=182 x=39 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=183 x=292 y=23 width=2 height=1 xoffset=-1 yoffset=8 xadvance=3 page=0 chnl=0
|
||||
char id=184 x=215 y=23 width=3 height=3 xoffset=-1 yoffset=10 xadvance=4 page=0 chnl=0
|
||||
char id=185 x=211 y=23 width=2 height=3 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=186 x=205 y=23 width=4 height=3 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=187 x=31 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=188 x=184 y=2 width=5 height=9 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=189 x=191 y=2 width=5 height=9 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=190 x=198 y=2 width=6 height=9 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=191 x=472 y=2 width=5 height=7 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=192 x=16 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=193 x=24 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=194 x=213 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=195 x=221 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=196 x=229 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=197 x=237 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=198 x=149 y=14 width=9 height=7 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=0
|
||||
char id=199 x=245 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=200 x=39 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=201 x=47 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=202 x=253 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=203 x=261 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=204 x=55 y=2 width=4 height=10 xoffset=-2 yoffset=1 xadvance=3 page=0 chnl=0
|
||||
char id=205 x=61 y=2 width=3 height=10 xoffset=-1 yoffset=1 xadvance=3 page=0 chnl=0
|
||||
char id=206 x=285 y=2 width=4 height=9 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=207 x=291 y=2 width=4 height=9 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=208 x=414 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=209 x=297 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=210 x=66 y=2 width=7 height=10 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=211 x=75 y=2 width=7 height=10 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=212 x=305 y=2 width=7 height=9 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=213 x=323 y=2 width=7 height=9 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=214 x=314 y=2 width=7 height=9 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=215 x=81 y=23 width=5 height=5 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=216 x=84 y=2 width=7 height=10 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=217 x=93 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=218 x=101 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=219 x=277 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=220 x=269 y=2 width=6 height=9 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=221 x=109 y=2 width=6 height=10 xoffset=-1 yoffset=1 xadvance=6 page=0 chnl=0
|
||||
char id=222 x=474 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=223 x=486 y=2 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=224 x=436 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=225 x=429 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=226 x=451 y=2 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=227 x=465 y=2 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=228 x=479 y=2 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=229 x=422 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=230 x=21 y=23 width=8 height=5 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=231 x=160 y=14 width=4 height=7 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=232 x=408 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=233 x=360 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=234 x=429 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=235 x=422 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=236 x=349 y=2 width=3 height=8 xoffset=-2 yoffset=3 xadvance=3 page=0 chnl=0
|
||||
char id=237 x=344 y=2 width=3 height=8 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=0
|
||||
char id=238 x=408 y=14 width=4 height=7 xoffset=-2 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=239 x=402 y=14 width=4 height=7 xoffset=-2 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=240 x=337 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=241 x=119 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=242 x=394 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=243 x=387 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=244 x=443 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=245 x=436 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=246 x=62 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=247 x=194 y=23 width=5 height=4 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=248 x=373 y=2 width=5 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=249 x=380 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=250 x=401 y=2 width=5 height=8 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=251 x=459 y=14 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=252 x=458 y=2 width=5 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=253 x=32 y=2 width=5 height=10 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=254 x=206 y=2 width=5 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=255 x=173 y=2 width=5 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=8226 x=253 y=23 width=3 height=3 xoffset=0 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=8364 x=482 y=14 width=6 height=7 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
kernings count=0
|
@ -1,198 +0,0 @@
|
||||
info face="font-subtitle" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=1,1,1,1 spacing=0,0
|
||||
common lineHeight=18 base=13 scaleW=505 scaleH=36 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="font-subtitle.png"
|
||||
chars count=193
|
||||
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=13 xadvance=3 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=33 x=9 y=27 width=1 height=8 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=34 x=351 y=27 width=4 height=3 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=35 x=46 y=27 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=36 x=7 y=2 width=6 height=12 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=37 x=117 y=16 width=7 height=9 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=38 x=28 y=27 width=8 height=8 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=39 x=370 y=27 width=2 height=3 xoffset=-1 yoffset=5 xadvance=2 page=0 chnl=0
|
||||
char id=40 x=39 y=2 width=3 height=11 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=41 x=44 y=2 width=3 height=11 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=42 x=270 y=27 width=5 height=5 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=43 x=164 y=27 width=7 height=6 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=44 x=379 y=27 width=2 height=3 xoffset=-1 yoffset=11 xadvance=2 page=0 chnl=0
|
||||
char id=45 x=410 y=27 width=5 height=1 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=0
|
||||
char id=46 x=436 y=27 width=2 height=1 xoffset=-1 yoffset=12 xadvance=2 page=0 chnl=0
|
||||
char id=47 x=341 y=2 width=5 height=10 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=48 x=0 y=27 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=49 x=441 y=16 width=4 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=50 x=447 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=51 x=455 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=52 x=463 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=53 x=472 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=54 x=480 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=55 x=55 y=16 width=5 height=9 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=56 x=489 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=57 x=498 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=58 x=277 y=27 width=2 height=5 xoffset=-1 yoffset=8 xadvance=2 page=0 chnl=0
|
||||
char id=59 x=112 y=27 width=2 height=7 xoffset=-1 yoffset=8 xadvance=3 page=0 chnl=0
|
||||
char id=60 x=148 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=61 x=362 y=27 width=6 height=3 xoffset=-1 yoffset=9 xadvance=7 page=0 chnl=0
|
||||
char id=62 x=139 y=27 width=7 height=6 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=63 x=12 y=27 width=5 height=8 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=64 x=348 y=2 width=12 height=10 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0
|
||||
char id=65 x=145 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=66 x=154 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=67 x=162 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=68 x=171 y=16 width=7 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=69 x=180 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=70 x=188 y=16 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=71 x=212 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=72 x=228 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=73 x=236 y=16 width=1 height=8 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=74 x=379 y=2 width=3 height=9 xoffset=-1 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=75 x=249 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=76 x=257 y=16 width=5 height=8 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=77 x=264 y=16 width=8 height=8 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=78 x=274 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=79 x=282 y=16 width=8 height=8 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=80 x=292 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=81 x=323 y=2 width=8 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=82 x=300 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=83 x=308 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=84 x=316 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=85 x=325 y=16 width=6 height=8 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=86 x=333 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=87 x=342 y=16 width=10 height=8 xoffset=-1 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=88 x=354 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=89 x=363 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=90 x=372 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=91 x=49 y=2 width=3 height=11 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=92 x=102 y=16 width=5 height=9 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=93 x=54 y=2 width=3 height=11 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=94 x=310 y=27 width=6 height=4 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=95 x=417 y=27 width=6 height=1 xoffset=0 yoffset=14 xadvance=8 page=0 chnl=0
|
||||
char id=96 x=388 y=27 width=3 height=2 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=97 x=124 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=98 x=384 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=99 x=132 y=27 width=5 height=6 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=100 x=392 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=101 x=156 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=102 x=400 y=2 width=4 height=9 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=103 x=414 y=2 width=6 height=9 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=104 x=453 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=105 x=416 y=16 width=2 height=8 xoffset=-1 yoffset=5 xadvance=2 page=0 chnl=0
|
||||
char id=106 x=34 y=2 width=3 height=11 xoffset=-2 yoffset=5 xadvance=2 page=0 chnl=0
|
||||
char id=107 x=494 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=108 x=502 y=2 width=1 height=9 xoffset=0 yoffset=4 xadvance=2 page=0 chnl=0
|
||||
char id=109 x=185 y=27 width=10 height=6 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=110 x=197 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=111 x=205 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=112 x=31 y=16 width=6 height=9 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=113 x=39 y=16 width=6 height=9 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=114 x=106 y=27 width=4 height=7 xoffset=-1 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=115 x=213 y=27 width=5 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=116 x=434 y=16 width=5 height=8 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=117 x=220 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=118 x=228 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=119 x=236 y=27 width=9 height=6 xoffset=-1 yoffset=7 xadvance=9 page=0 chnl=0
|
||||
char id=120 x=247 y=27 width=5 height=6 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=121 x=47 y=16 width=6 height=9 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=122 x=254 y=27 width=5 height=6 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=123 x=59 y=2 width=4 height=11 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=124 x=4 y=2 width=1 height=12 xoffset=0 yoffset=4 xadvance=2 page=0 chnl=0
|
||||
char id=125 x=65 y=2 width=4 height=11 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=126 x=393 y=27 width=6 height=2 xoffset=-1 yoffset=9 xadvance=7 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=13 xadvance=3 page=0 chnl=0
|
||||
char id=161 x=126 y=16 width=2 height=9 xoffset=-1 yoffset=7 xadvance=2 page=0 chnl=0
|
||||
char id=162 x=130 y=16 width=5 height=9 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=163 x=221 y=16 width=5 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=164 x=89 y=27 width=6 height=7 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=165 x=203 y=16 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=166 x=15 y=2 width=1 height=12 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=167 x=362 y=2 width=6 height=10 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=168 x=425 y=27 width=3 height=1 xoffset=-1 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=169 x=80 y=27 width=7 height=7 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=170 x=298 y=27 width=4 height=4 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=171 x=290 y=27 width=6 height=4 xoffset=-1 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=172 x=338 y=27 width=6 height=3 xoffset=-1 yoffset=9 xadvance=7 page=0 chnl=0
|
||||
char id=174 x=97 y=27 width=7 height=7 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=175 x=430 y=27 width=4 height=1 xoffset=-2 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=176 x=304 y=27 width=4 height=4 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=177 x=281 y=27 width=7 height=5 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=178 x=383 y=27 width=3 height=3 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=179 x=346 y=27 width=3 height=3 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=180 x=401 y=27 width=3 height=2 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=181 x=78 y=16 width=5 height=9 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=182 x=19 y=27 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=183 x=406 y=27 width=2 height=1 xoffset=-1 yoffset=9 xadvance=2 page=0 chnl=0
|
||||
char id=184 x=357 y=27 width=3 height=3 xoffset=-1 yoffset=13 xadvance=3 page=0 chnl=0
|
||||
char id=185 x=374 y=27 width=3 height=3 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=186 x=332 y=27 width=4 height=4 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=187 x=324 y=27 width=6 height=4 xoffset=-1 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=188 x=79 y=2 width=6 height=11 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=189 x=87 y=2 width=6 height=11 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=190 x=95 y=2 width=7 height=11 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=191 x=8 y=16 width=5 height=9 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=192 x=104 y=2 width=7 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=193 x=113 y=2 width=7 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=194 x=122 y=2 width=7 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=195 x=131 y=2 width=7 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=196 x=140 y=2 width=7 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=197 x=370 y=2 width=7 height=10 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=198 x=404 y=16 width=10 height=8 xoffset=-1 yoffset=5 xadvance=11 page=0 chnl=0
|
||||
char id=199 x=149 y=2 width=7 height=11 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=200 x=158 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=201 x=166 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=202 x=174 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=203 x=182 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=204 x=190 y=2 width=4 height=11 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=205 x=196 y=2 width=3 height=11 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=206 x=201 y=2 width=5 height=11 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=207 x=208 y=2 width=4 height=11 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=208 x=239 y=16 width=8 height=8 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=209 x=214 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=210 x=222 y=2 width=8 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=211 x=232 y=2 width=8 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=212 x=242 y=2 width=8 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=213 x=252 y=2 width=8 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=214 x=262 y=2 width=8 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=215 x=116 y=27 width=6 height=6 xoffset=-1 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=216 x=313 y=2 width=8 height=11 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=217 x=305 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=218 x=297 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=219 x=289 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=220 x=281 y=2 width=6 height=11 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=221 x=272 y=2 width=7 height=11 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=222 x=38 y=27 width=6 height=8 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=223 x=85 y=16 width=7 height=9 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=224 x=94 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=225 x=137 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=226 x=469 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=227 x=380 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=228 x=388 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=229 x=406 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=230 x=173 y=27 width=10 height=6 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=231 x=422 y=2 width=5 height=9 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=232 x=429 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=233 x=437 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=234 x=445 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=235 x=396 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=236 x=477 y=2 width=3 height=9 xoffset=-2 yoffset=4 xadvance=2 page=0 chnl=0
|
||||
char id=237 x=482 y=2 width=4 height=9 xoffset=-1 yoffset=4 xadvance=2 page=0 chnl=0
|
||||
char id=238 x=488 y=2 width=4 height=9 xoffset=-2 yoffset=4 xadvance=2 page=0 chnl=0
|
||||
char id=239 x=420 y=16 width=4 height=8 xoffset=-2 yoffset=5 xadvance=2 page=0 chnl=0
|
||||
char id=240 x=0 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=241 x=426 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=242 x=15 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=243 x=23 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=244 x=109 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=245 x=63 y=27 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=246 x=55 y=27 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=247 x=261 y=27 width=7 height=5 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=248 x=333 y=2 width=6 height=10 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=249 x=70 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=250 x=62 y=16 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=251 x=461 y=2 width=6 height=9 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=252 x=195 y=16 width=6 height=8 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=253 x=26 y=2 width=6 height=12 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=254 x=18 y=2 width=6 height=12 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=255 x=71 y=2 width=6 height=11 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=8226 x=318 y=27 width=4 height=4 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=8364 x=71 y=27 width=7 height=8 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
kernings count=0
|
@ -1,198 +0,0 @@
|
||||
info face="font-window" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=1,1,1,1 spacing=0,0
|
||||
common lineHeight=27 base=20 scaleW=506 scaleH=62 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="font-window.png"
|
||||
chars count=193
|
||||
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=20 xadvance=4 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=-1 xadvance=4 page=0 chnl=0
|
||||
char id=33 x=276 y=38 width=2 height=12 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=34 x=293 y=52 width=5 height=4 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=35 x=370 y=38 width=10 height=12 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
|
||||
char id=36 x=175 y=2 width=8 height=16 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=37 x=62 y=22 width=10 height=14 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=0
|
||||
char id=38 x=343 y=38 width=13 height=12 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0
|
||||
char id=39 x=306 y=52 width=2 height=4 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=40 x=392 y=2 width=4 height=15 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=41 x=398 y=2 width=4 height=15 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=42 x=172 y=52 width=7 height=8 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=43 x=465 y=38 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=44 x=300 y=52 width=4 height=4 xoffset=-1 yoffset=18 xadvance=5 page=0 chnl=0
|
||||
char id=45 x=359 y=52 width=5 height=2 xoffset=0 yoffset=14 xadvance=7 page=0 chnl=0
|
||||
char id=46 x=330 y=52 width=2 height=3 xoffset=0 yoffset=17 xadvance=4 page=0 chnl=0
|
||||
char id=47 x=0 y=22 width=8 height=14 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=0
|
||||
char id=48 x=265 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=49 x=174 y=38 width=6 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=50 x=182 y=38 width=7 height=12 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
|
||||
char id=51 x=191 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=52 x=201 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=53 x=212 y=38 width=9 height=12 xoffset=-1 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=54 x=223 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=55 x=234 y=38 width=7 height=12 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
|
||||
char id=56 x=243 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=57 x=254 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=58 x=192 y=52 width=2 height=8 xoffset=0 yoffset=12 xadvance=4 page=0 chnl=0
|
||||
char id=59 x=444 y=38 width=4 height=10 xoffset=-1 yoffset=12 xadvance=4 page=0 chnl=0
|
||||
char id=60 x=0 y=52 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=61 x=204 y=52 width=8 height=6 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0
|
||||
char id=62 x=495 y=38 width=8 height=9 xoffset=1 yoffset=11 xadvance=11 page=0 chnl=0
|
||||
char id=63 x=280 y=38 width=7 height=12 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=64 x=157 y=2 width=16 height=16 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0
|
||||
char id=65 x=303 y=22 width=11 height=12 xoffset=-1 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=66 x=316 y=22 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=67 x=326 y=22 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=68 x=336 y=22 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=69 x=347 y=22 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=70 x=357 y=22 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=71 x=367 y=22 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=72 x=378 y=22 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=73 x=389 y=22 width=2 height=12 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=74 x=122 y=22 width=4 height=13 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0
|
||||
char id=75 x=393 y=22 width=9 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=76 x=404 y=22 width=7 height=12 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
|
||||
char id=77 x=413 y=22 width=13 height=12 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0
|
||||
char id=78 x=440 y=22 width=10 height=12 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
|
||||
char id=79 x=462 y=22 width=10 height=12 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
|
||||
char id=80 x=478 y=22 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=81 x=380 y=2 width=10 height=15 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
|
||||
char id=82 x=0 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=83 x=11 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=84 x=21 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=85 x=32 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=86 x=43 y=38 width=11 height=12 xoffset=-1 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=87 x=56 y=38 width=17 height=12 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0
|
||||
char id=88 x=75 y=38 width=11 height=12 xoffset=-1 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=89 x=88 y=38 width=10 height=12 xoffset=-1 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=90 x=100 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=91 x=404 y=2 width=5 height=15 xoffset=0 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=92 x=10 y=22 width=9 height=14 xoffset=-1 yoffset=7 xadvance=9 page=0 chnl=0
|
||||
char id=93 x=411 y=2 width=4 height=15 xoffset=0 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=94 x=222 y=52 width=10 height=6 xoffset=-1 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=95 x=349 y=52 width=8 height=2 xoffset=1 yoffset=21 xadvance=12 page=0 chnl=0
|
||||
char id=96 x=279 y=52 width=6 height=5 xoffset=-2 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=97 x=32 y=52 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=98 x=110 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=99 x=42 y=52 width=7 height=9 xoffset=0 yoffset=11 xadvance=8 page=0 chnl=0
|
||||
char id=100 x=120 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=101 x=51 y=52 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=102 x=130 y=38 width=6 height=12 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=103 x=158 y=22 width=8 height=13 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=104 x=138 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=105 x=148 y=38 width=2 height=12 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=106 x=147 y=2 width=4 height=16 xoffset=-2 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=107 x=152 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
|
||||
char id=108 x=162 y=38 width=2 height=12 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=109 x=61 y=52 width=12 height=9 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=0
|
||||
char id=110 x=75 y=52 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=111 x=85 y=52 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=112 x=215 y=22 width=8 height=13 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=113 x=225 y=22 width=8 height=13 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=114 x=436 y=38 width=6 height=10 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=0
|
||||
char id=115 x=95 y=52 width=7 height=9 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=0
|
||||
char id=116 x=166 y=38 width=6 height=12 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=117 x=104 y=52 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=118 x=114 y=52 width=9 height=9 xoffset=-1 yoffset=11 xadvance=9 page=0 chnl=0
|
||||
char id=119 x=125 y=52 width=14 height=9 xoffset=-1 yoffset=11 xadvance=14 page=0 chnl=0
|
||||
char id=120 x=141 y=52 width=9 height=9 xoffset=-1 yoffset=11 xadvance=9 page=0 chnl=0
|
||||
char id=121 x=235 y=22 width=9 height=13 xoffset=-1 yoffset=11 xadvance=9 page=0 chnl=0
|
||||
char id=122 x=152 y=52 width=7 height=9 xoffset=0 yoffset=11 xadvance=9 page=0 chnl=0
|
||||
char id=123 x=417 y=2 width=6 height=15 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=124 x=153 y=2 width=2 height=16 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=125 x=425 y=2 width=6 height=15 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=126 x=320 y=52 width=8 height=3 xoffset=0 yoffset=14 xadvance=10 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=20 xadvance=4 page=0 chnl=0
|
||||
char id=161 x=474 y=22 width=2 height=12 xoffset=0 yoffset=11 xadvance=4 page=0 chnl=0
|
||||
char id=162 x=403 y=38 width=7 height=11 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=0
|
||||
char id=163 x=452 y=22 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=164 x=21 y=52 width=9 height=9 xoffset=-1 yoffset=11 xadvance=9 page=0 chnl=0
|
||||
char id=165 x=428 y=22 width=10 height=12 xoffset=-1 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=166 x=185 y=2 width=2 height=16 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0
|
||||
char id=167 x=433 y=2 width=8 height=15 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=168 x=341 y=52 width=6 height=2 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0
|
||||
char id=169 x=424 y=38 width=10 height=10 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=0
|
||||
char id=170 x=250 y=52 width=6 height=5 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=171 x=161 y=52 width=9 height=8 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=0
|
||||
char id=172 x=240 y=52 width=8 height=5 xoffset=0 yoffset=14 xadvance=10 page=0 chnl=0
|
||||
char id=174 x=412 y=38 width=10 height=10 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=0
|
||||
char id=175 x=334 y=52 width=5 height=2 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0
|
||||
char id=176 x=196 y=52 width=6 height=6 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=177 x=485 y=38 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=178 x=265 y=52 width=4 height=5 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=179 x=234 y=52 width=4 height=5 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=180 x=271 y=52 width=6 height=5 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=181 x=266 y=22 width=8 height=13 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=182 x=321 y=38 width=10 height=12 xoffset=-1 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=183 x=316 y=52 width=2 height=3 xoffset=0 yoffset=14 xadvance=4 page=0 chnl=0
|
||||
char id=184 x=310 y=52 width=4 height=4 xoffset=-1 yoffset=20 xadvance=5 page=0 chnl=0
|
||||
char id=185 x=287 y=52 width=4 height=5 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=186 x=214 y=52 width=6 height=6 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=187 x=181 y=52 width=9 height=8 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=0
|
||||
char id=188 x=443 y=2 width=9 height=15 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=189 x=454 y=2 width=9 height=15 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=190 x=189 y=2 width=9 height=16 xoffset=-1 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=191 x=168 y=22 width=7 height=13 xoffset=0 yoffset=11 xadvance=8 page=0 chnl=0
|
||||
char id=192 x=27 y=2 width=11 height=17 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=193 x=40 y=2 width=11 height=17 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=194 x=222 y=2 width=11 height=16 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=0
|
||||
char id=195 x=235 y=2 width=11 height=16 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=0
|
||||
char id=196 x=248 y=2 width=12 height=16 xoffset=-2 yoffset=4 xadvance=10 page=0 chnl=0
|
||||
char id=197 x=465 y=2 width=12 height=15 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0
|
||||
char id=198 x=489 y=22 width=15 height=12 xoffset=-1 yoffset=8 xadvance=16 page=0 chnl=0
|
||||
char id=199 x=262 y=2 width=8 height=16 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=200 x=53 y=2 width=8 height=17 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=201 x=63 y=2 width=8 height=17 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=202 x=272 y=2 width=8 height=16 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=0
|
||||
char id=203 x=282 y=2 width=8 height=16 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=0
|
||||
char id=204 x=73 y=2 width=6 height=17 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=205 x=81 y=2 width=6 height=17 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=206 x=292 y=2 width=8 height=16 xoffset=-3 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=207 x=302 y=2 width=6 height=16 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
|
||||
char id=208 x=358 y=38 width=10 height=12 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
|
||||
char id=209 x=310 y=2 width=10 height=16 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=0
|
||||
char id=210 x=89 y=2 width=10 height=17 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=211 x=101 y=2 width=10 height=17 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=212 x=322 y=2 width=10 height=16 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=0
|
||||
char id=213 x=334 y=2 width=10 height=16 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=0
|
||||
char id=214 x=346 y=2 width=10 height=16 xoffset=0 yoffset=4 xadvance=12 page=0 chnl=0
|
||||
char id=215 x=10 y=52 width=9 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=216 x=4 y=2 width=10 height=18 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=0
|
||||
char id=217 x=113 y=2 width=9 height=17 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=218 x=124 y=2 width=9 height=17 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=219 x=358 y=2 width=9 height=16 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0
|
||||
char id=220 x=369 y=2 width=9 height=16 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0
|
||||
char id=221 x=135 y=2 width=10 height=17 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=222 x=289 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=223 x=300 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=224 x=74 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=225 x=84 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=226 x=185 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=227 x=333 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=228 x=256 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=229 x=32 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=230 x=450 y=38 width=13 height=9 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=0
|
||||
char id=231 x=276 y=22 width=7 height=13 xoffset=0 yoffset=11 xadvance=8 page=0 chnl=0
|
||||
char id=232 x=94 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=233 x=112 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=234 x=128 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=235 x=138 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=236 x=104 y=22 width=6 height=14 xoffset=-3 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=237 x=499 y=2 width=6 height=14 xoffset=-1 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=238 x=177 y=22 width=6 height=13 xoffset=-2 yoffset=7 xadvance=4 page=0 chnl=0
|
||||
char id=239 x=285 y=22 width=6 height=13 xoffset=-2 yoffset=7 xadvance=4 page=0 chnl=0
|
||||
char id=240 x=21 y=22 width=9 height=14 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
|
||||
char id=241 x=382 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=242 x=489 y=2 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=243 x=479 y=2 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=244 x=148 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=245 x=311 y=38 width=8 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=246 x=246 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=247 x=475 y=38 width=8 height=9 xoffset=0 yoffset=11 xadvance=10 page=0 chnl=0
|
||||
char id=248 x=205 y=22 width=8 height=13 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
|
||||
char id=249 x=42 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=250 x=52 y=22 width=8 height=14 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=251 x=293 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=252 x=195 y=22 width=8 height=13 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0
|
||||
char id=253 x=16 y=2 width=9 height=18 xoffset=-1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=254 x=200 y=2 width=8 height=16 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
|
||||
char id=255 x=210 y=2 width=10 height=16 xoffset=-2 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=8226 x=258 y=52 width=5 height=5 xoffset=1 yoffset=13 xadvance=9 page=0 chnl=0
|
||||
char id=8364 x=392 y=38 width=9 height=12 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
kernings count=0
|
@ -1,198 +0,0 @@
|
||||
info face="font" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=1,1,1,1 spacing=0,0
|
||||
common lineHeight=21 base=15 scaleW=504 scaleH=44 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="font.png"
|
||||
chars count=193
|
||||
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=15 xadvance=3 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=-1 xadvance=3 page=0 chnl=0
|
||||
char id=33 x=393 y=18 width=1 height=10 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=34 x=458 y=30 width=3 height=3 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=35 x=101 y=30 width=8 height=9 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=36 x=142 y=2 width=6 height=13 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=37 x=496 y=18 width=7 height=10 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=38 x=0 y=30 width=9 height=10 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=39 x=463 y=30 width=1 height=3 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=40 x=272 y=2 width=3 height=12 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=41 x=277 y=2 width=3 height=12 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=42 x=369 y=30 width=6 height=5 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=43 x=315 y=30 width=7 height=7 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=44 x=435 y=30 width=3 height=3 xoffset=-1 yoffset=14 xadvance=3 page=0 chnl=0
|
||||
char id=45 x=497 y=30 width=5 height=1 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=0
|
||||
char id=46 x=466 y=30 width=1 height=2 xoffset=0 yoffset=13 xadvance=3 page=0 chnl=0
|
||||
char id=47 x=446 y=2 width=6 height=11 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=48 x=120 y=30 width=7 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=49 x=41 y=30 width=4 height=9 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=50 x=47 y=30 width=7 height=9 xoffset=-1 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=51 x=56 y=30 width=6 height=9 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=52 x=64 y=30 width=8 height=9 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=53 x=74 y=30 width=7 height=9 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=54 x=83 y=30 width=7 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=55 x=385 y=18 width=6 height=10 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=56 x=92 y=30 width=7 height=9 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=57 x=111 y=30 width=7 height=9 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=58 x=333 y=30 width=1 height=6 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=0
|
||||
char id=59 x=164 y=30 width=3 height=8 xoffset=-1 yoffset=9 xadvance=3 page=0 chnl=0
|
||||
char id=60 x=214 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=61 x=449 y=30 width=7 height=3 xoffset=-1 yoffset=10 xadvance=8 page=0 chnl=0
|
||||
char id=62 x=206 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=63 x=396 y=18 width=6 height=10 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=64 x=128 y=2 width=12 height=13 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=0
|
||||
char id=65 x=0 y=18 width=8 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=66 x=18 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=67 x=27 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=68 x=67 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=69 x=76 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=70 x=84 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=71 x=92 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=72 x=101 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=73 x=128 y=18 width=1 height=10 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=74 x=379 y=2 width=3 height=11 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=75 x=131 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=76 x=140 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=77 x=148 y=18 width=9 height=10 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0
|
||||
char id=78 x=159 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=79 x=168 y=18 width=8 height=10 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=80 x=178 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=81 x=262 y=2 width=8 height=12 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=82 x=195 y=18 width=8 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=83 x=205 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=84 x=213 y=18 width=7 height=10 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=85 x=222 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=86 x=231 y=18 width=8 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=87 x=241 y=18 width=12 height=10 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0
|
||||
char id=88 x=260 y=18 width=8 height=10 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=89 x=270 y=18 width=9 height=10 xoffset=-2 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=90 x=281 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=91 x=282 y=2 width=3 height=12 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=92 x=462 y=2 width=6 height=11 xoffset=-1 yoffset=5 xadvance=6 page=0 chnl=0
|
||||
char id=93 x=287 y=2 width=3 height=12 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=94 x=360 y=30 width=7 height=5 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=95 x=481 y=30 width=7 height=1 xoffset=0 yoffset=16 xadvance=9 page=0 chnl=0
|
||||
char id=96 x=423 y=30 width=4 height=3 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=97 x=198 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=98 x=296 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=99 x=222 y=30 width=5 height=7 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=100 x=304 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=101 x=229 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=102 x=312 y=18 width=5 height=10 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=103 x=319 y=18 width=7 height=10 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=104 x=328 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=105 x=336 y=18 width=1 height=10 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=106 x=120 y=2 width=3 height=13 xoffset=-2 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=107 x=349 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=108 x=357 y=18 width=1 height=10 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=109 x=237 y=30 width=9 height=7 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=110 x=248 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=111 x=256 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=112 x=360 y=18 width=6 height=10 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=113 x=368 y=18 width=6 height=10 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=114 x=158 y=30 width=4 height=8 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=0
|
||||
char id=115 x=264 y=30 width=5 height=7 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=116 x=34 y=30 width=5 height=9 xoffset=-1 yoffset=6 xadvance=5 page=0 chnl=0
|
||||
char id=117 x=271 y=30 width=5 height=7 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=118 x=278 y=30 width=7 height=7 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=119 x=287 y=30 width=11 height=7 xoffset=-1 yoffset=8 xadvance=11 page=0 chnl=0
|
||||
char id=120 x=300 y=30 width=6 height=7 xoffset=-1 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=121 x=376 y=18 width=7 height=10 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=122 x=308 y=30 width=5 height=7 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=123 x=292 y=2 width=5 height=12 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=124 x=125 y=2 width=1 height=13 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=125 x=299 y=2 width=5 height=12 xoffset=-1 yoffset=5 xadvance=5 page=0 chnl=0
|
||||
char id=126 x=469 y=30 width=7 height=2 xoffset=-1 yoffset=10 xadvance=8 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=15 xadvance=3 page=0 chnl=0
|
||||
char id=161 x=31 y=30 width=1 height=9 xoffset=0 yoffset=8 xadvance=3 page=0 chnl=0
|
||||
char id=162 x=289 y=18 width=5 height=10 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0
|
||||
char id=163 x=22 y=30 width=7 height=9 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=164 x=189 y=30 width=7 height=7 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=165 x=11 y=30 width=9 height=9 xoffset=-2 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=166 x=150 y=2 width=1 height=13 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=167 x=486 y=2 width=5 height=11 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=168 x=0 y=42 width=4 height=1 xoffset=-1 yoffset=5 xadvance=4 page=0 chnl=0
|
||||
char id=169 x=148 y=30 width=8 height=8 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=170 x=416 y=30 width=5 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=171 x=352 y=30 width=6 height=5 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=0
|
||||
char id=172 x=440 y=30 width=7 height=3 xoffset=-1 yoffset=10 xadvance=8 page=0 chnl=0
|
||||
char id=174 x=138 y=30 width=8 height=8 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
|
||||
char id=175 x=490 y=30 width=5 height=1 xoffset=-2 yoffset=6 xadvance=3 page=0 chnl=0
|
||||
char id=176 x=410 y=30 width=4 height=4 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=177 x=324 y=30 width=7 height=6 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=178 x=405 y=30 width=3 height=4 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=179 x=399 y=30 width=4 height=4 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=180 x=429 y=30 width=4 height=3 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=181 x=121 y=18 width=5 height=10 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
|
||||
char id=182 x=110 y=18 width=9 height=10 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=183 x=478 y=30 width=1 height=2 xoffset=0 yoffset=10 xadvance=3 page=0 chnl=0
|
||||
char id=184 x=394 y=30 width=3 height=4 xoffset=-1 yoffset=14 xadvance=4 page=0 chnl=0
|
||||
char id=185 x=389 y=30 width=3 height=4 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0
|
||||
char id=186 x=383 y=30 width=4 height=4 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=187 x=344 y=30 width=6 height=5 xoffset=0 yoffset=9 xadvance=7 page=0 chnl=0
|
||||
char id=188 x=315 y=2 width=8 height=12 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=189 x=325 y=2 width=7 height=12 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=190 x=153 y=2 width=8 height=13 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=191 x=36 y=18 width=6 height=10 xoffset=-1 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=192 x=4 y=2 width=8 height=14 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=193 x=14 y=2 width=8 height=14 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=194 x=173 y=2 width=8 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=195 x=183 y=2 width=8 height=13 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=196 x=334 y=2 width=8 height=12 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=197 x=344 y=2 width=9 height=12 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=198 x=482 y=18 width=12 height=10 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=0
|
||||
char id=199 x=193 y=2 width=6 height=13 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=200 x=24 y=2 width=6 height=14 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=201 x=32 y=2 width=6 height=14 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=0
|
||||
char id=202 x=209 y=2 width=6 height=13 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=203 x=355 y=2 width=7 height=12 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=204 x=49 y=2 width=4 height=14 xoffset=-2 yoffset=1 xadvance=3 page=0 chnl=0
|
||||
char id=205 x=55 y=2 width=4 height=14 xoffset=-1 yoffset=1 xadvance=3 page=0 chnl=0
|
||||
char id=206 x=217 y=2 width=5 height=13 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0
|
||||
char id=207 x=374 y=2 width=3 height=12 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=0
|
||||
char id=208 x=339 y=18 width=8 height=10 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=209 x=224 y=2 width=7 height=13 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=210 x=61 y=2 width=8 height=14 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
|
||||
char id=211 x=71 y=2 width=8 height=14 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
|
||||
char id=212 x=233 y=2 width=8 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=213 x=243 y=2 width=8 height=13 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=214 x=364 y=2 width=8 height=12 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=215 x=181 y=30 width=6 height=7 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0
|
||||
char id=216 x=81 y=2 width=8 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=217 x=91 y=2 width=7 height=14 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=0
|
||||
char id=218 x=100 y=2 width=7 height=14 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=0
|
||||
char id=219 x=253 y=2 width=7 height=13 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=220 x=306 y=2 width=7 height=12 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=221 x=109 y=2 width=9 height=14 xoffset=-2 yoffset=1 xadvance=7 page=0 chnl=0
|
||||
char id=222 x=426 y=18 width=7 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=223 x=418 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=224 x=423 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=225 x=407 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=226 x=187 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=227 x=443 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=228 x=451 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=229 x=415 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=230 x=169 y=30 width=10 height=7 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
|
||||
char id=231 x=404 y=18 width=5 height=10 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=232 x=454 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=233 x=470 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=234 x=474 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=235 x=10 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=236 x=499 y=2 width=4 height=11 xoffset=-2 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=237 x=493 y=2 width=4 height=11 xoffset=-1 yoffset=4 xadvance=3 page=0 chnl=0
|
||||
char id=238 x=44 y=18 width=5 height=10 xoffset=-2 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=239 x=255 y=18 width=3 height=10 xoffset=-1 yoffset=5 xadvance=3 page=0 chnl=0
|
||||
char id=240 x=478 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=241 x=466 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=242 x=438 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=243 x=399 y=2 width=6 height=11 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
|
||||
char id=244 x=435 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=245 x=59 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=246 x=51 y=18 width=6 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=247 x=336 y=30 width=6 height=5 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=0
|
||||
char id=248 x=384 y=2 width=6 height=11 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=249 x=392 y=2 width=5 height=11 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=250 x=431 y=2 width=5 height=11 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=251 x=411 y=18 width=5 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=252 x=459 y=18 width=5 height=10 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=253 x=40 y=2 width=7 height=14 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0
|
||||
char id=254 x=201 y=2 width=6 height=13 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
|
||||
char id=255 x=163 y=2 width=8 height=13 xoffset=-2 yoffset=5 xadvance=7 page=0 chnl=0
|
||||
char id=8226 x=377 y=30 width=4 height=4 xoffset=1 yoffset=10 xadvance=8 page=0 chnl=0
|
||||
char id=8364 x=129 y=30 width=7 height=9 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
kernings count=0
|
@ -1,380 +0,0 @@
|
||||
|
||||
uiskin.png
|
||||
size: 512,512
|
||||
format: RGBA8888
|
||||
filter: Nearest,Nearest
|
||||
repeat: none
|
||||
button-normal
|
||||
rotate: false
|
||||
xy: 2, 111
|
||||
size: 41, 42
|
||||
orig: 41, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
button-normal-over
|
||||
rotate: false
|
||||
xy: 102, 263
|
||||
size: 41, 42
|
||||
orig: 41, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
button-normal-pressed
|
||||
rotate: false
|
||||
xy: 2, 67
|
||||
size: 41, 42
|
||||
orig: 41, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check
|
||||
rotate: false
|
||||
xy: 290, 306
|
||||
size: 24, 24
|
||||
orig: 24, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check-on
|
||||
rotate: false
|
||||
xy: 316, 306
|
||||
size: 24, 24
|
||||
orig: 24, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
checkbox
|
||||
rotate: false
|
||||
xy: 482, 309
|
||||
size: 20, 21
|
||||
orig: 20, 21
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
checkbox-over
|
||||
rotate: false
|
||||
xy: 438, 309
|
||||
size: 20, 21
|
||||
orig: 20, 21
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
checkbox-selected
|
||||
rotate: false
|
||||
xy: 32, 18
|
||||
size: 20, 21
|
||||
orig: 20, 21
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
checkbox-selected-over
|
||||
rotate: false
|
||||
xy: 460, 309
|
||||
size: 20, 21
|
||||
orig: 20, 21
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
font
|
||||
rotate: false
|
||||
xy: 2, 402
|
||||
size: 504, 44
|
||||
orig: 504, 44
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
font-list
|
||||
rotate: false
|
||||
xy: 2, 332
|
||||
size: 505, 30
|
||||
orig: 505, 30
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
font-subtitle
|
||||
rotate: false
|
||||
xy: 2, 364
|
||||
size: 505, 36
|
||||
orig: 505, 36
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
font-window
|
||||
rotate: false
|
||||
xy: 2, 448
|
||||
size: 506, 62
|
||||
orig: 506, 62
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
knob-h
|
||||
rotate: false
|
||||
xy: 188, 268
|
||||
size: 24, 1
|
||||
orig: 24, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
knob-v
|
||||
rotate: false
|
||||
xy: 508, 422
|
||||
size: 1, 24
|
||||
orig: 1, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
line-h
|
||||
rotate: false
|
||||
xy: 102, 260
|
||||
size: 24, 1
|
||||
orig: 24, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
line-v
|
||||
rotate: false
|
||||
xy: 509, 396
|
||||
size: 1, 24
|
||||
orig: 1, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
list
|
||||
rotate: false
|
||||
xy: 188, 271
|
||||
size: 43, 34
|
||||
orig: 43, 34
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
progress-bar
|
||||
rotate: false
|
||||
xy: 2, 307
|
||||
size: 252, 5
|
||||
orig: 252, 5
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
progress-bar-knob
|
||||
rotate: false
|
||||
xy: 2, 314
|
||||
size: 252, 5
|
||||
orig: 252, 5
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
progress-bar-square
|
||||
rotate: false
|
||||
xy: 256, 309
|
||||
size: 4, 4
|
||||
orig: 4, 4
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
progress-bar-square-knob
|
||||
rotate: false
|
||||
xy: 504, 328
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio
|
||||
rotate: false
|
||||
xy: 366, 308
|
||||
size: 22, 22
|
||||
orig: 22, 22
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio-over
|
||||
rotate: false
|
||||
xy: 390, 308
|
||||
size: 22, 22
|
||||
orig: 22, 22
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio-selected
|
||||
rotate: false
|
||||
xy: 342, 308
|
||||
size: 22, 22
|
||||
orig: 22, 22
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio-selected-over
|
||||
rotate: false
|
||||
xy: 414, 308
|
||||
size: 22, 22
|
||||
orig: 22, 22
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
rect
|
||||
rotate: false
|
||||
xy: 32, 41
|
||||
size: 12, 24
|
||||
orig: 12, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
scrollbar
|
||||
rotate: false
|
||||
xy: 46, 150
|
||||
size: 17, 16
|
||||
orig: 17, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
select
|
||||
rotate: false
|
||||
xy: 262, 306
|
||||
size: 26, 24
|
||||
split: 4, 15, 0, 24
|
||||
orig: 26, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
select-box
|
||||
rotate: false
|
||||
xy: 145, 263
|
||||
size: 41, 42
|
||||
orig: 41, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
select-box-open
|
||||
rotate: false
|
||||
xy: 58, 214
|
||||
size: 41, 42
|
||||
orig: 41, 42
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
selection
|
||||
rotate: false
|
||||
xy: 46, 168
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
slider
|
||||
rotate: false
|
||||
xy: 2, 321
|
||||
size: 258, 9
|
||||
orig: 258, 9
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
slider-knob
|
||||
rotate: false
|
||||
xy: 46, 57
|
||||
size: 9, 9
|
||||
orig: 9, 9
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
slider-knob-over
|
||||
rotate: false
|
||||
xy: 46, 46
|
||||
size: 9, 9
|
||||
orig: 9, 9
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-down
|
||||
rotate: false
|
||||
xy: 45, 100
|
||||
size: 16, 14
|
||||
orig: 16, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-down-over
|
||||
rotate: false
|
||||
xy: 45, 68
|
||||
size: 16, 14
|
||||
orig: 16, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-down-pressed
|
||||
rotate: false
|
||||
xy: 45, 116
|
||||
size: 16, 14
|
||||
orig: 16, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-textfield
|
||||
rotate: false
|
||||
xy: 2, 7
|
||||
size: 28, 28
|
||||
orig: 28, 28
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-textfield-selected
|
||||
rotate: false
|
||||
xy: 2, 37
|
||||
size: 28, 28
|
||||
orig: 28, 28
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-up
|
||||
rotate: false
|
||||
xy: 32, 2
|
||||
size: 16, 14
|
||||
orig: 16, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-up-over
|
||||
rotate: false
|
||||
xy: 45, 84
|
||||
size: 16, 14
|
||||
orig: 16, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
spinner-up-pressed
|
||||
rotate: false
|
||||
xy: 50, 2
|
||||
size: 16, 14
|
||||
orig: 16, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
square
|
||||
rotate: false
|
||||
xy: 256, 315
|
||||
size: 4, 4
|
||||
orig: 4, 4
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
textfield
|
||||
rotate: false
|
||||
xy: 2, 155
|
||||
size: 42, 47
|
||||
orig: 42, 47
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
textfield-selected
|
||||
rotate: false
|
||||
xy: 58, 258
|
||||
size: 42, 47
|
||||
orig: 42, 47
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
tree-minus
|
||||
rotate: false
|
||||
xy: 46, 186
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
tree-plus
|
||||
rotate: false
|
||||
xy: 45, 132
|
||||
size: 16, 16
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
white
|
||||
rotate: false
|
||||
xy: 509, 393
|
||||
size: 1, 1
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
dot
|
||||
rotate: false
|
||||
xy: 509, 393
|
||||
size: 1, 1
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
window
|
||||
rotate: false
|
||||
xy: 2, 204
|
||||
size: 54, 101
|
||||
orig: 54, 101
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
window-border
|
||||
rotate: false
|
||||
xy: 248, 279
|
||||
size: 5, 26
|
||||
split: 2, 2, 23, 2
|
||||
orig: 5, 26
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
window-resize
|
||||
rotate: false
|
||||
xy: 233, 271
|
||||
size: 13, 34
|
||||
split: 2, 10, 23, 10
|
||||
orig: 13, 34
|
||||
offset: 0, 0
|
||||
index: -1
|
@ -1,438 +0,0 @@
|
||||
{
|
||||
com.badlogic.gdx.graphics.g2d.BitmapFont: {
|
||||
default: {
|
||||
file: font.fnt
|
||||
}
|
||||
font: {
|
||||
file: font.fnt
|
||||
}
|
||||
list: {
|
||||
file: font-list.fnt
|
||||
}
|
||||
subtitle: {
|
||||
file: font-subtitle.fnt
|
||||
}
|
||||
window: {
|
||||
file: font-window.fnt
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.graphics.Color: {
|
||||
black: {
|
||||
r: 0
|
||||
g: 0
|
||||
b: 0
|
||||
a: 1
|
||||
}
|
||||
disabled: {
|
||||
r: 0.23137255
|
||||
g: 0.24705882
|
||||
b: 0.25882354
|
||||
a: 1
|
||||
}
|
||||
highlight: {
|
||||
r: 0.19215687
|
||||
g: 0.6627451
|
||||
b: 0.95686275
|
||||
a: 1
|
||||
}
|
||||
message: {
|
||||
r: 0.44313726
|
||||
g: 0.47843137
|
||||
b: 0.5372549
|
||||
a: 1
|
||||
}
|
||||
split: {
|
||||
r: 0.44313726
|
||||
g: 0.47843137
|
||||
b: 0.5372549
|
||||
a: 1
|
||||
}
|
||||
white: {
|
||||
r: 1
|
||||
g: 1
|
||||
b: 1
|
||||
a: 1
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable: {
|
||||
split: {
|
||||
name: white
|
||||
color: split
|
||||
}
|
||||
black: {
|
||||
name: white
|
||||
color: black
|
||||
}
|
||||
highlight: {
|
||||
name: white
|
||||
color: highlight
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.utils.TiledDrawable: {
|
||||
progress-bar-knob-t: {
|
||||
region: progress-bar-knob
|
||||
minWidth: 0
|
||||
minHeight: 5
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {
|
||||
default: {
|
||||
up: button-normal
|
||||
down: button-normal-pressed
|
||||
over: button-normal-over
|
||||
focused: button-normal-over
|
||||
}
|
||||
spinner-up: {
|
||||
up: spinner-up
|
||||
down: spinner-up-pressed
|
||||
over: spinner-up-over
|
||||
}
|
||||
spinner-down: {
|
||||
up: spinner-down
|
||||
down: spinner-down-pressed
|
||||
over: spinner-down-over
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle: {
|
||||
default: {
|
||||
checkboxOn: checkbox-selected
|
||||
checkboxOff: checkbox
|
||||
checkboxOnOver: checkbox-selected-over
|
||||
checkboxOver: checkbox-over
|
||||
font: font
|
||||
}
|
||||
radio: {
|
||||
checkboxOn: radio-selected
|
||||
checkboxOff: radio
|
||||
checkboxOnOver: radio-selected-over
|
||||
checkboxOver: radio-over
|
||||
font: font
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ImageButton$ImageButtonStyle: {
|
||||
default: {
|
||||
up: button-normal
|
||||
down: button-normal-pressed
|
||||
over: button-normal-over
|
||||
focused: button-normal-over
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton$ImageTextButtonStyle: {
|
||||
default: {
|
||||
font: font
|
||||
up: button-normal
|
||||
down: button-normal-pressed
|
||||
over: button-normal-over
|
||||
focused: button-normal-pressed
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
|
||||
default: {
|
||||
font: font
|
||||
}
|
||||
window: {
|
||||
font: window
|
||||
}
|
||||
list: {
|
||||
font: list
|
||||
}
|
||||
subtitle: {
|
||||
font: subtitle
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle: {
|
||||
default: {
|
||||
font: list
|
||||
fontColorSelected: white
|
||||
fontColorUnselected: white
|
||||
selection: selection
|
||||
background: list
|
||||
}
|
||||
list-nobg: {
|
||||
font: list
|
||||
fontColorSelected: white
|
||||
fontColorUnselected: white
|
||||
selection: selection
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ProgressBar$ProgressBarStyle: {
|
||||
default-horizontal: {
|
||||
background: progress-bar-square
|
||||
knobBefore: progress-bar-square-knob
|
||||
}
|
||||
default-vertical: {
|
||||
background: progress-bar-square
|
||||
knobBefore: progress-bar-square-knob
|
||||
}
|
||||
curved: {
|
||||
background: progress-bar
|
||||
knobBefore: progress-bar-knob-t
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle: {
|
||||
default: {
|
||||
hScrollKnob: scrollbar
|
||||
vScrollKnob: scrollbar
|
||||
}
|
||||
list: {
|
||||
background: list
|
||||
hScrollKnob: scrollbar
|
||||
vScrollKnob: scrollbar
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: {
|
||||
default: {
|
||||
font: font
|
||||
fontColor: white
|
||||
background: select-box
|
||||
scrollStyle: list
|
||||
listStyle: list-nobg
|
||||
backgroundOpen: select-box-open
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: {
|
||||
default-horizontal: {
|
||||
knobOver: slider-knob-over
|
||||
knobDown: slider-knob-over
|
||||
background: progress-bar-square
|
||||
knob: slider-knob
|
||||
}
|
||||
default-vertical: {
|
||||
knobOver: slider-knob-over
|
||||
knobDown: slider-knob-over
|
||||
background: progress-bar-square
|
||||
knob: slider-knob
|
||||
}
|
||||
curved: {
|
||||
knobOver: slider-knob-over
|
||||
knobDown: slider-knob-over
|
||||
background: slider
|
||||
knob: slider-knob
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle: {
|
||||
default-horizontal: {
|
||||
handle: split
|
||||
}
|
||||
default-vertical: {
|
||||
handle: split
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
|
||||
default: {
|
||||
font: font
|
||||
up: button-normal
|
||||
down: button-normal-pressed
|
||||
over: button-normal-over
|
||||
focused: button-normal-over
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
|
||||
default: {
|
||||
font: font
|
||||
fontColor: white
|
||||
disabledFontColor: disabled
|
||||
background: textfield
|
||||
focusedBackground: textfield-selected
|
||||
cursor: white
|
||||
selection: highlight
|
||||
messageFont: font
|
||||
messageFontColor: message
|
||||
}
|
||||
spinner: {
|
||||
font: font
|
||||
fontColor: white
|
||||
disabledFontColor: disabled
|
||||
background: spinner-textfield
|
||||
focusedBackground: spinner-textfield-selected
|
||||
cursor: white
|
||||
selection: highlight
|
||||
messageFont: font
|
||||
messageFontColor: message
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.TextTooltip$TextTooltipStyle: {
|
||||
default: {
|
||||
label: default
|
||||
background: list
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle: {
|
||||
default: {
|
||||
background: list
|
||||
knob: slider-knob
|
||||
}
|
||||
}
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
|
||||
default: {
|
||||
background: window
|
||||
titleFont: window
|
||||
}
|
||||
},
|
||||
|
||||
com.badlogic.gdx.graphics.Color: {
|
||||
white: { r: 1, g: 1, b: 1, a: 1 },
|
||||
gray: { r: 0.5, g: 0.5, b: 0.5, a: 1 },
|
||||
black: { r: 0, g: 0, b: 0, a: 1 },
|
||||
|
||||
up: { r: 0.1, g: 0.1, b: 0.1, a: 1 },
|
||||
over: { r: 0.3, g: 0.3, b: 0.3, a: 1 },
|
||||
down: { r: 0.3, g: 0, b: 0, a: 1 },
|
||||
checked: { r: 0.3, g: 0, b: 0, a: 1 },
|
||||
checkedOver: { r: 0.4, g: 0, b: 0, a: 1 },
|
||||
disabled: { r: 0.4, g: 0.4, b: 0.4, a: 1 },
|
||||
background: { r: 0.2, g: 0.2, b: 0.2, a: 1 },
|
||||
selection: { r: 0.3, g: 0, b: 0, a: 1 },
|
||||
semiTransparent: { r: 0, g: 0, b: 0, a: 0.6 },
|
||||
|
||||
font: white
|
||||
fontOver: white
|
||||
fontDown: gray
|
||||
fontChecked: white
|
||||
fontCheckedOver: white
|
||||
fontDisabled: gray
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable: {
|
||||
buttonUp: { name: rect, color: up },
|
||||
buttonOver: { name: rect, color: over },
|
||||
buttonDown: { name: rect, color: down },
|
||||
buttonDisabled: { name: rect, color: disabled },
|
||||
buttonChecked: { name: rect, color: checked },
|
||||
buttonCheckedOver: { name: rect, color: checkedOver },
|
||||
checkBoxOn: { name: check-on, color: up },
|
||||
checkBoxOff: { name: check, color: up },
|
||||
checkBoxOver: { name: check, color: over },
|
||||
checkBoxOnDisabled: { name: check-on, color: disabled },
|
||||
checkBoxOffDisabled: { name: check, color: disabled },
|
||||
icon: { name: check-on, color: font },
|
||||
selection: { name: dot, color: selection },
|
||||
list: { name: rect, color: background },
|
||||
progressHorizontal: { name: line-v, color: up },
|
||||
progressHorizontalKnob: { name: line-v, color: down },
|
||||
progressHorizontalDisabled: { name: line-v, color: disabled },
|
||||
progressHorizontalKnobDisabled: { name: line-v, color: disabled },
|
||||
progressVertical: { name: line-h, color: up },
|
||||
progressVerticalKnob: { name: line-h, color: down },
|
||||
progressVerticalDisabled: { name: line-h, color: disabled },
|
||||
progressVerticalKnobDisabled: { name: line-h, color: disabled },
|
||||
scrollHorizontal: { name: line-v, color: up },
|
||||
scrollVertical: { name: line-h, color: up },
|
||||
scrollKnob: { name: knob-v, color: down },
|
||||
scrollKnobVertical: { name: knob-h, color: down },
|
||||
scrollPane: { name: rect, color: background },
|
||||
selectBox: { name: select, color: up },
|
||||
selectOver: { name: select, color: over },
|
||||
selectDown: { name: select, color: over },
|
||||
selectDisabled: { name: select, color: disabled },
|
||||
selectList: { name: rect, color: over },
|
||||
splitPane: { name: square, color: down },
|
||||
sliderHorizontal: { name: square, color: up },
|
||||
sliderKnob: { name: rect, color: up },
|
||||
sliderKnobOver: { name: rect, color: over },
|
||||
sliderKnobDown: { name: rect, color: down },
|
||||
sliderKnobDisabled: { name: rect, color: disabled },
|
||||
sliderVertical: { name: square, color: up },
|
||||
sliderVerticalKnob: { name: rect, color: up },
|
||||
sliderVerticalKnobOver: { name: rect, color: over },
|
||||
sliderVerticalKnobDown: { name: rect, color: down },
|
||||
sliderVerticalKnobDisabled: { name: rect, color: disabled },
|
||||
textField: { name: rect, color: up },
|
||||
textFieldDown: { name: rect, color: over },
|
||||
textFieldDisabled: { name: rect, color: disabled },
|
||||
textFieldCursor: { name: dot, color: font },
|
||||
tooltip: { name: rect, color: up },
|
||||
touchpad: { name: rect, color: over },
|
||||
touchpadKnob: { name: check-on, color: down },
|
||||
tree: { name: rect, color: background },
|
||||
treeOver: { name: dot, color: over },
|
||||
treeMinus: { name: tree-minus, color: up },
|
||||
treePlus: { name: tree-plus, color: up },
|
||||
window: { name: rect, color: background },
|
||||
windowResize: { name: window-resize, color: background },
|
||||
windowBorder: { name: window-border, color: background },
|
||||
alpha: { name: dot, color: semiTransparent }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {
|
||||
default: { up: buttonUp, over: buttonOver, down: buttonDown, disabled: buttonDisabled },
|
||||
toggle: { up: buttonUp, over: buttonOver, down: buttonDown, checked: buttonChecked, checkedOver: buttonCheckedOver, disabled: buttonDisabled }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle: {
|
||||
default: { checkboxOn: checkBoxOn, checkboxOff: checkBoxOff, checkboxOver: checkBoxOver, checkboxOnDisabled: checkBoxOnDisabled,
|
||||
checkboxOffDisabled: checkBoxOffDisabled, font: default, fontColor: font, overFontColor: fontOver, downFontColor: fontDown,
|
||||
checkedFontColor: fontChecked, checkedOverFontColor: fontCheckedOver, disabledFontColor: fontDisabled, pressedOffsetY: -1, pressedOffsetX: 1 }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ImageButton$ImageButtonStyle: {
|
||||
default: { up: buttonUp, over: buttonOver, down: buttonDown, disabled: buttonDisabled, imageUp: icon }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton$ImageTextButtonStyle: {
|
||||
default: { up: buttonUp, over: buttonOver, down: buttonDown, disabled: buttonDisabled, font: default, fontColor: font,
|
||||
overFontColor: fontOver, downFontColor: fontDown, disabledFontColor: fontDisabled, pressedOffsetY: -1, pressedOffsetX: 1, imageUp: icon }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
|
||||
default: { font: default, fontColor: font },
|
||||
white: { font: default, fontColor: white }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle: {
|
||||
default: { fontColorUnselected: font, selection: selection, fontColorSelected: fontDown, font: default },
|
||||
background: { background: list, fontColorUnselected: font, selection: selection, fontColorSelected: fontDown, font: default }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ProgressBar$ProgressBarStyle: {
|
||||
default-horizontal: { background: progressHorizontal, knobBefore: progressHorizontalKnob,
|
||||
disabledBackground: progressHorizontalDisabled, disabledKnobBefore: progressHorizontalKnobDisabled },
|
||||
default-vertical: { background: progressVertical, knobBefore: progressVerticalKnob,
|
||||
disabledBackground: progressVerticalDisabled, disabledKnobBefore: progressVerticalKnobDisabled }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle: {
|
||||
default: { hScrollKnob: scrollKnob, vScrollKnob: scrollKnobVertical, hScroll: scrollHorizontal, vScroll: scrollVertical },
|
||||
clean: { hScrollKnob: scrollKnob, vScrollKnob: scrollKnobVertical },
|
||||
background: { background: scrollPane, hScrollKnob: scrollKnob, vScrollKnob: scrollKnobVertical, hScroll: scrollHorizontal, vScroll: scrollVertical }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: {
|
||||
default: { font: default, fontColor: font, disabledFontColor: fontDisabled, background: selectBox, backgroundOver: selectOver,
|
||||
backgroundOpen: selectDown, backgroundDisabled: selectDisabled, scrollStyle: default, listStyle:
|
||||
{ background: selectList, fontColorUnselected: font, selection: selection, fontColorSelected: fontDown, font: default }
|
||||
}
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: {
|
||||
default-horizontal: { background: sliderHorizontal, knob: sliderKnob, knobOver: sliderKnobOver, knobDown: sliderKnobDown,
|
||||
disabledKnob: sliderKnobDisabled },
|
||||
default-vertical: { background: sliderVertical, knob: sliderVerticalKnob, knobOver: sliderVerticalKnobOver,
|
||||
knobDown: sliderVerticalKnobDown, disabledKnob: sliderVerticalKnobDisabled }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle: {
|
||||
default-vertical: { handle: splitPane },
|
||||
default-horizontal: { handle: splitPane }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
|
||||
default: { up: buttonUp, over: buttonOver, down: buttonDown, disabled: buttonDisabled, font: default, fontColor: font,
|
||||
overFontColor: fontOver, downFontColor: fontDown, disabledFontColor: fontDisabled, pressedOffsetY: -1, pressedOffsetX: 1 },
|
||||
toggle: { up: buttonUp, over: buttonOver, down: buttonDown, checked: buttonChecked, checkedOver: buttonCheckedOver,
|
||||
disabled: buttonDisabled, font: default, fontColor: font, overFontColor: fontOver, downFontColor: fontDown, disabledFontColor:
|
||||
fontDisabled, checkedFontColor: fontChecked, checkedOverFontColor: fontCheckedOver, pressedOffsetY: -1, pressedOffsetX: 1 },
|
||||
text: { font: default, fontColor: up, overFontColor: over, downFontColor: down, disabledFontColor: disabled,
|
||||
pressedOffsetY: -1, pressedOffsetX: 1 },
|
||||
textToggle: { font: default, fontColor: up, overFontColor: over, downFontColor: down, disabledFontColor:
|
||||
disabled, checkedFontColor: font, checkedOverFontColor: fontOver, pressedOffsetY: -1, pressedOffsetX: 1 }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
|
||||
default: { font: default, messageFont: default, fontColor: font, focusedFontColor: fontOver, disabledFontColor: fontDisabled,
|
||||
messageFontColor: fontDown, background: textField, focusedBackground: textFieldDown, disabledBackground: textFieldDisabled,
|
||||
cursor: textFieldCursor, selection: selection }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.TextTooltip$TextTooltipStyle: {
|
||||
default: { label: default, background: tooltip }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle: {
|
||||
default: { background: touchpad, knob: touchpadKnob }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Tree$TreeStyle: {
|
||||
default: { minus: treeMinus, plus: treePlus, selection: selection, over: treeOver },
|
||||
background: { background: tree, minus: treeMinus, plus: treePlus, selection: selection, over: treeOver }
|
||||
},
|
||||
com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
|
||||
default: { titleFont: default, background: window, titleFontColor: fontDisabled },
|
||||
resize: { titleFont: default, background: windowResize, titleFontColor: fontDisabled },
|
||||
border: { titleFont: default, background: windowBorder, titleFontColor: fontDisabled },
|
||||
dialog: { titleFont: default, background: window, titleFontColor: fontDisabled, stageBackground: alpha }
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 43 KiB |
109
build.gradle
@ -1,109 +0,0 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://s01.oss.sonatype.org' }
|
||||
maven { url 'https://repo.openeggbert.com' }
|
||||
gradlePluginPortal()
|
||||
mavenLocal()
|
||||
google()
|
||||
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
||||
maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' }
|
||||
maven { url 'https://repo.openeggbert.com/releases/' }
|
||||
maven { url 'https://repo.openeggbert.com/snapshots/' }
|
||||
}
|
||||
dependencies {
|
||||
classpath "com.android.tools.build:gradle:8.1.4"
|
||||
classpath "io.freefair.gradle:lombok-plugin:8.3"
|
||||
classpath "org.docstr:gwt-gradle-plugin:$gwtPluginVersion"
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'idea'
|
||||
|
||||
// This allows you to "Build and run using IntelliJ IDEA", an option in IDEA's Settings.
|
||||
idea {
|
||||
module {
|
||||
outputDir file('build/classes/java/main')
|
||||
testOutputDir file('build/classes/java/test')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
configure(subprojects - project(':android')) {
|
||||
apply plugin: 'java-library'
|
||||
apply plugin: 'io.freefair.lombok'
|
||||
sourceCompatibility = 11
|
||||
compileJava {
|
||||
options.incremental = true
|
||||
}
|
||||
// From https://lyze.dev/2021/04/29/libGDX-Internal-Assets-List/
|
||||
// The article can be helpful when using assets.txt in your project.
|
||||
tasks.register('generateAssetList') {
|
||||
inputs.dir("${project.rootDir}/assets/")
|
||||
// projectFolder/assets
|
||||
File assetsFolder = new File("${project.rootDir}/assets/")
|
||||
// projectFolder/assets/assets.txt
|
||||
File assetsFile = new File(assetsFolder, "assets.txt")
|
||||
File assets_File = new File(assetsFolder, "assets_.txt")
|
||||
// delete that file in case we've already created it
|
||||
assetsFile.delete()
|
||||
assets_File.delete()
|
||||
|
||||
// iterate through all files inside that folder
|
||||
// convert it to a relative path
|
||||
// and append it to the file assets.txt
|
||||
fileTree(assetsFolder).collect { assetsFolder.relativePath(it) }.each {
|
||||
assetsFile.append(it + "\n")
|
||||
assets_File.append(it + "\n")
|
||||
}
|
||||
|
||||
}
|
||||
processResources.dependsOn 'generateAssetList'
|
||||
|
||||
task copyAssetsTxt {
|
||||
doLast {
|
||||
def sourceFile = file('assets/assets.txt')
|
||||
def targetFile = file('assets/assets_.txt')
|
||||
|
||||
if (sourceFile.exists()) {
|
||||
targetFile.text = sourceFile.text
|
||||
println "Successfully copied assets.txt to assets_.txt"
|
||||
} else {
|
||||
println "Source file assets.txt does not exist"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
processResources.dependsOn generateAssetList
|
||||
|
||||
|
||||
compileJava {
|
||||
options.incremental = true
|
||||
}
|
||||
}
|
||||
|
||||
subprojects {
|
||||
version = '0.0.0-SNAPSHOT'
|
||||
ext.appName = 'open-eggbert'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url 'https://s01.oss.sonatype.org' }
|
||||
// You may want to remove the following line if you have errors downloading dependencies.
|
||||
mavenLocal()
|
||||
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
||||
maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' }
|
||||
maven { url 'https://jitpack.io' }
|
||||
maven { url 'https://teavm.org/maven/repository/' }
|
||||
|
||||
maven { url 'https://repo.openeggbert.com' }
|
||||
maven { url 'https://repo.openeggbert.com/releases/' }
|
||||
maven { url 'https://repo.openeggbert.com/snapshots/' }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
eclipse.project.name = 'open-eggbert' + '-parent'
|
10
build.sh
@ -1,6 +1,4 @@
|
||||
|
||||
if [ `whoami` = "robertvokac" ]; then
|
||||
export JAVA_HOME=/home/robertvokac/Desktop/jdk-17.0.2/
|
||||
fi
|
||||
|
||||
./gradlew build $1
|
||||
mkdir dist
|
||||
rm dist/openeggbert.jar
|
||||
mvn clean install
|
||||
mv target/open-eggbert-0.0.0-SNAPSHOT-jar-with-dependencies.jar dist/openeggbert.jar
|
||||
|
@ -1 +0,0 @@
|
||||
./gradlew lwjgl3:dist
|
@ -1 +0,0 @@
|
||||
./gradlew html:dist
|
@ -1,35 +0,0 @@
|
||||
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
||||
eclipse.project.name = appName + '-core'
|
||||
|
||||
sourceSets.test.java.srcDirs = [ "src/test/java/" ]
|
||||
|
||||
dependencies {
|
||||
api "com.badlogicgames.gdx-controllers:gdx-controllers-core:$gdxControllersVersion"
|
||||
api "com.badlogicgames.gdx:gdx-ai:$aiVersion"
|
||||
api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
|
||||
api "com.badlogicgames.gdx:gdx:$gdxVersion"
|
||||
api "com.github.MrStahlfelge.gdx-websockets:core:$websocketVersion"
|
||||
api "com.github.MrStahlfelge.gdx-websockets:serialization:$websocketSerializationVersion"
|
||||
api "com.github.crykn.guacamole:core:$guacamoleVersion"
|
||||
api "com.github.crykn.guacamole:gdx:$guacamoleVersion"
|
||||
api "com.github.tommyettinger:formic:$formicVersion"
|
||||
api "com.github.tommyettinger:libgdx-utils-box2d:$utilsBox2dVersion"
|
||||
api "com.github.tommyettinger:libgdx-utils:$utilsVersion"
|
||||
api "de.golfgl.gdxcontrollerutils:gdx-controllerutils-mapping:$controllerMappingVersion"
|
||||
api "games.rednblack.miniaudio:miniaudio:$miniaudioVersion"
|
||||
//api "com.openeggbert.gdx:gdx-storage:0.0.0-SNAPSHOT"
|
||||
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
||||
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
||||
testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.3"
|
||||
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.3"
|
||||
api "com.pixelgamelibrary:pixel:$pixelVersion"
|
||||
|
||||
if(enableGraalNative == 'true') {
|
||||
implementation "io.github.berstanio:gdx-svmhelper-annotations:$graalHelperVersion"
|
||||
}
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform {
|
||||
}
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.configuration;
|
||||
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@ToString
|
||||
public class ConfigDef {
|
||||
|
||||
private Map<String,String> map = new HashMap<>();
|
||||
|
||||
public ConfigDef(String textContentofConfigDefFile) {
|
||||
Pixel.utils().splitStringToLinesAsStream(textContentofConfigDefFile)
|
||||
.filter(l -> !l.trim().isEmpty())
|
||||
.filter(l -> !l.trim().startsWith(HASH_CHARACTER))
|
||||
.filter(l -> l.contains(EQUALS_CHARACTER))
|
||||
.forEach(line -> {
|
||||
String[] array = line.split(EQUALS_CHARACTER);
|
||||
String key = array[0];
|
||||
String value = array[1];
|
||||
map.put(key, value);
|
||||
});
|
||||
}
|
||||
private static final String HASH_CHARACTER = "#";
|
||||
private static final String EQUALS_CHARACTER = "=";
|
||||
|
||||
public boolean isFullscreen() {
|
||||
return getMandatoryBooleanProperty(ConfigDefKey.FULLSCREEN);
|
||||
|
||||
}
|
||||
|
||||
public boolean isStrictCompatibility() {
|
||||
return getOptionalBooleanProperty(ConfigDefKey.STRICT_COMPATIBILITY, false);
|
||||
|
||||
}
|
||||
private boolean getMandatoryBooleanProperty(ConfigDefKey configDefKey) {
|
||||
String key = configDefKey.getKey();
|
||||
if (!map.containsKey(key)) {
|
||||
throw new OpenEggbertException("Fatal error: CONFIG.DEF is missing key: " + key);
|
||||
}
|
||||
return convertStringToBoolean(map.get(configDefKey.getKey()));
|
||||
}
|
||||
|
||||
private boolean getOptionalBooleanProperty(ConfigDefKey configDefKey, boolean defaultValue) {
|
||||
String key = configDefKey.getKey();
|
||||
if (!map.containsKey(key)) {
|
||||
return defaultValue;
|
||||
}
|
||||
return getMandatoryBooleanProperty(configDefKey);
|
||||
}
|
||||
|
||||
private static boolean convertStringToBoolean(String string) {
|
||||
if (string.equals("1")) {
|
||||
return true;
|
||||
}
|
||||
if (string.equals("0")) {
|
||||
return false;
|
||||
}
|
||||
throw new OpenEggbertException("Could not convert String to boolean: " + string);
|
||||
}
|
||||
public String toPropertiesText() {
|
||||
throw new OpenEggbertException("Not yet implemented.");
|
||||
}
|
||||
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.configuration;
|
||||
|
||||
import com.openeggbert.core.release.Release;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum ConfigDefKey {
|
||||
FULLSCREEN("FullScreen", new Release[]{Release.SPEEDY_BLUPI_DEMO}),
|
||||
STRICT_COMPATIBILITY("StrictCompatibility", new Release[]{Release.OPEN_EGGBERT_3});
|
||||
|
||||
@Getter
|
||||
private String key;
|
||||
@Getter
|
||||
private final List<Release> featureLevels;
|
||||
ConfigDefKey(String keyIn, Release[] featureLevelsIn) {
|
||||
this.key = keyIn;
|
||||
List<Release> list = Arrays.asList(featureLevelsIn);
|
||||
Stream<Release> stream = list.stream();
|
||||
this.featureLevels = stream.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.configuration;
|
||||
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import com.pixelgamelibrary.api.ViewMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum OpenEggbertDisplayMode {
|
||||
WINDOW, FULLSCREEN;
|
||||
|
||||
public static OpenEggbertDisplayMode setDisplayModeFromConfig(ConfigDef configDef) {
|
||||
if (configDef == null) {
|
||||
return OpenEggbertDisplayMode.WINDOW;
|
||||
}
|
||||
final OpenEggbertDisplayMode fromConfigDef = fromConfigDef(configDef);
|
||||
setDisplayMode(fromConfigDef);
|
||||
return fromConfigDef;
|
||||
}
|
||||
|
||||
public static OpenEggbertDisplayMode fromConfigDef(ConfigDef configDef) {
|
||||
return configDef.isFullscreen() ? FULLSCREEN : WINDOW;
|
||||
}
|
||||
|
||||
public static void setDisplayModeToFullscreen() {
|
||||
setDisplayMode(FULLSCREEN);
|
||||
}
|
||||
|
||||
public static void setDisplayModeToWindow() {
|
||||
setDisplayMode(WINDOW);
|
||||
}
|
||||
|
||||
public static OpenEggbertDisplayMode find(boolean fullscreen, boolean window) {
|
||||
if (fullscreen && window) {
|
||||
throw new OpenEggbertException("Both arguments fullscreen and window are true.");
|
||||
}
|
||||
if (!fullscreen && !window) {
|
||||
throw new OpenEggbertException("Both arguments fullscreen and window are false.");
|
||||
}
|
||||
if (fullscreen) {
|
||||
return FULLSCREEN;
|
||||
} else {
|
||||
return WINDOW;
|
||||
}
|
||||
}
|
||||
|
||||
public static void setDisplayMode(OpenEggbertDisplayMode displayMode) {
|
||||
Pixel.graphics().getMonitor().setViewMode(displayMode == FULLSCREEN ? ViewMode.FULLSCREEN : ViewMode.WINDOW);
|
||||
}
|
||||
|
||||
public OpenEggbertDisplayMode flip() {
|
||||
if (this == OpenEggbertDisplayMode.FULLSCREEN) {
|
||||
return OpenEggbertDisplayMode.WINDOW;
|
||||
|
||||
}
|
||||
if (this == OpenEggbertDisplayMode.WINDOW) {
|
||||
return FULLSCREEN;
|
||||
}
|
||||
throw new OpenEggbertException("Unsupported DisplayMode: " + this);
|
||||
}
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
package com.openeggbert.core.configuration;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum VirtualScreenResolution implements IsThisFeatureEnabledForStrictMode {
|
||||
VGA(640,480,true),
|
||||
QUAD_VGA(1280, 960, false),
|
||||
CURRENT(0, 0, false);
|
||||
@Getter
|
||||
private boolean enabledInCaseOfStrictMode;
|
||||
@Getter
|
||||
private int width;
|
||||
@Getter
|
||||
private int height;
|
||||
VirtualScreenResolution(int width, int height, boolean enabledInCaseOfStrictMode) {
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.enabledInCaseOfStrictMode = enabledInCaseOfStrictMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isThisFeatureEnabledForStrictMode() {
|
||||
return enabledInCaseOfStrictMode;
|
||||
}
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.gamespace;
|
||||
|
||||
import lombok.Getter;
|
||||
import com.openeggbert.core.configuration.IsThisFeatureEnabledForStrictMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum GameDirectoryType implements IsThisFeatureEnabledForStrictMode{
|
||||
DATA(true),
|
||||
IMAGE(true),
|
||||
IMAGE08(true),
|
||||
IMAGE16(true),
|
||||
IMAGE24(false),
|
||||
IMAGE24X2(false),
|
||||
SOUND(true),
|
||||
TEXT(false),
|
||||
MOD(false),
|
||||
;
|
||||
@Getter
|
||||
private final boolean enabledInCaseOfStrictMode;
|
||||
|
||||
GameDirectoryType(boolean enabledInCaseOfStrictMode) {
|
||||
this.enabledInCaseOfStrictMode = enabledInCaseOfStrictMode;
|
||||
}
|
||||
@Override
|
||||
public boolean isThisFeatureEnabledForStrictMode() {
|
||||
return enabledInCaseOfStrictMode;
|
||||
}
|
||||
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
package com.openeggbert.core.gamespace;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum GameFileType {
|
||||
CONFIG, WORLD, DEMO, SAVE, USER_INFO, MUSIC, SOUND, IMAGE8, IMAGE16, IMAGE32;
|
||||
}
|
@ -1,77 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.gamespace;
|
||||
|
||||
import com.openeggbert.core.release.Release;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
public class GameSpace {
|
||||
|
||||
private boolean embeddedAssets;
|
||||
private Release featureLevel;
|
||||
private String dataDirectory;
|
||||
private String image08Directory;
|
||||
private String image16Directory;
|
||||
private String image24Directory;
|
||||
private String image24x2Directory;
|
||||
private String soundDirectory;
|
||||
private String currentDirectory;
|
||||
|
||||
public GameSpace() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public boolean isValid() {
|
||||
if (featureLevel == null) {
|
||||
return false;
|
||||
}
|
||||
if (dataDirectory == null) {
|
||||
return false;
|
||||
}
|
||||
if (image08Directory == null && image16Directory == null && image24Directory == null && image24x2Directory == null) {
|
||||
return false;
|
||||
}
|
||||
if (soundDirectory == null) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("featureLevel=" + featureLevel).append(" ");
|
||||
sb.append("data=" + dataDirectory).append(" ");
|
||||
sb.append("image08=" + image08Directory).append(" ");
|
||||
sb.append("image16=" + image16Directory).append(" ");
|
||||
sb.append("image24=" + image24Directory).append(" ");
|
||||
sb.append("image24x2=" + image24x2Directory).append(" ");
|
||||
sb.append("image24x2=" + image24x2Directory).append(" ");
|
||||
sb.append("sound=" + soundDirectory);
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.gamespace;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public class ImageDirectories {
|
||||
public static final ImageDirectories DEFAULT = new ImageDirectories(GameDirectoryType.IMAGE08, GameDirectoryType.IMAGE16, null, null);
|
||||
private final GameDirectoryType image08;
|
||||
private final GameDirectoryType image16;
|
||||
private final GameDirectoryType image24;
|
||||
private final GameDirectoryType image24x2;
|
||||
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.image;
|
||||
|
||||
import lombok.Getter;
|
||||
import com.openeggbert.core.configuration.IsThisFeatureEnabledForStrictMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum ImageFormat implements IsThisFeatureEnabledForStrictMode{
|
||||
BLP("blp", true),
|
||||
BMP("bmp", false),
|
||||
PNG("png", false),
|
||||
JPEG("jpeg", false)
|
||||
;
|
||||
@Getter
|
||||
private final String fileExtension;
|
||||
@Getter
|
||||
private final boolean enabledInCaseOfStrictMode;
|
||||
|
||||
ImageFormat(String fileExtensionIn, boolean enabledInCaseOfStrictMode) {
|
||||
this.fileExtension = fileExtensionIn;
|
||||
this.enabledInCaseOfStrictMode = enabledInCaseOfStrictMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isThisFeatureEnabledForStrictMode() {
|
||||
return enabledInCaseOfStrictMode;
|
||||
}
|
||||
public ImageFormat getTargetFormat() {
|
||||
return this == BLP ? BMP : this;
|
||||
}
|
||||
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.image;
|
||||
|
||||
import lombok.Getter;
|
||||
import com.openeggbert.core.configuration.IsThisFeatureEnabledForStrictMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum ImageResolution implements IsThisFeatureEnabledForStrictMode{
|
||||
NORMAL(true), DOUBLE(false);
|
||||
@Getter
|
||||
private final boolean enabledInCaseOfStrictMode;
|
||||
ImageResolution(boolean enabledInCaseOfStrictMode) {
|
||||
this.enabledInCaseOfStrictMode = enabledInCaseOfStrictMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isThisFeatureEnabledForStrictMode() {
|
||||
return enabledInCaseOfStrictMode;
|
||||
}
|
||||
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.image;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class TextureManager {
|
||||
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.11.0//EN" "https://www.gwtproject.org/doctype/2.11.0/gwt-module.dtd">
|
||||
<module>
|
||||
<!-- Paths to source are relative to this file and separated by slashes ('/'). -->
|
||||
<source path="" />
|
||||
<!-- Reflection includes may be needed for your code or library code. Each value is separated by periods ('.'). -->
|
||||
<!-- You can include a full package by not including the name of a type at the end. -->
|
||||
|
||||
</module>
|
@ -1,57 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.main;
|
||||
|
||||
import com.openeggbert.core.gamespace.GameSpace;
|
||||
import com.pixelgamelibrary.api.PixelApplication;
|
||||
import java.util.Map;
|
||||
import com.pixelgamelibrary.api.game.Game;
|
||||
|
||||
/**
|
||||
* {@link com.pixelgamelibrary.api.PixelApplication} implementation shared by all
|
||||
* platforms.
|
||||
*/
|
||||
public class OpenEggbertApplication extends PixelApplication {
|
||||
|
||||
private static final String GAME_SPACE = "gameSpace";
|
||||
private static final String ABSOLUTE_PATH_OF_ROOT_DIRECTORY_IN = "absolutePathOfRootDirectoryIn";
|
||||
|
||||
@Override
|
||||
public Game createGameViaMap(Map<String, Object> objects) {
|
||||
|
||||
String absolutePathOfRootDirectoryIn = null;
|
||||
GameSpace gameSpace = null;
|
||||
if (objects.containsKey(ABSOLUTE_PATH_OF_ROOT_DIRECTORY_IN)) {
|
||||
absolutePathOfRootDirectoryIn = (String) objects.get(ABSOLUTE_PATH_OF_ROOT_DIRECTORY_IN);
|
||||
}
|
||||
if (objects.containsKey(GAME_SPACE)) {
|
||||
gameSpace = (GameSpace) objects.get(GAME_SPACE);
|
||||
}
|
||||
|
||||
if (absolutePathOfRootDirectoryIn != null) {
|
||||
|
||||
return gameSpace == null ? new OpenEggbertGame(absolutePathOfRootDirectoryIn) : new OpenEggbertGame(gameSpace, absolutePathOfRootDirectoryIn);
|
||||
} else {
|
||||
return new OpenEggbertGame();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,170 +0,0 @@
|
||||
package com.openeggbert.core.main;
|
||||
|
||||
import com.openeggbert.core.configuration.ConfigDef;
|
||||
import com.openeggbert.core.configuration.OpenEggbertDisplayMode;
|
||||
import com.openeggbert.core.gamespace.GameSpace;
|
||||
import com.openeggbert.core.mod.Mod;
|
||||
import com.openeggbert.core.mod.ModIdentification;
|
||||
import com.openeggbert.core.screen.GameSpaceListScreen;
|
||||
import com.openeggbert.core.screen.InitScreen;
|
||||
import com.openeggbert.core.utils.OpenEggbertUtils;
|
||||
import com.pixelgamelibrary.api.game.GameAdapter;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import com.pixelgamelibrary.api.graphics.SpriteBatch;
|
||||
import com.pixelgamelibrary.api.graphics.Texture;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import lombok.Data;
|
||||
import com.pixelgamelibrary.api.files.File;
|
||||
import com.pixelgamelibrary.api.graphics.ShapeRenderer;
|
||||
import com.pixelgamelibrary.api.utils.collections.Map;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@Data
|
||||
public class OpenEggbertGame extends GameAdapter {
|
||||
|
||||
private Texture image;
|
||||
private GameSpace gameSpace = null;
|
||||
private String absolutePathOfRootDirectory;
|
||||
|
||||
private SpriteBatch batch;
|
||||
@Getter
|
||||
private ShapeRenderer shapeRenderer;
|
||||
private BitmapFont font;
|
||||
private Map<String, Texture> imageTextures = Pixel.utils().collections().objectMap();
|
||||
private List<Mod> embeddedMods = Pixel.utils().collections().list();
|
||||
private int heightInPixels = 480;
|
||||
private int widthInPixels = 640;
|
||||
|
||||
private ConfigDef configDef;
|
||||
private OpenEggbertDisplayMode openEggbertDisplayMode = OpenEggbertDisplayMode.WINDOW;
|
||||
|
||||
public OpenEggbertGame() {
|
||||
this(null, null);
|
||||
}
|
||||
|
||||
public OpenEggbertGame(String absolutePathOfRootDirectoryIn) {
|
||||
this(null, absolutePathOfRootDirectoryIn);
|
||||
}
|
||||
|
||||
public OpenEggbertGame(GameSpace gameSpace, String absolutePathOfRootDirectoryIn) {
|
||||
this.gameSpace = gameSpace;
|
||||
this.absolutePathOfRootDirectory = absolutePathOfRootDirectoryIn;
|
||||
Pixel.app().setGame(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void create() {
|
||||
System.out.println("Searching mods");
|
||||
|
||||
// for(FileHandle f:Gdx.files.internal(".").list()) {
|
||||
// System.out.println("assets contains also: " + f.name());
|
||||
// }
|
||||
com.pixelgamelibrary.api.files.File embeddedModsDirectory = Pixel.files().assets("/embedded_mods");
|
||||
System.out.println("embeddedModsDirectory.exists=" + embeddedModsDirectory.exists());
|
||||
System.out.println("embeddedModsDirectory.list().size()=" + embeddedModsDirectory.list().size());
|
||||
embeddedModsDirectory.list().forEach(e -> System.out.println(e.path()));
|
||||
|
||||
Pixel.files().assetsFileSystem().list().forEach(e -> System.out.println(e));
|
||||
|
||||
for (File embeddedModGroup : embeddedModsDirectory.list()) {
|
||||
if (embeddedModGroup.name().equals("README.md")) {
|
||||
continue;
|
||||
}
|
||||
System.out.println("Found group " + embeddedModGroup.name());
|
||||
for (File embeddedMod : embeddedModGroup.list()) {
|
||||
if (embeddedMod.name().equals("README.md")) {
|
||||
continue;
|
||||
}
|
||||
System.out.println("Found mod " + embeddedMod.name());
|
||||
|
||||
File modXml = null;
|
||||
for (File file : embeddedMod.list()) {
|
||||
if (file.name().equals("mod.xml")) {
|
||||
modXml = file;
|
||||
}
|
||||
}
|
||||
|
||||
if (modXml == null) {
|
||||
continue;
|
||||
}
|
||||
System.out.println("Found mod: " + embeddedMod.name());
|
||||
|
||||
Mod mod = new Mod(modXml.readString());
|
||||
embeddedMods.add(mod);
|
||||
System.out.println("embeddedMods.size(): " + embeddedMods.size());
|
||||
// for (int i = 0; i < 42; i++) embeddedMods.add(mod);//for testing purposes
|
||||
}
|
||||
|
||||
}
|
||||
////
|
||||
batch = Pixel.graphics().newSpriteBatch();
|
||||
//batch.setProjectionMatrix(viewport.getCamera().combined);
|
||||
image = Pixel.graphics().newTexture("libgdx.png");
|
||||
shapeRenderer = batch.drawShape();
|
||||
font = Pixel.graphics().newBitmapFont(
|
||||
Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.fnt"), Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.png"),
|
||||
false
|
||||
);
|
||||
|
||||
System.out.println("Going to set screen");
|
||||
setScreen(gameSpace == null ? new GameSpaceListScreen(this) : new InitScreen(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
batch.dispose();
|
||||
image.dispose();
|
||||
|
||||
shapeRenderer.dispose();
|
||||
font.dispose();
|
||||
for (String key : imageTextures.keySet()) {
|
||||
imageTextures.get(key).dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public void loadImageTexture(File fileHandle) {
|
||||
Texture texture = Pixel.graphics().newTexture(fileHandle);
|
||||
if(!fileHandle.exists()) {
|
||||
throw new OpenEggbertException("File does not exist: " + fileHandle.path());
|
||||
}
|
||||
imageTextures.put(OpenEggbertUtils.getFileNameWithoutExtension(fileHandle.name().toUpperCase()), texture);
|
||||
}
|
||||
|
||||
public boolean existsImageTexture(String key) {
|
||||
return imageTextures.containsKey(key);
|
||||
}
|
||||
|
||||
public void disposeImageTexture(String key) {
|
||||
if (imageTextures.containsKey(key)) {
|
||||
imageTextures.get(key).dispose();
|
||||
imageTextures.remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
public void disposeImageTextures() {
|
||||
for (String key : imageTextures.keySet()) {
|
||||
imageTextures.get(key).dispose();
|
||||
imageTextures.remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
public Optional<Texture> getImageTexture(String key) {
|
||||
if (imageTextures.containsKey(key)) {
|
||||
return Optional.of(imageTextures.get(key));
|
||||
} else {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
public Mod loadMod(ModIdentification modIdentification) {
|
||||
return embeddedMods.stream().filter(m -> m.getIdentification().asString().equals(modIdentification.asString())).findFirst().get();
|
||||
}
|
||||
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.mod;
|
||||
|
||||
import com.pixelgamelibrary.api.interfaces.XmlElement;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.openeggbert.core.release.Release;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@Data
|
||||
public class Mod {
|
||||
|
||||
public Mod(String xml) {
|
||||
XmlElement root = Pixel.utils().parseXml(xml);
|
||||
XmlElement parentElement = root.getChildByName("parent");
|
||||
if (parentElement != null) {
|
||||
parent = new ModIdentification(parentElement);
|
||||
}
|
||||
identification = new ModIdentification(
|
||||
root.get("groupId"),
|
||||
root.get("modId"),
|
||||
root.get("version"));
|
||||
modPackaging = ModPackaging.valueOf(root.get("packaging"));
|
||||
modType = ModType.valueOf(root.get("type"));
|
||||
featureLevel = Release.valueOf(root.get("featureLevel"));
|
||||
name = root.get("name");
|
||||
description = root.get("description");
|
||||
XmlElement imports = root.getChildByName("imports");
|
||||
if (imports != null) {
|
||||
for (int i = 0; i < imports.getChildCount(); i++) {
|
||||
XmlElement import_ = imports.getChild(i);
|
||||
importedMods.add(new ModIdentification(import_));
|
||||
}
|
||||
}
|
||||
XmlElement files_ = root.getChildByName("files");
|
||||
if (files_ != null) {
|
||||
for (int i = 0; i < files_.getChildCount(); i++) {
|
||||
XmlElement file = files_.getChild(i);
|
||||
files.add(file.getText());
|
||||
}
|
||||
}
|
||||
|
||||
XmlElement stores_ = root.getChildByName("stores");
|
||||
if (stores_ != null) {
|
||||
for (int i = 0; i < stores_.getChildCount(); i++) {
|
||||
XmlElement store = stores_.getChild(i);
|
||||
stores.add(new Store(store));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
private ModIdentification parent;
|
||||
private ModIdentification identification;
|
||||
private ModPackaging modPackaging;
|
||||
private ModType modType;
|
||||
private Release featureLevel;
|
||||
private String name;
|
||||
private String description;
|
||||
private List<ModIdentification> importedMods = new ArrayList<>();
|
||||
private List<String> files = new ArrayList<>();
|
||||
private List<Store> stores = new ArrayList<>();
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.mod;
|
||||
|
||||
import com.pixelgamelibrary.api.interfaces.XmlElement;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
public class ModIdentification {
|
||||
|
||||
private final String groupId;
|
||||
private final String modId;
|
||||
private final String version;
|
||||
|
||||
public ModIdentification(XmlElement element) {
|
||||
groupId = element.get("groupId");
|
||||
modId = element.get("modId");
|
||||
version = element.get("version");
|
||||
}
|
||||
|
||||
public String asString() {
|
||||
|
||||
return groupId + DOT + modId + DOT + version;
|
||||
}
|
||||
private static final String DOT = ".";
|
||||
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.mod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class ModManager {
|
||||
public ModManager() {
|
||||
|
||||
}
|
||||
private List<Mod> embeddedMods = new ArrayList<>();
|
||||
private List<Mod> installedMods = new ArrayList<>();
|
||||
public List<Mod> listEmbeddedMods() {
|
||||
return embeddedMods;
|
||||
}
|
||||
public List<Mod> listInstalledMods() {
|
||||
return installedMods;
|
||||
}
|
||||
|
||||
public Mod findMod(ModIdentification modIdentification) {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
package com.openeggbert.core.mod;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum ModPackaging {
|
||||
EGM, XML;
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
package com.openeggbert.core.mod;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum ModType {
|
||||
FULL, LEVEL, SOUND, MUSIC, IMAGE08, IMAGE16, IMAGE24, IMAGE24X2, TEXT, PARTIAL;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.music;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class MusicManager {
|
||||
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
package com.openeggbert.core.music;
|
||||
|
||||
import com.openeggbert.core.release.Release;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum MusicType {
|
||||
MUSIC1(0),
|
||||
MUSIC2(1),
|
||||
MUSIC3(2),
|
||||
MUSIC4(3),
|
||||
MUSIC5(4),
|
||||
MUSIC6(5),
|
||||
MUSIC7(6),
|
||||
MUSIC8(7),
|
||||
MUSIC9(8),
|
||||
MUSIC10(9);
|
||||
@Getter
|
||||
private int number;
|
||||
MusicType(int numberIn, Release... featureLevels) {
|
||||
this.number = numberIn;
|
||||
}
|
||||
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.release;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum Publisher {
|
||||
EPSITEC_SA, E_GAMES, DADA_GAMES, OPEN_EGGBERT;
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.release;
|
||||
|
||||
import com.openeggbert.core.gamespace.GameDirectoryType;
|
||||
import com.openeggbert.core.gamespace.ImageDirectories;
|
||||
import com.openeggbert.core.utils.FileNameCaseType;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum Release {
|
||||
SPEEDY_BLUPI_DEMO(ReleaseType.BLUPI, ReleaseVersion.DEMO, Publisher.EPSITEC_SA, "SBD", FileNameCaseType.CAPITALIZATION, new ImageDirectories(GameDirectoryType.IMAGE, null, null, null)),
|
||||
SPEEDY_BLUPI_I(ReleaseType.BLUPI, ReleaseVersion.ONE, Publisher.EPSITEC_SA, "SBI"),
|
||||
SPEEDY_BLUPI_II(ReleaseType.BLUPI, ReleaseVersion.TWO, Publisher.EPSITEC_SA, "SBII"),
|
||||
SPEEDY_EGGBERT_DEMO(ReleaseType.EGGBERT, ReleaseVersion.DEMO, Publisher.E_GAMES, "SED"),
|
||||
SPEEDY_EGGBERT_1(ReleaseType.EGGBERT, ReleaseVersion.ONE, Publisher.E_GAMES, "SE1"),
|
||||
SPEEDY_EGGBERT_2(ReleaseType.EGGBERT, ReleaseVersion.TWO, Publisher.E_GAMES, "SE2"),
|
||||
SPEEDY_EGGBERT_VALUEWARE(ReleaseType.EGGBERT, ReleaseVersion.VALUEWARE, Publisher.E_GAMES, "SEW"),
|
||||
SPEEDY_BLUPI_FOR_WINDOWS_PHONE(ReleaseType.BLUPI, ReleaseVersion.WINDOWS_PHONE, Publisher.DADA_GAMES, "SBP"),
|
||||
OPEN_EGGBERT_3(ReleaseType.OPEN, ReleaseVersion.THREE, Publisher.OPEN_EGGBERT, "OE3", FileNameCaseType.UPPERCASE, new ImageDirectories(GameDirectoryType.IMAGE08, GameDirectoryType.IMAGE16, GameDirectoryType.IMAGE24, GameDirectoryType.IMAGE24X2));
|
||||
@Getter
|
||||
private final ReleaseType releaseType;
|
||||
@Getter
|
||||
private final ReleaseVersion releaseVersion;
|
||||
@Getter
|
||||
private final Publisher publisher;
|
||||
@Getter
|
||||
private final String abbreviation;
|
||||
@Getter
|
||||
private final ImageDirectories imageDirectories;
|
||||
|
||||
@Getter
|
||||
public static final Release[] ALL_RELEASES = Release.values();
|
||||
@Getter
|
||||
private FileNameCaseType caseModeForDirectories;
|
||||
private Release(ReleaseType releaseType, ReleaseVersion releaseVersion, Publisher publisher, String abbreviation) {
|
||||
this(releaseType, releaseVersion, publisher, abbreviation, FileNameCaseType.UPPERCASE, ImageDirectories.DEFAULT);
|
||||
}
|
||||
|
||||
private Release(ReleaseType releaseType, ReleaseVersion releaseVersion, Publisher publisher, String abbreviation, FileNameCaseType caseModeForDirectories, ImageDirectories imageDirectories) {
|
||||
this.releaseType = releaseType;
|
||||
this.releaseVersion = releaseVersion;
|
||||
this.publisher = publisher;
|
||||
this.abbreviation = abbreviation;
|
||||
this.caseModeForDirectories = caseModeForDirectories;
|
||||
this.imageDirectories = imageDirectories;
|
||||
}
|
||||
|
||||
public String createLabel() {
|
||||
String[] array = this.name().split(UNDERSCORE);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(int i = 0;i < array.length; i++) {
|
||||
sb.append(FileNameCaseType.convertToString(array[i], FileNameCaseType.CAPITALIZATION));
|
||||
if(i < (array.length - 1)) {
|
||||
sb.append(" ");
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
private static final String UNDERSCORE = "_";
|
||||
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public abstract class AbstractBasicScreen extends OpenEggbertScreen {
|
||||
|
||||
public AbstractBasicScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
}
|
||||
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.pixelgamelibrary.api.graphics.Color;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class AbstractGameScreen extends OpenEggbertScreen {
|
||||
|
||||
public AbstractGameScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
ScreenUtils.clear(0f, 0f, 0f, 1f);
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.setScale(2.0f);
|
||||
font.setColor(Color.RED);
|
||||
|
||||
font.draw(batch, "Sorry, game is not yet implemented", 40, 400);
|
||||
font.draw(batch, "Please, press any key", 40, 300);
|
||||
font.draw(batch, "to return to the main screen", 40, 250);
|
||||
|
||||
|
||||
batch.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,86 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.pixelgamelibrary.api.graphics.Color;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class DemoScreen extends OpenEggbertScreen {
|
||||
|
||||
public DemoScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final Optional<ScreenType> getScreenType() {
|
||||
return Optional.of(ScreenType.DEMO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
ScreenUtils.clear(0f, 0f, 0f, 1f);
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.setScale(2.0f);
|
||||
font.setColor(Color.RED);
|
||||
|
||||
font.draw(batch, "Sorry, demo is not yet implemented", 40, 400);
|
||||
font.draw(batch, "Please, press any key", 40, 300);
|
||||
font.draw(batch, "to return to the main screen", 40, 250);
|
||||
|
||||
|
||||
batch.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.pixelgamelibrary.api.graphics.Color;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class GameScreen extends AbstractGameScreen {
|
||||
|
||||
public GameScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
|
||||
}
|
||||
|
||||
protected final Optional<ScreenType> getScreenType() {
|
||||
return Optional.of(ScreenType.GAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
ScreenUtils.clear(0f, 0f, 0f, 1f);
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.setScale(2.0f);
|
||||
font.setColor(Color.RED);
|
||||
|
||||
font.draw(batch, "Sorry, demo is not yet implemented", 40, 400);
|
||||
font.draw(batch, "Please, press any key", 40, 300);
|
||||
font.draw(batch, "to return to the main screen", 40, 250);
|
||||
|
||||
|
||||
batch.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,304 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Application;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.badlogic.gdx.Preferences;
|
||||
import com.pixelgamelibrary.api.graphics.Color;
|
||||
|
||||
import com.pixelgamelibrary.api.graphics.ShapeRenderer;
|
||||
import com.openeggbert.core.gamespace.GameSpace;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.openeggbert.core.mod.Mod;
|
||||
import com.openeggbert.core.mod.ModType;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.ToString;
|
||||
import com.pixelgamelibrary.api.files.FileSystem;
|
||||
import com.pixelgamelibrary.api.graphics.Texture;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class GameSpaceListScreen extends AbstractBasicScreen {
|
||||
|
||||
private int pageNumber = 1;
|
||||
private final int pageSize = 5;
|
||||
private final List<Mod> fullEmbeddedMods;
|
||||
private float timeSeconds = 0f;
|
||||
private ShapeRenderer shapeRenderer;
|
||||
|
||||
@ToString
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
class Rectangle {
|
||||
|
||||
float x, y, width, height;
|
||||
}
|
||||
private Rectangle[] buttons = new Rectangle[5];
|
||||
private Rectangle previousPageButton = new Rectangle();
|
||||
private Rectangle nextPageButton = new Rectangle();
|
||||
private Texture backgroundShapes;
|
||||
|
||||
public GameSpaceListScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
this.fullEmbeddedMods = openEggbertGame.getEmbeddedMods().stream().filter(m -> m.getModType() == ModType.FULL).collect(Collectors.toList());
|
||||
|
||||
if (Gdx.app.getType() == Application.ApplicationType.Android) {
|
||||
game.setHeightInPixels(Gdx.app.getGraphics().getHeight());
|
||||
game.setWidthInPixels(Gdx.app.getGraphics().getWidth());
|
||||
}
|
||||
Preferences prefs = Gdx.app.getPreferences("My Preferences");
|
||||
prefs.putString("test", "abc");
|
||||
prefs.flush();
|
||||
final FileSystem storage = Pixel.files().localFileSystem();
|
||||
storage.createDirectory("modes");
|
||||
storage.createDirectory("gameSpaces");
|
||||
System.out.println(storage.debug());
|
||||
//storage.file("modes").child("text.txt").writeString("textabc");
|
||||
|
||||
storage.flush();
|
||||
shapeRenderer = openEggbertGame.getShapeRenderer();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final Optional<ScreenType> getScreenType() {
|
||||
return Optional.of(ScreenType.GAME_SPACE_LIST);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
backgroundShapes = Pixel.graphics().getTextureFactory().createTransparent(640, 480);
|
||||
shapeRenderer.setTexture(backgroundShapes);
|
||||
System.out.println("Calling : GameSpaceListScreen : show");
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
|
||||
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||
timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean touchCancelled(int screenX, int screenY, int pointer, int button) {
|
||||
timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean touchDragged(int screenX, int screenY, int pointer) {
|
||||
timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseMoved(int screenX, int screenY) {
|
||||
timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
if (keyCode == Input.Keys.SPACE) {
|
||||
game.setScreen(new TestScreen(game));
|
||||
}
|
||||
if (keyCode == Input.Keys.ESCAPE) {
|
||||
Gdx.app.exit();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean touchDown(int x, int y, int pointer, int button) {
|
||||
timeSeconds = 0f;
|
||||
Gdx.app.log("touchDown: ", "x=" + x + " " + "y=" + y);
|
||||
if (x <= Gdx.graphics.getWidth() / 3f && y >= (Gdx.graphics.getHeight() * 0.92f) && pageNumber > 1) {
|
||||
pageNumber--;
|
||||
}
|
||||
if (x >= Gdx.graphics.getWidth() * 2f / 3f && y >= (Gdx.graphics.getHeight() * 0.92f) && (pageNumber * pageSize) < fullEmbeddedMods.size()) {
|
||||
pageNumber++;
|
||||
}
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (buttons[i] == null) {
|
||||
continue;
|
||||
}
|
||||
System.out.println(buttons[i].toString());
|
||||
}
|
||||
y = Gdx.graphics.getHeight() - y;
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (buttons[i] == null) {
|
||||
break;
|
||||
}
|
||||
if (x > buttons[i].x && x < (buttons[i].x + buttons[i].width)
|
||||
&& y > buttons[i].y && y < (buttons[i].y + buttons[i].height)) {
|
||||
|
||||
activateButton(i);
|
||||
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void activateButton(int i) {
|
||||
Mod mod = fullEmbeddedMods.get(pageSize * (pageNumber - 1) + i);
|
||||
GameSpace gameSpace = new GameSpace();
|
||||
gameSpace.setFeatureLevel(mod.getFeatureLevel());
|
||||
mod.getImportedMods().stream().map(m -> game.loadMod(m))
|
||||
.filter(m -> m.getModType().name().startsWith("IMAGE"))
|
||||
.forEach(m -> {
|
||||
if (m.getModType() == ModType.IMAGE08) {
|
||||
gameSpace.setImage08Directory("embedded_mods/" + m.getIdentification().getGroupId() + "/" + m.getIdentification().getModId());
|
||||
}
|
||||
if (m.getModType() == ModType.IMAGE16) {
|
||||
gameSpace.setImage16Directory("embedded_mods/" + m.getIdentification().getGroupId() + "/" + m.getIdentification().getModId());
|
||||
}
|
||||
if (m.getModType() == ModType.IMAGE24) {
|
||||
gameSpace.setImage24Directory("embedded_mods/" + m.getIdentification().getGroupId() + "/" + m.getIdentification().getModId());
|
||||
}
|
||||
if (m.getModType() == ModType.IMAGE24X2) {
|
||||
gameSpace.setImage24x2Directory("embedded_mods/" + m.getIdentification().getGroupId() + "/" + m.getIdentification().getModId());
|
||||
}
|
||||
});
|
||||
gameSpace.setEmbeddedAssets(true);
|
||||
game.setGameSpace(gameSpace);
|
||||
game.setScreen(new InitScreen(game));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
System.out.println("Calling : GameSpaceListScreen : renderOpenEggbertScreen");
|
||||
//Gdx.app.log(getClass().getName(), game.getStorage().debug());
|
||||
|
||||
timeSeconds += Gdx.graphics.getRawDeltaTime();
|
||||
if (timeSeconds > 60) {
|
||||
activateButton(0);
|
||||
}
|
||||
|
||||
//ScreenUtils.clear(1f, 1f, 0.6f, 0.5f);
|
||||
int buttonHeight = (int) (game.getHeightInPixels() * 0.1f);
|
||||
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.setScale(4.0f);
|
||||
font.setColor(Color.BLACK);
|
||||
int x = (int) (game.getWidthInPixels() * 0.1875f);
|
||||
int y = (int) (game.getHeightInPixels() * 0.95f);
|
||||
font.draw(batch, "Open Eggbert", x, y);
|
||||
List<Mod> modsForPage = fullEmbeddedMods.stream().skip(pageSize * (pageNumber - 1)).limit(5).collect(Collectors.toList());
|
||||
|
||||
float margin = 0.05f * game.getWidthInPixels();
|
||||
|
||||
y = (int) (game.getHeightInPixels() * 0.7f);
|
||||
font.setScale(2.0f);
|
||||
final float spaceBetweenLargeButtons = game.getHeightInPixels() * 0.06f;
|
||||
for (int i = 0; i < modsForPage.size(); i++) {
|
||||
buttons[i] = new Rectangle(margin, y, game.getWidthInPixels() * 0.9f, margin * 1.5f);
|
||||
|
||||
y = (int) (y - spaceBetweenLargeButtons - margin);
|
||||
}
|
||||
|
||||
final boolean isLastPage = !(pageNumber * pageSize < fullEmbeddedMods.size());
|
||||
|
||||
backgroundShapes.clear();
|
||||
shapeRenderer.setColor(1f, 1f, 0.8f, 0.5f);
|
||||
int q = 0;
|
||||
for (Rectangle r : buttons) {
|
||||
q++;
|
||||
if (q > modsForPage.size()) {
|
||||
break;
|
||||
}
|
||||
shapeRenderer.filledRectangle(r.x, r.y, r.width, r.height);
|
||||
}
|
||||
if (pageNumber
|
||||
> 1) {
|
||||
shapeRenderer.filledRectangle(margin, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight);
|
||||
}
|
||||
if (!isLastPage) {
|
||||
shapeRenderer.filledRectangle(game.getWidthInPixels() * 0.66f, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight);
|
||||
}
|
||||
batch.draw(backgroundShapes, 0, 0);
|
||||
|
||||
font.setColor(
|
||||
0f, 0f, 1f, 1f);
|
||||
|
||||
for (int i = 0;
|
||||
i < modsForPage.size();
|
||||
i++) {
|
||||
Mod mod = modsForPage.get(i);
|
||||
String name = mod.getName() == null || mod.getName().isEmpty() ? mod.getIdentification().asString() : mod.getName();
|
||||
name = "#" + ((pageNumber - 1) * pageSize + (i + 1)) + " " + name;
|
||||
font.draw(batch, name, margin * 1.5f, buttons[i].y + 0.8f * buttons[i].height);
|
||||
}
|
||||
|
||||
font
|
||||
.setScale(1.5f);
|
||||
font.setColor(
|
||||
0f, 0f, 1f, 1f);
|
||||
|
||||
float lastRowHeight = game.getHeightInPixels() * 0.08f;
|
||||
if (pageNumber
|
||||
> 1) {
|
||||
font.draw(batch, "Previous page", margin, lastRowHeight);
|
||||
}
|
||||
|
||||
if (!isLastPage) {
|
||||
font.draw(batch, "Next page", game.getWidthInPixels() * 0.765625f, lastRowHeight);
|
||||
}
|
||||
|
||||
font.setColor(
|
||||
0f, 0f, 0f, 1f);
|
||||
int pageCount = fullEmbeddedMods.size() / 5;
|
||||
|
||||
if (fullEmbeddedMods.size()
|
||||
> pageCount * pageSize) {
|
||||
pageCount++;
|
||||
}
|
||||
|
||||
font.draw(batch,
|
||||
"Page " + pageNumber + " from " + pageCount, game.getWidthInPixels() / 2 - 80, lastRowHeight);
|
||||
|
||||
batch.end();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
backgroundShapes.dispose();
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,164 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Application;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.configuration.ConfigDef;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.openeggbert.core.configuration.OpenEggbertDisplayMode;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class InitScreen extends OpenEggbertScreen {
|
||||
|
||||
private float timeSeconds = 0f;
|
||||
|
||||
public InitScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
System.out.println("game.getGameSpace().getDataDirectory() != null" + (game.getGameSpace().getDataDirectory() != null));
|
||||
// Pixel.app().log("###1");
|
||||
// Arrays.asList(Gdx.files.local(".").list()).forEach(e->Pixel.app().log(e.path()));
|
||||
// Pixel.app().log("###2");
|
||||
if (game.getGameSpace().getDataDirectory() != null) {
|
||||
FileHandle configDefFileHandle = null;
|
||||
String[] array = new String[]{"config.def", "Config.def", "CONFIG.DEF"};
|
||||
if (game.getGameSpace().isEmbeddedAssets()) {
|
||||
// for (String a : array) {
|
||||
// configDefFileHandle = EmbeddedFileHandleFactory.create(game.getGameSpace().getDataDirectory() + "/" + a);
|
||||
// if (configDefFileHandle.exists()) {
|
||||
// break;
|
||||
// } else {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
} else {
|
||||
for (String a : array) {
|
||||
configDefFileHandle = Gdx.files.absolute(game.getGameSpace().getDataDirectory() + "/" + a);
|
||||
if (configDefFileHandle.exists()) {
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (configDefFileHandle != null && configDefFileHandle.exists()) {
|
||||
game.setConfigDef(new ConfigDef(configDefFileHandle.readString()));
|
||||
}
|
||||
|
||||
}
|
||||
if (game.getConfigDef() == null) {
|
||||
game.setConfigDef(new ConfigDef("CD-Rom=E:\\US\n"
|
||||
+ "FullScreen=0\n"
|
||||
+ "TrueColor=0\n"
|
||||
+ "MouseType=1\n"
|
||||
+ "SpeedRate=1\n"
|
||||
+ "Timer=150ms\n"
|
||||
+ "Language=U\n"
|
||||
+ "Benchmark=251674"));
|
||||
System.out.println("game.getConfigDef()=" + game.getConfigDef());
|
||||
}
|
||||
OpenEggbertDisplayMode openEggbertDisplayMode = OpenEggbertDisplayMode.setDisplayModeFromConfig(game.getConfigDef());
|
||||
game.setOpenEggbertDisplayMode(openEggbertDisplayMode);
|
||||
|
||||
}
|
||||
|
||||
protected final Optional<ScreenType> getScreenType() {
|
||||
return Optional.of(ScreenType.INIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
|
||||
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
|
||||
// timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean touchCancelled(int screenX, int screenY, int pointer, int button) {
|
||||
// timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean touchDragged(int screenX, int screenY, int pointer) {
|
||||
// timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseMoved(int screenX, int screenY) {
|
||||
//timeSeconds = 0f;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
// timeSeconds = 0f;
|
||||
|
||||
if (keyCode == Input.Keys.ESCAPE) {
|
||||
Gdx.app.exit();
|
||||
}
|
||||
|
||||
if (keyCode == Input.Keys.SPACE) {
|
||||
game.setScreen(new GameSpaceListScreen(game));
|
||||
}
|
||||
|
||||
if (game.getConfigDef() != null && Gdx.app.getType() == Application.ApplicationType.Desktop && !game.getConfigDef().isStrictCompatibility() && keyCode == Input.Keys.F) {
|
||||
OpenEggbertDisplayMode currentDisplayMode = game.getOpenEggbertDisplayMode();
|
||||
OpenEggbertDisplayMode newDisplayMode = currentDisplayMode.flip();
|
||||
OpenEggbertDisplayMode.setDisplayMode(newDisplayMode);
|
||||
game.setOpenEggbertDisplayMode(newDisplayMode);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
timeSeconds += Gdx.graphics.getRawDeltaTime();
|
||||
|
||||
if (timeSeconds >= 50) {
|
||||
timeSeconds = 0;
|
||||
game.setScreen(new DemoScreen(game));
|
||||
}
|
||||
ScreenUtils.clear(0f, 0f, 0f, 1f);
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
batch.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.pixelgamelibrary.api.graphics.Color;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class MainHubScreen extends AbstractGameScreen {
|
||||
|
||||
public MainHubScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
|
||||
}
|
||||
|
||||
protected final Optional<ScreenType> getScreenType() {
|
||||
return Optional.of(ScreenType.MAIN_HUB);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
ScreenUtils.clear(0f, 0f, 0f, 1f);
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.setScale(2.0f);
|
||||
font.setColor(Color.RED);
|
||||
|
||||
font.draw(batch, "Sorry, demo is not yet implemented", 40, 400);
|
||||
font.draw(batch, "Please, press any key", 40, 300);
|
||||
font.draw(batch, "to return to the main screen", 40, 250);
|
||||
|
||||
|
||||
batch.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,144 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.openeggbert.core.gamespace.GameFileType;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.openeggbert.core.utils.OpenEggbertUtils;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.pixelgamelibrary.api.Platform;
|
||||
import com.pixelgamelibrary.api.app.LogLevel;
|
||||
import com.pixelgamelibrary.api.graphics.SpriteBatch;
|
||||
import com.pixelgamelibrary.api.graphics.Texture;
|
||||
import com.pixelgamelibrary.api.screen.ScreenAdapter;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import com.pixelgamelibrary.api.files.File;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public abstract class OpenEggbertScreen extends ScreenAdapter {
|
||||
|
||||
protected OpenEggbertGame game;
|
||||
protected SpriteBatch batch;
|
||||
|
||||
public OpenEggbertScreen(OpenEggbertGame openEggbertGame) {
|
||||
this.game = openEggbertGame;
|
||||
this.batch = openEggbertGame.getBatch();
|
||||
loadBackgroundTextureIfNeeded();
|
||||
}
|
||||
|
||||
private String getBackgroundFileName() {
|
||||
//return "INIT.BLP.BMP";
|
||||
return getScreenType().isPresent() ? getScreenType().get().getFileNameWithoutExtension(): "";
|
||||
}
|
||||
|
||||
protected Optional<ScreenType> getScreenType() {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
protected Optional<Texture> getBackgroundTexture() {
|
||||
if (getBackgroundFileName().isEmpty()) {
|
||||
return Optional.empty();
|
||||
}
|
||||
return game.getImageTexture(getBackgroundFileName());
|
||||
}
|
||||
|
||||
private void loadBackgroundTextureIfNeeded() {
|
||||
//if(true) return;//todo
|
||||
if (getBackgroundFileName().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
String fileName = getBackgroundFileName();
|
||||
if(getScreenType().isPresent() && getScreenType().get().isBasic()) {
|
||||
if (!game.existsImageTexture("BASIC")) {
|
||||
File fileHandle;
|
||||
if (Pixel.app().isOneOfPlatforms(Platform.ANDROID, Platform.WEB)) {
|
||||
Pixel.app().log("screen","loading from internal");
|
||||
fileHandle = Pixel.files().assets("BASIC/BASIC.PNG");
|
||||
} else {
|
||||
|
||||
Pixel.app().log("screen","loading from classpath");
|
||||
fileHandle = Pixel.files().assets("BASIC/BASIC.PNG");
|
||||
}
|
||||
game.loadImageTexture(fileHandle);
|
||||
}
|
||||
return;
|
||||
}
|
||||
List<String> possibleFileNames = OpenEggbertUtils.createPossibleFileNames(GameFileType.IMAGE8, fileName);
|
||||
for(String possibleFileName: possibleFileNames) {
|
||||
if (!game.existsImageTexture(possibleFileName)) {
|
||||
String name = game.getGameSpace().getImage08Directory() + "/" + possibleFileName;
|
||||
|
||||
Pixel.app().setLogLevel(LogLevel.INFO);
|
||||
Pixel.app().log("screen","name=" + name);
|
||||
File fileHandle = null;
|
||||
if (game.getGameSpace().isEmbeddedAssets()) {
|
||||
|
||||
if (Pixel.app().isOneOfPlatforms(Platform.ANDROID, Platform.WEB)) {
|
||||
Pixel.app().log("screen","loading from internal");
|
||||
fileHandle = Pixel.files().assets(name);
|
||||
} else {
|
||||
|
||||
Pixel.app().log("screen","loading from classpath");
|
||||
fileHandle = Pixel.files().assets(name);
|
||||
|
||||
}
|
||||
} else {
|
||||
Pixel.app().log("screen","loading from absolute");
|
||||
|
||||
fileHandle = Pixel.files().absolute(name);
|
||||
}
|
||||
|
||||
Pixel.app().log("screen", "fileHandleUpperCase.exists()=" + fileHandle.exists());
|
||||
|
||||
if (fileHandle.exists()) {
|
||||
game.loadImageTexture(fileHandle);
|
||||
break;
|
||||
}
|
||||
// else {
|
||||
// throw new OpenEggbertException("Could not load file: " + fileName);
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void drawBackgroundIfAvailable() {
|
||||
if(getScreenType().isPresent() && getScreenType().get().isBasic()) {
|
||||
batch.draw(game.getImageTexture("BASIC").get(), 0, 0, 640,480);
|
||||
return;
|
||||
}
|
||||
if (getBackgroundTexture().isPresent()) {
|
||||
batch.draw(getBackgroundTexture().get(), 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void render(float delta) {
|
||||
renderOpenEggbertScreen(delta);
|
||||
}
|
||||
public abstract void renderOpenEggbertScreen(float delta);
|
||||
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum ScreenType {
|
||||
MAIN,
|
||||
GAME_SPACE_LIST("BASIC"),
|
||||
GAME_SPACE_CREATE("BASIC"),
|
||||
GAME_SPACE_RENAME("BASIC"),
|
||||
GAME_SPACE_DELETE("BASIC"),
|
||||
GAME_SPACE_RESET("BASIC"),
|
||||
GAME_SPACE_EDIT("BASIC"),
|
||||
GAME_SPACE_CONFIGURE("BASIC"),
|
||||
GAME_SPACE_CONFIGURE_ENTRY("BASIC"),
|
||||
GAME_SPACE_SELECT_MODE("BASIC"),
|
||||
//
|
||||
MOD_LIST,
|
||||
MOD_VIEW,
|
||||
//
|
||||
INIT("INIT"),
|
||||
GAMER("GAMER"),
|
||||
MAIN_HUB(""),
|
||||
SUB_HUB(""),
|
||||
GAME(""),
|
||||
EDITOR(""),
|
||||
EDITOR_DEMO(""),
|
||||
DEMO("DECOR016"),//todo fix me
|
||||
;
|
||||
|
||||
@Getter
|
||||
private String fileNameWithoutExtension;
|
||||
|
||||
ScreenType() {
|
||||
this.fileNameWithoutExtension = "";
|
||||
}
|
||||
ScreenType(String fileName) {
|
||||
this.fileNameWithoutExtension = fileName;
|
||||
}
|
||||
public boolean isBasic() {
|
||||
return name().startsWith("GAME_SPACE") || name().startsWith("MOD");
|
||||
}
|
||||
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
import com.pixelgamelibrary.api.graphics.Color;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class SubHubScreen extends AbstractGameScreen {
|
||||
|
||||
public SubHubScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
|
||||
}
|
||||
|
||||
protected final Optional<ScreenType> getScreenType() {
|
||||
return Optional.of(ScreenType.SUB_HUB);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
|
||||
game.setScreen(new InitScreen(game));
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
ScreenUtils.clear(0f, 0f, 0f, 1f);
|
||||
batch.begin();
|
||||
drawBackgroundIfAvailable();
|
||||
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.setScale(2.0f);
|
||||
font.setColor(Color.RED);
|
||||
|
||||
font.draw(batch, "Sorry, demo is not yet implemented", 40, 400);
|
||||
font.draw(batch, "Please, press any key", 40, 300);
|
||||
font.draw(batch, "to return to the main screen", 40, 250);
|
||||
|
||||
|
||||
batch.end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,92 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.screen;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Input;
|
||||
import com.badlogic.gdx.InputAdapter;
|
||||
|
||||
import com.badlogic.gdx.utils.ScreenUtils;
|
||||
import com.openeggbert.core.main.OpenEggbertGame;
|
||||
import com.pixelgamelibrary.api.Pixel;
|
||||
import com.pixelgamelibrary.api.graphics.BitmapFont;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class TestScreen extends OpenEggbertScreen {
|
||||
|
||||
public TestScreen(OpenEggbertGame openEggbertGame) {
|
||||
super(openEggbertGame);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean keyDown(int keyCode) {
|
||||
if (keyCode == Input.Keys.SPACE) {
|
||||
game.setScreen(new GameSpaceListScreen(game));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderOpenEggbertScreen(float delta) {
|
||||
ScreenUtils.clear(0.15f, 0.15f, 0.2f, 1f);
|
||||
game.getBatch().begin();
|
||||
Function<String, String> removeCurrentDir = i -> i == null ? null : i.replace(game.getAbsolutePathOfRootDirectory()+ "/", "");
|
||||
if (Pixel.app().getPlatform().isDesktop() && game.getGameSpace() != null) {
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
int x = 140;
|
||||
font.draw(game.getBatch(), "getFeatureLevel=" + game.getGameSpace().getFeatureLevel(), 40, x);
|
||||
x += 25;
|
||||
font.draw(game.getBatch(), "getDataDirectory=" + removeCurrentDir.apply(game.getGameSpace().getDataDirectory()), 40, x);
|
||||
x += 25;
|
||||
font.draw(game.getBatch(), "getImage08Directory=" + removeCurrentDir.apply(game.getGameSpace().getImage08Directory()), 40, x);
|
||||
x += 25;
|
||||
font.draw(game.getBatch(), "getImage16Directory=" + removeCurrentDir.apply(game.getGameSpace().getImage16Directory()), 40, x);
|
||||
x += 25;
|
||||
font.draw(game.getBatch(), "getImage24Directory=" + removeCurrentDir.apply(game.getGameSpace().getImage24Directory()), 40, x);
|
||||
x += 25;
|
||||
font.draw(game.getBatch(), "getImage24x2Directory=" + removeCurrentDir.apply(game.getGameSpace().getImage24x2Directory()), 40, x);
|
||||
x += 25;
|
||||
font.draw(game.getBatch(), "getSoundDirectory=" + removeCurrentDir.apply(game.getGameSpace().getSoundDirectory()), 40, x);
|
||||
}
|
||||
|
||||
if (game.getAbsolutePathOfRootDirectory()!= null) {
|
||||
BitmapFont font;
|
||||
font = game.getFont();
|
||||
font.draw(game.getBatch(), game.getAbsolutePathOfRootDirectory(), 40, 340);
|
||||
}
|
||||
batch.draw(game.getImage(), 40, 400);
|
||||
game.getBatch().end();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
Gdx.input.setInputProcessor(null);
|
||||
}
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.sound;
|
||||
|
||||
import lombok.Getter;
|
||||
import com.openeggbert.core.configuration.IsThisFeatureEnabledForStrictMode;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum SoundFormat implements IsThisFeatureEnabledForStrictMode {
|
||||
BLP("blp", true),
|
||||
WAV("wav", false),
|
||||
MP3("mp3", false),
|
||||
OGG("ogg", false),
|
||||
;
|
||||
@Getter
|
||||
private String fileExtension;
|
||||
SoundFormat(String fileExtensionIn, boolean enabledInCaseOfStrictMode) {
|
||||
this.fileExtension = fileExtensionIn;
|
||||
this.enabledInCaseOfStrictMode = enabledInCaseOfStrictMode;
|
||||
}
|
||||
|
||||
@Getter
|
||||
private boolean enabledInCaseOfStrictMode;
|
||||
|
||||
@Override
|
||||
public boolean isThisFeatureEnabledForStrictMode() {
|
||||
return enabledInCaseOfStrictMode;
|
||||
}
|
||||
public SoundFormat getTargetFormat() {
|
||||
return this == BLP ? WAV : this;
|
||||
}
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.sound;
|
||||
|
||||
import com.openeggbert.core.image.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class SoundManager {
|
||||
|
||||
}
|
@ -1,115 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
package com.openeggbert.core.sound;
|
||||
|
||||
import com.openeggbert.core.release.Release;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum SoundType {
|
||||
CLICK(0),
|
||||
MEDIUM_JUMP(1),
|
||||
HIGH_JUMP(2),
|
||||
FALLING_ON_FLOOR(3),
|
||||
HEAD_WAS_BANGED_THE_HEAD_SOUND(4),
|
||||
TURNING_ON_THE_OTHER_SIDE(5),
|
||||
ALMOST_FALLED(6),
|
||||
LOOKING_DOWN(7),
|
||||
INSTANT_DEATH(8),
|
||||
NEW_LIFE(9),
|
||||
EXPLOSION(10),
|
||||
ONE_TREASURE_WAS_COLLECTED(11),
|
||||
ONE_EGG_WAS_COLLECTED(12),
|
||||
REACHED_GOAL_BUT_NOT_TREASURES_ARE_COLLECTED(13),
|
||||
REACHED_GOAL_BUT_AND_ALL_TREASURES_ARE_COLLECTED(14),
|
||||
HELICOPTER_IS_BEING_STARTED(15),
|
||||
HELICOPTER_IS_WORKING(16),
|
||||
HELICOPTER_IS_BEING_STOPPED(17),
|
||||
HELICOPTER_IS_WORKING_IN_REDUCED_POWER(18),
|
||||
//19
|
||||
//20
|
||||
//21
|
||||
LOG_JUMP(22),
|
||||
FALLING_IN_WATER(23),
|
||||
SWIMMING_IN_WATER(24),
|
||||
SAILING_TO_WATER_SURFACE(25),
|
||||
DROWNED_IN_THE_WATER(26),
|
||||
//27
|
||||
JEEP_IS_BEING_STARTED(28),
|
||||
JEEP_IS_WORKING(29),
|
||||
JEEP_IS_BEING_STOPPED(30),
|
||||
JEEP_IS_WORKING_IN_REDUCED_POWER(31),
|
||||
GOODBYE_BEFORE_VISITING_ANOTHER_WORLD(32),
|
||||
OPENING_DOORS(33),
|
||||
//34
|
||||
//35
|
||||
MONKEY_SOUND_IF_TOO_LONG_HANGING_ON_BAR_WITHOUT_AN_ACTIVITY(36),
|
||||
FEET_TAPPING(37),
|
||||
PUSHING_CASE_FORWARD(38),
|
||||
PULLING_CASE_BACKWARD(39),
|
||||
HEAD_WAS_BANGED_THE_BLUPI_VOICE(40),
|
||||
JUMPING_FROM_SPRING(41),
|
||||
COLLECTED_SHIELD_AND_INSTANTLY_USING(42),
|
||||
SHIELD_LOST_EFFECT(43),
|
||||
LOLLIPOP_EFFECT_STARTED(44),
|
||||
LOLLIPOP_EFFECT_ENDED(45),
|
||||
SIGHING_FROM_THE_FATIGUE_OF_PUSHING_THE_CASE(46),
|
||||
//47
|
||||
ANGRY_FROM_PULLING_THE_CASE_FOR_TOO_LONG_TIME(48),
|
||||
FEAR(49),
|
||||
LICKING_LOLLIPOP(50),
|
||||
//51
|
||||
//52
|
||||
EMPTY_TANK(53),
|
||||
//54
|
||||
RECHARGING_DEVICE_EFFECT_STARTING(55),
|
||||
RECHARGING_DEVICE_EFFECT_ENDING(56),
|
||||
DRINKING_INVISIBILITY_POTION(57),
|
||||
//58
|
||||
//59
|
||||
HAPPY_BECAUSE_COLLECTED_ONE_DYNAMITE(60),
|
||||
HAPPY_BECAUSE_FIRED_ONE_DYNAMITE(61),
|
||||
//62
|
||||
//63
|
||||
SPLASH_OF_WATER(64),
|
||||
STICKING_OUT_THE_TONGUE(65),
|
||||
//66-69
|
||||
CRUSHER_EFFECT(70),
|
||||
//71
|
||||
BRIDGE_IS_COLLAPSING(72);
|
||||
|
||||
|
||||
|
||||
|
||||
//LAST_TREASURE_WAS_COLLECTED(12)
|
||||
|
||||
;
|
||||
@Getter
|
||||
private int number;
|
||||
SoundType(int numberIn, Release... featureLevels) {
|
||||
this.number = numberIn;
|
||||
}
|
||||
|
||||
}
|
@ -1,70 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.sprite;
|
||||
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class SpriteSheet {
|
||||
|
||||
public static final String DELIMITER = ";";
|
||||
|
||||
private final Map<String, Integer> columnIndexesForNames = new HashMap<>();
|
||||
private final Map<String, SpriteSheetRow> rowMap = new HashMap<>();
|
||||
|
||||
public SpriteSheet(String csv) {
|
||||
//List<SpriteSheetRow> rows = new ArrayList<>();
|
||||
List<String> lines = Arrays.asList(csv.split("\n"));
|
||||
|
||||
String[] header = lines.get(0).split(DELIMITER);
|
||||
for (int i = 0; i < header.length; i++) {
|
||||
String columnName = header[i];
|
||||
if (columnIndexesForNames.containsKey(columnName)) {
|
||||
throw new OpenEggbertException("Invalid sprite sheet. It has invalid the first row (column names). Column is more than once: " + columnName);
|
||||
}
|
||||
Optional<SpriteSheetRowColumn> optionalSpriteSheetRowColumn = Arrays.asList(com.openeggbert.core.sprite.SpriteSheetRowColumn.values()).stream().filter(r -> r.getColumnName().equals(columnName)).findFirst();
|
||||
if (!optionalSpriteSheetRowColumn.isPresent()) {
|
||||
continue;
|
||||
}
|
||||
columnIndexesForNames.put(columnName, i);
|
||||
}
|
||||
|
||||
lines.stream().skip(1)
|
||||
.forEach(line -> {
|
||||
SpriteSheetRow row = new SpriteSheetRow(line, columnIndexesForNames);
|
||||
//rows.add(row);
|
||||
rowMap.put(row.createId(), row);
|
||||
});
|
||||
}
|
||||
public SpriteSheetRow findSpriteSheetRow(SpriteGroup group, int numberInGroup) {
|
||||
String id = SpriteSheetRow.createId(group.name(), numberInGroup);
|
||||
SpriteSheetRow row = rowMap.get(id);
|
||||
|
||||
return row;
|
||||
}
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.sprite;
|
||||
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
@Getter
|
||||
public class SpriteSheetRow {
|
||||
|
||||
private static final String COLONCOLON = ";;";
|
||||
|
||||
private String file;
|
||||
private String group;
|
||||
private int numberInGroup;
|
||||
private int row;
|
||||
private int column;
|
||||
private int x;
|
||||
private int y;
|
||||
private int width;
|
||||
private int height;
|
||||
private String notes;
|
||||
private String tags;
|
||||
private int numberPerSheet;
|
||||
|
||||
public static String createId(SpriteSheetRow row) {
|
||||
return createId(row.getGroup(), row.getNumberInGroup());
|
||||
}
|
||||
|
||||
public static String createId(String group, int numberInGroup) {
|
||||
return group + COLONCOLON + numberInGroup;
|
||||
}
|
||||
|
||||
public String createId() {
|
||||
return createId(this);
|
||||
}
|
||||
|
||||
public SpriteSheetRow(String line, Map<String, Integer> columnIndexesForNames) {
|
||||
String[] columns = line.split(SpriteSheet.DELIMITER);
|
||||
Function<SpriteSheetRowColumn, String> findString = c -> columnIndexesForNames.containsKey(c.getColumnName()) ? columns[columnIndexesForNames.get(c.getColumnName())] : "";
|
||||
Function<SpriteSheetRowColumn, Integer> findInt = c -> {
|
||||
String s = findString.apply(c);
|
||||
if (s.isEmpty()) {
|
||||
throw new OpenEggbertException("Missing value for column: " + c.getColumnName());
|
||||
};
|
||||
return Integer.valueOf(s);
|
||||
};
|
||||
|
||||
file = findString.apply(SpriteSheetRowColumn.FILE);
|
||||
group = findString.apply(SpriteSheetRowColumn.GROUP);
|
||||
numberInGroup = findInt.apply(SpriteSheetRowColumn.NUMBER_IN_GROUP);
|
||||
row = findInt.apply(SpriteSheetRowColumn.ROW);
|
||||
column = findInt.apply(SpriteSheetRowColumn.COLUMN);
|
||||
x = findInt.apply(SpriteSheetRowColumn.X);
|
||||
y = findInt.apply(SpriteSheetRowColumn.Y);
|
||||
width = findInt.apply(SpriteSheetRowColumn.WIDTH);
|
||||
height = findInt.apply(SpriteSheetRowColumn.HEIGHT);
|
||||
notes = findString.apply(SpriteSheetRowColumn.NOTES);
|
||||
tags = findString.apply(SpriteSheetRowColumn.TAGS);
|
||||
int numberPerSheet = findInt.apply(SpriteSheetRowColumn.FILE);
|
||||
if (file.isEmpty()) {
|
||||
throw new OpenEggbertException("Missing mandatory value for column: " + SpriteSheetRowColumn.FILE);
|
||||
}
|
||||
if (group.isEmpty()) {
|
||||
throw new OpenEggbertException("Missing mandatory value for column: " + SpriteSheetRowColumn.GROUP);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.sprite;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* Represents a row in a sprite sheet.
|
||||
* This class is responsible for parsing and serializing sprite sheet rows from/to CSV format.
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum SpriteSheetRowColumn {
|
||||
FILE("File"),
|
||||
GROUP("Group"),
|
||||
NUMBER_IN_GROUP("Number in Group"),
|
||||
ROW("Row"),
|
||||
COLUMN("Column"),
|
||||
X("X"),
|
||||
Y("Y"),
|
||||
WIDTH("Width"),
|
||||
HEIGHT("Height"),
|
||||
NOTES("Notes"),
|
||||
TAGS("Tags"),
|
||||
NUMBER_PER_FILE("Number per file");
|
||||
@Getter
|
||||
private final String columnName;
|
||||
SpriteSheetRowColumn(String columnName) {
|
||||
this.columnName = columnName;
|
||||
}
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.utils;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class FileExtension {
|
||||
private FileExtension() {
|
||||
//Not meant to be instantiated.
|
||||
}
|
||||
public static boolean isOpenEggbertOnly(String fileExtension) {
|
||||
return fileExtension != null && !fileExtension.toLowerCase().equals(BLP);
|
||||
}
|
||||
private static final String BLP = "blp";
|
||||
}
|
@ -1,131 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.utils;
|
||||
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public enum FileNameCaseType {
|
||||
UPPERCASE,
|
||||
LOWERCASE,
|
||||
CAPITALIZATION;
|
||||
|
||||
public static String convertToString(String string, FileNameCaseType fileNameCaseType) {
|
||||
if (fileNameCaseType == null) {
|
||||
throw new OpenEggbertException("Argument fileNameCaseType is null, which is forbidden");
|
||||
}
|
||||
if (string == null) {
|
||||
return string;
|
||||
}
|
||||
if (string.isEmpty()) {
|
||||
return string;
|
||||
}
|
||||
switch (fileNameCaseType) {
|
||||
case UPPERCASE:
|
||||
return string.toUpperCase();
|
||||
case LOWERCASE:
|
||||
return string.toLowerCase();
|
||||
case CAPITALIZATION:
|
||||
return Character.toUpperCase(string.charAt(0)) + (string.length() == 1 ? "" : string.substring(1).toLowerCase());
|
||||
default:
|
||||
throw new OpenEggbertException("Unsupported FileNameCaseType: " + fileNameCaseType);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static FileNameCaseType ofString(String string) {
|
||||
|
||||
boolean uppercaseOnly = true;
|
||||
boolean lowercaseOnly = true;
|
||||
|
||||
for (char ch : string.toCharArray()) {
|
||||
|
||||
if (Character.isLetter(ch)) {
|
||||
boolean uppercase = Character.isUpperCase(ch);
|
||||
boolean lowercase = Character.isLowerCase(ch);
|
||||
|
||||
if (uppercase) {
|
||||
lowercaseOnly = false;
|
||||
}
|
||||
if (lowercase) {
|
||||
uppercaseOnly = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (uppercaseOnly) {
|
||||
return UPPERCASE;
|
||||
}
|
||||
if (lowercaseOnly) {
|
||||
return LOWERCASE;
|
||||
}
|
||||
if (!uppercaseOnly && !lowercaseOnly) {
|
||||
char firstChar = string.charAt(0);
|
||||
char[] charArray = string.toCharArray();
|
||||
List<Character> charList = new ArrayList<>();
|
||||
for (Character ch : charArray) {
|
||||
charList.add(ch);
|
||||
}
|
||||
Stream<Character> charStream = charList.stream();
|
||||
|
||||
boolean thereIsNoUppercaseCharacterExcludingTheFirstCharacter
|
||||
= charStream
|
||||
.skip(1)
|
||||
.filter(c -> Character.isLetter(c))
|
||||
.filter(c -> Character.isUpperCase(c))
|
||||
.count() == 0;
|
||||
if ((Character.isLetter(firstChar) ? Character.isUpperCase(firstChar) : true)
|
||||
&& thereIsNoUppercaseCharacterExcludingTheFirstCharacter) {
|
||||
return CAPITALIZATION;
|
||||
} else {
|
||||
throw new OpenEggbertException("Could not find FileNameCaseType from String: " + string);
|
||||
}
|
||||
|
||||
}
|
||||
throw new OpenEggbertException("Could not find FileNameCaseType from String: " + string);
|
||||
|
||||
}
|
||||
|
||||
public static void sortStringsByFileNameCaseType(List<String> list) {
|
||||
Collections.sort(list,
|
||||
new FileNameCaseTypeStringComparator());
|
||||
}
|
||||
|
||||
private static class FileNameCaseTypeStringComparator implements Comparator<String> {
|
||||
|
||||
@Override
|
||||
public int compare(String o1, String o2) {
|
||||
FileNameCaseType t1 = FileNameCaseType.ofString(o1);
|
||||
FileNameCaseType t2 = FileNameCaseType.ofString(o2);
|
||||
int i1 = t1 == UPPERCASE ? 1 : (t1 == LOWERCASE ? 2 : 3);
|
||||
int i2 = t2 == UPPERCASE ? 1 : (t2 == LOWERCASE ? 2 : 3);
|
||||
return Integer.valueOf(i1).compareTo(i2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.core.utils;
|
||||
|
||||
import com.openeggbert.core.image.ImageFormat;
|
||||
import com.openeggbert.core.music.MusicFormat;
|
||||
import com.openeggbert.core.sound.SoundFormat;
|
||||
import com.openeggbert.core.gamespace.GameFileType;
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class OpenEggbertUtils {
|
||||
|
||||
private OpenEggbertUtils() {
|
||||
//Not meant to be instantiated.
|
||||
}
|
||||
|
||||
public static <T> List<T> streamToList(Stream<T> stream) {
|
||||
return stream.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static List<String> createPossibleFileNames(GameFileType gameFileType, String fileName) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (gameFileType.name().startsWith(IMAGE)) {
|
||||
String fileNameWithoutExtension = getFileNameWithoutExtension(fileName);
|
||||
|
||||
for (ImageFormat imageFormat : ImageFormat.values()) {
|
||||
fillListWithPossibleFileNamesForGivenFileExtension(imageFormat.getFileExtension(), fileNameWithoutExtension, list);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
if (gameFileType == GameFileType.MUSIC) {
|
||||
String fileNameWithoutExtension = getFileNameWithoutExtension(fileName);
|
||||
|
||||
for (MusicFormat musicFormat : MusicFormat.values()) {
|
||||
fillListWithPossibleFileNamesForGivenFileExtension(musicFormat.getFileExtension(), fileNameWithoutExtension, list);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
if (gameFileType == GameFileType.SOUND) {
|
||||
String fileNameWithoutExtension = getFileNameWithoutExtension(fileName);
|
||||
|
||||
for (SoundFormat soundFormat : SoundFormat.values()) {
|
||||
fillListWithPossibleFileNamesForGivenFileExtension(soundFormat.getFileExtension(), fileNameWithoutExtension, list);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
if (gameFileType == GameFileType.CONFIG
|
||||
|| gameFileType == GameFileType.WORLD
|
||||
|| gameFileType == GameFileType.DEMO
|
||||
|| gameFileType == GameFileType.SAVE
|
||||
|| gameFileType == GameFileType.USER_INFO) {
|
||||
for (FileNameCaseType fileNameCaseType : FileNameCaseType.values()) {
|
||||
list.add(FileNameCaseType.convertToString(fileName, fileNameCaseType));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
throw new OpenEggbertException("Unsupported GameFileType: " + gameFileType);
|
||||
}
|
||||
|
||||
private static void fillListWithPossibleFileNamesForGivenFileExtension(String fileExtension, String fileNameWithoutExtension, List<String> list) {
|
||||
|
||||
String fileNameWithExtension = fileNameWithoutExtension + "." + fileExtension;
|
||||
for (FileNameCaseType fileNameCaseType : FileNameCaseType.values()) {
|
||||
list.add(FileNameCaseType.convertToString(fileNameWithExtension, fileNameCaseType));
|
||||
}
|
||||
|
||||
}
|
||||
private static final String IMAGE = "IMAGE";
|
||||
|
||||
public static String getFileNameWithoutExtension(String fileName) {
|
||||
if(!fileName.contains(".")) {
|
||||
return fileName;
|
||||
}
|
||||
int dotIndex = -1;
|
||||
for (int i = fileName.length() - 1; i >= 0; i--) {
|
||||
char ch = fileName.charAt(i);
|
||||
if (ch == '.') {
|
||||
dotIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return dotIndex == -1 ? fileName : fileName.substring(0, dotIndex);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,237 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.compatibility;
|
||||
|
||||
import com.openeggbert.core.utils.FileNameCaseType;
|
||||
import com.openeggbert.core.gamespace.GameFileType;
|
||||
import com.openeggbert.core.main.OpenEggbertException;
|
||||
import com.openeggbert.core.utils.OpenEggbertUtils;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class FileNameCaseTypeTest {
|
||||
|
||||
public FileNameCaseTypeTest() {
|
||||
}
|
||||
|
||||
@org.junit.jupiter.api.BeforeAll
|
||||
public static void setUpClass() throws Exception {
|
||||
}
|
||||
|
||||
@org.junit.jupiter.api.AfterAll
|
||||
public static void tearDownClass() throws Exception {
|
||||
}
|
||||
|
||||
@org.junit.jupiter.api.BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
}
|
||||
|
||||
@org.junit.jupiter.api.AfterEach
|
||||
public void tearDown() throws Exception {
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Test of values method, of class FileNameCaseType.
|
||||
// */
|
||||
// @org.junit.jupiter.api.Test
|
||||
// public void testValues() {
|
||||
// System.out.println("values");
|
||||
// FileNameCaseType[] expResult = null;
|
||||
// FileNameCaseType[] result = FileNameCaseType.values();
|
||||
// assertArrayEquals(expResult, result);
|
||||
// // TODO review the generated test code and remove the default call to fail.
|
||||
// fail("The test case is a prototype.");
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Test of valueOf method, of class FileNameCaseType.
|
||||
// */
|
||||
// @org.junit.jupiter.api.Test
|
||||
// public void testValueOf() {
|
||||
// System.out.println("valueOf");
|
||||
// String name = "";
|
||||
// FileNameCaseType expResult = null;
|
||||
// FileNameCaseType result = FileNameCaseType.valueOf(name);
|
||||
// assertEquals(expResult, result);
|
||||
// // TODO review the generated test code and remove the default call to fail.
|
||||
// fail("The test case is a prototype.");
|
||||
// }
|
||||
/**
|
||||
* Test of ofString method, of class FileNameCaseType.
|
||||
*/
|
||||
@org.junit.jupiter.api.Test
|
||||
public void ofStringExpectedReturnedValueIsUPPERCASE() {
|
||||
System.out.println("ofString");
|
||||
String string = "BLUPI000.BLP";
|
||||
|
||||
FileNameCaseType expResult = FileNameCaseType.UPPERCASE;
|
||||
FileNameCaseType result = FileNameCaseType.ofString(string);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of ofString method, of class FileNameCaseType.
|
||||
*/
|
||||
@org.junit.jupiter.api.Test
|
||||
public void ofStringExpectedReturnedValueIsLOWERCASE() {
|
||||
System.out.println("ofString");
|
||||
String string = "blupi000.blp";
|
||||
|
||||
FileNameCaseType expResult = FileNameCaseType.LOWERCASE;
|
||||
FileNameCaseType result = FileNameCaseType.ofString(string);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of ofString method, of class FileNameCaseType.
|
||||
*/
|
||||
@org.junit.jupiter.api.Test
|
||||
public void ofStringExpectedReturnedValueIsCAPITALIZATION() {
|
||||
System.out.println("ofString");
|
||||
String string = "Blupi000.blp";
|
||||
|
||||
FileNameCaseType expResult = FileNameCaseType.CAPITALIZATION;
|
||||
FileNameCaseType result = FileNameCaseType.ofString(string);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of ofString method, of class FileNameCaseType.
|
||||
*/
|
||||
@org.junit.jupiter.api.Test
|
||||
public void ofStringExpectedThrowingException() {
|
||||
String string = "BlupI000.blp";
|
||||
assertThrows(OpenEggbertException.class, () -> {
|
||||
FileNameCaseType.ofString(string);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of ofString method, of class FileNameCaseType.
|
||||
*/
|
||||
@org.junit.jupiter.api.Test
|
||||
public void ofStringExpectedThrowingException2() {
|
||||
String string = "Blupi000.Blp";
|
||||
assertThrows(OpenEggbertException.class, () -> {
|
||||
FileNameCaseType.ofString(string);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of ofString method, of class FileNameCaseType.
|
||||
*/
|
||||
@org.junit.jupiter.api.Test
|
||||
public void ofStringExpectedThrowingException3() {
|
||||
String string = "Blupi000.BLP";
|
||||
assertThrows(OpenEggbertException.class, () -> {
|
||||
FileNameCaseType.ofString(string);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of convertToString method, of class FileNameCaseType.
|
||||
*/
|
||||
@Test
|
||||
public void testConvertToString() {
|
||||
System.out.println("convertToString");
|
||||
String string = "BLUPI000.BLP";
|
||||
FileNameCaseType fileNameCaseType = FileNameCaseType.LOWERCASE;
|
||||
String expResult = "blupi000.blp";
|
||||
String result = FileNameCaseType.convertToString(string, fileNameCaseType);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of convertToString method, of class FileNameCaseType.
|
||||
*/
|
||||
@Test
|
||||
public void testConvertToString2() {
|
||||
System.out.println("convertToString");
|
||||
String string = "blupi000.blp";
|
||||
FileNameCaseType fileNameCaseType = FileNameCaseType.UPPERCASE;
|
||||
String expResult = "BLUPI000.BLP";
|
||||
String result = FileNameCaseType.convertToString(string, fileNameCaseType);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of convertToString method, of class FileNameCaseType.
|
||||
*/
|
||||
@Test
|
||||
public void testConvertToString3() {
|
||||
System.out.println("convertToString");
|
||||
String string = "blupi000.blp";
|
||||
FileNameCaseType fileNameCaseType = FileNameCaseType.CAPITALIZATION;
|
||||
String expResult = "Blupi000.blp";
|
||||
String result = FileNameCaseType.convertToString(string, fileNameCaseType);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of sortStringsByFileNameCaseType method, of class FileNameCaseType.
|
||||
*/
|
||||
@Test
|
||||
public void testSortStringsByFileNameCaseType() {
|
||||
System.out.println("testSortStringsByFileNameCaseType");
|
||||
GameFileType gameFileType = GameFileType.SOUND;
|
||||
String fileName = "BLUPI";
|
||||
String string = "BLUPI.BLP\n"
|
||||
+ "blupi.blp\n"
|
||||
+ "Blupi.blp\n"
|
||||
+ "BLUPI.WAV\n"
|
||||
+ "blupi.wav\n"
|
||||
+ "Blupi.wav\n"
|
||||
+ "BLUPI.MP3\n"
|
||||
+ "blupi.mp3\n"
|
||||
+ "Blupi.mp3\n"
|
||||
+ "BLUPI.OGG\n"
|
||||
+ "blupi.ogg\n"
|
||||
+ "Blupi.ogg";
|
||||
String expResult = "BLUPI.BLP\n"
|
||||
+ "BLUPI.WAV\n"
|
||||
+ "BLUPI.MP3\n"
|
||||
+ "BLUPI.OGG\n"
|
||||
+ "blupi.blp\n"
|
||||
+ "blupi.wav\n"
|
||||
+ "blupi.mp3\n"
|
||||
+ "blupi.ogg\n"
|
||||
+ "Blupi.blp\n"
|
||||
+ "Blupi.wav\n"
|
||||
+ "Blupi.mp3\n"
|
||||
+ "Blupi.ogg";
|
||||
|
||||
List<String> list = OpenEggbertUtils.createPossibleFileNames(gameFileType, fileName);
|
||||
FileNameCaseType.sortStringsByFileNameCaseType(list);
|
||||
String result = list.stream().collect(Collectors.joining("\n"));
|
||||
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
}
|
@ -1,230 +0,0 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
|
||||
// Copyright (C) 2024 the original author or authors.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation, either version 3
|
||||
// of the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see
|
||||
// <https://www.gnu.org/licenses/> or write to the Free Software
|
||||
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
package com.openeggbert.utils;
|
||||
|
||||
import com.openeggbert.core.utils.OpenEggbertUtils;
|
||||
import com.openeggbert.core.gamespace.GameFileType;
|
||||
import java.util.stream.Collectors;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author robertvokac
|
||||
*/
|
||||
public class OpenEggbertUtilsTest {
|
||||
|
||||
public OpenEggbertUtilsTest() {
|
||||
}
|
||||
|
||||
@BeforeAll
|
||||
public static void setUpClass() {
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void tearDownClass() {
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Test of lines method, of class OpenEggbertUtils.
|
||||
// */
|
||||
// @Test
|
||||
// public void testLines() {
|
||||
// System.out.println("lines");
|
||||
// String string = "";
|
||||
// Stream<String> expResult = null;
|
||||
// Stream<String> result = OpenEggbertUtils.lines(string);
|
||||
// assertEquals(expResult, result);
|
||||
// // TODO review the generated test code and remove the default call to fail.
|
||||
// fail("The test case is a prototype.");
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * Test of streamToList method, of class OpenEggbertUtils.
|
||||
// */
|
||||
// @Test
|
||||
// public void testStreamToList() {
|
||||
// System.out.println("streamToList");
|
||||
// List expResult = null;
|
||||
// List result = OpenEggbertUtils.streamToList(null);
|
||||
// assertEquals(expResult, result);
|
||||
// // TODO review the generated test code and remove the default call to fail.
|
||||
// fail("The test case is a prototype.");
|
||||
// }
|
||||
/**
|
||||
* Test of createPossibleFileNames method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testCreatePossibleFileNamesForImage() {
|
||||
System.out.println("createPossibleFileNames");
|
||||
GameFileType gameFileType = GameFileType.IMAGE8;
|
||||
String fileName = "BLUPI";
|
||||
String expResult = "BLUPI.BLP\n"
|
||||
+ "blupi.blp\n"
|
||||
+ "Blupi.blp\n"
|
||||
+ "BLUPI.BMP\n"
|
||||
+ "blupi.bmp\n"
|
||||
+ "Blupi.bmp\n"
|
||||
+ "BLUPI.PNG\n"
|
||||
+ "blupi.png\n"
|
||||
+ "Blupi.png\n"
|
||||
+ "BLUPI.JPEG\n"
|
||||
+ "blupi.jpeg\n"
|
||||
+ "Blupi.jpeg";
|
||||
String result = OpenEggbertUtils.createPossibleFileNames(gameFileType, fileName).stream().collect(Collectors.joining("\n"));
|
||||
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of createPossibleFileNames method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testCreatePossibleFileNamesForMusic() {
|
||||
System.out.println("createPossibleFileNames");
|
||||
GameFileType gameFileType = GameFileType.MUSIC;
|
||||
String fileName = "BLUPI";
|
||||
String expResult = "BLUPI.BLP\n"
|
||||
+ "blupi.blp\n"
|
||||
+ "Blupi.blp\n"
|
||||
+ "BLUPI.MID\n"
|
||||
+ "blupi.mid\n"
|
||||
+ "Blupi.mid\n"
|
||||
+ "BLUPI.WAV\n"
|
||||
+ "blupi.wav\n"
|
||||
+ "Blupi.wav\n"
|
||||
+ "BLUPI.MP3\n"
|
||||
+ "blupi.mp3\n"
|
||||
+ "Blupi.mp3\n"
|
||||
+ "BLUPI.OGG\n"
|
||||
+ "blupi.ogg\n"
|
||||
+ "Blupi.ogg";
|
||||
String result = OpenEggbertUtils.createPossibleFileNames(gameFileType, fileName).stream().collect(Collectors.joining("\n"));
|
||||
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of createPossibleFileNames method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testCreatePossibleFileNamesForSound() {
|
||||
System.out.println("createPossibleFileNames");
|
||||
GameFileType gameFileType = GameFileType.SOUND;
|
||||
String fileName = "BLUPI";
|
||||
String expResult = "BLUPI.BLP\n"
|
||||
+ "blupi.blp\n"
|
||||
+ "Blupi.blp\n"
|
||||
+ "BLUPI.WAV\n"
|
||||
+ "blupi.wav\n"
|
||||
+ "Blupi.wav\n"
|
||||
+ "BLUPI.MP3\n"
|
||||
+ "blupi.mp3\n"
|
||||
+ "Blupi.mp3\n"
|
||||
+ "BLUPI.OGG\n"
|
||||
+ "blupi.ogg\n"
|
||||
+ "Blupi.ogg";
|
||||
String result = OpenEggbertUtils.createPossibleFileNames(gameFileType, fileName).stream().collect(Collectors.joining("\n"));
|
||||
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of createPossibleFileNames method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testCreatePossibleFileNamesForConfig() {
|
||||
System.out.println("createPossibleFileNames");
|
||||
GameFileType gameFileType = GameFileType.CONFIG;
|
||||
String fileName = "CONFIG.DEF";
|
||||
String expResult = "CONFIG.DEF\n"
|
||||
+ "config.def\n"
|
||||
+ "Config.def";
|
||||
String result = OpenEggbertUtils.createPossibleFileNames(gameFileType, fileName).stream().collect(Collectors.joining("\n"));
|
||||
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of createPossibleFileNames method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testCreatePossibleFileNamesForWorld() {
|
||||
System.out.println("createPossibleFileNames");
|
||||
GameFileType gameFileType = GameFileType.WORLD;
|
||||
String fileName = "WORLD031.BLP";
|
||||
String expResult = "WORLD031.BLP\n"
|
||||
+ "world031.blp\n"
|
||||
+ "World031.blp";
|
||||
String result = OpenEggbertUtils.createPossibleFileNames(gameFileType, fileName).stream().collect(Collectors.joining("\n"));
|
||||
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of getFileNameWithoutExtension method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testGetFileNameWithoutExtension() {
|
||||
System.out.println("getFileNameWithoutExtension");
|
||||
String fileName = "BLUPI000.BLP";
|
||||
String expResult = "BLUPI000";
|
||||
String result = OpenEggbertUtils.getFileNameWithoutExtension(fileName);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of getFileNameWithoutExtension method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testGetFileNameWithoutExtension2() {
|
||||
System.out.println("getFileNameWithoutExtension");
|
||||
String fileName = "BLUPI000.BLP.PNG";
|
||||
String expResult = "BLUPI000.BLP";
|
||||
String result = OpenEggbertUtils.getFileNameWithoutExtension(fileName);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of getFileNameWithoutExtension method, of class OpenEggbertUtils.
|
||||
*/
|
||||
@Test
|
||||
public void testGetFileNameWithoutExtension3() {
|
||||
System.out.println("getFileNameWithoutExtension");
|
||||
String fileName = "BLUPI000";
|
||||
String expResult = "BLUPI000";
|
||||
String result = OpenEggbertUtils.getFileNameWithoutExtension(fileName);
|
||||
assertEquals(expResult, result);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
org.gradle.daemon=true
|
||||
org.gradle.jvmargs=-Xms512M -Xmx1G
|
||||
org.gradle.configureondemand=false
|
||||
aiVersion=1.8.2
|
||||
gdxControllersVersion=2.2.3
|
||||
controllerMappingVersion=2.3.0
|
||||
guacamoleVersion=0.3.5
|
||||
formicVersion=0.1.5
|
||||
lombokVersion=1.18.34
|
||||
miniaudioVersion=0.4
|
||||
utilsVersion=0.13.7
|
||||
utilsBox2dVersion=0.13.7
|
||||
websocketVersion=1.9.10.3
|
||||
websocketSerializationVersion=1.9.10.3
|
||||
graalHelperVersion=2.0.1
|
||||
enableGraalNative=false
|
||||
android.enableR8.fullMode=false
|
||||
gwtFrameworkVersion=2.11.0
|
||||
gwtPluginVersion=1.1.29
|
||||
gdxVersion=1.12.1
|
||||
pixelVersion=0.0.0-SNAPSHOT
|
||||
gdxTeaVMVersion=1.0.3
|
||||
teaVMVersion=0.10.2
|
||||
netbeans.hint.jdkPlatform=JDK_17
|
||||
shapeDrawerVersion=2.6.0
|
||||
netbeans.org-netbeans-modules-javascript2-requirejs.enabled=true
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
7
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,7 +0,0 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
249
gradlew
vendored
@ -1,249 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
92
gradlew.bat
vendored
@ -1,92 +0,0 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
@ -1,201 +0,0 @@
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'org.gretty:gretty:3.1.0'
|
||||
}
|
||||
}
|
||||
apply plugin: "gwt"
|
||||
apply plugin: "war"
|
||||
apply plugin: "org.gretty"
|
||||
|
||||
gwt {
|
||||
gwtVersion = "$gwtFrameworkVersion" // Should match the version used for building the GWT backend. See gradle.properties.
|
||||
maxHeapSize = '1G' // Default 256m is not enough for the GWT compiler. GWT is HUNGRY.
|
||||
minHeapSize = '1G'
|
||||
|
||||
src = files(file('src/main/java')) // Needs to be in front of "modules" below.
|
||||
modules 'com.openeggbert.GdxDefinition'
|
||||
//,'com.openeggbert.gdx.storage.GdxStorageMainClass'
|
||||
devModules 'com.openeggbert.GdxDefinitionSuperdev'
|
||||
project.webAppDirName = 'webapp'
|
||||
|
||||
compiler.strict = true
|
||||
compiler.disableCastChecking = true
|
||||
//// The next line can be useful to uncomment if you want output that hasn't been obfuscated.
|
||||
// compiler.style = org.docstr.gradle.plugins.gwt.Style.DETAILED
|
||||
|
||||
sourceLevel = 1.11
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "com.badlogicgames.gdx-controllers:gdx-controllers-core:$gdxControllersVersion:sources"
|
||||
implementation "com.badlogicgames.gdx:gdx-ai:$aiVersion:sources"
|
||||
implementation "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources"
|
||||
implementation "com.badlogicgames.gdx:gdx:$gdxVersion:sources"
|
||||
implementation "com.github.MrStahlfelge.gdx-websockets:core:$websocketVersion:sources"
|
||||
implementation "com.github.MrStahlfelge.gdx-websockets:html:$websocketVersion:sources"
|
||||
implementation "com.github.MrStahlfelge.gdx-websockets:serialization:$websocketSerializationVersion:sources"
|
||||
implementation "com.github.crykn.guacamole:core:$guacamoleVersion:sources"
|
||||
implementation "com.github.crykn.guacamole:gdx:$guacamoleVersion:sources"
|
||||
implementation "com.github.tommyettinger:formic:$formicVersion:sources"
|
||||
implementation "com.github.tommyettinger:gdx-backend-gwt:1.1210.1"
|
||||
implementation "com.github.tommyettinger:gdx-backend-gwt:1.1210.1:sources"
|
||||
implementation "com.github.tommyettinger:libgdx-utils-box2d:$utilsBox2dVersion:sources"
|
||||
implementation "com.github.tommyettinger:libgdx-utils:$utilsVersion:sources"
|
||||
implementation "com.google.jsinterop:jsinterop-annotations:2.0.2:sources"
|
||||
implementation "de.golfgl.gdxcontrollerutils:gdx-controllerutils-mapping:$controllerMappingVersion:sources"
|
||||
|
||||
implementation project(':core')
|
||||
implementation "com.pixelgamelibrary:pixel:$pixelVersion:sources"
|
||||
api "com.pixelgamelibrary:pixel-backend-libgdx:$pixelVersion"
|
||||
implementation "com.pixelgamelibrary:pixel-backend-libgdx:$pixelVersion:sources"
|
||||
implementation("com.badlogicgames.gdx-controllers:gdx-controllers-gwt:$gdxControllersVersion:sources"){exclude group: "com.badlogicgames.gdx", module: "gdx-backend-gwt"}
|
||||
implementation("com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources") {exclude group: "com.google.gwt", module: "gwt-user"}
|
||||
implementation("com.github.crykn.guacamole:gdx-gwt:$guacamoleVersion:sources"){exclude group: "com.badlogicgames.gdx", module: "gdx-backend-gwt"}
|
||||
|
||||
implementation "space.earlygrey:shapedrawer:$shapeDrawerVersion:sources"
|
||||
}
|
||||
|
||||
import org.akhikhl.gretty.AppBeforeIntegrationTestTask
|
||||
import org.docstr.gradle.plugins.gwt.GwtSuperDev
|
||||
|
||||
gretty.httpPort = 8080
|
||||
// The line below will need to be changed only if you change the build directory to something other than "build".
|
||||
gretty.resourceBase = "${project.layout.buildDirectory.asFile.get().absolutePath}/gwt/draftOut"
|
||||
gretty.contextPath = "/"
|
||||
gretty.portPropertiesFileName = "TEMP_PORTS.properties"
|
||||
|
||||
task startHttpServer (dependsOn: [draftCompileGwt]) {
|
||||
doFirst {
|
||||
copy {
|
||||
from "webapp"
|
||||
into gretty.resourceBase
|
||||
}
|
||||
copy {
|
||||
from "war"
|
||||
into gretty.resourceBase
|
||||
}
|
||||
}
|
||||
}
|
||||
task beforeRun(type: AppBeforeIntegrationTestTask, dependsOn: startHttpServer) {
|
||||
// The next line allows ports to be reused instead of
|
||||
// needing a process to be manually terminated.
|
||||
file("build/TEMP_PORTS.properties").delete()
|
||||
// Somewhat of a hack; uses Gretty's support for wrapping a task in
|
||||
// a start and then stop of a Jetty server that serves files while
|
||||
// also running the SuperDev code server.
|
||||
integrationTestTask 'superDev'
|
||||
|
||||
interactive false
|
||||
}
|
||||
|
||||
task superDev(type: GwtSuperDev) {
|
||||
doFirst {
|
||||
gwt.modules = gwt.devModules
|
||||
}
|
||||
}
|
||||
|
||||
//// We delete the (temporary) war/ folder because if any extra files get into it, problems occur.
|
||||
//// The war/ folder shouldn't be committed to version control.
|
||||
clean.delete += [file("war")]
|
||||
|
||||
// This next line can be changed if you want to, for instance, always build into the
|
||||
// docs/ folder of a Git repo, which can be set to automatically publish on GitHub Pages.
|
||||
// This is relative to the html/ folder.
|
||||
var outputPath = "build/dist/"
|
||||
|
||||
task dist(dependsOn: [clean, compileGwt]) {
|
||||
doLast {
|
||||
// Uncomment the next line if you have changed outputPath and know that its contents
|
||||
// should be replaced by a new dist build. Some large JS files are not cleaned up by
|
||||
// default unless the outputPath is inside build/ (then the clean task removes them).
|
||||
// Do not uncomment the next line if you changed outputPath to a folder that has
|
||||
// non-generated files that you want to keep!
|
||||
//delete(file(outputPath))
|
||||
|
||||
file(outputPath).mkdirs()
|
||||
copy {
|
||||
from("build/gwt/out"){
|
||||
exclude '**/*.symbolMap' // Not used by a dist, and these can be large.
|
||||
}
|
||||
into outputPath
|
||||
}
|
||||
copy {
|
||||
from("webapp") {
|
||||
exclude 'index.html' // We edit this HTML file later.
|
||||
exclude 'refresh.png' // We don't need this button; this saves some bytes.
|
||||
}
|
||||
into outputPath
|
||||
}
|
||||
copy {
|
||||
from("webapp") {
|
||||
// These next two lines take the index.html page and remove the superdev refresh button.
|
||||
include 'index.html'
|
||||
filter { String line -> line.replaceAll('<a class="superdev" .+', '') }
|
||||
// This does not modify the original index.html, only the copy in the dist.
|
||||
// If you decide to manually remove or comment out the superdev button from index.html, you should also
|
||||
// either remove or comment out only the "filter" line above this.
|
||||
}
|
||||
into outputPath
|
||||
}
|
||||
copy {
|
||||
from "war"
|
||||
into outputPath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task addSource {
|
||||
doLast {
|
||||
sourceSets.main.compileClasspath += files(project(':core').sourceSets.main.allJava.srcDirs)
|
||||
sourceSets.main.compileClasspath += files("../core/build/generated/sources/annotationProcessor/java/main")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
task distZip(type: Zip, dependsOn: dist){
|
||||
//// This uses the output of the dist task, which removes the superdev button from index.html .
|
||||
from(outputPath)
|
||||
archiveBaseName.set("${appName}-dist")
|
||||
//// The result will be in html/build/ with a name containing "-dist".
|
||||
destinationDirectory.set(file("build"))
|
||||
}
|
||||
|
||||
tasks.compileGwt.dependsOn(addSource)
|
||||
tasks.draftCompileGwt.dependsOn(addSource)
|
||||
tasks.checkGwt.dependsOn(addSource)
|
||||
|
||||
java.sourceCompatibility = JavaVersion.VERSION_11
|
||||
java.targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceSets.main.java.srcDirs = [ "src/main/java/" ]
|
||||
|
||||
eclipse.project.name = appName + "-html"
|
||||
|
||||
|
||||
configurations { lom }
|
||||
dependencies {
|
||||
lom "org.projectlombok:lombok:${lombokVersion}"
|
||||
implementation configurations.lom.dependencies
|
||||
annotationProcessor configurations.lom.dependencies
|
||||
}
|
||||
|
||||
draftCompileGwt {
|
||||
doFirst {
|
||||
jvmArgs "-javaagent:${configurations.lom.asPath}=ECJ"
|
||||
}
|
||||
}
|
||||
|
||||
compileGwt {
|
||||
doFirst {
|
||||
jvmArgs "-javaagent:${configurations.lom.asPath}=ECJ"
|
||||
}
|
||||
}
|
||||
|
||||
superDev {
|
||||
doFirst {
|
||||
jvmArgs "-javaagent:${configurations.lom.asPath}=ECJ"
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.11.0//EN" "https://www.gwtproject.org/doctype/2.11.0/gwt-module.dtd">
|
||||
<module rename-to="html">
|
||||
<!-- Paths to source are relative to this file and separated by slashes ('/'). -->
|
||||
<source path="" />
|
||||
|
||||
<!-- Reflection includes may be needed for your code or library code. Each value is separated by periods ('.'). -->
|
||||
<!-- You can include a full package by not including the name of a type at the end. -->
|
||||
<!-- <extend-configuration-property name="gdx.reflect.include" value="fully.qualified.TypeName" /> -->
|
||||
|
||||
<!-- Rarely, projects may need to include files but do not have access to the complete assets. -->
|
||||
<!-- This happens for libraries and shared projects, typically, and the configuration goes in that project. -->
|
||||
<!-- You can include individual files like this, and access them with Gdx.files.classpath("path/to/file.png") : -->
|
||||
<!-- <extend-configuration-property name="gdx.files.classpath" value="path/to/file.png" /> -->
|
||||
|
||||
<!-- "Inherits" lines are how GWT knows where to look for code and configuration in other projects or libraries. -->
|
||||
<inherits name="com.badlogic.gdx.backends.gdx_backends_gwt" />
|
||||
<inherits name="com.badlogic.gdx.ai" />
|
||||
<inherits name="com.badlogic.gdx.controllers" />
|
||||
<inherits name="com.badlogic.gdx.controllers.controllers-gwt" />
|
||||
<inherits name="com.badlogic.gdx.physics.box2d.box2d-gwt" />
|
||||
<inherits name="com.github.czyzby.websocket.GdxWebSocket" />
|
||||
<inherits name="com.github.czyzby.websocket.GdxWebSocketGwt" />
|
||||
<inherits name="com.github.czyzby.websocket.GdxWebSocketSerialization" />
|
||||
<inherits name="com.openeggbert.core.main.OpenEggbertApplication" />
|
||||
<inherits name="com.pixelgamelibrary.pixelapi" />
|
||||
<inherits name="com.pixelgamelibrary.backend.pixelbackendlibgdx" />
|
||||
<inherits name="formic" />
|
||||
<inherits name="guacamole_gdx_gwt" />
|
||||
<inherits name="libgdx-utils" />
|
||||
<inherits name="libgdx-utils-box2d" />
|
||||
<inherits name="space.earlygrey.shapedrawer"/>
|
||||
|
||||
<!-- You must change this if you rename packages later, or rename GwtLauncher. -->
|
||||
<entry-point class="com.openeggbert.gwt.GwtLauncher" />
|
||||
|
||||
<!-- You usually won't need to make changes to the rest of this. -->
|
||||
<set-configuration-property name="gdx.assetpath" value="../assets" />
|
||||
<set-configuration-property name="xsiframe.failIfScriptTag" value="FALSE"/>
|
||||
<!-- These two lines reduce the work GWT has to do during compilation and also shrink output size. -->
|
||||
<set-property name="user.agent" value="gecko1_8, safari"/>
|
||||
<collapse-property name="user.agent" values="*" />
|
||||
<!-- Remove the "user.agent" lines above if you encounter issues with Safari or other Gecko browsers. -->
|
||||
</module>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.11.0//EN" "https://www.gwtproject.org/doctype/2.11.0/gwt-module.dtd">
|
||||
<module rename-to="html">
|
||||
<inherits name="com.openeggbert.GdxDefinition" />
|
||||
<collapse-all-properties />
|
||||
<add-linker name="xsiframe"/>
|
||||
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
|
||||
<set-configuration-property name="xsiframe.failIfScriptTag" value="FALSE"/>
|
||||
</module>
|