mirror of
https://github.com/MovingBlocks/Terasology
synced 2026-05-24 09:28:22 +00:00
This reverts commit 1cabdb369d.
This commit is contained in:
parent
1cabdb369d
commit
96e8a783d1
305 changed files with 442 additions and 312 deletions
|
|
@ -44,7 +44,7 @@ dependencies {
|
|||
implementation("org.jgrapht:jgrapht-core:1.5.0")
|
||||
|
||||
// for inspecting modules
|
||||
implementation("org.terasology.gestalt:gestalt-module:7.2.0")
|
||||
implementation("org.terasology.gestalt:gestalt-module:8.0.0-SNAPSHOT")
|
||||
|
||||
// plugins we configure
|
||||
implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:5.2.3")
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ class ModuleMetadataForGradle(private val moduleConfig: ModuleMetadata) {
|
|||
}
|
||||
|
||||
private fun versionStringFromGestaltDependency(gestaltDependency: DependencyInfo): String {
|
||||
val version = if (gestaltDependency.versionPredicate() is VersionRange) {
|
||||
gestaltDependency.versionPredicate().toString()
|
||||
val version = if (gestaltDependency.versionRange() is VersionRange) {
|
||||
gestaltDependency.versionRange().toString()
|
||||
} else {
|
||||
// TODO: gradle-compatible version expressions for gestalt dependencies
|
||||
// https://github.com/MovingBlocks/gestalt/issues/114
|
||||
|
|
|
|||
|
|
@ -54,6 +54,8 @@ dependencies {
|
|||
implementation(group = "org.terasology.engine", name = "engine", version = moduleMetadata.engineVersion())
|
||||
testImplementation(group = "org.terasology.engine", name = "engine-tests", version = moduleMetadata.engineVersion())
|
||||
|
||||
annotationProcessor("org.terasology.gestalt:gestalt-inject-java:8.0.0-SNAPSHOT")
|
||||
|
||||
for ((gradleDep, optional) in moduleMetadata.moduleDependencies()) {
|
||||
if (optional) {
|
||||
// `optional` module dependencies are ones it does not require for runtime
|
||||
|
|
@ -144,8 +146,17 @@ tasks.named("processResources") {
|
|||
dependsOn("syncAssets", "syncOverrides", "syncDeltas", "syncModuleInfo")
|
||||
}
|
||||
|
||||
tasks.named("compileJava") {
|
||||
tasks.named<JavaCompile>("compileJava") {
|
||||
dependsOn("processResources")
|
||||
// Create an asset list during compilation (needed for Gestalt 8)
|
||||
inputs.files(sourceSets.main.get().resources.srcDirs)
|
||||
options.compilerArgs = arrayListOf("-Aresource=${sourceSets.main.get().resources.srcDirs.joinToString(File.pathSeparator)}")
|
||||
}
|
||||
tasks.named<JavaCompile>("compileTestJava") {
|
||||
dependsOn("processResources")
|
||||
// Create an asset list during compilation (needed for Gestalt 8)
|
||||
inputs.files(sourceSets.test.get().resources.srcDirs)
|
||||
options.compilerArgs = arrayListOf("-Aresource=${sourceSets.test.get().resources.srcDirs.joinToString(File.pathSeparator)}")
|
||||
}
|
||||
|
||||
tasks.named<Test>("test") {
|
||||
|
|
|
|||
|
|
@ -56,6 +56,11 @@ dependencies {
|
|||
implementation("com.google.protobuf:protobuf-java:3.16.1")
|
||||
implementation("org.terasology:reflections:0.9.12-MB")
|
||||
|
||||
implementation("com.github.zafarkhaja:java-semver:0.10.2")
|
||||
|
||||
annotationProcessor("org.terasology.gestalt:gestalt-inject-java:8.0.0-SNAPSHOT")
|
||||
testAnnotationProcessor("org.terasology.gestalt:gestalt-inject-java:8.0.0-SNAPSHOT")
|
||||
|
||||
implementation("org.terasology.joml-ext:joml-test:0.1.0")
|
||||
|
||||
testImplementation("ch.qos.logback:logback-classic:1.4.14") {
|
||||
|
|
@ -91,8 +96,17 @@ tasks.register<Copy>("copyResourcesToClasses") {
|
|||
into(sourceSets["main"].output.classesDirs.first())
|
||||
}
|
||||
|
||||
tasks.named("compileJava") {
|
||||
tasks.named<JavaCompile>("compileJava") {
|
||||
dependsOn("copyResourcesToClasses")
|
||||
// Create an asset list during compilation (needed for Gestalt 8)
|
||||
inputs.files(sourceSets.main.get().resources.srcDirs)
|
||||
options.compilerArgs = arrayListOf("-Aresource=${sourceSets.main.get().resources.srcDirs.joinToString(File.pathSeparator)}")
|
||||
}
|
||||
tasks.named<JavaCompile>("compileTestJava") {
|
||||
dependsOn("copyResourcesToClasses")
|
||||
// Create an asset list during compilation (needed for Gestalt 8)
|
||||
inputs.files(sourceSets.test.get().resources.srcDirs)
|
||||
options.compilerArgs = arrayListOf("-Aresource=${sourceSets.test.get().resources.srcDirs.joinToString(File.pathSeparator)}")
|
||||
}
|
||||
|
||||
tasks.withType<Jar> {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.unittest;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
@API
|
||||
public class ExampleClass implements ExampleInterface {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@
|
|||
|
||||
package org.terasology.unittest;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.context.annotation.IndexInherited;
|
||||
|
||||
@API
|
||||
@IndexInherited
|
||||
public interface ExampleInterface {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@
|
|||
@API
|
||||
package org.terasology.unittest.stubs;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@
|
|||
@API
|
||||
package org.terasology.unittest.worlds;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
import org.terasology.engine.core.module.ModuleManager;
|
||||
import org.terasology.engine.testUtil.ModuleManagerFactory;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Method;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleMetadata;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.gestalt.naming.Version;
|
||||
import org.terasology.unittest.ExampleClass;
|
||||
|
|
@ -56,9 +56,13 @@ public void directoryModuleContainsClass() {
|
|||
public void archiveModuleContainsClass() throws IOException {
|
||||
Module module = factory.createArchiveModule(new File("FIXME.jar"));
|
||||
|
||||
Class<?> someClassInTheModule = module.getModuleManifest().getTypesAnnotatedWith(API.class).iterator().next();
|
||||
String someClassInTheModule = module.getClassIndex().getTypesAnnotatedWith(API.class.getName()).iterator().next();
|
||||
|
||||
assertTrue(module.getClassPredicate().test(someClassInTheModule));
|
||||
try {
|
||||
assertTrue(module.getClassPredicate().test(Class.forName(someClassInTheModule)));
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
assertFalse(module.getClassPredicate().test(SOME_CLASS_OUTSIDE_THE_MODULE));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
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.gestalt.di.index.CompoundClassIndex;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleMetadata;
|
||||
import org.terasology.gestalt.module.ModuleRegistry;
|
||||
|
|
@ -86,7 +86,7 @@ private Module buildSimpleModule(String id, String version) {
|
|||
if (version != null) {
|
||||
metadata.setVersion(new Version(version));
|
||||
}
|
||||
return new Module(metadata, new EmptyFileSource(), Collections.emptyList(), new Reflections(), (c) -> false);
|
||||
return new Module(metadata, new EmptyFileSource(), Collections.emptyList(), new CompoundClassIndex(), (c) -> false);
|
||||
}
|
||||
private Module buildEngineModule(String version) {
|
||||
return buildSimpleModule(TerasologyConstants.ENGINE_MODULE.toString(), version);
|
||||
|
|
|
|||
|
|
@ -9,13 +9,13 @@
|
|||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.reflections.Reflections;
|
||||
import org.terasology.engine.config.flexible.AutoConfig;
|
||||
import org.terasology.engine.core.PathManager;
|
||||
import org.terasology.engine.core.PathManagerProvider;
|
||||
import org.terasology.engine.core.subsystem.EngineSubsystem;
|
||||
import org.terasology.engine.logic.permission.PermissionSetComponent;
|
||||
import org.terasology.engine.world.block.structure.AttachSupportRequiredComponent;
|
||||
import org.terasology.gestalt.di.index.CompoundClassIndex;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleMetadata;
|
||||
|
|
@ -59,7 +59,7 @@ private Module getEmptyTestModule() {
|
|||
new ModuleMetadata(new Name("EmptyTestModule"), new Version("0.0.1")),
|
||||
new EmptyFileSource(),
|
||||
Collections.emptyList(),
|
||||
new Reflections(),
|
||||
new CompoundClassIndex(),
|
||||
(clazz) -> false
|
||||
);
|
||||
}
|
||||
|
|
@ -127,7 +127,7 @@ public void engineModuleContainsSubsystems() {
|
|||
environment = manager.getEnvironment();
|
||||
engineModule = environment.get(ENGINE_MODULE);
|
||||
|
||||
assertThat(engineModule.getModuleManifest().getSubTypesOf(EngineSubsystem.class)).contains(subsystem);
|
||||
assertThat(engineModule.getClassIndex().getSubtypesOf(EngineSubsystem.class.getName())).contains(subsystem.getName());
|
||||
|
||||
assertThat(environment.getSubtypesOf(EngineSubsystem.class)).contains(subsystem);
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
import com.google.gson.Gson;
|
||||
import org.joml.Vector3f;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.terasology.context.annotation.IndexInherited;
|
||||
import org.terasology.engine.ModuleEnvironmentTest;
|
||||
import org.terasology.engine.core.TerasologyConstants;
|
||||
import org.terasology.engine.core.module.ModuleContext;
|
||||
|
|
@ -31,7 +32,7 @@
|
|||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.terasology.engine.testUtil.Assertions.assertNotEmpty;
|
||||
|
||||
class TypeSerializerTest extends ModuleEnvironmentTest {
|
||||
public class TypeSerializerTest extends ModuleEnvironmentTest {
|
||||
private static final SomeClass<Integer> INSTANCE = new SomeClass<>(0xdeadbeef);
|
||||
private static final String INSTANCE_JSON = "{\"generic-t\":-559038737,\"list\":[50,51,-52,-53]," +
|
||||
"\"animals\":[{\"class\":\"org.terasology.engine.persistence.serializers.TypeSerializerTest$Dog\"," +
|
||||
|
|
@ -155,6 +156,7 @@ public String toString() {
|
|||
}
|
||||
|
||||
@SuppressWarnings("checkstyle:FinalClass")
|
||||
@IndexInherited
|
||||
public static class Animal<T> {
|
||||
public T data;
|
||||
|
||||
|
|
@ -178,6 +180,11 @@ public boolean equals(Object o) {
|
|||
public int hashCode() {
|
||||
return Objects.hash(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Animal(data = " + data.toString() + ")";
|
||||
}
|
||||
}
|
||||
|
||||
public static final class Dog<T> extends Animal<T> {
|
||||
|
|
|
|||
|
|
@ -120,19 +120,25 @@ dependencies {
|
|||
}
|
||||
implementation("net.logstash.logback:logstash-logback-encoder:7.4")
|
||||
|
||||
// JSemVer (Semantic Versioning) - A dependency of Gestalt
|
||||
implementation("com.github.zafarkhaja:java-semver:0.10.2")
|
||||
|
||||
// Our developed libs
|
||||
api("org.terasology.gestalt:gestalt-asset-core:7.2.1-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-module:7.2.1-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-entity-system:7.2.1-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-util:7.2.1-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-asset-core:8.0.0-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-module:8.0.0-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-entity-system:8.0.0-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-util:8.0.0-SNAPSHOT")
|
||||
api("org.terasology.gestalt:gestalt-inject:8.0.0-SNAPSHOT")
|
||||
|
||||
annotationProcessor("org.terasology.gestalt:gestalt-inject-java:8.0.0-SNAPSHOT")
|
||||
|
||||
api("org.terasology:TeraMath:1.5.0")
|
||||
api("org.terasology:splash-screen:1.1.1")
|
||||
api("org.terasology.jnlua:JNLua:0.1.0-SNAPSHOT")
|
||||
api("org.terasology.jnbullet:JNBullet:1.0.4")
|
||||
api("org.terasology.nui:nui:3.0.0")
|
||||
api("org.terasology.nui:nui-reflect:3.0.0")
|
||||
api("org.terasology.nui:nui-gestalt7:3.0.0")
|
||||
api("org.terasology.nui:nui:4.0.0-SNAPSHOT")
|
||||
api("org.terasology.nui:nui-reflect:4.0.0-SNAPSHOT")
|
||||
api("org.terasology.nui:nui-gestalt:4.0.0-SNAPSHOT")
|
||||
|
||||
|
||||
// Wildcard dependency to catch any libs provided with the project (remote repo preferred instead)
|
||||
|
|
@ -206,11 +212,23 @@ tasks.register<Copy>("copyResourcesToClasses") {
|
|||
into(sourceSets["main"].output.classesDirs.first())
|
||||
}
|
||||
|
||||
tasks.named("compileJava") {
|
||||
tasks.named<JavaCompile>("compileJava") {
|
||||
dependsOn(
|
||||
tasks.named("copyResourcesToClasses"),
|
||||
tasks.named("createVersionInfoFile")
|
||||
)
|
||||
// Create an asset list during compilation (needed for Gestalt 8)
|
||||
inputs.files(sourceSets.main.get().resources.srcDirs)
|
||||
options.compilerArgs = arrayListOf("-Aresource=${sourceSets.main.get().resources.srcDirs.joinToString(File.pathSeparator)}")
|
||||
}
|
||||
tasks.named<JavaCompile>("compileTestJava") {
|
||||
dependsOn(
|
||||
tasks.named("copyResourcesToClasses"),
|
||||
tasks.named("createVersionInfoFile")
|
||||
)
|
||||
// Create an asset list during compilation (needed for Gestalt 8)
|
||||
inputs.files(sourceSets.test.get().resources.srcDirs)
|
||||
options.compilerArgs = arrayListOf("-Aresource=${sourceSets.test.get().resources.srcDirs.joinToString(File.pathSeparator)}")
|
||||
}
|
||||
|
||||
// Instructions for packaging a jar file for the engine
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ public abstract class Sound<T extends AssetData> extends Asset<T> implements org
|
|||
* @param assetType The asset type this asset belongs to.
|
||||
*/
|
||||
protected Sound(ResourceUrn urn, AssetType<?, T> assetType, DisposableResource resource) {
|
||||
super(urn, assetType, resource);
|
||||
super(urn, assetType);
|
||||
setDisposableResource(resource);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -17,4 +17,4 @@
|
|||
*/
|
||||
@API package org.terasology.engine.audio.events;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.audio;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
import org.terasology.engine.utilities.gson.SetMultimapTypeAdapter;
|
||||
import org.terasology.engine.utilities.gson.UriTypeAdapterFactory;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
import org.terasology.gestalt.naming.Version;
|
||||
import org.terasology.gestalt.naming.gson.NameTypeAdapter;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
package org.terasology.engine.config;
|
||||
|
||||
import org.terasology.engine.core.subsystem.Resolution;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.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;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.utilities.subscribables.AbstractSubscribable;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.config.facade;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* TelemetryConfiguration is a wrapper for {@link org.terasology.engine.config.TelemetryConfig}.
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.reflections.ReflectionUtils;
|
||||
import org.terasology.context.annotation.IndexInherited;
|
||||
import org.terasology.engine.config.flexible.internal.SettingBuilder;
|
||||
import org.terasology.engine.config.flexible.internal.SettingImplBuilder;
|
||||
import org.terasology.engine.core.SimpleUri;
|
||||
|
|
@ -18,6 +19,7 @@
|
|||
* Represents a config class that will be automatically initialized and rendered by the engine.
|
||||
* All settings must be contained in {@code public static} fields of type {@link Setting}.
|
||||
*/
|
||||
@IndexInherited
|
||||
public abstract class AutoConfig {
|
||||
private SimpleUri id;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.config.flexible;
|
||||
|
||||
import org.terasology.engine.config.flexible.constraints.SettingConstraint;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.reflection.TypeInfo;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
@API package org.terasology.engine.config.flexible.constraints;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.config.flexible.ui;
|
||||
|
||||
import org.terasology.context.annotation.IndexInherited;
|
||||
import org.terasology.engine.config.flexible.Setting;
|
||||
import org.terasology.engine.config.flexible.constraints.SettingConstraint;
|
||||
import org.terasology.nui.UIWidget;
|
||||
|
|
@ -17,6 +18,7 @@
|
|||
* @param <T> type of setting
|
||||
* @param <C> concrete type of {@link SettingConstraint}
|
||||
*/
|
||||
@IndexInherited
|
||||
public abstract class ConstraintWidgetFactory<T, C extends SettingConstraint<T>> {
|
||||
private Setting<T> setting;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.context;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Optional;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.util.Objects;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
import org.terasology.engine.registry.InjectionHelper;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.util.List;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
import org.terasology.engine.monitoring.ThreadActivity;
|
||||
import org.terasology.engine.monitoring.ThreadMonitor;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import reactor.core.Disposable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.core;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* A general interface for observers
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -487,7 +487,12 @@ public boolean tick() {
|
|||
}
|
||||
|
||||
if (assetTypeManager instanceof AutoReloadAssetTypeManager) {
|
||||
((AutoReloadAssetTypeManager) assetTypeManager).reloadChangedAssets();
|
||||
try {
|
||||
((AutoReloadAssetTypeManager) assetTypeManager).reloadChangedAssets();
|
||||
} catch (IllegalStateException ignore) {
|
||||
// ignore: This can happen if a module environment switch is happening in a different thread.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
processPendingState();
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* The timer manages all time in the game.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
package org.terasology.engine.core.bootstrap;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.terasology.engine.entitySystem.systems.BaseComponentSystem;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* Event which is triggered when LocalPlayer is setup with a character entity. Allows for detection of when LocalPlayer is
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public Module createDirectoryModule(ModuleMetadata metadata, File directory) {
|
|||
Module module = super.createDirectoryModule(metadata, directory);
|
||||
return new Module(
|
||||
module.getMetadata(), module.getResources(),
|
||||
module.getClasspaths(), module.getModuleManifest(),
|
||||
module.getClasspaths(), module.getClassIndex(),
|
||||
new ClassesInModule(module));
|
||||
}
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ public Module createArchiveModule(ModuleMetadata metadata, File archive) throws
|
|||
Module module = super.createArchiveModule(metadata, archive);
|
||||
return new Module(
|
||||
module.getMetadata(), module.getResources(),
|
||||
module.getClasspaths(), module.getModuleManifest(),
|
||||
module.getClasspaths(), module.getClassIndex(),
|
||||
new ClassesInModule(module));
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +158,6 @@ private static Path fromUrl(URL url) {
|
|||
static class ClassesInModule implements Predicate<Class<?>> {
|
||||
|
||||
private final Set<URL> classpaths;
|
||||
private final ClassLoader[] classLoaders;
|
||||
private final String name;
|
||||
|
||||
ClassesInModule(Module module) {
|
||||
|
|
@ -174,13 +173,12 @@ static class ClassesInModule implements Predicate<Class<?>> {
|
|||
throw new RuntimeException(e);
|
||||
}
|
||||
}).collect(ImmutableSet.toImmutableSet());
|
||||
classLoaders = module.getModuleManifest().getConfiguration().getClassLoaders();
|
||||
name = module.getId().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(Class<?> aClass) {
|
||||
URL classUrl = ClasspathHelper.forClass(aClass, classLoaders);
|
||||
URL classUrl = ClasspathHelper.forClass(aClass);
|
||||
return classpaths.contains(classUrl);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core.module;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@
|
|||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import org.reflections.Reflections;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.core.TerasologyConstants;
|
||||
import org.terasology.gestalt.di.index.CompoundClassIndex;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleMetadata;
|
||||
import org.terasology.gestalt.module.ModuleMetadataJsonAdapter;
|
||||
|
|
@ -60,7 +60,7 @@ public ModuleRegistry call() throws IOException {
|
|||
|
||||
ModuleMetadata meta = metaReader.read(new StringReader(json));
|
||||
logger.debug("Read module {} - {}", meta.getId(), meta.getVersion()); //NOPMD
|
||||
modules.add(new Module(meta, new EmptyFileSource(), Collections.emptyList(), new Reflections(),
|
||||
modules.add(new Module(meta, new EmptyFileSource(), Collections.emptyList(), new CompoundClassIndex(),
|
||||
(c) -> false));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,9 @@
|
|||
import org.terasology.engine.core.PathManager;
|
||||
import org.terasology.engine.core.TerasologyConstants;
|
||||
import org.terasology.engine.utilities.Jvm;
|
||||
import org.terasology.gestalt.di.DefaultBeanContext;
|
||||
import org.terasology.gestalt.di.index.CompoundClassIndex;
|
||||
import org.terasology.gestalt.di.index.UrlClassIndex;
|
||||
import org.terasology.gestalt.module.Module;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.ModuleFactory;
|
||||
|
|
@ -198,7 +201,10 @@ static Module loadAndConfigureEngineModule(ModuleFactory moduleFactory, List<Cla
|
|||
Module packageModule = moduleFactory.createPackageModule("org.terasology.engine");
|
||||
|
||||
// We need to add reflections from our subsystems and other classes.
|
||||
Reflections packageReflections = packageModule.getModuleManifest();
|
||||
CompoundClassIndex packageClassIndex = new CompoundClassIndex();
|
||||
packageClassIndex.add(packageModule.getClassIndex());
|
||||
|
||||
Reflections packageReflections = new Reflections();
|
||||
ConfigurationBuilder config = reflectionsConfigurationFrom(packageReflections);
|
||||
|
||||
Collection<File> classPaths = new HashSet<>(packageModule.getClasspaths());
|
||||
|
|
@ -206,6 +212,7 @@ static Module loadAndConfigureEngineModule(ModuleFactory moduleFactory, List<Cla
|
|||
URL url = ClasspathHelper.forClass(aClass);
|
||||
config.addUrls(url); // include this in reflections scan
|
||||
classPaths.add(urlToFile(url)); // also include in Module.moduleClasspaths
|
||||
packageClassIndex.add(UrlClassIndex.byClassLoader(aClass.getClassLoader()));
|
||||
logger.debug("Adding path to engine module for class: {} {}", url, aClass);
|
||||
}
|
||||
|
||||
|
|
@ -221,7 +228,7 @@ static Module loadAndConfigureEngineModule(ModuleFactory moduleFactory, List<Cla
|
|||
packageModule.getMetadata(),
|
||||
packageModule.getResources(),
|
||||
classPaths,
|
||||
packageReflections,
|
||||
packageClassIndex,
|
||||
clazz ->
|
||||
packageModule.getClassPredicate().test(clazz)
|
||||
|| config.getUrls().contains(ClasspathHelper.forClass(clazz))
|
||||
|
|
@ -253,7 +260,9 @@ private void setupSandbox() {
|
|||
ExternalApiWhitelist.PACKAGES.forEach(permissionSet::addAPIPackage);
|
||||
|
||||
APIScanner apiScanner = new APIScanner(permissionProviderFactory);
|
||||
registry.stream().map(Module::getModuleManifest).forEach(apiScanner::scan);
|
||||
for (Module module : registry) {
|
||||
apiScanner.scan(module.getClassIndex());
|
||||
}
|
||||
|
||||
permissionSet.grantPermission("com.google.gson", ReflectPermission.class);
|
||||
permissionSet.grantPermission("com.google.gson.internal", ReflectPermission.class);
|
||||
|
|
@ -366,9 +375,9 @@ public ModuleEnvironment loadEnvironment(Set<Module> modules, boolean asPrimary)
|
|||
ModuleEnvironment newEnvironment;
|
||||
boolean permissiveSecurityEnabled = Boolean.parseBoolean(System.getProperty(SystemConfig.PERMISSIVE_SECURITY_ENABLED_PROPERTY));
|
||||
if (permissiveSecurityEnabled) {
|
||||
newEnvironment = new ModuleEnvironment(finalModules, wrappingPermissionProviderFactory);
|
||||
newEnvironment = new ModuleEnvironment(new DefaultBeanContext(), finalModules, wrappingPermissionProviderFactory);
|
||||
} else {
|
||||
newEnvironment = new ModuleEnvironment(finalModules, permissionProviderFactory);
|
||||
newEnvironment = new ModuleEnvironment(new DefaultBeanContext(), finalModules, permissionProviderFactory);
|
||||
}
|
||||
if (asPrimary) {
|
||||
environment = newEnvironment;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core.module;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.terasology.engine.core.PathManager;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.rendering.dag.ModuleRendering;
|
||||
import org.terasology.gestalt.module.ModuleEnvironment;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.gestalt.naming.Name;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@
|
|||
@API
|
||||
package org.terasology.engine.core.module.rendering;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.terasology.engine.rendering.nui.layers.mainMenu.videoSettings.DisplayModeSetting;
|
||||
import org.terasology.engine.utilities.subscribables.Subscribable;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core.subsystem;
|
||||
|
||||
import org.terasology.context.annotation.IndexInherited;
|
||||
import org.terasology.engine.context.Context;
|
||||
import org.terasology.engine.core.ComponentSystemManager;
|
||||
import org.terasology.engine.core.GameEngine;
|
||||
import org.terasology.engine.core.modes.GameState;
|
||||
import org.terasology.gestalt.assets.module.ModuleAwareAssetTypeManager;
|
||||
|
||||
@IndexInherited
|
||||
public interface EngineSubsystem {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.core.subsystem.common.hibernation;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
|
||||
@API
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.entitySystem.entity.internal;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
@API
|
||||
public enum EntityScope {
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.entitySystem.entity.lifecycleEvents;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.entitySystem.entity;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.entitySystem.event;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class ComponentLibrary extends ModuleClassLibrary<Component> {
|
|||
private static final Logger logger = LoggerFactory.getLogger(ComponentLibrary.class);
|
||||
|
||||
public ComponentLibrary(ModuleEnvironment environment, ReflectFactory reflectFactory, CopyStrategyLibrary copyStrategyLibrary) {
|
||||
super(environment, reflectFactory, copyStrategyLibrary);
|
||||
super(() -> environment, reflectFactory, copyStrategyLibrary);
|
||||
}
|
||||
|
||||
private ComponentLibrary(ComponentLibrary componentLibrary, CopyStrategyLibrary newCopyStrategies) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class EventLibrary extends ModuleClassLibrary<Event> {
|
|||
private static final Logger logger = LoggerFactory.getLogger(EventLibrary.class);
|
||||
|
||||
public EventLibrary(ModuleEnvironment environment, ReflectFactory reflectFactory, CopyStrategyLibrary copyStrategyLibrary) {
|
||||
super(environment, reflectFactory, copyStrategyLibrary);
|
||||
super(() -> environment, reflectFactory, copyStrategyLibrary);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@
|
|||
@API
|
||||
package org.terasology.engine.entitySystem.metadata;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.entitySystem;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.entitySystem.prefab;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.joml.Vector3i;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import org.joml.Vector3i;
|
||||
import org.terasology.engine.world.chunks.Chunk;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.entitySystem.entity.internal.BaseEntityRef;
|
||||
import org.terasology.engine.entitySystem.entity.internal.EntityScope;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* The component that allows the {@link SectorSimulationSystem} to send simulation events to a sector-scope entity.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.gestalt.entitysystem.event.Event;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* This is the event sent to all sector-level entities by the {@link SectorSimulationSystem}, allowing them to do simulation. It
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
import org.joml.Vector3ic;
|
||||
import org.terasology.engine.entitySystem.entity.EntityRef;
|
||||
import org.terasology.engine.logic.location.LocationComponent;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.engine.world.chunks.Chunk;
|
||||
import org.terasology.engine.world.chunks.ChunkProvider;
|
||||
import org.terasology.engine.world.chunks.Chunks;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
package org.terasology.engine.entitySystem.systems;
|
||||
|
||||
import org.terasology.context.annotation.Index;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
|
@ -22,6 +24,7 @@
|
|||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
@Index
|
||||
public @interface RegisterSystem {
|
||||
|
||||
String[] requiresOptional() default {};
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.entitySystem.systems;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
package org.terasology.engine.i18n;
|
||||
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.nui.translate.Translator;
|
||||
|
||||
import java.util.Locale;
|
||||
|
|
|
|||
|
|
@ -36,7 +36,8 @@ public class Translation extends Asset<TranslationData> {
|
|||
* @param data The actual translation data. Never <code>null</code>.
|
||||
*/
|
||||
public Translation(ResourceUrn urn, AssetType<?, TranslationData> assetType, TranslationData data, Translation.DisposalAction disposalAction) {
|
||||
super(urn, assetType, disposalAction);
|
||||
super(urn, assetType);
|
||||
setDisposableResource(disposalAction);
|
||||
this.disposalAction = disposalAction;
|
||||
this.disposalAction.setAsset(this);
|
||||
reload(data);
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.i18n.assets;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
package org.terasology.engine.input;
|
||||
|
||||
import org.terasology.context.annotation.Index;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
|
@ -10,6 +12,7 @@
|
|||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
@Index
|
||||
public @interface RegisterBindAxis {
|
||||
String id();
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
package org.terasology.engine.input;
|
||||
|
||||
import org.terasology.context.annotation.Index;
|
||||
import org.terasology.input.ActivateMode;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
|
|
@ -12,6 +13,7 @@
|
|||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
@Index
|
||||
public @interface RegisterBindButton {
|
||||
String id();
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
package org.terasology.engine.input;
|
||||
|
||||
import org.terasology.context.annotation.Index;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
|
@ -10,6 +12,7 @@
|
|||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
@Index
|
||||
public @interface RegisterRealBindAxis {
|
||||
String id();
|
||||
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@
|
|||
displayName = "${engine:menu#category-general}"
|
||||
) package org.terasology.engine.input.binds.general;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.input.InputCategory;
|
||||
|
|
|
|||
|
|
@ -10,5 +10,5 @@
|
|||
"engine:frob"
|
||||
}) package org.terasology.engine.input.binds.interaction;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.input.InputCategory;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.input.BindButtonEvent;
|
||||
import org.terasology.engine.input.DefaultBinding;
|
||||
import org.terasology.engine.input.RegisterBindButton;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.input.ControllerId;
|
||||
import org.terasology.input.InputType;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,5 +18,5 @@
|
|||
"engine:crouch"
|
||||
}) package org.terasology.engine.input.binds.movement;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.input.InputCategory;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.input.cameraTarget;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.input.events;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.input;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.logic.actions;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.autoCreate;
|
||||
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* This component is used to mark prefabs that should automatically created when a game begins or is loaded, if one does not already exist.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.behavior;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.terasology.engine.logic.behavior.asset.BehaviorTree;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* Entities with this component are handled by a behavior tree. Default tree to fetch may be set.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
import org.terasology.engine.logic.behavior.asset.BehaviorTree;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* Entities with this component are handled by a behavior tree. Default tree to fetch may be set.
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.CollectiveBehaviorTreeRunner;
|
||||
import org.terasology.engine.logic.common.DisplayNameComponent;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorTreeRunner;
|
||||
import org.terasology.engine.logic.common.DisplayNameComponent;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* An interpreter evaluates a behavior tree. Uses BehaviorTreeRunner to actually evaluate the tree. The runner
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.BaseAction;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorState;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.nui.properties.Range;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.BaseAction;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorState;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* Inverts the child's return value. Doesn't change RUNNING.
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.BaseAction;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorNode;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorState;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.nui.properties.OneOf;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.BaseAction;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorState;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* Node, that loops its child forever
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.BaseAction;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorState;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.nui.properties.Range;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
import org.terasology.engine.logic.behavior.core.Actor;
|
||||
import org.terasology.engine.logic.behavior.core.BaseAction;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorState;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.nui.properties.Range;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.logic.behavior.actions;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
import org.terasology.gestalt.assets.AssetType;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.engine.logic.behavior.core.BehaviorNode;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* Behavior tree asset. Can be loaded and saved into json. Actors should never run the nodes behind a asset directly.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonIOException;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.engine.registry.In;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.logic.behavior.asset;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
// SPDX-License-Identifier: Apache-2.0
|
||||
package org.terasology.engine.logic.behavior.core;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.context.annotation.IndexInherited;
|
||||
|
||||
/**
|
||||
* The action that is used by an action or decorator node. Every action node of a behavior tree has its own action
|
||||
|
|
@ -12,6 +13,7 @@
|
|||
* Action instances are shown in the property panel of the behavior editor.
|
||||
*/
|
||||
@API
|
||||
@IndexInherited
|
||||
public interface Action {
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
import org.terasology.engine.registry.CoreRegistry;
|
||||
import org.terasology.gestalt.assets.ResourceUrn;
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.reflection.metadata.FieldMetadata;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.behavior.core;
|
||||
|
||||
import org.terasology.engine.logic.behavior.BehaviorAction;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
||||
/**
|
||||
* BaseAction that uses BehaviorAction annotation as its name.
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@
|
|||
|
||||
@API package org.terasology.engine.logic.behavior.core;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
package org.terasology.engine.logic.behavior.nui;
|
||||
|
||||
import org.terasology.gestalt.entitysystem.component.Component;
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.nui.Color;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@
|
|||
displayName = "${engine:menu#category-behavior}"
|
||||
) package org.terasology.engine.logic.behavior.nui;
|
||||
|
||||
import org.terasology.gestalt.module.sandbox.API;
|
||||
import org.terasology.context.annotation.API;
|
||||
import org.terasology.input.InputCategory;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue