feature: migrate to gestaltv7

This commit is contained in:
Michael Pollind 2021-03-21 11:51:32 -07:00
parent 035dc3e0ae
commit e55b7f0fd7
1175 changed files with 4173 additions and 4452 deletions

2
.gitignore vendored
View file

@ -102,3 +102,5 @@ blacklist.json
terasology.jfr
local.properties
*.hprof
engine-tests/src/jmh/generated/

View file

@ -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") {

View file

@ -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 {

View file

@ -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

View file

@ -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
}

View file

@ -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);

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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);
}
}

View file

@ -1,6 +1,6 @@
{
"id" : "unittest",
"version" : "4.4.0-SNAPSHOT",
"version" : "4.4.0",
"displayName" : "Terasology Engine Test",
"description" : "Engine unit test content"
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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));
}
}

View file

@ -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);
}

View file

@ -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());

View file

@ -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());

View file

@ -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);

View file

@ -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());

View file

@ -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());

View file

@ -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;

View file

@ -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());

View file

@ -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());

View file

@ -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;

View file

@ -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;

View file

@ -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 {

View file

@ -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;

View file

@ -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());
}

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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"

View file

@ -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

View file

@ -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.
*

View file

@ -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.
*

View file

@ -16,7 +16,7 @@
package org.terasology.engine.audio;
import org.terasology.assets.AssetData;
import org.terasology.gestalt.assets.AssetData;
import java.nio.ByteBuffer;

View file

@ -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.
*

View file

@ -16,7 +16,7 @@
package org.terasology.engine.audio;
import org.terasology.assets.AssetData;
import org.terasology.gestalt.assets.AssetData;
import java.nio.ByteBuffer;

View file

@ -29,4 +29,4 @@
*/
@API package org.terasology.engine.audio.events;
import org.terasology.module.sandbox.API;
import org.terasology.gestalt.module.sandbox.API;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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) {

View file

@ -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();

View file

@ -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();

View file

@ -16,4 +16,4 @@
@API package org.terasology.engine.audio;
import org.terasology.module.sandbox.API;
import org.terasology.gestalt.module.sandbox.API;

View file

@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;
}

View file

@ -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;

View file

@ -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}.

View file

@ -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;

View file

@ -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;
/**

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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