Search in sources :

Example 1 with ModuleBoardWidget

use of com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget in project talos by rockbite.

the class TalosProject method setToExportData.

private void setToExportData(ExportData data, ModuleBoardWidget moduleBoardWidget) {
    final ObjectMap<ParticleEmitterWrapper, Array<ModuleWrapper>> moduleWrappers = moduleBoardWidget.moduleWrappers;
    final ObjectMap<ParticleEmitterWrapper, Array<ModuleBoardWidget.NodeConnection>> nodeConnections = moduleBoardWidget.nodeConnections;
    for (ParticleEmitterWrapper key : moduleWrappers.keys()) {
        final ExportData.EmitterExportData emitterData = new ExportData.EmitterExportData();
        emitterData.name = key.getName();
        for (ModuleWrapper wrapper : moduleWrappers.get(key)) {
            emitterData.modules.add(wrapper.getModule());
            if (wrapper.getModule() instanceof TextureModule) {
                TextureModule textureModule = (TextureModule) wrapper.getModule();
                String name = textureModule.regionName;
                if (name == null)
                    name = "fire";
                if (!data.metadata.resources.contains(name, false)) {
                    data.metadata.resources.add(name);
                }
            }
            if (wrapper.getModule() instanceof PolylineModule) {
                PolylineModule module = (PolylineModule) wrapper.getModule();
                String name = module.regionName;
                if (name == null)
                    name = "fire";
                if (!data.metadata.resources.contains(name, false)) {
                    data.metadata.resources.add(name);
                }
            }
            if (wrapper.getModule() instanceof VectorFieldModule) {
                VectorFieldModule vectorFieldModule = (VectorFieldModule) wrapper.getModule();
                String fgaFileName = vectorFieldModule.fgaFileName;
                if (fgaFileName == null) {
                    return;
                }
                fgaFileName = fgaFileName + ".fga";
                if (!data.metadata.resources.contains(fgaFileName, false)) {
                    data.metadata.resources.add(fgaFileName);
                }
            }
        }
        final Array<ModuleBoardWidget.NodeConnection> nodeConns = nodeConnections.get(key);
        if (nodeConns != null) {
            for (ModuleBoardWidget.NodeConnection nodeConn : nodeConns) {
                emitterData.connections.add(new ConnectionData(nodeConn.fromModule.getModule().getIndex(), nodeConn.toModule.getModule().getIndex(), nodeConn.fromSlot, nodeConn.toSlot));
            }
        }
        data.emitters.add(emitterData);
    }
}
Also used : TextureModule(com.talosvfx.talos.runtime.modules.TextureModule) VectorFieldModule(com.talosvfx.talos.runtime.modules.VectorFieldModule) Array(com.badlogic.gdx.utils.Array) PolylineModule(com.talosvfx.talos.runtime.modules.PolylineModule) ModuleBoardWidget(com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget) ModuleWrapper(com.talosvfx.talos.editor.wrappers.ModuleWrapper) ExportData(com.talosvfx.talos.runtime.serialization.ExportData) ConnectionData(com.talosvfx.talos.runtime.serialization.ConnectionData) ParticleEmitterWrapper(com.talosvfx.talos.editor.ParticleEmitterWrapper)

Example 2 with ModuleBoardWidget

use of com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget in project talos by rockbite.

the class NodeStage method initActors.

private void initActors() {
    GridRenderer gridRenderer = new GridRenderer(stage);
    stage.addActor(gridRenderer);
    moduleBoardWidget = new ModuleBoardWidget(this);
    stage.addActor(moduleBoardWidget);
    selectionRect = new Image(skin.getDrawable("orange_row"));
    selectionRect.setSize(0, 0);
    selectionRect.setVisible(false);
    stage.addActor(selectionRect);
}
Also used : ModuleBoardWidget(com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget) GridRenderer(com.talosvfx.talos.editor.utils.GridRenderer) Image(com.badlogic.gdx.scenes.scene2d.ui.Image)

Example 3 with ModuleBoardWidget

use of com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget in project talos by rockbite.

the class ProjectData method setFrom.

public void setFrom(ModuleBoardWidget moduleBoardWidget) {
    final ObjectMap<ParticleEmitterWrapper, Array<ModuleWrapper>> moduleWrappers = moduleBoardWidget.moduleWrappers;
    final ObjectMap<ParticleEmitterWrapper, Array<ModuleBoardWidget.NodeConnection>> nodeConnections = moduleBoardWidget.nodeConnections;
    emitters.clear();
    for (ParticleEmitterWrapper key : moduleWrappers.keys()) {
        final EmitterData emitterData = new EmitterData();
        emitterData.name = key.getName();
        emitterData.sortPosition = key.getEmitter().getSortPosition();
        emitterData.modules.addAll(moduleWrappers.get(key));
        emitterData.isMuted = key.isMuted;
        final Array<ModuleBoardWidget.NodeConnection> nodeConns = nodeConnections.get(key);
        if (nodeConns != null) {
            for (ModuleBoardWidget.NodeConnection nodeConn : nodeConns) {
                emitterData.connections.add(new ConnectionData(nodeConn.fromModule.getId(), nodeConn.toModule.getId(), nodeConn.fromSlot, nodeConn.toSlot));
            }
        }
        // add groups
        for (ModuleWrapperGroup group : moduleBoardWidget.getGroups(key)) {
            GroupData groupData = new GroupData();
            groupData.text = group.getText();
            groupData.modules = new Array<>();
            groupData.color = group.getFrameColor().toFloatBits();
            for (ModuleWrapper wrapper : group.getModuleWrappers()) {
                groupData.modules.add(wrapper.getId());
            }
            emitterData.groups.add(groupData);
        }
        emitters.add(emitterData);
    }
}
Also used : Array(com.badlogic.gdx.utils.Array) ModuleBoardWidget(com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget) ModuleWrapper(com.talosvfx.talos.editor.wrappers.ModuleWrapper) ConnectionData(com.talosvfx.talos.runtime.serialization.ConnectionData) ParticleEmitterWrapper(com.talosvfx.talos.editor.ParticleEmitterWrapper) ModuleWrapperGroup(com.talosvfx.talos.editor.data.ModuleWrapperGroup)

Aggregations

ModuleBoardWidget (com.talosvfx.talos.editor.widgets.ui.ModuleBoardWidget)3 Array (com.badlogic.gdx.utils.Array)2 ParticleEmitterWrapper (com.talosvfx.talos.editor.ParticleEmitterWrapper)2 ModuleWrapper (com.talosvfx.talos.editor.wrappers.ModuleWrapper)2 ConnectionData (com.talosvfx.talos.runtime.serialization.ConnectionData)2 Image (com.badlogic.gdx.scenes.scene2d.ui.Image)1 ModuleWrapperGroup (com.talosvfx.talos.editor.data.ModuleWrapperGroup)1 GridRenderer (com.talosvfx.talos.editor.utils.GridRenderer)1 PolylineModule (com.talosvfx.talos.runtime.modules.PolylineModule)1 TextureModule (com.talosvfx.talos.runtime.modules.TextureModule)1 VectorFieldModule (com.talosvfx.talos.runtime.modules.VectorFieldModule)1 ExportData (com.talosvfx.talos.runtime.serialization.ExportData)1