Skip to content

Commit

Permalink
feature(reintegrate-gestaltv7): add reload handling on EnvironmentSwi…
Browse files Browse the repository at this point in the history
…tch. add synthetic nui module. add gestalt's classes to Whitelist
  • Loading branch information
DarkWeird committed Sep 10, 2020
1 parent 45b643d commit 3e3faaf
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -421,9 +421,6 @@ public boolean tick() {
return false;
}

// assetTypeManager.switchEnvironment(moduleEnvironment); // TODO check reloading - gestalt v7 - it is from docs.
assetTypeManager.reloadAssets();

processPendingState();

if (currentState == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ public void handleSwitchToGameEnvironment(Context context) {
.addDeltaFormat(registeredPrefabDeltaFormat);

assetTypeManager.switchEnvironment(environment);
assetTypeManager.reloadAssets();

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ public final class ExternalApiWhitelist {
.add(java.io.DataOutputStream.class)
.add(java.io.FilterOutputStream.class)
.add(java.io.PipedOutputStream.class)
// gestalt module
.add(org.terasology.gestalt.naming.Name.class)
.add(org.terasology.gestalt.assets.management.AssetManager.class)
.build();

private ExternalApiWhitelist() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package org.terasology.engine.core.module;

import com.google.common.collect.Sets;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.terasology.engine.config.Config;
Expand All @@ -12,6 +13,7 @@
import org.terasology.gestalt.module.Module;
import org.terasology.gestalt.module.ModuleEnvironment;
import org.terasology.gestalt.module.ModuleFactory;
import org.terasology.gestalt.module.ModuleMetadata;
import org.terasology.gestalt.module.ModuleMetadataJsonAdapter;
import org.terasology.gestalt.module.ModulePathScanner;
import org.terasology.gestalt.module.ModuleRegistry;
Expand All @@ -23,6 +25,8 @@
import org.terasology.gestalt.module.sandbox.PermissionProviderFactory;
import org.terasology.gestalt.module.sandbox.StandardPermissionProviderFactory;
import org.terasology.gestalt.module.sandbox.WarnOnlyProviderFactory;
import org.terasology.gestalt.naming.Name;
import org.terasology.gestalt.naming.Version;

import java.lang.reflect.ReflectPermission;
import java.security.Policy;
Expand Down Expand Up @@ -80,6 +84,7 @@ public ModuleManagerImpl(String masterServerAddress, List<Class<?>> classesOnCla
// }

Module engineModule = moduleFactory.createPackageModule("org.terasology.engine");
Module nuiModule = createSyntheticPackageModule(engineModule, "nui", "0.0.0", "org.terasology.nui");

registry = new TableModuleRegistry();
registry.add(engineModule);
Expand All @@ -96,8 +101,10 @@ public ModuleManagerImpl(String masterServerAddress, List<Class<?>> classesOnCla

registry.stream().filter(mod -> mod != engineModule).forEach(mod -> mod.getMetadata().getDependencies().add(engineDep));

registry.add(nuiModule);

setupSandbox();
loadEnvironment(Sets.newHashSet(engineModule), true);
loadEnvironment(Sets.newHashSet(engineModule, nuiModule), true);
installManager = new ModuleInstallManager(this, masterServerAddress);
}

Expand All @@ -109,6 +116,21 @@ public ModuleManagerImpl(Config config, List<Class<?>> classesOnClasspathsToAddT
this(config.getNetwork().getMasterServer(), classesOnClasspathsToAddToEngine);
}

@NotNull
private Module createSyntheticPackageModule(Module engineModule, String nui, String version, String packageName) {
Module module = moduleFactory.createPackageModule(
new ModuleMetadata(
new Name(nui),
new Version(version)),
packageName);
DependencyInfo moduleDep = new DependencyInfo();
moduleDep.setId(module.getId());
moduleDep.setMinVersion(module.getVersion());
moduleDep.setMaxVersion(module.getVersion().getNextPatchVersion());
engineModule.getMetadata().getDependencies().add(moduleDep);
return module;
}

/**
* Overrides modules in modules/ with those specified via -classpath in the JVM
*/
Expand Down

0 comments on commit 3e3faaf

Please sign in to comment.