Search in sources :

Example 76 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project talos by rockbite.

the class PolylineModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    defaultRegion = new TextureRegion(new Texture(Gdx.files.internal("fire.png")));
    addInputSlot("offset", PolylineModule.OFFSET);
    addInputSlot("thickness", PolylineModule.THICKNESS);
    addInputSlot("color", PolylineModule.COLOR);
    addInputSlot("transparency", PolylineModule.TRANSPARENCY);
    addInputSlot("left tangent", PolylineModule.LEFT_TANGENT);
    addInputSlot("right tangent", PolylineModule.RIGHT_TANGENT);
    interpolationPoints = new IntegerInputWidget("interpolation points", getSkin());
    interpolationPoints.setValue(0);
    leftWrapper.add(interpolationPoints).left().expandX();
    interpolationPoints.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.setInterpolationPoints(interpolationPoints.getValue());
        }
    });
    dropWidget = new TextureDropWidget<AbstractModule>(defaultRegion, getSkin());
    rightWrapper.add(dropWidget).size(50).right().row();
    rightWrapper.add().growY().row();
    addOutputSlot("output", PolylineModule.OUTPUT);
}
Also used : TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) Actor(com.badlogic.gdx.scenes.scene2d.Actor) IntegerInputWidget(com.talosvfx.talos.editor.widgets.IntegerInputWidget) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) Texture(com.badlogic.gdx.graphics.Texture)

Example 77 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project talos by rockbite.

the class RandomRangeModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    addInputSlot("min", RandomRangeModule.MIN_INPUT);
    addInputSlot("max", RandomRangeModule.MAX_INPUT);
    addOutputSlot("result", 0);
    distribution = new VisCheckBox("distributed");
    rightWrapper.add(distribution).right().expandX().padRight(3).row();
    inputRange = new FloatRangeInputWidget("Min", "Max", getSkin());
    inputRange.setValue(1, 1);
    contentWrapper.add(inputRange).left().padTop(40).padLeft(4).expandX();
    leftWrapper.add(new Table()).expandY();
    rightWrapper.add(new Table()).expandY();
    inputRange.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            updateValues();
        }
    });
    distribution.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.setDistributed(distribution.isChecked());
        }
    });
}
Also used : FloatRangeInputWidget(com.talosvfx.talos.editor.widgets.FloatRangeInputWidget) Table(com.badlogic.gdx.scenes.scene2d.ui.Table) VisCheckBox(com.kotcrab.vis.ui.widget.VisCheckBox) Actor(com.badlogic.gdx.scenes.scene2d.Actor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)

Example 78 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project talos by rockbite.

the class RibbonModuleWrapper method configureSlots.

@Override
protected void configureSlots() {
    addInputSlot("main texture", RibbonModule.MAIN_REGION);
    addInputSlot("ribbon texture", RibbonModule.RIBBON_REGION);
    addInputSlot("thickness", RibbonModule.THICKNESS);
    addInputSlot("transparency", RibbonModule.TRANSPARENCY);
    addInputSlot("color", RibbonModule.COLOR);
    addOutputSlot("output", RibbonModule.OUTPUT);
    detailCount = new IntegerInputWidget("detail count:", getSkin());
    detailCount.setValue(20);
    leftWrapper.add(detailCount).left().expandX().row();
    detailCount.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.setDetailCount(detailCount.getValue());
        }
    });
    memoryDuration = new FloatInputWidget("memory:", getSkin());
    memoryDuration.setValue(1);
    leftWrapper.add(memoryDuration).left().expandX().padLeft(3);
    memoryDuration.setListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            module.setMemoryDuration(memoryDuration.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)

Example 79 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project TGMT by raeleus.

the class Core method openRoom.

