mirror of
https://github.com/MovingBlocks/Terasology
synced 2026-05-24 09:28:22 +00:00
feature: migrate to gestaltv7
This commit is contained in:
parent
035dc3e0ae
commit
e55b7f0fd7
1175 changed files with 4173 additions and 4452 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -102,3 +102,5 @@ blacklist.json
|
|||
terasology.jfr
|
||||
local.properties
|
||||
*.hprof
|
||||
|
||||
engine-tests/src/jmh/generated/
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import org.gradle.plugins.ide.idea.model.IdeaModel
|
|||
import org.reflections.Reflections
|
||||
import org.reflections.scanners.SubTypesScanner
|
||||
import org.reflections.scanners.TypeAnnotationsScanner
|
||||
import org.reflections.serializers.JsonSerializer
|
||||
import org.reflections.util.ConfigurationBuilder
|
||||
import org.reflections.util.FilterBuilder
|
||||
import org.terasology.gradology.ModuleMetadataForGradle
|
||||
|
|
@ -124,7 +125,7 @@ val mainSourceSet: SourceSet = sourceSets[SourceSet.MAIN_SOURCE_SET_NAME]
|
|||
tasks.register("cacheReflections") {
|
||||
description = "Caches reflection output to make regular startup faster. May go stale and need cleanup at times."
|
||||
inputs.files(mainSourceSet.output.classesDirs)
|
||||
outputs.file(File(mainSourceSet.output.classesDirs.first(), "reflections.cache"))
|
||||
outputs.file(File(mainSourceSet.output.classesDirs.first(), "manifest.json"))
|
||||
dependsOn(tasks.named("classes"))
|
||||
|
||||
outputs.upToDateWhen { tasks.named("classes").get().state.upToDate }
|
||||
|
|
@ -135,7 +136,7 @@ tasks.register("cacheReflections") {
|
|||
.filterInputsBy(FilterBuilder.parsePackages("+org"))
|
||||
.addUrls(inputs.getFiles().getSingleFile().toURI().toURL())
|
||||
.setScanners(TypeAnnotationsScanner(), SubTypesScanner()))
|
||||
reflections.save(outputs.getFiles().getAsPath())
|
||||
reflections.save(outputs.getFiles().getAsPath(), JsonSerializer())
|
||||
} catch (e: java.net.MalformedURLException) {
|
||||
logger.error("Cannot parse input to url", e)
|
||||
}
|
||||
|
|
@ -163,6 +164,10 @@ tasks.register<Sync>("syncDeltas") {
|
|||
into("${mainSourceSet.output.classesDirs.first()}/deltas")
|
||||
}
|
||||
|
||||
tasks.named("compileJava") {
|
||||
finalizedBy("cacheReflections")
|
||||
}
|
||||
|
||||
// Instructions for packaging a jar file - is a manifest even needed for modules?
|
||||
tasks.named("jar") {
|
||||
// Make sure the assets directory is included
|
||||
|
|
@ -179,7 +184,6 @@ tasks.named("jar") {
|
|||
}
|
||||
}
|
||||
|
||||
finalizedBy("cleanReflections")
|
||||
}
|
||||
|
||||
tasks.named<Test>("test") {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ buildscript {
|
|||
// External libs - jcenter is Bintray and is supposed to be a superset of Maven Central, but do both just in case
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
google()
|
||||
gradlePluginPortal()
|
||||
|
||||
maven {
|
||||
|
|
@ -78,6 +79,7 @@ repositories {
|
|||
// External libs - jcenter is Bintray and is supposed to be a superset of Maven Central, but do both just in case
|
||||
jcenter()
|
||||
mavenCentral()
|
||||
google()
|
||||
|
||||
// MovingBlocks Artifactory instance for libs not readily available elsewhere plus our own libs
|
||||
maven {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ ext {
|
|||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Read the internal version out of the engine-tests module.txt
|
||||
def moduleFile = file('src/main/resources/module.txt')
|
||||
def moduleFile = file('src/main/resources/org/terasology/unittest/module.txt')
|
||||
|
||||
if (!moduleFile.exists()) {
|
||||
println "Failed to find module.txt for engine-tests"
|
||||
|
|
@ -48,6 +48,34 @@ sourceSets {
|
|||
test.java.outputDir = new File("$buildDir/testClasses")
|
||||
}
|
||||
|
||||
|
||||
// JMH related tasks
|
||||
|
||||
sourceSets {
|
||||
jmh {
|
||||
java.srcDirs = ['src/jmh/java']
|
||||
resources.srcDirs = ['src/jmh/resources']
|
||||
compileClasspath += sourceSets.main.runtimeClasspath
|
||||
}
|
||||
}
|
||||
|
||||
task jmh(type: JavaExec, dependsOn: jmhClasses) {
|
||||
main = 'org.openjdk.jmh.Main'
|
||||
classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath
|
||||
}
|
||||
|
||||
dependencies {
|
||||
jmhAnnotationProcessor group: 'org.openjdk.jmh', name: 'jmh-generator-annprocess', version: '1.27'
|
||||
jmhImplementation 'org.openjdk.jmh:jmh-core:1.27'
|
||||
jmhImplementation 'org.openjdk.jmh:jmh-generator-annprocess:1.27'
|
||||
}
|
||||
|
||||
|
||||
// umm need for android dependencies
|
||||
repositories {
|
||||
google()
|
||||
}
|
||||
|
||||
// Primary dependencies definition
|
||||
dependencies {
|
||||
// Dependency on the engine itself
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@
|
|||
import com.google.common.collect.Sets;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.paths.PathManager;
|
||||
import org.terasology.engine.recording.RecordAndReplayCurrentStatus;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
|
@ -76,7 +76,7 @@ protected void reset(Set<Name> moduleNames) throws Exception {
|
|||
AssetManager assetManager = setupAssetManager();
|
||||
|
||||
setupBlockManager(assetManager);
|
||||
|
||||
|
||||
setupExtraDataManager(context);
|
||||
|
||||
setupCollisionManager();
|
||||
|
|
@ -137,7 +137,7 @@ protected AssetManager setupEmptyAssetManager() {
|
|||
protected void setupBlockManager(AssetManager assetManager) {
|
||||
// empty
|
||||
}
|
||||
|
||||
|
||||
protected void setupExtraDataManager(Context context) {
|
||||
// empty
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@
|
|||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.audio.AudioManager;
|
||||
import org.terasology.engine.audio.StaticSound;
|
||||
import org.terasology.engine.audio.StreamingSound;
|
||||
|
|
@ -54,6 +52,7 @@
|
|||
import org.terasology.engine.rendering.assets.skeletalmesh.SkeletalMesh;
|
||||
import org.terasology.engine.rendering.assets.texture.PNGTextureFormat;
|
||||
import org.terasology.engine.rendering.assets.texture.Texture;
|
||||
import org.terasology.engine.rendering.assets.texture.TextureData;
|
||||
import org.terasology.engine.rendering.assets.texture.subtexture.Subtexture;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.engine.world.WorldProvider;
|
||||
|
|
@ -63,6 +62,7 @@
|
|||
import org.terasology.engine.world.block.family.BlockFamilyLibrary;
|
||||
import org.terasology.engine.world.block.internal.BlockManagerImpl;
|
||||
import org.terasology.engine.world.block.loader.BlockFamilyDefinition;
|
||||
import org.terasology.engine.world.block.loader.BlockFamilyDefinitionData;
|
||||
import org.terasology.engine.world.block.loader.BlockFamilyDefinitionFormat;
|
||||
import org.terasology.engine.world.block.shapes.BlockShape;
|
||||
import org.terasology.engine.world.block.shapes.BlockShapeImpl;
|
||||
|
|
@ -77,11 +77,15 @@
|
|||
import org.terasology.engine.world.sun.DefaultCelestialSystem;
|
||||
import org.terasology.engine.world.time.WorldTime;
|
||||
import org.terasology.engine.world.time.WorldTimeImpl;
|
||||
import org.terasology.module.DependencyResolver;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.module.ModuleRegistry;
|
||||
import org.terasology.module.ResolutionResult;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleRegistry;
|
||||
import org.terasology.gestalt.module.dependencyresolution.DependencyResolver;
|
||||
import org.terasology.gestalt.module.dependencyresolution.ResolutionResult;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.nui.asset.UIElement;
|
||||
import org.terasology.nui.skin.UISkinAsset;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
|
|
@ -128,7 +132,7 @@ protected void setupStorageManager() throws IOException {
|
|||
|
||||
ModuleEnvironment environment = context.get(ModuleManager.class).getEnvironment();
|
||||
context.put(BlockFamilyLibrary.class, new BlockFamilyLibrary(environment,context));
|
||||
|
||||
|
||||
ExtraBlockDataManager extraDataManager = context.get(ExtraBlockDataManager.class);
|
||||
|
||||
context.put(StorageManager.class, new ReadWriteStorageManager(savePath, moduleManager.getEnvironment(),
|
||||
|
|
@ -164,7 +168,7 @@ protected void setupBlockManager(AssetManager assetManager) {
|
|||
typeHandlerLibrary.addTypeHandler(BlockFamily.class, new BlockFamilyTypeHandler(blockManager));
|
||||
typeHandlerLibrary.addTypeHandler(Block.class, new BlockTypeHandler(blockManager));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void setupExtraDataManager(Context context) {
|
||||
context.put(ExtraBlockDataManager.class, new ExtraBlockDataManager(context));
|
||||
|
|
@ -172,7 +176,7 @@ protected void setupExtraDataManager(Context context) {
|
|||
|
||||
@Override
|
||||
protected AssetManager setupEmptyAssetManager() {
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
assetTypeManager.switchEnvironment(context.get(ModuleManager.class).getEnvironment());
|
||||
|
||||
context.put(ModuleAwareAssetTypeManager.class, assetTypeManager);
|
||||
|
|
@ -182,54 +186,59 @@ protected AssetManager setupEmptyAssetManager() {
|
|||
|
||||
@Override
|
||||
protected AssetManager setupAssetManager() {
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
|
||||
// cast lambdas explicitly to avoid inconsistent compiler behavior wrt. type inference
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class,
|
||||
PojoPrefab::new, false, "prefabs");
|
||||
assetTypeManager.registerCoreAssetType(BlockShape.class,
|
||||
assetTypeManager.createAssetType(Prefab.class,
|
||||
PojoPrefab::new, "prefabs");
|
||||
assetTypeManager.createAssetType(BlockShape.class,
|
||||
BlockShapeImpl::new, "shapes");
|
||||
assetTypeManager.registerCoreAssetType(BlockSounds.class,
|
||||
assetTypeManager.createAssetType(BlockSounds.class,
|
||||
BlockSounds::new, "blockSounds");
|
||||
assetTypeManager.registerCoreAssetType(BlockTile.class,
|
||||
assetTypeManager.createAssetType(BlockTile.class,
|
||||
BlockTile::new, "blockTiles");
|
||||
assetTypeManager.registerCoreAssetType(BlockFamilyDefinition.class,
|
||||
BlockFamilyDefinition::new, "blocks");
|
||||
AssetType<BlockFamilyDefinition, BlockFamilyDefinitionData> blockFamilyDefinitionDataAssetType =
|
||||
assetTypeManager.createAssetType(BlockFamilyDefinition.class,
|
||||
BlockFamilyDefinition::new, "blocks");
|
||||
|
||||
assetTypeManager.registerCoreAssetType(StaticSound.class, NullSound::new, "sounds");
|
||||
assetTypeManager.registerCoreAssetType(StreamingSound.class, NullStreamingSound::new, "music");
|
||||
|
||||
assetTypeManager.registerCoreFormat(BlockFamilyDefinition.class,
|
||||
assetTypeManager.getAssetFileDataProducer(blockFamilyDefinitionDataAssetType).addAssetFormat(
|
||||
new BlockFamilyDefinitionFormat(assetTypeManager.getAssetManager()));
|
||||
|
||||
assetTypeManager.registerCoreAssetType(UISkinAsset.class,
|
||||
assetTypeManager.createAssetType(StaticSound.class, NullSound::new, "sounds");
|
||||
assetTypeManager.createAssetType(StreamingSound.class, NullStreamingSound::new, "music");
|
||||
|
||||
assetTypeManager.createAssetType(UISkinAsset.class,
|
||||
UISkinAsset::new, "skins");
|
||||
assetTypeManager.registerCoreAssetType(BehaviorTree.class,
|
||||
BehaviorTree::new, false, "behaviors");
|
||||
assetTypeManager.registerCoreAssetType(UIElement.class,
|
||||
assetTypeManager.createAssetType(BehaviorTree.class,
|
||||
BehaviorTree::new, "behaviors");
|
||||
assetTypeManager.createAssetType(UIElement.class,
|
||||
UIElement::new, "ui");
|
||||
assetTypeManager.registerCoreAssetType(Font.class,
|
||||
assetTypeManager.createAssetType(Font.class,
|
||||
FontImpl::new, "fonts");
|
||||
assetTypeManager.registerCoreAssetType(Texture.class,
|
||||
HeadlessTexture::new, "textures", "fonts");
|
||||
assetTypeManager.registerCoreFormat(Texture.class,
|
||||
new PNGTextureFormat(Texture.FilterMode.NEAREST, path -> path.getName(2).toString().equals("textures")));
|
||||
assetTypeManager.registerCoreFormat(Texture.class,
|
||||
new PNGTextureFormat(Texture.FilterMode.LINEAR, path -> path.getName(2).toString().equals("fonts")));
|
||||
AssetType<Texture, TextureData> textureDataAssetType = assetTypeManager.createAssetType(Texture.class,
|
||||
HeadlessTexture::create, "textures", "fonts");
|
||||
assetTypeManager.getAssetFileDataProducer(textureDataAssetType).addAssetFormat(
|
||||
new PNGTextureFormat(Texture.FilterMode.NEAREST,
|
||||
path -> path.getPath().get(1).equals("textures")));
|
||||
assetTypeManager.getAssetFileDataProducer(textureDataAssetType).addAssetFormat(
|
||||
new PNGTextureFormat(Texture.FilterMode.LINEAR, path -> path.getPath().get(1).equals("fonts")));
|
||||
|
||||
assetTypeManager.registerCoreAssetType(Shader.class,
|
||||
assetTypeManager.createAssetType(Shader.class,
|
||||
HeadlessShader::new, "shaders");
|
||||
assetTypeManager.registerCoreAssetType(Material.class,
|
||||
assetTypeManager.createAssetType(Material.class,
|
||||
HeadlessMaterial::new, "materials");
|
||||
assetTypeManager.registerCoreAssetType(Mesh.class,
|
||||
assetTypeManager.createAssetType(Mesh.class,
|
||||
HeadlessMesh::new, "mesh");
|
||||
assetTypeManager.registerCoreAssetType(SkeletalMesh.class,
|
||||
assetTypeManager.createAssetType(SkeletalMesh.class,
|
||||
HeadlessSkeletalMesh::new, "skeletalMesh");
|
||||
assetTypeManager.registerCoreAssetType(MeshAnimation.class, MeshAnimationImpl::new, "animations");
|
||||
assetTypeManager.createAssetType(MeshAnimation.class,
|
||||
MeshAnimationImpl::new, "animations");
|
||||
|
||||
assetTypeManager.registerCoreAssetType(Atlas.class,
|
||||
assetTypeManager.createAssetType(Atlas.class,
|
||||
Atlas::new, "atlas");
|
||||
assetTypeManager.registerCoreAssetType(Subtexture.class, Subtexture::new);
|
||||
assetTypeManager.createAssetType(Subtexture.class,
|
||||
Subtexture::new);
|
||||
|
||||
assetTypeManager.switchEnvironment(context.get(ModuleManager.class).getEnvironment());
|
||||
|
||||
|
|
@ -253,12 +262,13 @@ protected void setupConfig() {
|
|||
|
||||
@Override
|
||||
protected void setupModuleManager(Set<Name> moduleNames) throws Exception {
|
||||
ModuleTypeRegistry typeRegistry = new ModuleTypeRegistry();
|
||||
TypeRegistry.WHITELISTED_CLASSES = ExternalApiWhitelist.CLASSES.stream().map(Class::getName).collect(Collectors.toSet());
|
||||
TypeRegistry.WHITELISTED_CLASSES = ExternalApiWhitelist.CLASSES.stream().map(Class::getName).collect(Collectors.toSet());
|
||||
|
||||
ModuleManager moduleManager = ModuleManagerFactory.create();
|
||||
ModuleTypeRegistry typeRegistry = new ModuleTypeRegistry(moduleManager.getEnvironment());
|
||||
|
||||
context.put(TypeRegistry.class, typeRegistry);
|
||||
context.put(ModuleTypeRegistry.class, typeRegistry);
|
||||
|
||||
ModuleManager moduleManager = ModuleManagerFactory.create(true);
|
||||
ModuleRegistry registry = moduleManager.getRegistry();
|
||||
|
||||
DependencyResolver resolver = new DependencyResolver(registry);
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@
|
|||
import org.junit.jupiter.api.io.TempDir;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.core.paths.PathManager;
|
||||
import org.terasology.module.DependencyResolver;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.module.ResolutionResult;
|
||||
import org.terasology.reflection.ModuleTypeRegistry;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.dependencyresolution.DependencyResolver;
|
||||
import org.terasology.gestalt.module.dependencyresolution.ResolutionResult;
|
||||
import org.terasology.reflection.ModuleTypeRegistry;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
import org.terasology.engine.game.Game;
|
||||
import org.terasology.engine.logic.console.Console;
|
||||
import org.terasology.engine.logic.console.ConsoleImpl;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.network.internal.NetworkSystemImpl;
|
||||
import org.terasology.engine.persistence.StorageManager;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
package org.terasology.engine;
|
||||
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.world.BlockEntityRegistry;
|
||||
import org.terasology.engine.world.WorldProvider;
|
||||
|
|
|
|||
|
|
@ -4,39 +4,21 @@
|
|||
|
||||
import com.google.common.collect.Sets;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.entitySystem.stubs.StringComponent;
|
||||
import org.terasology.module.Module;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.Collections;
|
||||
|
||||
import static com.google.common.base.Verify.verify;
|
||||
import static org.terasology.engine.core.TerasologyConstants.ENGINE_MODULE;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
public final class ModuleManagerFactory {
|
||||
|
||||
private ModuleManagerFactory() { }
|
||||
private ModuleManagerFactory() {
|
||||
}
|
||||
|
||||
public static ModuleManager create() throws Exception {
|
||||
return create(false);
|
||||
}
|
||||
ModuleManager moduleManager = new ModuleManager("");
|
||||
Module unittestModule = moduleManager.getModuleFactory().createPackageModule("org.terasology.unittest");
|
||||
moduleManager.getRegistry().add(unittestModule);
|
||||
|
||||
public static ModuleManager create(boolean loadModulesFromClasspath) throws Exception {
|
||||
ModuleManager moduleManager = new ModuleManager("", Collections.emptyList(), loadModulesFromClasspath);
|
||||
loadUnitTestModule(moduleManager);
|
||||
moduleManager.loadEnvironment(Sets.newHashSet(moduleManager.getRegistry().getLatestModuleVersion(new Name(
|
||||
"engine")), unittestModule), true);
|
||||
return moduleManager;
|
||||
}
|
||||
|
||||
public static void loadUnitTestModule(ModuleManager manager) throws IOException, URISyntaxException {
|
||||
// using the StringComponent stub class as representative example of classes in the unittest module
|
||||
Module testModule = manager.loadClasspathModule(StringComponent.class);
|
||||
verify(testModule.getMetadata().getId().toString().equals("unittest"),
|
||||
"Intended to load the unittest module but ended up with this instead: %s", testModule);
|
||||
manager.loadEnvironment(
|
||||
Sets.newHashSet(
|
||||
manager.getRegistry().getLatestModuleVersion(ENGINE_MODULE),
|
||||
testModule
|
||||
), true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"id" : "unittest",
|
||||
"version" : "4.4.0-SNAPSHOT",
|
||||
"version" : "4.4.0",
|
||||
"displayName" : "Terasology Engine Test",
|
||||
"description" : "Engine unit test content"
|
||||
}
|
||||
|
|
@ -14,8 +14,8 @@
|
|||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataReader;
|
||||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataSerializer;
|
||||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataWriter;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.persistence.serializers.Serializer;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.management.AssetTypeManager;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.config.flexible.Setting;
|
||||
import org.terasology.engine.config.flexible.constraints.NumberRangeConstraint;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.assets.management.AssetTypeManager;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@
|
|||
import com.google.common.collect.SortedSetMultimap;
|
||||
import org.terasology.engine.core.module.ExternalApiWhitelist;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
|
||||
import java.net.URL;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.core.module.ExternalApiWhitelist;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
// Copyright 2021 The Terasology Foundation
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package org.terasology.engine.core.module;
|
||||
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.terasology.module.ModuleLoader;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.terasology.engine.core.TerasologyConstants.MODULE_INFO_FILENAME;
|
||||
|
||||
public class ClasspathSupportingModuleLoaderTest {
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = {
|
||||
"testdummy-1.0.0-SNAPSHOT.jar",
|
||||
"messy-name-directory & $t#f/testmessy-1.0.0-SNAPSHOT.jar",
|
||||
"Spacey Parent/SourceModuleFixture/"
|
||||
})
|
||||
void testLoadModuleFromPath(String moduleLocation) throws IOException, URISyntaxException {
|
||||
ModuleLoader loader = new ClasspathSupportingModuleLoader(true, false);
|
||||
loader.setModuleInfoPath(MODULE_INFO_FILENAME);
|
||||
|
||||
Path modulePath = Paths.get(getClass().getResource(moduleLocation).toURI());
|
||||
|
||||
assertNotNull(loader.load(modulePath));
|
||||
}
|
||||
}
|
||||
|
|
@ -15,21 +15,20 @@
|
|||
*/
|
||||
package org.terasology.engine.core.module;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
import org.terasology.engine.core.TerasologyConstants;
|
||||
import org.terasology.module.BaseModule;
|
||||
import org.terasology.module.DependencyResolver;
|
||||
import org.terasology.module.Module;
|
||||
import org.terasology.module.ModuleMetadata;
|
||||
import org.terasology.module.ModuleRegistry;
|
||||
import org.terasology.module.ResolutionResult;
|
||||
import org.terasology.module.TableModuleRegistry;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.naming.Version;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleMetadata;
|
||||
import org.terasology.gestalt.module.ModuleRegistry;
|
||||
import org.terasology.gestalt.module.TableModuleRegistry;
|
||||
import org.terasology.gestalt.module.dependencyresolution.DependencyResolver;
|
||||
import org.terasology.gestalt.module.dependencyresolution.ResolutionResult;
|
||||
import org.terasology.gestalt.module.resources.EmptyFileSource;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.gestalt.naming.Version;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
|
|
@ -100,24 +99,8 @@ private Module buildSimpleModule(String id, String version) {
|
|||
if (version != null) {
|
||||
metadata.setVersion(new Version(version));
|
||||
}
|
||||
return new BaseModule(Collections.emptyList(), metadata) {
|
||||
@Override
|
||||
public ImmutableList<URL> getClasspaths() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOnClasspath() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCodeModule() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
return new Module(metadata, new EmptyFileSource(), Collections.emptyList(), new Reflections(), (c) -> false);
|
||||
}
|
||||
|
||||
private Module buildEngineModule(String version) {
|
||||
return buildSimpleModule(TerasologyConstants.ENGINE_MODULE.toString(), version);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,11 @@
|
|||
import org.terasology.engine.input.BindButtonEvent;
|
||||
import org.terasology.engine.input.BindableButton;
|
||||
import org.terasology.engine.input.DefaultBinding;
|
||||
import org.terasology.gestalt.module.ModuleMetadata;
|
||||
import org.terasology.gestalt.module.ModuleRegistry;
|
||||
import org.terasology.gestalt.module.TableModuleRegistry;
|
||||
import org.terasology.gestalt.module.resources.DirectoryFileSource;
|
||||
import org.terasology.gestalt.naming.Version;
|
||||
import org.terasology.input.Input;
|
||||
import org.terasology.input.InputType;
|
||||
import org.terasology.input.Keyboard;
|
||||
|
|
@ -20,13 +25,9 @@
|
|||
import org.terasology.input.Keyboard.KeyId;
|
||||
import org.terasology.engine.input.RegisterBindAxis;
|
||||
import org.terasology.engine.input.RegisterBindButton;
|
||||
import org.terasology.module.Module;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.module.ModuleMetadata;
|
||||
import org.terasology.module.ModuleRegistry;
|
||||
import org.terasology.module.TableModuleRegistry;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.naming.Version;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -64,7 +65,7 @@ private void setUpMockModuleEnvironment() {
|
|||
ModuleRegistry moduleRegistry = new TableModuleRegistry();
|
||||
|
||||
Module module = mock(Module.class);
|
||||
when(module.isCodeModule()).thenReturn(true);
|
||||
when(module.getResources() instanceof DirectoryFileSource).thenReturn(true);
|
||||
when(module.getId()).thenReturn(new Name(TEST_MODULE));
|
||||
when(module.getVersion()).thenReturn(new Version(0, 0, 1, true));
|
||||
when(module.getMetadata()).thenReturn(new ModuleMetadata());
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@
|
|||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
|
|
@ -19,13 +16,15 @@
|
|||
import org.terasology.engine.entitySystem.entity.internal.EntityScope;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.prefab.PrefabData;
|
||||
import org.terasology.engine.entitySystem.prefab.internal.PojoPrefab;
|
||||
import org.terasology.engine.network.NetworkMode;
|
||||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.recording.RecordAndReplayCurrentStatus;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
|
@ -49,9 +48,8 @@ public static void setupClass() throws Exception {
|
|||
context = new ContextImpl();
|
||||
ModuleManager moduleManager = ModuleManagerFactory.create();
|
||||
context.put(ModuleManager.class, moduleManager);
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class,
|
||||
(AssetFactory<Prefab, PrefabData>) PojoPrefab::new, "prefabs");
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
assetTypeManager.createAssetType(Prefab.class, PojoPrefab::new, "prefabs");
|
||||
assetTypeManager.switchEnvironment(moduleManager.getEnvironment());
|
||||
context.put(AssetManager.class, assetTypeManager.getAssetManager());
|
||||
context.put(RecordAndReplayCurrentStatus.class, new RecordAndReplayCurrentStatus());
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public static void setupClass() throws Exception {
|
|||
@BeforeEach
|
||||
public void setup() {
|
||||
ContextImpl context = new ContextImpl();
|
||||
context.put(ModuleManager.class, moduleManager);
|
||||
context.put( ModuleManager.class, moduleManager);
|
||||
NetworkSystem networkSystem = mock(NetworkSystem.class);
|
||||
when(networkSystem.getMode()).thenReturn(NetworkMode.NONE);
|
||||
context.put(NetworkSystem.class, networkSystem);
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@
|
|||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
|
|
@ -36,6 +35,7 @@
|
|||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.engine.utilities.Assets;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
|
|
@ -65,9 +65,8 @@ public static void setupClass() throws Exception {
|
|||
context = new ContextImpl();
|
||||
ModuleManager moduleManager = ModuleManagerFactory.create();
|
||||
context.put(ModuleManager.class, moduleManager);
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class,
|
||||
(AssetFactory<Prefab, PrefabData>) PojoPrefab::new, "prefabs");
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
assetTypeManager.createAssetType(Prefab.class, PojoPrefab::new, "prefabs");
|
||||
assetTypeManager.switchEnvironment(moduleManager.getEnvironment());
|
||||
context.put(AssetManager.class, assetTypeManager.getAssetManager());
|
||||
context.put(RecordAndReplayCurrentStatus.class, new RecordAndReplayCurrentStatus());
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@
|
|||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
|
|
@ -17,13 +14,15 @@
|
|||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityPool;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.prefab.PrefabData;
|
||||
import org.terasology.engine.entitySystem.prefab.internal.PojoPrefab;
|
||||
import org.terasology.engine.network.NetworkMode;
|
||||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.recording.RecordAndReplayCurrentStatus;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
|
@ -43,9 +42,9 @@ public static void setupClass() throws Exception {
|
|||
context = new ContextImpl();
|
||||
ModuleManager moduleManager = ModuleManagerFactory.create();
|
||||
context.put(ModuleManager.class, moduleManager);
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class,
|
||||
(AssetFactory<Prefab, PrefabData>) PojoPrefab::new, "prefabs");
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
assetTypeManager.createAssetType(Prefab.class,
|
||||
PojoPrefab::new, "prefabs");
|
||||
assetTypeManager.switchEnvironment(moduleManager.getEnvironment());
|
||||
context.put(AssetManager.class, assetTypeManager.getAssetManager());
|
||||
context.put(RecordAndReplayCurrentStatus.class, new RecordAndReplayCurrentStatus());
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.PojoEntityManager;
|
||||
import org.terasology.engine.entitySystem.event.AbstractConsumableEvent;
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.prefab.PrefabData;
|
||||
import org.terasology.engine.entitySystem.prefab.internal.PojoPrefab;
|
||||
|
|
@ -17,6 +17,7 @@
|
|||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.engine.utilities.Assets;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
|
@ -35,8 +36,8 @@ public void setup() throws Exception {
|
|||
CoreRegistry.setContext(context);
|
||||
ModuleManager moduleManager = ModuleManagerFactory.create();
|
||||
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class, PojoPrefab::new, "prefabs");
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
assetTypeManager.createAssetType(Prefab.class, PojoPrefab::new, "prefabs");
|
||||
|
||||
assetTypeManager.switchEnvironment(moduleManager.getEnvironment());
|
||||
context.put(AssetManager.class, assetTypeManager.getAssetManager());
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.entitySystem.metadata.ComponentLibrary;
|
||||
import org.terasology.engine.entitySystem.prefab.Prefab;
|
||||
import org.terasology.engine.entitySystem.prefab.PrefabData;
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.recording.RecordAndReplayCurrentStatus;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
|
||||
|
|
@ -61,13 +62,12 @@ public void setup() throws Exception {
|
|||
|
||||
EntitySystemSetupUtil.addReflectionBasedLibraries(context);
|
||||
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class,
|
||||
(AssetFactory<Prefab, PrefabData>) PojoPrefab::new, "prefabs");
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
AssetType<Prefab, PrefabData> prefabDataAssetType = assetTypeManager.createAssetType(Prefab.class, PojoPrefab::new, "prefabs");
|
||||
ComponentLibrary componentLibrary = context.get(ComponentLibrary.class);
|
||||
TypeHandlerLibrary typeHandlerLibrary = context.get(TypeHandlerLibrary.class);
|
||||
PrefabFormat prefabFormat = new PrefabFormat(componentLibrary, typeHandlerLibrary);
|
||||
assetTypeManager.registerCoreFormat(Prefab.class, prefabFormat);
|
||||
assetTypeManager.getAssetFileDataProducer(prefabDataAssetType).addAssetFormat(prefabFormat);
|
||||
assetTypeManager.switchEnvironment(moduleManager.getEnvironment());
|
||||
context.put(AssetManager.class, assetTypeManager.getAssetManager());
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.entitySystem.stubs.OwnerComponent;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
package org.terasology.engine.entitySystem.metadata;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.entitySystem.stubs.OwnerComponent;
|
||||
import org.terasology.reflection.copy.CopyStrategyLibrary;
|
||||
import org.terasology.reflection.reflect.ReflectFactory;
|
||||
|
|
|
|||
|
|
@ -18,14 +18,14 @@
|
|||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.exceptions.InvalidAssetFilenameException;
|
||||
import org.terasology.assets.format.AssetDataFile;
|
||||
import org.terasology.assets.format.FileFormat;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.core.SimpleUri;
|
||||
import org.terasology.engine.i18n.assets.TranslationData;
|
||||
import org.terasology.engine.i18n.assets.TranslationFormat;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.assets.exceptions.InvalidAssetFilenameException;
|
||||
import org.terasology.gestalt.assets.format.AssetDataFile;
|
||||
import org.terasology.gestalt.assets.format.FileFormat;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
|
@ -54,20 +54,20 @@ public void setup() {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testGetAssetName() throws InvalidAssetFilenameException {
|
||||
public void testGetAssetName() throws InvalidAssetFilenameException {
|
||||
assertEquals(new Name("menu"), format.getAssetName("menu.lang"));
|
||||
assertEquals(new Name("menu_pl"), format.getAssetName("menu_pl.lang"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPathMatcher() {
|
||||
assertFalse(format.getFileMatcher().matches(Paths.get("menu.json")));
|
||||
assertFalse(format.getFileMatcher().matches(Paths.get("menu.prefab")));
|
||||
|
||||
assertTrue(format.getFileMatcher().matches(Paths.get("menu.lang")));
|
||||
assertTrue(format.getFileMatcher().matches(Paths.get("menu_pl.lang")));
|
||||
assertTrue(format.getFileMatcher().matches(Paths.get("menu_en-US-x-lvariant-POSIX.lang")));
|
||||
}
|
||||
// @Test
|
||||
// public void testPathMatcher() throws IOException, InvalidAssetFilenameException{
|
||||
// assertFalse(format.getFileMatcher().matches(Paths.get("menu.json")));
|
||||
// assertFalse(format.getFileMatcher().matches(Paths.get("menu.prefab")));
|
||||
//
|
||||
// assertTrue(format.getFileMatcher().matches(Paths.get("menu.lang")));
|
||||
// assertTrue(format.getFileMatcher().matches(Paths.get("menu_pl.lang")));
|
||||
// assertTrue(format.getFileMatcher().matches(Paths.get("menu_en-US-x-lvariant-POSIX.lang")));
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void testEmptyDataGenRoot() throws IOException, InvalidAssetFilenameException {
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.reflections.Reflections;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.entitySystem.Component;
|
||||
import org.terasology.engine.entitySystem.entity.internal.EngineEntityManager;
|
||||
import org.terasology.engine.entitySystem.metadata.ComponentLibrary;
|
||||
|
|
|
|||
|
|
@ -6,14 +6,13 @@
|
|||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.EngineEntityManager;
|
||||
import org.terasology.engine.entitySystem.entity.internal.EntityInfoComponent;
|
||||
|
|
@ -29,6 +28,7 @@
|
|||
import org.terasology.engine.network.NetworkMode;
|
||||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.persistence.serializers.EntitySerializer;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManagerImpl;
|
||||
import org.terasology.protobuf.EntityData;
|
||||
import org.terasology.engine.recording.RecordAndReplayCurrentStatus;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
|
|
@ -63,9 +63,8 @@ public static void setupClass() throws Exception {
|
|||
moduleManager = ModuleManagerFactory.create();
|
||||
context.put(ModuleManager.class, moduleManager);
|
||||
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManager();
|
||||
assetTypeManager.registerCoreAssetType(Prefab.class,
|
||||
(AssetFactory<Prefab, PrefabData>) PojoPrefab::new, "prefabs");
|
||||
ModuleAwareAssetTypeManager assetTypeManager = new ModuleAwareAssetTypeManagerImpl();
|
||||
assetTypeManager.createAssetType(Prefab.class, PojoPrefab::new, "prefabs");
|
||||
assetTypeManager.switchEnvironment(moduleManager.getEnvironment());
|
||||
context.put(AssetManager.class, assetTypeManager.getAssetManager());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
import org.junit.jupiter.api.io.TempDir;
|
||||
import org.mockito.ArgumentMatchers;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.core.bootstrap.EntitySystemSetupUtil;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.core.paths.PathManager;
|
||||
|
|
@ -27,7 +27,7 @@
|
|||
import org.terasology.engine.entitySystem.stubs.StringComponent;
|
||||
import org.terasology.joml.geom.AABBfc;
|
||||
import org.terasology.engine.logic.location.LocationComponent;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.engine.network.Client;
|
||||
import org.terasology.engine.network.ClientComponent;
|
||||
import org.terasology.engine.network.NetworkMode;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataReader;
|
||||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataSerializer;
|
||||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataWriter;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.nui.Color;
|
||||
import org.terasology.persistence.serializers.Serializer;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataReader;
|
||||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataSerializer;
|
||||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataWriter;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.persistence.serializers.Serializer;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.reflection.TypeInfo;
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@
|
|||
import org.joml.Vector4fc;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.context.internal.ContextImpl;
|
||||
import org.terasology.engine.entitySystem.event.Event;
|
||||
import org.terasology.engine.entitySystem.metadata.EntitySystemLibrary;
|
||||
import org.terasology.engine.entitySystem.metadata.EventMetadata;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.Asset;
|
||||
import org.terasology.gestalt.assets.Asset;
|
||||
import org.terasology.engine.audio.StaticSound;
|
||||
import org.terasology.engine.audio.StreamingSound;
|
||||
import org.terasology.engine.persistence.typeHandling.extensionTypes.AssetTypeHandler;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
import org.terasology.engine.persistence.typeHandling.gson.GsonPersistedDataWriter;
|
||||
import org.terasology.engine.world.block.BlockArea;
|
||||
import org.terasology.engine.world.block.BlockAreac;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.persistence.serializers.Serializer;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.reflection.TypeInfo;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.persistence.typeHandling.TypeHandlerLibraryImpl;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.persistence.typeHandling.TypeHandlerLibrary;
|
||||
import org.terasology.reflection.TypeRegistry;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
import org.terasology.engine.ModuleEnvironmentTest;
|
||||
import org.terasology.engine.core.module.ExternalApiWhitelist;
|
||||
import org.terasology.engine.entitySystem.Component;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedHashMap;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.rendering.assets.texture.Texture;
|
||||
import org.terasology.engine.rendering.assets.texture.TextureUtil;
|
||||
import org.terasology.nui.Color;
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
package org.terasology.engine.rendering.assets.texture;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.core.TerasologyConstants;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.nui.Color;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
import org.terasology.engine.rendering.dag.RenderPipelineTask;
|
||||
import org.terasology.engine.rendering.dag.RenderTaskListGenerator;
|
||||
import org.terasology.engine.rendering.dag.StateChange;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
|
||||
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPair;
|
||||
import org.terasology.engine.rendering.dag.dependencyConnections.DependencyConnection;
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.joml.geom.AABBfc;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
import org.terasology.engine.world.block.BlockManager;
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.core.GameThread;
|
||||
import org.terasology.engine.entitySystem.Component;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.math.Rotation;
|
||||
import org.terasology.engine.math.Yaw;
|
||||
import org.terasology.engine.physics.bullet.shapes.BulletConvexHullShape;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestInstance;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.world.block.BlockManager;
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.math.Diamond3iIterable;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.math.Side;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.engine.math.Diamond3iIterable;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@
|
|||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.engine.TerasologyTestingEnvironment;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.engine.world.block.Block;
|
||||
import org.terasology.engine.world.block.BlockManager;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,11 @@ configurations {
|
|||
}
|
||||
}
|
||||
|
||||
// umm need for android dependencies
|
||||
repositories {
|
||||
google()
|
||||
}
|
||||
|
||||
// Primary dependencies definition
|
||||
dependencies {
|
||||
// Storage and networking
|
||||
|
|
@ -105,16 +110,20 @@ dependencies {
|
|||
implementation group: 'net.logstash.logback', name: 'logstash-logback-encoder', version: '4.10'
|
||||
|
||||
// Our developed libs
|
||||
api group: 'org.terasology', name: 'gestalt-module', version: '5.1.5'
|
||||
api group: 'org.terasology', name: 'gestalt-util', version: '5.1.5'
|
||||
api group: 'org.terasology', name: 'gestalt-asset-core', version: '5.1.5'
|
||||
api group: 'org.terasology.gestalt', name: 'gestalt-asset-core', version: '7.0.6-SNAPSHOT'
|
||||
api group: 'org.terasology.gestalt', name: 'gestalt-entity-system', version: '7.0.6-SNAPSHOT'
|
||||
api group: 'org.terasology.gestalt', name: 'gestalt-module', version: '7.0.6-SNAPSHOT'
|
||||
api group: 'org.terasology.gestalt', name: 'gestalt-util', version: '7.0.6-SNAPSHOT'
|
||||
api "com.github.zafarkhaja:java-semver:0.10.0"
|
||||
|
||||
api group: 'org.terasology', name: 'TeraMath', version: '1.5.0'
|
||||
api group: 'org.terasology', name: 'splash-screen', version: '1.1.1'
|
||||
api group: 'org.terasology.jnlua', name: 'JNLua', version: '0.1.0-SNAPSHOT'
|
||||
api group: 'org.terasology.jnbullet', name: 'JNBullet', version: '1.0.2'
|
||||
api group: 'org.terasology.nui', name: 'nui', version: '3.0.0-SNAPSHOT'
|
||||
api group: 'org.terasology.nui', name: 'nui-reflect', version: '3.0.0-SNAPSHOT'
|
||||
api group: 'org.terasology.nui', name: 'nui-gestalt5', version: '3.0.0-SNAPSHOT'
|
||||
api group: 'org.terasology.nui', name: 'nui-gestalt7', version: '3.0.0-SNAPSHOT'
|
||||
|
||||
|
||||
// Wildcard dependency to catch any libs provided with the project (remote repo preferred instead)
|
||||
api fileTree(dir: 'libs', include: '*.jar')
|
||||
|
|
@ -169,33 +178,13 @@ task cleanReflections(type: Delete) {
|
|||
delete cacheReflections.outputs.files
|
||||
}
|
||||
|
||||
// JMH related tasks
|
||||
|
||||
sourceSets {
|
||||
jmh {
|
||||
java.srcDirs = ['src/jmh/java']
|
||||
resources.srcDirs = ['src/jmh/resources']
|
||||
compileClasspath += sourceSets.main.runtimeClasspath
|
||||
}
|
||||
}
|
||||
|
||||
task jmh(type: JavaExec, dependsOn: jmhClasses) {
|
||||
main = 'org.openjdk.jmh.Main'
|
||||
classpath = sourceSets.jmh.compileClasspath + sourceSets.jmh.runtimeClasspath
|
||||
}
|
||||
|
||||
dependencies {
|
||||
jmhAnnotationProcessor group: 'org.openjdk.jmh', name: 'jmh-generator-annprocess', version: '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 engine-module.txt
|
||||
def moduleFile = file('src/main/resources/engine-module.txt')
|
||||
def moduleFile = file('src/main/resources/org/terasology/engine/engine-module.txt')
|
||||
|
||||
if (!moduleFile.exists()) {
|
||||
println "Failed to find engine-module.txt for engine"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
import org.joml.Quaternionfc;
|
||||
import org.joml.Vector3fc;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.gestalt.assets.AssetFactory;
|
||||
|
||||
/**
|
||||
* Manages the playing of sounds and music as well as muting and updating listeners
|
||||
|
|
|
|||
|
|
@ -15,10 +15,11 @@
|
|||
*/
|
||||
package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.assets.Asset;
|
||||
import org.terasology.assets.AssetData;
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.Asset;
|
||||
import org.terasology.gestalt.assets.AssetData;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.DisposableResource;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
/**
|
||||
* An abstract class
|
||||
|
|
@ -26,6 +27,16 @@
|
|||
*/
|
||||
public abstract class Sound<T extends AssetData> extends Asset<T> implements org.terasology.nui.asset.Sound {
|
||||
|
||||
/**
|
||||
* The constructor for an asset. It is suggested that implementing classes provide a constructor taking both the urn, and an initial AssetData to load.
|
||||
*
|
||||
* @param urn The urn identifying the asset.
|
||||
* @param assetType The asset type this asset belongs to.
|
||||
*/
|
||||
protected Sound(ResourceUrn urn, AssetType<?, T> assetType, DisposableResource resource) {
|
||||
super(urn, assetType,resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* The constructor for an asset. It is suggested that implementing classes provide a constructor taking both the urn, and an initial AssetData to load.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,14 +16,25 @@
|
|||
|
||||
package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.DisposableResource;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
/**
|
||||
* Interface for a non-streamed sound - these sounds are loaded entirely into memory.
|
||||
*/
|
||||
public abstract class StaticSound extends Sound<StaticSoundData> {
|
||||
|
||||
/**
|
||||
* The constructor for an asset. It is suggested that implementing classes provide a constructor taking both the urn, and an initial AssetData to load.
|
||||
*
|
||||
* @param urn The urn identifying the asset.
|
||||
* @param assetType The asset type this asset belongs to.
|
||||
*/
|
||||
protected StaticSound(ResourceUrn urn, AssetType<?, StaticSoundData> assetType, DisposableResource resource) {
|
||||
super(urn, assetType, resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* The constructor for an asset. It is suggested that implementing classes provide a constructor taking both the urn, and an initial AssetData to load.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.assets.AssetData;
|
||||
import org.terasology.gestalt.assets.AssetData;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,14 +16,25 @@
|
|||
|
||||
package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.DisposableResource;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
/**
|
||||
* Interface for a sound that is streamed from storage. The entire sound is not loaded into memory
|
||||
*/
|
||||
public abstract class StreamingSound extends Sound<StreamingSoundData> {
|
||||
|
||||
/**
|
||||
* The constructor for an asset. It is suggested that implementing classes provide a constructor taking both the urn, and an initial AssetData to load.
|
||||
*
|
||||
* @param urn The urn identifying the asset.
|
||||
* @param assetType The asset type this asset belongs to.
|
||||
*/
|
||||
protected StreamingSound(ResourceUrn urn, AssetType<?, StreamingSoundData> assetType, DisposableResource resource) {
|
||||
super(urn, assetType, resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* The constructor for an asset. It is suggested that implementing classes provide a constructor taking both the urn, and an initial AssetData to load.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.assets.AssetData;
|
||||
import org.terasology.gestalt.assets.AssetData;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,4 +29,4 @@
|
|||
*/
|
||||
@API package org.terasology.engine.audio.events;
|
||||
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
|
|
|||
|
|
@ -18,11 +18,11 @@
|
|||
|
||||
import com.google.common.io.ByteStreams;
|
||||
import org.lwjgl.BufferUtils;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.format.AbstractAssetFileFormat;
|
||||
import org.terasology.assets.format.AssetDataFile;
|
||||
import org.terasology.assets.module.annotations.RegisterAssetFileFormat;
|
||||
import org.terasology.engine.audio.StaticSoundData;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.format.AbstractAssetFileFormat;
|
||||
import org.terasology.gestalt.assets.format.AssetDataFile;
|
||||
import org.terasology.gestalt.assets.module.annotations.RegisterAssetFileFormat;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@
|
|||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.format.AssetDataFile;
|
||||
import org.terasology.engine.audio.StreamingSoundData;
|
||||
import org.terasology.gestalt.assets.format.AssetDataFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
package org.terasology.engine.audio.formats;
|
||||
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.format.AbstractAssetFileFormat;
|
||||
import org.terasology.assets.format.AssetDataFile;
|
||||
import org.terasology.assets.module.annotations.RegisterAssetFileFormat;
|
||||
import org.terasology.engine.audio.StreamingSoundData;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.format.AbstractAssetFileFormat;
|
||||
import org.terasology.gestalt.assets.format.AssetDataFile;
|
||||
import org.terasology.gestalt.assets.module.annotations.RegisterAssetFileFormat;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -18,13 +18,13 @@
|
|||
|
||||
import org.joml.Quaternionfc;
|
||||
import org.joml.Vector3fc;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.engine.audio.AudioEndListener;
|
||||
import org.terasology.engine.audio.AudioManager;
|
||||
import org.terasology.engine.audio.StaticSound;
|
||||
import org.terasology.engine.audio.StaticSoundData;
|
||||
import org.terasology.engine.audio.StreamingSound;
|
||||
import org.terasology.engine.audio.StreamingSoundData;
|
||||
import org.terasology.gestalt.assets.AssetFactory;
|
||||
|
||||
/**
|
||||
* Null implementation of the AudioManager
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@
|
|||
*/
|
||||
package org.terasology.engine.audio.nullAudio;
|
||||
|
||||
import org.terasology.assets.Asset;
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.engine.audio.StaticSound;
|
||||
import org.terasology.engine.audio.StaticSoundData;
|
||||
import org.terasology.gestalt.assets.Asset;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
package org.terasology.engine.audio.nullAudio;
|
||||
|
||||
import org.terasology.assets.Asset;
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.engine.audio.StreamingSound;
|
||||
import org.terasology.engine.audio.StreamingSoundData;
|
||||
import org.terasology.gestalt.assets.Asset;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
import org.lwjgl.openal.ALCapabilities;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.AssetFactory;
|
||||
import org.terasology.engine.audio.AudioEndListener;
|
||||
import org.terasology.engine.audio.AudioManager;
|
||||
import org.terasology.engine.audio.Sound;
|
||||
|
|
@ -43,6 +42,7 @@
|
|||
import org.terasology.engine.audio.openAL.streamingSound.OpenALStreamingSoundPool;
|
||||
import org.terasology.engine.config.AudioConfig;
|
||||
import org.terasology.engine.math.Direction;
|
||||
import org.terasology.gestalt.assets.AssetFactory;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.util.Iterator;
|
||||
|
|
@ -289,12 +289,12 @@ protected boolean checkDistance(Vector3fc soundPosition) {
|
|||
|
||||
@Override
|
||||
public AssetFactory<StaticSound, StaticSoundData> getStaticSoundFactory() {
|
||||
return (urn, assetType, data) -> new OpenALSound(urn, assetType, data, OpenALManager.this);
|
||||
return (urn, assetType, data) -> new OpenALSound(urn, assetType, data, OpenALManager.this, new OpenALSound.DisposalAction(urn));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AssetFactory<StreamingSound, StreamingSoundData> getStreamingSoundFactory() {
|
||||
return (urn, assetType, data) -> new OpenALStreamingSound(urn, assetType, data, OpenALManager.this);
|
||||
return (urn, assetType, data) -> new OpenALStreamingSound(urn, assetType, data, OpenALManager.this, new OpenALStreamingSound.DisposalAction(urn));
|
||||
}
|
||||
|
||||
public void purgeSound(Sound<?> sound) {
|
||||
|
|
|
|||
|
|
@ -18,13 +18,14 @@
|
|||
import org.lwjgl.openal.AL10;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.engine.audio.StaticSound;
|
||||
import org.terasology.engine.audio.StaticSoundData;
|
||||
import org.terasology.engine.audio.openAL.OpenALException;
|
||||
import org.terasology.engine.audio.openAL.OpenALManager;
|
||||
import org.terasology.engine.core.GameThread;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.DisposableResource;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
|
|
@ -42,17 +43,16 @@ public final class OpenALSound extends StaticSound {
|
|||
|
||||
protected float length;
|
||||
private final OpenALManager audioManager;
|
||||
|
||||
private DisposalAction disposalAction;
|
||||
private final DisposalAction disposalAction;
|
||||
|
||||
// TODO: Do we have proper support for unloading sounds (as mods are changed?)
|
||||
private int bufferId;
|
||||
|
||||
public OpenALSound(ResourceUrn urn, AssetType<?, StaticSoundData> assetType, StaticSoundData data, OpenALManager audioManager) {
|
||||
super(urn, assetType);
|
||||
public OpenALSound(ResourceUrn urn, AssetType<?, StaticSoundData> assetType, StaticSoundData data, OpenALManager audioManager, OpenALSound.DisposalAction disposalAction) {
|
||||
super(urn, assetType, disposalAction);
|
||||
disposalAction.setAsset(this);
|
||||
this.audioManager = audioManager;
|
||||
disposalAction = new DisposalAction(urn, this);
|
||||
getDisposalHook().setDisposeAction(disposalAction);
|
||||
this.disposalAction = disposalAction;
|
||||
reload(data);
|
||||
}
|
||||
|
||||
|
|
@ -119,18 +119,25 @@ protected void doReload(StaticSoundData newData) {
|
|||
}
|
||||
}
|
||||
|
||||
private static class DisposalAction implements Runnable {
|
||||
public static class DisposalAction implements DisposableResource {
|
||||
private final ResourceUrn urn;
|
||||
private int bufferId;
|
||||
private final WeakReference<OpenALSound> asset;
|
||||
private WeakReference<OpenALSound> asset;
|
||||
|
||||
DisposalAction(ResourceUrn urn, OpenALSound openALSound) {
|
||||
public DisposalAction(ResourceUrn urn) {
|
||||
this.urn = urn;
|
||||
asset = new WeakReference<>(openALSound);
|
||||
}
|
||||
|
||||
public OpenALSound getAsset() {
|
||||
return asset.get();
|
||||
}
|
||||
|
||||
public void setAsset(OpenALSound asset) {
|
||||
this.asset = new WeakReference<>(asset);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void close() {
|
||||
try {
|
||||
GameThread.synch(() -> {
|
||||
OpenALSound sound = asset.get();
|
||||
|
|
|
|||
|
|
@ -18,14 +18,15 @@
|
|||
import org.lwjgl.openal.AL10;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.Asset;
|
||||
import org.terasology.assets.AssetType;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.engine.audio.StreamingSound;
|
||||
import org.terasology.engine.audio.StreamingSoundData;
|
||||
import org.terasology.engine.audio.openAL.OpenALException;
|
||||
import org.terasology.engine.audio.openAL.OpenALManager;
|
||||
import org.terasology.engine.core.GameThread;
|
||||
import org.terasology.gestalt.assets.Asset;
|
||||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.DisposableResource;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.nio.ByteBuffer;
|
||||
|
|
@ -44,14 +45,16 @@ public final class OpenALStreamingSound extends StreamingSound {
|
|||
private StreamingSoundData stream;
|
||||
private ByteBuffer dataBuffer = ByteBuffer.allocateDirect(BUFFER_SIZE);
|
||||
|
||||
private InternalResources internalResources;
|
||||
private OpenALStreamingSound.DisposalAction internalResources;
|
||||
private int lastUpdatedBuffer;
|
||||
|
||||
public OpenALStreamingSound(ResourceUrn urn, AssetType<?, StreamingSoundData> assetType, StreamingSoundData data, OpenALManager audioManager) {
|
||||
super(urn, assetType);
|
||||
this.internalResources = new InternalResources(urn, this);
|
||||
public OpenALStreamingSound(ResourceUrn urn, AssetType<?, StreamingSoundData> assetType, StreamingSoundData data, OpenALManager audioManager, OpenALStreamingSound.DisposalAction disposableAction) {
|
||||
super(urn, assetType, disposableAction);
|
||||
this.internalResources = disposableAction;
|
||||
this.internalResources.setAsset(this);
|
||||
this.audioManager = audioManager;
|
||||
getDisposalHook().setDisposeAction(internalResources);
|
||||
|
||||
// getDisposalHook().setDisposeAction(internalResources);
|
||||
reload(data);
|
||||
}
|
||||
|
||||
|
|
@ -139,24 +142,30 @@ protected void doReload(StreamingSoundData data) {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected Optional<? extends Asset<StreamingSoundData>> doCreateCopy(ResourceUrn copyUrn, AssetType<?, StreamingSoundData> parentAssetType) {
|
||||
return Optional.of(new OpenALStreamingSound(copyUrn, parentAssetType, stream, audioManager));
|
||||
protected Optional<? extends Asset<StreamingSoundData>> doCreateCopy(ResourceUrn copyUrn, AssetType<?,
|
||||
StreamingSoundData> parentAssetType) {
|
||||
return Optional.of(new OpenALStreamingSound(copyUrn, parentAssetType, stream, audioManager,
|
||||
new DisposalAction(copyUrn)));
|
||||
}
|
||||
|
||||
private static class InternalResources implements Runnable {
|
||||
|
||||
protected int[] buffers = new int[0];
|
||||
public static class DisposalAction implements DisposableResource {
|
||||
|
||||
private final ResourceUrn urn;
|
||||
private final WeakReference<OpenALStreamingSound> asset;
|
||||
protected int[] buffers = new int[0];
|
||||
private WeakReference<OpenALStreamingSound> asset;
|
||||
|
||||
InternalResources(ResourceUrn urn, OpenALStreamingSound asset) {
|
||||
public DisposalAction(ResourceUrn urn) {
|
||||
this.urn = urn;
|
||||
}
|
||||
|
||||
public void setAsset(OpenALStreamingSound asset) {
|
||||
this.asset = new WeakReference<>(asset);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
public void close() {
|
||||
try {
|
||||
GameThread.synch(() -> {
|
||||
OpenALStreamingSound sound = asset.get();
|
||||
|
|
|
|||
|
|
@ -16,4 +16,4 @@
|
|||
|
||||
@API package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector3f;
|
||||
import org.terasology.engine.utilities.Assets;
|
||||
import org.terasology.engine.audio.AudioManager;
|
||||
import org.terasology.engine.audio.events.PlaySoundEvent;
|
||||
import org.terasology.engine.audio.events.PlaySoundForOwnerEvent;
|
||||
|
|
@ -36,6 +35,7 @@
|
|||
import org.terasology.engine.network.ClientComponent;
|
||||
import org.terasology.engine.network.NetworkSystem;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.utilities.Assets;
|
||||
|
||||
/**
|
||||
* This system handles receiving the PlaySound events and activating the AudioManager to play them
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
import org.terasology.input.Keyboard.KeyId;
|
||||
import org.terasology.engine.input.RegisterBindButton;
|
||||
import org.terasology.engine.input.binds.movement.ForwardsButton;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Arrays;
|
||||
|
|
|
|||
|
|
@ -31,12 +31,12 @@
|
|||
import org.terasology.engine.core.paths.PathManager;
|
||||
import org.terasology.engine.core.subsystem.Resolution;
|
||||
import org.terasology.engine.entitySystem.Component;
|
||||
import org.terasology.gestalt.naming.Version;
|
||||
import org.terasology.gestalt.naming.gson.NameTypeAdapter;
|
||||
import org.terasology.gestalt.naming.gson.VersionTypeAdapter;
|
||||
import org.terasology.input.Input;
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.naming.Version;
|
||||
import org.terasology.naming.gson.NameTypeAdapter;
|
||||
import org.terasology.naming.gson.VersionTypeAdapter;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.engine.utilities.gson.CaseInsensitiveEnumTypeAdapterFactory;
|
||||
import org.terasology.engine.utilities.gson.InputHandler;
|
||||
import org.terasology.engine.utilities.gson.ResolutionHandler;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
package org.terasology.engine.config;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import org.terasology.naming.Name;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
package org.terasology.engine.config;
|
||||
|
||||
import org.terasology.engine.core.subsystem.Resolution;
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.engine.rendering.cameras.PerspectiveCameraSettings;
|
||||
import org.terasology.engine.rendering.nui.layers.mainMenu.videoSettings.DisplayModeSetting;
|
||||
import org.terasology.engine.rendering.nui.layers.mainMenu.videoSettings.ScreenshotSize;
|
||||
|
|
@ -465,7 +465,7 @@ public void setVrSupport(boolean vrSupport) {
|
|||
boolean oldValue = this.vrSupport;
|
||||
this.vrSupport = vrSupport;
|
||||
propertyChangeSupport.firePropertyChange(VR_SUPPORT, oldValue, this.vrSupport);
|
||||
}
|
||||
}
|
||||
|
||||
public int getMaxTextureAtlasResolution() {
|
||||
return maxTextureAtlasResolution;
|
||||
|
|
@ -505,7 +505,7 @@ public void setNormalMapping(boolean normalMapping) {
|
|||
this.normalMapping = normalMapping;
|
||||
propertyChangeSupport.firePropertyChange(NORMAL_MAPPING, oldValue, this.normalMapping);
|
||||
}
|
||||
|
||||
|
||||
public boolean isParallaxMapping() {
|
||||
return parallaxMapping;
|
||||
}
|
||||
|
|
@ -680,7 +680,7 @@ public void setDumpShaders(boolean dumpShaders) {
|
|||
this.dumpShaders = dumpShaders;
|
||||
propertyChangeSupport.firePropertyChange(DUMP_SHADERS, oldValue, this.dumpShaders);
|
||||
}
|
||||
|
||||
|
||||
public boolean isVolumetricFog() {
|
||||
return volumetricFog;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
import java.beans.PropertyChangeListener;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.engine.rendering.world.WorldRendererImpl;
|
||||
import org.terasology.engine.utilities.subscribables.AbstractSubscribable;
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
*/
|
||||
package org.terasology.engine.config.facade;
|
||||
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
||||
/**
|
||||
* TelemetryConfiguration is a wrapper for {@link org.terasology.engine.config.TelemetryConfig}.
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
import org.terasology.engine.core.paths.PathManager;
|
||||
import org.terasology.engine.registry.InjectionHelper;
|
||||
import org.terasology.engine.utilities.ReflectionUtil;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.persistence.serializers.Serializer;
|
||||
import org.terasology.reflection.TypeInfo;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
package org.terasology.engine.config.flexible;
|
||||
|
||||
import org.terasology.engine.config.flexible.constraints.SettingConstraint;
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.reflection.TypeInfo;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -15,4 +15,4 @@
|
|||
*/
|
||||
@API package org.terasology.engine.config.flexible.constraints;
|
||||
|
||||
import org.terasology.module.sandbox.API;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.config.flexible.Setting;
|
||||
import org.terasology.engine.config.flexible.constraints.SettingConstraint;
|
||||
import org.terasology.nui.UIWidget;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.ResourceUrn;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.config.flexible.AutoConfig;
|
||||
import org.terasology.engine.config.flexible.AutoConfigManager;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
|
|
|
|||
|
|
@ -4,11 +4,12 @@
|
|||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.engine.config.flexible.AutoConfig;
|
||||
import org.terasology.engine.config.flexible.Setting;
|
||||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.i18n.TranslationSystem;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.nui.UIWidget;
|
||||
import org.terasology.nui.layouts.PropertyLayout;
|
||||
import org.terasology.nui.properties.Property;
|
||||
|
|
@ -17,7 +18,6 @@
|
|||
import org.terasology.nui.widgets.types.TypeWidgetFactory;
|
||||
import org.terasology.nui.widgets.types.TypeWidgetLibrary;
|
||||
import org.terasology.reflection.TypeInfo;
|
||||
import org.terasology.engine.registry.In;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
package org.terasology.engine.config.flexible.ui;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import org.terasology.assets.management.AssetManager;
|
||||
import org.terasology.gestalt.assets.management.AssetManager;
|
||||
import org.terasology.engine.config.flexible.Setting;
|
||||
import org.terasology.engine.config.flexible.constraints.SettingConstraint;
|
||||
import org.terasology.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.nui.UIWidget;
|
||||
import org.terasology.engine.registry.In;
|
||||
import org.terasology.engine.registry.InjectionHelper;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue