Search in sources :

Example 1 with AbstractModule

use of com.talosvfx.talos.runtime.modules.AbstractModule in project talos by rockbite.

the class TextureModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    defaultRegion = new TextureRegion(new Texture(Gdx.files.internal("fire.png")));
    dropWidget = new TextureDropWidget<AbstractModule>(defaultRegion, getSkin());
    addOutputSlot("output", TextureModule.OUTPUT);
    assetNameLabel = new Label("fire", getSkin());
    contentWrapper.add(assetNameLabel).padLeft(10).colspan(2).expand().fill().row();
    contentWrapper.add(dropWidget).size(50).left().padLeft(10);
    contentWrapper.add().expandX();
}
Also used : TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) Texture(com.badlogic.gdx.graphics.Texture) AbstractModule(com.talosvfx.talos.runtime.modules.AbstractModule)

Example 2 with AbstractModule

use of com.talosvfx.talos.runtime.modules.AbstractModule in project talos by rockbite.

the class ModuleBoardWidget method createModule.

public ModuleWrapper createModule(Class<? extends AbstractModule> clazz, float x, float y) {
    final AbstractModule module;
    try {
        module = ClassReflection.newInstance(clazz);
        if (TalosMain.Instance().TalosProject().getCurrentModuleGraph().addModule(module)) {
            final ModuleWrapper moduleWrapper = createModuleWrapper(module, x, y);
            moduleWrapper.setModuleToDefaults();
            module.setModuleGraph(TalosMain.Instance().TalosProject().getCurrentModuleGraph());
            TalosMain.Instance().ProjectController().setDirty();
            return moduleWrapper;
        } else {
            System.out.println("Did not create module: " + clazz.getSimpleName());
            return null;
        }
    } catch (ReflectionException e) {
        throw new GdxRuntimeException(e);
    }
}
Also used : ReflectionException(com.badlogic.gdx.utils.reflect.ReflectionException) AbstractModule(com.talosvfx.talos.runtime.modules.AbstractModule)

Example 3 with AbstractModule

use of com.talosvfx.talos.runtime.modules.AbstractModule in project talos by rockbite.

the class FlipbookModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    super.configureSlots();
    dropWidget = new TextureDropWidget<AbstractModule>(defaultRegion, getSkin(), 100f);
    addInputSlot("phase", FlipbookModule.PHASE);
    rows = new IntegerInputWidget("Rows", getSkin());
    cols = new IntegerInputWidget("Cols", getSkin());
    duration = new FloatInputWidget("Duration", getSkin());
    rows.setValue(1);
    cols.setValue(1);
    duration.setValue(1f);
    leftWrapper.add(rows).padTop(5f).left().expandX().row();
    leftWrapper.add(cols).left().expandX().row();
    leftWrapper.add(duration).padLeft(5).left().expandX().row();
    rightWrapper.add(dropWidget).size(100).right().row();
    rightWrapper.add().growY().row();
    addOutputSlot("output", FlipbookModule.OUTPUT);
    rows.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.setRows(rows.getValue());
        }
    });
    duration.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.duration = duration.getValue();
        }
    });
    cols.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.setCols(cols.getValue());
        }
    });
}
Also used : FloatInputWidget(com.talosvfx.talos.editor.widgets.FloatInputWidget) Actor(com.badlogic.gdx.scenes.scene2d.Actor) IntegerInputWidget(com.talosvfx.talos.editor.widgets.IntegerInputWidget) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) AbstractModule(com.talosvfx.talos.runtime.modules.AbstractModule)

Example 4 with AbstractModule

use of com.talosvfx.talos.runtime.modules.AbstractModule in project talos by rockbite.

the class ParticleEffectDescriptor method load.

