diff --git a/engine/build.gradle b/engine/build.gradle.kts similarity index 63% rename from engine/build.gradle rename to engine/build.gradle.kts index 4f655c7df43..28f88fbeb10 100644 --- a/engine/build.gradle +++ b/engine/build.gradle.kts @@ -2,8 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 // The engine build is the primary Java project and has the primary list of dependencies - -import groovy.json.JsonSlurper import java.time.OffsetDateTime import java.time.ZoneOffset import java.time.format.DateTimeFormatter @@ -16,36 +14,26 @@ plugins { } // Grab all the common stuff like plugins to use, artifact repositories, code analysis config, etc -apply from: "$rootDir/config/gradle/publish.gradle" - -// Declare "extra properties" (variables) for the project - a Gradle thing that makes them special. -ext { - // Read environment variables, including variables passed by jenkins continuous integration server - env = System.getenv() +apply(from = "$rootDir/config/gradle/publish.gradle") - templatesDir = new File(rootDir, "templates") +// Read environment variables, including variables passed by jenkins continuous integration server +val env = System.getenv() - // Stuff for our automatic version file setup - startDateTimeString = OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX")) - versionBase = new File(templatesDir, "version.txt").text.trim() - displayVersion = versionBase -} +// Stuff for our automatic version file setup +val startDateTimeString = OffsetDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX")) +val displayVersion by lazy { File("$rootDir/templates/version.txt").readText().trim() } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Java Section // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -sourceSets { +configure { + // Adjust output path (changed with the Gradle 6 upgrade, this puts it back) main { - proto { - srcDir "src/main/protobuf" - } - java { - // Adjust output path (changed with the Gradle 6 upgrade, this puts it back) - destinationDirectory = new File("$buildDir/classes") - } - test.java.destinationDirectory = new File("$buildDir/testClasses") + java.destinationDirectory.set(layout.buildDirectory.dir("classes")) + proto.srcDir("src/main/protobuf") } + test { java.destinationDirectory.set(layout.buildDirectory.dir("testClasses")) } } // Customizations for the main compilation configuration @@ -53,8 +41,8 @@ configurations { // Exclude a couple JWJGL modules that aren't needed during compilation (OS specific stuff in these two perhaps) implementation { - exclude module: "lwjgl-platform" - exclude module: "jinput-platform" + exclude(module = "lwjgl-platform") + exclude(module = "jinput-platform") } } @@ -90,7 +78,7 @@ dependencies { implementation("com.esotericsoftware:reflectasm:1.11.9") // Graphics, 3D, UI, etc - api(platform("org.lwjgl:lwjgl-bom:$LwjglVersion")) + api(platform("org.lwjgl:lwjgl-bom:${rootProject.extra["LwjglVersion"]}")) api("org.lwjgl:lwjgl") implementation("org.lwjgl:lwjgl-assimp") api("org.lwjgl:lwjgl-glfw") @@ -128,7 +116,7 @@ dependencies { // telemetry implementation("com.snowplowanalytics:snowplow-java-tracker:0.12.1") { - exclude group: "org.slf4j", module: "slf4j-simple" + exclude(group = "org.slf4j", module = "slf4j-simple") } implementation("net.logstash.logback:logstash-logback-encoder:7.4") @@ -148,7 +136,7 @@ dependencies { // Wildcard dependency to catch any libs provided with the project (remote repo preferred instead) - api fileTree(dir: "libs", include: "*.jar") + api(fileTree("libs") { include("*.jar") }) // TODO: Consider moving this back to the PC Facade instead of having the engine rely on it? implementation("org.terasology.crashreporter:cr-terasology:5.0.0") @@ -164,95 +152,50 @@ protobuf { } } -// Instructions for packaging a jar file for the engine -jar { - // Unlike the content modules Gradle grabs the assets as they're in a resources directory. Need to avoid dupes tho - duplicatesStrategy = "EXCLUDE" - - doFirst { - manifest { - def manifestClasspath = "$subDirLibs/" + configurations."${sourceSets.main.runtimeClasspathConfigurationName}".collect { - it.getName() - }.join(" $subDirLibs/") - attributes("Class-Path": manifestClasspath, "Implementation-Title": "Terasology", "Implementation-Version": displayVersion + ", engine v" + project.version + " , build number " + env.BUILD_NUMBER) - } - } -} - -// JMH related tasks - -sourceSets { - jmh { - java.srcDirs = ["src/jmh/java"] - resources.srcDirs = ["src/jmh/resources"] - compileClasspath += sourceSets.main.runtimeClasspath - java.destinationDirectory = new File("$buildDir/jmhClasses") - } -} - -tasks.register("jmh", JavaExec) { - dependsOn jmhClasses - mainClass = "org.openjdk.jmh.Main" - classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath -} - -dependencies { - jmhAnnotationProcessor("org.openjdk.jmh:jmh-generator-annprocess:1.27") - jmhImplementation("org.openjdk.jmh:jmh-core:1.27") - jmhImplementation("org.openjdk.jmh:jmh-generator-annprocess:1.27") -} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Version file stuff // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // First read the internal version out of the engine"s module.txt -def moduleFile = file("src/main/resources/org/terasology/engine/module.txt") - -if (!moduleFile.exists()) { - println "Failed to find module.txt for engine" - throw new GradleException("Failed to find module.txt for engine") -} +val moduleFile = layout.projectDirectory.file("src/main/resources/org/terasology/engine/module.txt").asFile -println "Scanning for version in module.txt for engine" -def slurper = new JsonSlurper() -def moduleConfig = slurper.parseText(moduleFile.text) +println("Scanning for version in module.txt for engine") +val moduleConfig = groovy.json.JsonSlurper().parseText(moduleFile.readText()) as Map // Gradle uses the magic version variable when creating the jar name (unless explicitly set differently) -version = moduleConfig.version +version = moduleConfig["version"]!! // Jenkins-Artifactory integration catches on to this as part of the Maven-type descriptor group = "org.terasology.engine" -println "Version for $project.name loaded as $version for group $group" - -// This version info file actually goes inside the built jar and can be used at runtime -def createVersionInfoFile = tasks.register("createVersionInfoFile", WriteProperties) { - //noinspection GroovyAssignabilityCheck - properties([ - buildNumber: env.BUILD_NUMBER, - buildId: env.BUILD_ID, - buildTag: env.BUILD_TAG, - buildUrl: env.BUILD_URL, - jobName: env.JOB_NAME, - gitCommit: env.GIT_COMMIT, - displayVersion: displayVersion, - engineVersion: version - ].findAll { it.value != null }) - if (env.JOB_NAME != null) { - // Only set the dateTime property when there is a Jenkins JOB_NAME. - // It is a value we can always get (on Jenkins or otherwise) but we don't want local builds - // to invalidate their cache whenever the time changes. - // TODO: after upgrading to Gradle 6.8, see if we can have it ignore this property specifically: - // https://docs.gradle.org/current/userguide/incremental_build.html#sec:property_file_normalization +println("Version for $project.name loaded as $version for group $group") + +// This version info file actually goes inside the built jar and can be used at runtime, contents: +// displayVersion=alpha-20 +// engineVersion=5.4.0-SNAPSHOT +tasks.register("createVersionInfoFile") { + mapOf( + "buildNumber" to env["BUILD_NUMBER"], + "buildId" to env["BUILD_ID"], + "buildTag" to env["BUILD_TAG"], + "buildUrl" to env["BUILD_URL"], + "jobName" to env["JOB_NAME"], + "gitCommit" to env["GIT_COMMIT"], + "displayVersion" to displayVersion, + "engineVersion" to version + ).filterValues { it != null }.forEach { (key, value) -> + property(key, value!!) + inputs.property(key, value) + } + if (env["JOB_NAME"] != null) { property("dateTime", startDateTimeString) } - destinationFile = layout.buildDirectory.dir("createrVersionInfoFile").get().file("versionInfo.properties") } -tasks.named("processResources", Copy) { - from(createVersionInfoFile) { +tasks.named("processResources") { + from("createVersionInfoFile") { into("org/terasology/engine/version/") } from("$rootDir/docs") { @@ -261,16 +204,62 @@ tasks.named("processResources", Copy) { } //TODO: Remove this when gestalt can handle ProtectionDomain without classes (Resources) -tasks.register("copyResourcesToClasses", Copy) { - from processResources - into sourceSets.main.output.classesDirs.first() - +tasks.register("copyResourcesToClasses") { + from("processResources") + into(sourceSets["main"].output.classesDirs.first()) } tasks.named("compileJava") { dependsOn(tasks.named("copyResourcesToClasses")) } +// Instructions for packaging a jar file for the engine +tasks.withType { + // Unlike the content modules Gradle grabs the assets as they're in a resources directory. Need to avoid dupes tho + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + manifest { + attributes["Class-Path"] = "libs/" + configurations.runtimeClasspath.get().joinToString(" libs/") { it.name } + attributes["Implementation-Title"] = "Terasology" + attributes["Implementation-Version"] = + "$displayVersion, engine v${project.version}, build number ${env["BUILD_NUMBER"]}" + } +} + +// JMH related tasks + +sourceSets { + create("jmh") { + java.srcDir("src/jmh/java") + resources.srcDir("src/jmh/resources") + compileClasspath += sourceSets["main"].runtimeClasspath + java.destinationDirectory.set(layout.buildDirectory.dir("jmhClasses")) + } +} + +tasks.register("jmh") { + dependsOn("jmhClasses") + mainClass.set("org.openjdk.jmh.Main") + classpath = sourceSets.named("jmh").get().compileClasspath + sourceSets.named("jmh").get().runtimeClasspath +} + +dependencies { + "jmhAnnotationProcessor"("org.openjdk.jmh:jmh-generator-annprocess:1.27") + "jmhImplementation"("org.openjdk.jmh:jmh-core:1.27") + "jmhImplementation"("org.openjdk.jmh:jmh-generator-annprocess:1.27") +} + +// following tasks use the output of jmh, so declare explicit dependency +listOf( + Checkstyle::class, + Pmd::class, + Javadoc::class, + com.github.spotbugs.snom.SpotBugsTask::class +).forEach { taskClass -> + tasks.withType(taskClass.java).configureEach { + dependsOn(":engine:compileJmhJava") + } +} + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // General IDE customization // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -281,11 +270,11 @@ idea { inheritOutputDirs = false outputDir = file("build/classes") testOutputDir = file("build/testClasses") - downloadSources = true + isDownloadSources = true } } // Make sure our config file for code analytics get extracted (vulnerability: non-IDE execution of single analytic) -ideaModule.dependsOn rootProject.extractConfig -tasks.eclipse.dependsOn rootProject.extractConfig -check.dependsOn rootProject.extractConfig +tasks.named("ideaModule") { dependsOn(tasks.getByPath(":extractConfig")) } +tasks.named("eclipse") { dependsOn(tasks.getByPath(":extractConfig")) } +tasks.named("check") { dependsOn(tasks.getByPath(":extractConfig")) } diff --git a/engine/src/main/java/org/terasology/engine/core/modes/loadProcesses/InitialiseWorld.java b/engine/src/main/java/org/terasology/engine/core/modes/loadProcesses/InitialiseWorld.java index 80201a202d0..8d4d9440e2f 100644 --- a/engine/src/main/java/org/terasology/engine/core/modes/loadProcesses/InitialiseWorld.java +++ b/engine/src/main/java/org/terasology/engine/core/modes/loadProcesses/InitialiseWorld.java @@ -54,6 +54,7 @@ import org.terasology.engine.world.sun.CelestialSystem; import org.terasology.engine.world.sun.DefaultCelestialSystem; import org.terasology.gestalt.module.ModuleEnvironment; +import org.terasology.gestalt.module.exceptions.UnresolvedDependencyException; import java.io.IOException; import java.nio.file.Path; @@ -104,7 +105,7 @@ public boolean step() { // setting the world seed will create the world builder worldGenerator.setWorldSeed(worldInfo.getSeed()); context.put(WorldGenerator.class, worldGenerator); - } catch (UnresolvedWorldGeneratorException e) { + } catch (UnresolvedWorldGeneratorException | UnresolvedDependencyException e) { logger.atError().log("Unable to load world generator {}. Available world generators: {}", worldInfo.getWorldGenerator(), worldGeneratorManager.getWorldGenerators()); context.get(GameEngine.class).changeState(new StateMainMenu("Failed to resolve world generator.")); diff --git a/engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/UniverseSetupScreen.java b/engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/UniverseSetupScreen.java index b05127780db..c569b7a4272 100644 --- a/engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/UniverseSetupScreen.java +++ b/engine/src/main/java/org/terasology/engine/rendering/nui/layers/mainMenu/UniverseSetupScreen.java @@ -51,6 +51,7 @@ import org.terasology.gestalt.entitysystem.component.Component; import org.terasology.gestalt.module.Module; import org.terasology.gestalt.module.ModuleEnvironment; +import org.terasology.gestalt.module.exceptions.UnresolvedDependencyException; import org.terasology.gestalt.module.dependencyresolution.DependencyInfo; import org.terasology.gestalt.module.dependencyresolution.DependencyResolver; import org.terasology.gestalt.module.dependencyresolution.ResolutionResult; @@ -194,6 +195,8 @@ public WorldGeneratorInfo get() { getManager().pushScreen(MessagePopup.ASSET_URI, MessagePopup.class).setMessage("No selectable world generators!", "Please select at least one module that supports a registered world generator!"); + CoreRegistry.put(UniverseWrapper.class, context.get(UniverseWrapper.class)); + triggerBackAnimation(); return null; } @@ -351,6 +354,10 @@ private void addNewWorld(WorldGeneratorInfo worldGeneratorInfo) { universeWrapper.setWorldGenerator(worldGenerator); context.put(UniverseWrapper.class, universeWrapper); } catch (UnresolvedWorldGeneratorException e) { + getManager().pushScreen(MessagePopup.ASSET_URI, MessagePopup.class).setMessage("Selected world generator cannot be resolved!", + "Please report this issue on Discord/GitHub and select a different world generator!"); + e.printStackTrace(); + } catch (UnresolvedDependencyException e) { //TODO: this will likely fail at game creation time later-on due to lack of world generator - don't just ignore this e.printStackTrace(); } diff --git a/engine/src/main/java/org/terasology/engine/world/generator/internal/WorldGeneratorManager.java b/engine/src/main/java/org/terasology/engine/world/generator/internal/WorldGeneratorManager.java index 00a33cbff17..a196f095763 100644 --- a/engine/src/main/java/org/terasology/engine/world/generator/internal/WorldGeneratorManager.java +++ b/engine/src/main/java/org/terasology/engine/world/generator/internal/WorldGeneratorManager.java @@ -15,6 +15,7 @@ import org.terasology.engine.world.generator.WorldGenerator; import org.terasology.gestalt.module.Module; import org.terasology.gestalt.module.ModuleEnvironment; +import org.terasology.gestalt.module.exceptions.UnresolvedDependencyException; import org.terasology.gestalt.module.dependencyresolution.DependencyResolver; import org.terasology.gestalt.module.dependencyresolution.ResolutionResult; import org.terasology.gestalt.naming.Name; @@ -98,7 +99,8 @@ public WorldGeneratorInfo getWorldGeneratorInfo(SimpleUri uri) { * @param context objects from this context will be injected into the * @return The instantiated world generator. */ - public static WorldGenerator createGenerator(SimpleUri uri, Context context) throws UnresolvedWorldGeneratorException { + public static WorldGenerator createGenerator(SimpleUri uri, Context context) + throws UnresolvedWorldGeneratorException, UnresolvedDependencyException { ModuleManager moduleManager = context.get(ModuleManager.class); Module module = moduleManager.getEnvironment().get(uri.getModuleName()); if (module == null) { @@ -128,12 +130,12 @@ public static WorldGenerator createGenerator(SimpleUri uri, Context context) thr * @return a new world generator with the specified uri. */ public static WorldGenerator createWorldGenerator(SimpleUri uri, Context context, ModuleEnvironment environment) - throws UnresolvedWorldGeneratorException { + throws UnresolvedWorldGeneratorException, UnresolvedDependencyException { for (Class generatorClass : environment.getTypesAnnotatedWith(RegisterWorldGenerator.class)) { RegisterWorldGenerator annotation = generatorClass.getAnnotation(RegisterWorldGenerator.class); Name moduleName = environment.getModuleProviding(generatorClass); if (moduleName == null) { - throw new UnresolvedWorldGeneratorException("Cannot find module for world generator " + generatorClass); + throw new UnresolvedDependencyException("Cannot find module for world generator " + generatorClass); } SimpleUri generatorUri = new SimpleUri(moduleName, annotation.id()); if (generatorUri.equals(uri)) { diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu.lang index 61f43d6fcf2..09e483cff6a 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu.lang @@ -437,13 +437,9 @@ "water-reflections-ssr": "water-reflections-ssr", "widget-selection-prompt": "widget-selection-prompt", "widget-selection-title": "widget-selection-title", - "world-config-preview": "world-config-preview", - "world-configuration": "world-configuration", "world-generator": "world-generator", "world-name": "world-name", - "world-pre-generation": "world-pre-generation", "world-seed": "world-seed", - "world-setup": "world-setup", "catching-world": "catching-world", "awaiting-character-spawn": "awaiting-character-spawn", "ensuring-save-game-consistency": "ensuring-save-game-consistency", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ar.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ar.lang index 9a35f180f97..daee59b040c 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ar.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ar.lang @@ -248,6 +248,5 @@ "water-reflections-ssr": "SSR (تجريبي)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "التفاصيل...", "world-seed": "بذرة" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_cs.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_cs.lang index 261cc7c397f..56bdb80f6fd 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_cs.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_cs.lang @@ -438,12 +438,8 @@ "water-reflections-ssr": "SSR (experimentální)", "widget-selection-prompt": "Vyber typ widgetu:", "widget-selection-title": "Výběr Widgetu", - "world-config-preview": "Detaily...", - "world-configuration": "Nastavení světa", "world-generator": "Generátor světa", - "world-pre-generation": "Předgenerace světa", "world-seed": "Zdroj", - "world-setup": "Nastavení světa", "catching-world": "Chytám svět...", "awaiting-character-spawn": "Očekávám spawn postavy...", "ensuring-save-game-consistency": "Zajišťuji konzistenci uložené hry", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_de.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_de.lang index 69ae53f7dad..98d575f53f2 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_de.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_de.lang @@ -247,7 +247,6 @@ "water-reflections-ssr": "SSR (experimentel)", "widget-selection-prompt": "Bitte wähle ein Widget aus:", "widget-selection-title": "Widget-Auswahl", - "world-config-preview": "Details ...", "world-name": "Weltname", "world-seed": "Seed" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_en.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_en.lang index c3cbffe5c70..1538e87f9eb 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_en.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_en.lang @@ -454,13 +454,9 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Details...", - "world-configuration": "World Configuration", "world-generator": "World Generator", "world-name": "World Name", - "world-pre-generation": "World Pre-generation", "world-seed": "Seed", - "world-setup": "World Setup", "catching-world": "Catching World...", "awaiting-character-spawn": "Awaiting Character Spawn...", "ensuring-save-game-consistency": "Ensuring save game consistency", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_es.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_es.lang index ae15113308f..fa1677a8fd4 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_es.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_es.lang @@ -189,6 +189,5 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Detálles...", "world-seed": "Semilla" } \ No newline at end of file diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fa.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fa.lang index 2f077165c96..a80325d89b0 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fa.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fa.lang @@ -239,6 +239,5 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "انتخاب نوع عنصر", "widget-selection-title": "انتخاب عنصر", - "world-config-preview": "جزییات...", "world-seed": "دانه" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fr.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fr.lang index 26977592153..35774bec977 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fr.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_fr.lang @@ -434,12 +434,8 @@ "water-reflections-ssr": "SSR (expérimental)", "widget-selection-prompt": "Sélectionner le type du widget :", "widget-selection-title": "Sélection du widget", - "world-config-preview": "Détails...", - "world-configuration": "Configuration du monde", "world-generator": "Générateur de monde", - "world-pre-generation": "Pré-génération du monde", "world-seed": "Graine", - "world-setup": "Configuration du monde", "catching-world": "Monde captivant ...", "awaiting-character-spawn": "En attente de réapparition du personnage ...", "ensuring-save-game-consistency": "Assurer la cohérence de la sauvegarde", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_gl.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_gl.lang index 2d631df50a0..5f802c838db 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_gl.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_gl.lang @@ -194,6 +194,5 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Details...", "world-seed": "Seed" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hi.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hi.lang index 6479b22f2da..98b3c31fe4d 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hi.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hi.lang @@ -283,6 +283,5 @@ "water-reflections-ssr": "एस.एस.आर (प्रयोगात्मक)", "widget-selection-prompt": "विजेट के प्रकार का चयन करें:", "widget-selection-title": "विजेट चयन", - "world-config-preview": "विवरण...", "world-seed": "मूल" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hu.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hu.lang index 8b922b594ee..96ac8175946 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hu.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_hu.lang @@ -226,6 +226,5 @@ "water-reflections-ssr": "SSR (kísérleti)", "widget-selection-prompt": "Válaszd ki a widget típusát:", "widget-selection-title": "Widget Választás", - "world-config-preview": "Részletek...", "world-seed": "world-seed" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_id.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_id.lang index 9a051474b5e..e94b4f13d4e 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_id.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_id.lang @@ -250,6 +250,5 @@ "water-reflections-ssr": "SSR (eksperimental)", "widget-selection-prompt": "Pilih tipe widget:", "widget-selection-title": "Pilihan widget", - "world-config-preview": "Detil...", "world-seed": "Benih" } \ No newline at end of file diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_it.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_it.lang index 9000753de05..112b7053dfd 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_it.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_it.lang @@ -247,6 +247,5 @@ "water-reflections-ssr": "SSR (sperimentale)", "widget-selection-prompt": "Seleziona il tipo di widget:", "widget-selection-title": "Selezione widget", - "world-config-preview": "Dettagli...", "world-seed": "Seed" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ja.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ja.lang index 44b70300e80..105709221d5 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ja.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ja.lang @@ -438,12 +438,8 @@ "water-reflections-ssr": "SSR(実験用)", "widget-selection-prompt": "ウィジェットの種類を選択:", "widget-selection-title": "ウィジェット・セレクション", - "world-config-preview": "ワールドのプレビュー", - "world-configuration": "ワールドの設定", "world-generator": "ワールドの生成", - "world-pre-generation": "ワールドの生成前", "world-seed": "シード", - "world-setup": "ワールドのセットアップ", "catching-world": "ワールドをキャッシュ...", "awaiting-character-spawn": "キャラクターのスポーン待ち...", "ensuring-save-game-consistency": "保存したゲームの整合性を確認中", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ko.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ko.lang index 16685429a5b..4b21eb8dff3 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ko.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ko.lang @@ -239,6 +239,5 @@ "water-reflections-ssr": "SSR (실험적인)", "widget-selection-prompt": "위젯 유형을 선택하십시오:", "widget-selection-title": "위젯 선택", - "world-config-preview": "세부...", "world-seed": "암호" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_nl.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_nl.lang index 6ad1db91aab..3b346839ca2 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_nl.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_nl.lang @@ -251,6 +251,5 @@ "water-reflections-ssr": "SSR (Experimenteel)", "widget-selection-prompt": "Selecteer het widget-type:", "widget-selection-title": "Widget Selectie", - "world-config-preview": "Details...", "world-seed": "Seed" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pl.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pl.lang index b1d69b6bd91..9fb2dadb255 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pl.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pl.lang @@ -342,6 +342,5 @@ "water-reflections-ssr": "SSR (eksperymentalne)", "widget-selection-prompt": "Wybierz typ widżetu:", "widget-selection-title": "Wybór widżetu", - "world-config-preview": "Szczegóły...", "world-seed": "Ziarno" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pr.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pr.lang index 2374fa537da..60ed868e84d 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pr.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pr.lang @@ -250,6 +250,5 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Details...", "world-seed": "Seed" } \ No newline at end of file diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pt.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pt.lang index 1d4beebc6df..718a6e73fa3 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pt.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_pt.lang @@ -218,7 +218,6 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Detalhes...", "world-seed": "Semente", "catching-world": "Coletando Mundo..." } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ro.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ro.lang index 7029399c02e..6933e632c60 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ro.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ro.lang @@ -194,6 +194,5 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Detalii...", "world-seed": "Seed" } \ No newline at end of file diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ru.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ru.lang index d526201ae4f..af1804c81c2 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ru.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_ru.lang @@ -291,7 +291,6 @@ "water-reflections-ssr": "SSR (экспериментально)", "widget-selection-prompt": "Выбери виджет:", "widget-selection-title": "Выбор виджетов", - "world-config-preview": "Детали ...", "world-seed": "Уникальный посев мира (Seed)", "world-generator": "Генератор Мира" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sq.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sq.lang index 97cd3142b8b..64d56bfd88d 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sq.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sq.lang @@ -434,12 +434,8 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Zgjidhni llojin e widgetit:", "widget-selection-title": "Përzgjedhja e Widgetit", - "world-config-preview": "Detajet...", - "world-configuration": "Konfigurimi i botës", "world-generator": "Gjenerator Botëror", - "world-pre-generation": "Pre-Lindja Botëror", "world-seed": "Farë", - "world-setup": "Rrëgullimi i botës", "catching-world": "Të Kapim Botën...", "awaiting-character-spawn": "Prisni Pjellja e Personazhit...", "ensuring-save-game-consistency": "Garantimi i konsistencës në ruajten e lojrës", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sv.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sv.lang index c799410e736..83b499bc64f 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sv.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_sv.lang @@ -190,6 +190,5 @@ "water-reflections-ssr": "SSR (experimentell)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Detaljer...", "world-seed": "Frö" } \ No newline at end of file diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_tr.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_tr.lang index 79ff844f23b..9a0835c5a75 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_tr.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_tr.lang @@ -224,6 +224,5 @@ "water-reflections-ssr": "SSR (deneysel)", "widget-selection-prompt": "Widget tipini seçiniz:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Details...", "world-seed": "Tohum" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_uk.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_uk.lang index e5e944d0ef9..da2d48c57f2 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_uk.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_uk.lang @@ -453,13 +453,9 @@ "water-reflections-ssr": "SSR (експериментальні)", "widget-selection-prompt": "Виберіть тип віджету:", "widget-selection-title": "Вибір типу віджету", - "world-config-preview": "Деталі...", - "world-configuration": "Конфігурація світу", "world-generator": "Генератор світу", "world-name": "Назва світу", - "world-pre-generation": "Попереднє генерування світу", "world-seed": "Зерно (сід)", - "world-setup": "Налаштування світу", "catching-world": "Кешую світ...", "awaiting-character-spawn": "Чекаю на спаун персонажів...", "ensuring-save-game-consistency": "Перевіряю збережені ігри...", diff --git a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_zh.lang b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_zh.lang index 3c694b5977c..a7512c3c198 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_zh.lang +++ b/engine/src/main/resources/org/terasology/engine/assets/i18n/menu_zh.lang @@ -238,6 +238,5 @@ "water-reflections-ssr": "SSR (experimental)", "widget-selection-prompt": "Select the type of the widget:", "widget-selection-title": "Widget Selection", - "world-config-preview": "Details...", "world-seed": "Seed" } diff --git a/engine/src/main/resources/org/terasology/engine/assets/ui/menu/universeSetupScreen.ui b/engine/src/main/resources/org/terasology/engine/assets/ui/menu/universeSetupScreen.ui index 303dd0396a7..c96b692d95f 100644 --- a/engine/src/main/resources/org/terasology/engine/assets/ui/menu/universeSetupScreen.ui +++ b/engine/src/main/resources/org/terasology/engine/assets/ui/menu/universeSetupScreen.ui @@ -8,7 +8,7 @@ "type": "UILabel", "id": "title", "family": "title", - "text": "${engine:menu#world-pre-generation}", + "text": "${engine:menu#universe-setup}", "layoutInfo": { "height": 48, "position-horizontal-center": {}, @@ -78,10 +78,6 @@ "type": "ColumnLayout", "columns": 1, "contents": [ - { - "type": "UILabel", - "text": "${engine:menu#universe-setup-description}" - }, { "type": "UILabel", "text": "${engine:menu#game-world-generators}:",