use of org.terasology.gestalt.module.ModuleEnvironment in project Terasology by MovingBlocks.
the class SettingWidgetFactoryTest method testCreateWidgetFor.
@Test
void testCreateWidgetFor() {
ModuleEnvironment environment = mock(ModuleEnvironment.class);
when(environment.getSubtypesOf(eq(ConstraintWidgetFactory.class))).thenReturn(Lists.newArrayList(NumberRangeConstraintWidgetFactory.class));
AssetManager assetManager = new AssetManager(mock(AssetTypeManager.class));
SettingWidgetFactory settingWidgetFactory = new SettingWidgetFactory(environment, assetManager, null);
Setting<Integer> setting = mock(Setting.class);
when(setting.getConstraint()).thenReturn(new NumberRangeConstraint<>(0, 10, false, false));
Optional<ConstraintWidgetFactory<Integer, ?>> widget = settingWidgetFactory.getConstraintWidgetFactory(setting);
assertTrue(widget.isPresent());
assertTrue(widget.get() instanceof NumberRangeConstraintWidgetFactory);
}
use of org.terasology.gestalt.module.ModuleEnvironment in project Terasology by MovingBlocks.
the class BindsSubsystemTest method test.
@Test
public void test() {
ModuleEnvironment environment = mock(ModuleEnvironment.class);
when(environment.getTypesAnnotatedWith(eq(RegisterBindButton.class), any())).thenReturn(registerBindButtonClasses);
registerBindButtonClasses.add(TestEventButton.class);
}
use of org.terasology.gestalt.module.ModuleEnvironment in project Terasology by MovingBlocks.
the class EnvironmentSwitchHandler method handleSwitchToEmptyEnvironment.
public void handleSwitchToEmptyEnvironment(Context context) {
ModuleEnvironment environment = context.get(ModuleManager.class).getEnvironment();
cheapAssetManagerUpdate(context, environment);
}
use of org.terasology.gestalt.module.ModuleEnvironment in project Terasology by MovingBlocks.
the class StateIngame method dispose.
@Override
public void dispose(boolean shuttingDown) {
ChunkProvider chunkProvider = context.get(ChunkProvider.class);
chunkProvider.dispose();
AssetTypeManager assetTypeManager = context.get(ModuleAwareAssetTypeManager.class);
// dispose all module assets
assetTypeManager.getAssetTypes().forEach(assetType -> {
for (ResourceUrn urn : assetType.getLoadedAssetUrns()) {
if (!urn.getModuleName().equals(TerasologyConstants.ENGINE_MODULE)) {
assetType.getAsset(urn).ifPresent(Asset::dispose);
}
}
});
// dispose engine assets that should not be kept when switching game states
assetTypeManager.getAssetType(BlockFamilyDefinition.class).ifPresent(AssetType::disposeAll);
assetTypeManager.getAssetType(Prefab.class).ifPresent(AssetType::disposeAll);
boolean save = networkSystem.getMode().isAuthority();
if (save && storageManager != null) {
storageManager.waitForCompletionOfPreviousSaveAndStartSaving();
}
networkSystem.shutdown();
// TODO: Shutdown background threads
eventSystem.process();
GameThread.processWaitingProcesses();
if (nuiManager != null) {
nuiManager.clear();
}
context.get(AudioManager.class).stopAllSounds();
if (worldRenderer != null) {
worldRenderer.dispose();
worldRenderer = null;
}
componentSystemManager.shutdown();
context.get(PhysicsEngine.class).dispose();
entityManager.clear();
if (storageManager != null) {
storageManager.finishSavingAndShutdown();
}
ModuleEnvironment oldEnvironment = context.get(ModuleManager.class).getEnvironment();
context.get(ModuleManager.class).loadEnvironment(Collections.<Module>emptySet(), true);
if (!shuttingDown) {
context.get(EnvironmentSwitchHandler.class).handleSwitchToEmptyEnvironment(context);
}
if (oldEnvironment != null) {
oldEnvironment.close();
}
console.dispose();
GameThread.clearWaitingProcesses();
if (nuiManager != null) {
/*
* Clear the binding as otherwise the complete ingame state would be
* referenced.
*/
nuiManager.getHUD().clearVisibleBinding();
}
}
use of org.terasology.gestalt.module.ModuleEnvironment in project Terasology by MovingBlocks.
the class AutoConfigManager method loadConfigsIn.
public void loadConfigsIn(Context context) {
ModuleEnvironment environment = context.get(ModuleManager.class).getEnvironment();
for (Class<? extends AutoConfig> configClass : environment.getSubtypesOf(AutoConfig.class)) {
if (context.get(configClass) != null) {
// We've already initialized this config before
continue;
}
SimpleUri configId = verifyNotNull(ReflectionUtil.getFullyQualifiedSimpleUriFor(configClass, environment), "Could not find ID for %s", configClass.getSimpleName());
loadConfig(configClass, configId, context);
}
}
Aggregations