public void load(FileHandle fileHandle) {
    Json json = new Json();
    ParticleEmitterDescriptor.registerModules();
    for (Class clazz : ParticleEmitterDescriptor.registeredModules) {
        json.addClassTag(clazz.getSimpleName(), clazz);
    }
    final ExportData exportData = json.fromJson(ExportData.class, fileHandle.readString());
    for (ExportData.EmitterExportData emitter : exportData.emitters) {
        ParticleEmitterDescriptor emitterDescriptor = new ParticleEmitterDescriptor(this);
        IntMap<AbstractModule> idMap = new IntMap<>();
        for (AbstractModule module : emitter.modules) {
            module.setModuleGraph(emitterDescriptor);
            if (module instanceof ParticleModule) {
                emitterDescriptor.particleModule = (ParticleModule) module;
            }
            if (module instanceof EmitterModule) {
                emitterDescriptor.emitterModule = (EmitterModule) module;
            }
            idMap.put(module.getIndex(), module);
            // I cannot understand how this was working before. This is needed so that it can later reset requesters.
            emitterDescriptor.modules.add(module);
        }
        for (ConnectionData connection : emitter.connections) {
            final int moduleFromId = connection.moduleFrom;
            final int moduleToId = connection.moduleTo;
            final int slotFrom = connection.slotFrom;
            final int slotTo = connection.slotTo;
            AbstractModule moduleFrom = idMap.get(moduleFromId);
            AbstractModule moduleTo = idMap.get(moduleToId);
            if (moduleFrom == null) {
                throw new GdxRuntimeException("No module from found for id: " + moduleFromId);
            }
            if (moduleTo == null) {
                throw new GdxRuntimeException("No module to found for id: " + moduleToId);
            }
            emitterDescriptor.connectNode(moduleFrom, moduleTo, slotFrom, slotTo);
        }
        emitterModuleGraphs.add(emitterDescriptor);
    }
}
Also used : EmitterModule(com.talosvfx.talos.runtime.modules.EmitterModule) Json(com.badlogic.gdx.utils.Json) AbstractModule(com.talosvfx.talos.runtime.modules.AbstractModule) GdxRuntimeException(com.badlogic.gdx.utils.GdxRuntimeException) IntMap(com.badlogic.gdx.utils.IntMap) ExportData(com.talosvfx.talos.runtime.serialization.ExportData) ConnectionData(com.talosvfx.talos.runtime.serialization.ConnectionData) ParticleModule(com.talosvfx.talos.runtime.modules.ParticleModule)

Example 5 with AbstractModule

use of com.talosvfx.talos.runtime.modules.AbstractModule in project talos by rockbite.

the class TextureDropModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    final TalosAssetProvider projectAssetProvider = TalosMain.Instance().TalosProject().getProjectAssetProvider();
    defaultRegion = projectAssetProvider.findAsset("fire", TextureRegion.class);
    dropWidget = new TextureDropWidget<AbstractModule>(defaultRegion, getSkin());
}
Also used : TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) TalosAssetProvider(com.talosvfx.talos.editor.assets.TalosAssetProvider) AbstractModule(com.talosvfx.talos.runtime.modules.AbstractModule)

Aggregations

AbstractModule (com.talosvfx.talos.runtime.modules.AbstractModule)5 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)2 Texture (com.badlogic.gdx.graphics.Texture)1 Actor (com.badlogic.gdx.scenes.scene2d.Actor)1 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)1 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)1 GdxRuntimeException (com.badlogic.gdx.utils.GdxRuntimeException)1 IntMap (com.badlogic.gdx.utils.IntMap)1 Json (com.badlogic.gdx.utils.Json)1 ReflectionException (com.badlogic.gdx.utils.reflect.ReflectionException)1 TalosAssetProvider (com.talosvfx.talos.editor.assets.TalosAssetProvider)1 FloatInputWidget (com.talosvfx.talos.editor.widgets.FloatInputWidget)1 IntegerInputWidget (com.talosvfx.talos.editor.widgets.IntegerInputWidget)1 EmitterModule (com.talosvfx.talos.runtime.modules.EmitterModule)1 ParticleModule (com.talosvfx.talos.runtime.modules.ParticleModule)1 ConnectionData (com.talosvfx.talos.runtime.serialization.ConnectionData)1 ExportData (com.talosvfx.talos.runtime.serialization.ExportData)1