Better external types management with ExternalTypesConfiguration

This commit is contained in:
fgnm
2022-03-01 22:25:16 +01:00
parent 61367a450a
commit 11863aefdc
4 changed files with 20 additions and 9 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
[0.1.0]
- [WIP - BREAK CHANGE] Update Project version to `1.0.0`
- [BREAK CHANGE] Update Project version to `1.0.0`
- Extensions are completely detached from base runtime
- Custom Variables are stored in JSON format
- Bug fixes and stability improvements
@@ -15,6 +15,7 @@ import games.rednblack.editor.HyperLap2DFacade;
import games.rednblack.editor.proxy.ProjectManager;
import games.rednblack.editor.proxy.ResolutionManager;
import games.rednblack.editor.proxy.ResourceManager;
import games.rednblack.editor.renderer.ExternalTypesConfiguration;
import games.rednblack.editor.renderer.SceneConfiguration;
import games.rednblack.editor.renderer.SceneLoader;
import games.rednblack.editor.renderer.components.additional.ButtonComponent;
@@ -53,11 +54,17 @@ public class LivePreviewScreen extends ScreenAdapter implements GestureDetector.
viewport = new ExtendViewport(worldSizeVO.getWorldWidth(), worldSizeVO.getWorldHeight());
mCamera = (OrthographicCamera) viewport.getCamera();
ExternalTypesConfiguration externalItemTypes = new ExternalTypesConfiguration();
//Add external item types
externalItemTypes.addExternalItemType(new SpineItemType());
externalItemTypes.addExternalItemType(new TalosItemType());
externalItemTypes.addExternalItemType(new TypingLabelItemType());
SceneConfiguration config = new SceneConfiguration();
config.setResourceRetriever(resourceManager);
config.addExternalItemType(new SpineItemType());
config.addExternalItemType(new TalosItemType());
config.addExternalItemType(new TypingLabelItemType());
config.setExternalItemTypes(externalItemTypes);
config.addTagTransmuter("button", ButtonComponent.class);
sceneLoader = new SceneLoader(config);
@@ -35,6 +35,7 @@ import com.badlogic.gdx.utils.viewport.Viewport;
import com.kotcrab.vis.ui.util.ToastManager;
import games.rednblack.editor.HyperLap2DFacade;
import games.rednblack.editor.proxy.*;
import games.rednblack.editor.renderer.ExternalTypesConfiguration;
import games.rednblack.editor.renderer.SceneConfiguration;
import games.rednblack.editor.renderer.SceneLoader;
import games.rednblack.editor.renderer.components.ViewPortComponent;
@@ -135,12 +136,15 @@ public class Sandbox {
UIStageMediator uiStageMediator = facade.retrieveMediator(UIStageMediator.NAME);
uiStage = uiStageMediator.getViewComponent();
ExternalTypesConfiguration externalItemTypes = new ExternalTypesConfiguration();
//Add external item types
externalItemTypes.addExternalItemType(new SpineItemType());
externalItemTypes.addExternalItemType(new TalosItemType());
externalItemTypes.addExternalItemType(new TypingLabelItemType());
SceneConfiguration config = new SceneConfiguration();
config.setResourceRetriever(resourceManager);
// adding spine as external component
config.addExternalItemType(new SpineItemType());
config.addExternalItemType(new TalosItemType());
config.addExternalItemType(new TypingLabelItemType());
config.setExternalItemTypes(externalItemTypes);
//Remove Physics System and add Adjusting System for box2d objects to follow items and stop world tick
config.removeSystem(PhysicsSystem.class);