use of org.terasology.engine.core.module.ModuleManager in project Terasology by MovingBlocks.
the class WithUnittestModule method initialise.
@Override
public void initialise(GameEngine engine, Context rootContext) {
EngineSubsystem.super.initialise(engine, rootContext);
ModuleManager manager = rootContext.get(ModuleManager.class);
Module unittestModule = manager.registerPackageModule("org.terasology.unittest");
manager.resolveAndLoadEnvironment(unittestModule.getId());
}
use of org.terasology.engine.core.module.ModuleManager in project Terasology by MovingBlocks.
the class ApiScraper method main.
/**
* @param args (ignored)
* @throws Exception if the module environment cannot be loaded
*/
public static void main(String[] args) throws Exception {
ModuleManager moduleManager = ModuleManagerFactory.create();
ModuleEnvironment environment = moduleManager.getEnvironment();
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
SortedSetMultimap<String, String> sortedApi = Multimaps.newSortedSetMultimap(new HashMap<>(), TreeSet::new);
for (Class<?> apiClass : environment.getTypesAnnotatedWith(API.class)) {
// System.out.println("Processing: " + apiClass);
boolean isPackage = apiClass.isSynthetic();
URL location;
String category;
String apiPackage = "";
if (isPackage) {
apiPackage = apiClass.getPackage().getName();
location = classLoader.getResource(apiPackage.replace('.', '/'));
} else {
location = apiClass.getResource('/' + apiClass.getName().replace('.', '/') + ".class");
}
if (location == null) {
System.out.println("Failed to get a class/package location, skipping " + apiClass);
continue;
}
switch(location.getProtocol()) {
case "jar":
// Find out what jar it came from and consider that the category
String categoryFragment = location.getPath();
// System.out.println("category fragment as path: " + categoryFragment);
int bang = categoryFragment.lastIndexOf("!");
int hyphen = categoryFragment.lastIndexOf("-", bang);
int slash = categoryFragment.lastIndexOf("/", hyphen);
category = categoryFragment.substring(slash + 1, hyphen);
if (isPackage) {
// System.out.println("Jar-based Package: " + apiPackage + ", came from " + location);
sortedApi.put(category, apiPackage + " (PACKAGE)");
} else {
// System.out.println("Jar-based Class: " + apiClass + ", came from " + location);
sortedApi.put(category, apiClass.getName() + (apiClass.isInterface() ? " (INTERFACE)" : " (CLASS)"));
}
break;
case "file":
// If file based we know it is local so organize it like that
category = "terasology engine";
if (isPackage) {
// System.out.println("Local Package: " + apiPackage + ", came from " + location);
sortedApi.put(category, apiPackage + " (PACKAGE)");
} else {
// System.out.println("Local Class: " + apiClass + ", came from " + location);
sortedApi.put(category, apiClass.getName() + (apiClass.isInterface() ? " (INTERFACE)" : " (CLASS)"));
}
break;
default:
System.out.println("Unknown protocol for: " + apiClass + ", came from " + location);
}
}
sortedApi.putAll("external", ExternalApiWhitelist.CLASSES.stream().map(clazz -> clazz.getName() + " (CLASS)").collect(Collectors.toSet()));
sortedApi.putAll("external", ExternalApiWhitelist.PACKAGES.stream().map(packagee -> packagee + " (PACKAGE)").collect(Collectors.toSet()));
System.out.println("# Modding API:\n");
for (String key : sortedApi.keySet()) {
System.out.println("## " + key + "\n");
for (String value : sortedApi.get(key)) {
System.out.println("* " + value);
}
System.out.println("");
}
}
use of org.terasology.engine.core.module.ModuleManager in project Terasology by MovingBlocks.
the class BindsSubsystem method registerBinds.
@Override
public void registerBinds() {
ModuleManager moduleManager = context.get(ModuleManager.class);
ModuleEnvironment environment = moduleManager.getEnvironment();
clearBinds();
registerButtonBinds(environment);
registerAxisBinds(environment);
registerRealAxisBinds(environment);
}
use of org.terasology.engine.core.module.ModuleManager in project Terasology by MovingBlocks.
the class NetworkOwnershipTest method setup.
@BeforeEach
public void setup() throws Exception {
super.setup();
ModuleManager moduleManager = ModuleManagerFactory.create();
context.put(ModuleManager.class, moduleManager);
EngineTime mockTime = mock(EngineTime.class);
networkSystem = new NetworkSystemImpl(mockTime, context);
networkSystem.setContext(context);
context.put(NetworkSystem.class, networkSystem);
EntitySystemSetupUtil.addReflectionBasedLibraries(context);
EntitySystemSetupUtil.addEntityManagementRelatedClasses(context);
entityManager = (PojoEntityManager) context.get(EntityManager.class);
context.put(ComponentSystemManager.class, new ComponentSystemManager(context));
entityManager.clear();
client = mock(NetClient.class);
NetworkComponent clientNetComp = new NetworkComponent();
clientNetComp.replicateMode = NetworkComponent.ReplicateMode.OWNER;
clientEntity = entityManager.create(clientNetComp);
when(client.getEntity()).thenReturn(clientEntity);
when(client.getId()).thenReturn("dummyID");
networkSystem.mockHost();
networkSystem.connectToEntitySystem(entityManager, context.get(EventLibrary.class), mock(BlockEntityRegistry.class));
networkSystem.registerNetworkEntity(clientEntity);
context.put(ServerConnectListManager.class, new ServerConnectListManager(context));
}
use of org.terasology.engine.core.module.ModuleManager in project Terasology by MovingBlocks.
the class BaseEntityRefTest method setupClass.
@BeforeAll
public static void setupClass() throws Exception {
context = new ContextImpl();
ModuleManager moduleManager = ModuleManagerFactory.create();
context.put(ModuleManager.class, moduleManager);
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());
CoreRegistry.setContext(context);
}
Aggregations