public void openRoom(int index) {
    root.clear();
    var room = rooms.get(index);
    var table = new Table();
    table.pad(20);
    table.align(Align.top);
    var top = new ScrollPane(table, skin, "panel");
    top.setFadeScrollBars(false);
    top.setScrollingDisabled(true, false);
    top.addListener(new ScrollFocusListener(stage));
    for (var element : room.elements) {
        boolean show = true;
        for (var requiredKey : element.requiredKeys) {
            if (!playerKeys.contains(requiredKey, false)) {
                show = false;
                break;
            }
        }
        for (var bannedKey : element.bannedKeys) {
            if (playerKeys.contains(bannedKey, false)) {
                show = false;
                break;
            }
        }
        if (show) {
            if (element instanceof TextElement) {
                var textElement = (TextElement) element;
                var label = new TextraLabel(textElement.text, skin);
                label.setWrap(true);
                table.add(label).growX();
            }
            if (element instanceof ImageElement) {
                var imageElement = (ImageElement) element;
                var image = new Image(assetManager.get(imageElement.image, Texture.class));
                image.setScaling(Scaling.fit);
                image.setAlign(Align.left);
                var container = new AspectRatioContainer<>(image, image.getDrawable().getMinWidth(), image.getDrawable().getMinHeight());
                table.add(container).growX();
            } else if (element instanceof MusicElement) {
                var musicElement = (MusicElement) element;
                Music music = assetManager.get(musicElement.music);
                music.setLooping(true);
                music.play();
                if (Core.music != null && Core.music != music) {
                    Core.music.stop();
                }
                Core.music = music;
            } else if (element instanceof SoundElement) {
                var soundElement = (SoundElement) element;
                Sound sound = assetManager.get(soundElement.sound);
                sound.play();
            }
            table.row();
        }
    }
    var horizontalGroup = new HorizontalGroup();
    horizontalGroup.pad(20);
    horizontalGroup.wrap();
    horizontalGroup.rowAlign(Align.center);
    horizontalGroup.align(Align.center);
    var bottom = new ScrollPane(horizontalGroup, skin, "panel");
    bottom.setFadeScrollBars(false);
    bottom.addListener(new ScrollFocusListener(stage));
    for (var action : room.actions) {
        boolean hasKeys = true;
        for (var requiredKey : action.requiredKeys) {
            if (!playerKeys.contains(requiredKey, false)) {
                hasKeys = false;
                break;
            }
        }
        if (hasKeys)
            for (var bannedKey : action.bannedKeys) {
                if (playerKeys.contains(bannedKey, false)) {
                    hasKeys = false;
                    break;
                }
            }
        if (hasKeys) {
            var textButton = new TextButton(action.name, skin);
            textButton.addListener(new ChangeListener() {

                @Override
                public void changed(ChangeEvent event, Actor actor) {
                    if (action.sound != null) {
                        Sound sound = assetManager.get(action.sound);
                        sound.play();
                    }
                    playerKeys.removeAll(action.removeKeys, false);
                    if (action.removeAllKeys)
                        playerKeys.clear();
                    playerKeys.addAll(action.giveKeys);
                    openRoom(action.targetRoom);
                }
            });
            horizontalGroup.addActor(textButton);
        }
    }
    var splitPane = new SplitPane(top, bottom, true, skin);
    splitPane.setSplitAmount(.75f);
    root.add(splitPane).grow();
}
Also used : ScrollFocusListener(com.ray3k.stripe.ScrollFocusListener) Sound(com.badlogic.gdx.audio.Sound) Texture(com.badlogic.gdx.graphics.Texture) TextraLabel(com.github.tommyettinger.textra.TextraLabel) Music(com.badlogic.gdx.audio.Music) Actor(com.badlogic.gdx.scenes.scene2d.Actor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)

Example 80 with ChangeListener

use of com.badlogic.gdx.scenes.scene2d.utils.ChangeListener in project talos by rockbite.

the class SettingsDialog method initContent.

private void initContent() {
    add(new Label("Export Settings", getSkin())).left().expandX().pad(10);
    row();
    selectBox = new SelectBox<>(getSkin());
    String[] labels = new String[] { "Default", "Custom Script" };
    selectBox.setItems(labels);
    add(selectBox).width(400).pad(10);
    row();
    exportInlineContainer = new Table();
    add(exportInlineContainer);
    row();
    TextButton saveButton = new TextButton("Save", getSkin());
    add(saveButton).right().padRight(5).padTop(10);
    row();
    saveButton.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            save();
        }
    });
    selectBox.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            String selected = selectBox.getSelected();
            if (selected.equals("Default")) {
                exportInlineContainer.clear();
            } else {
                exportInlineContainer.clear();
                addScriptPathSetting(exportInlineContainer);
                pack();
                invalidate();
            }
        }
    });
}
Also used : Actor(com.badlogic.gdx.scenes.scene2d.Actor) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener)

Aggregations

ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)370 Actor (com.badlogic.gdx.scenes.scene2d.Actor)301 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)149 PopTableClickListener (com.ray3k.stripe.PopTableClickListener)129 SimActor (com.ray3k.skincomposer.dialog.scenecomposer.DialogSceneComposerModel.SimActor)126 InputListener (com.badlogic.gdx.scenes.scene2d.InputListener)51 Table (com.badlogic.gdx.scenes.scene2d.ui.Table)49 Stage (com.badlogic.gdx.scenes.scene2d.Stage)48 Label (com.badlogic.gdx.scenes.scene2d.ui.Label)44 Spinner (com.ray3k.stripe.Spinner)42 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)40 PopTable (com.ray3k.stripe.PopTable)39 TextButton (com.badlogic.gdx.scenes.scene2d.ui.TextButton)36 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)30 Color (com.badlogic.gdx.graphics.Color)29 StyleSelectorPopTable (com.ray3k.skincomposer.dialog.scenecomposer.StyleSelectorPopTable)28 ScreenViewport (com.badlogic.gdx.utils.viewport.ScreenViewport)24 Texture (com.badlogic.gdx.graphics.Texture)23 FileHandle (com.badlogic.gdx.files.FileHandle)20 Slider (com.badlogic.gdx.scenes.scene2d.ui.Slider)19