Search in sources :

Example 1 with ResourceUrn

use of org.terasology.assets.ResourceUrn in project Terasology by MovingBlocks.

the class NUIManagerInternal method closeScreen.

@Override
public void closeScreen(UIScreenLayer screen) {
    if (screens.remove(screen)) {
        ResourceUrn screenUri = screenLookup.inverse().remove(screen);
        onCloseScreen(screen, screenUri, true);
    }
}
Also used : ResourceUrn(org.terasology.assets.ResourceUrn)

Example 2 with ResourceUrn

use of org.terasology.assets.ResourceUrn in project Terasology by MovingBlocks.

the class NUIManagerInternal method invalidate.

@Override
public void invalidate() {
    assetManager.getLoadedAssets(UIElement.class).forEach(UIElement::dispose);
    boolean hudVisible = isHUDVisible();
    if (hudVisible) {
        setHUDVisible(false);
    }
    Deque<ResourceUrn> reverseUrns = new LinkedList<>();
    Map<UIScreenLayer, ResourceUrn> inverseLookup = screenLookup.inverse();
    for (UIScreenLayer screen : screens) {
        screen.onClosed();
        reverseUrns.addFirst(inverseLookup.get(screen));
    }
    screens.clear();
    screenLookup.clear();
    reverseUrns.forEach(this::pushScreen);
    if (hudVisible) {
        setHUDVisible(true);
    }
}
Also used : UIElement(org.terasology.rendering.nui.asset.UIElement) ResourceUrn(org.terasology.assets.ResourceUrn) UIScreenLayer(org.terasology.rendering.nui.UIScreenLayer) LinkedList(java.util.LinkedList)

Example 3 with ResourceUrn

use of org.terasology.assets.ResourceUrn in project Terasology by MovingBlocks.

the class NUIManagerInternal method pushScreen.

@Override
public void pushScreen(UIScreenLayer screen) {
    if (!screen.isLowerLayerVisible()) {
        UIScreenLayer current = screens.peek();
        if (current != null) {
            current.onHide();
        }
    }
    screens.push(screen);
    screen.onOpened();
    String id = screen.getId();
    if (ResourceUrn.isValid(id)) {
        ResourceUrn uri = new ResourceUrn(id);
        screenLookup.put(uri, screen);
    }
}
Also used : UIScreenLayer(org.terasology.rendering.nui.UIScreenLayer) ResourceUrn(org.terasology.assets.ResourceUrn)

Example 4 with ResourceUrn

use of org.terasology.assets.ResourceUrn in project Terasology by MovingBlocks.

the class PreviewWorldScreen method genTexture.

private void genTexture() {
    int imgWidth = 384;
    int imgHeight = 384;
    ByteBuffer buffer = ByteBuffer.allocateDirect(imgWidth * imgHeight * Integer.BYTES);
    ByteBuffer[] data = new ByteBuffer[] { buffer };
    ResourceUrn uri = new ResourceUrn("engine:terrainPreview");
    TextureData texData = new TextureData(imgWidth, imgHeight, data, Texture.WrapMode.CLAMP, Texture.FilterMode.LINEAR);
    texture = Assets.generateAsset(uri, texData, Texture.class);
    previewImage = find("preview", UIImage.class);
    previewImage.setImage(texture);
}
Also used : TextureData(org.terasology.rendering.assets.texture.TextureData) ResourceUrn(org.terasology.assets.ResourceUrn) UIImage(org.terasology.rendering.nui.widgets.UIImage) ByteBuffer(java.nio.ByteBuffer) Texture(org.terasology.rendering.assets.texture.Texture)

Example 5 with ResourceUrn

use of org.terasology.assets.ResourceUrn in project Terasology by MovingBlocks.

the class PlayerSettingsScreen method initialise.

@Override
public void initialise() {
    setAnimationSystem(MenuAnimationSystems.createDefaultSwipeAnimation());
    storageServiceStatus = find("storageServiceStatus", UILabel.class);
    storageServiceAction = find("storageServiceAction", UIButton.class);
    updateStorageServiceStatus();
    nametext = find("playername", UIText.class);
    if (nametext != null) {
        nametext.setTooltipDelay(0);
        nametext.bindTooltipString(new ReadOnlyBinding<String>() {

            @Override
            public String get() {
                return validateScreen();
            }
        });
    }
    img = find("image", UIImage.class);
    if (img != null) {
        ResourceUrn uri = TextureUtil.getTextureUriForColor(Color.WHITE);
        Texture tex = Assets.get(uri, Texture.class).get();
        img.setImage(tex);
    }
    slider = find("tone", UISlider.class);
    if (slider != null) {
        slider.setIncrement(0.01f);
        // ensure a certain width
        Function<Object, String> constant = Functions.constant("  ");
        slider.setLabelFunction(constant);
    }
    heightSlider = find("height", UISlider.class);
    if (heightSlider != null) {
        heightSlider.setMinimum(1.5f);
        heightSlider.setIncrement(0.1f);
        heightSlider.setRange(0.5f);
        heightSlider.setPrecision(1);
    }
    eyeHeightSlider = find("eye-height", UISlider.class);
    if (eyeHeightSlider != null) {
        eyeHeightSlider.setMinimum(0.5f);
        eyeHeightSlider.setIncrement(0.1f);
        eyeHeightSlider.setRange(1f);
        eyeHeightSlider.setPrecision(1);
    }
    language = find("language", UIDropdownScrollable.class);
    if (language != null) {
        SimpleUri menuUri = new SimpleUri("engine:menu");
        TranslationProject menuProject = translationSystem.getProject(menuUri);
        List<Locale> locales = new ArrayList<>(menuProject.getAvailableLocales());
        for (Locale languageExcluded : languagesExcluded) {
            locales.remove(languageExcluded);
        }
        Collections.sort(locales, ((Object o1, Object o2) -> (o1.toString().compareTo(o2.toString()))));
        language.setOptions(Lists.newArrayList(locales));
        // Set maximum number of options visible for scrolling
        language.setVisibleOptions(5);
        language.setOptionRenderer(new LocaleRenderer(translationSystem));
    }
    WidgetUtil.trySubscribe(this, "close", button -> triggerBackAnimation());
    IdentityIOHelper identityIOHelper = new IdentityIOHelper(context);
    WidgetUtil.trySubscribe(this, "importIdentities", button -> identityIOHelper.importIdentities());
    WidgetUtil.trySubscribe(this, "exportIdentities", button -> identityIOHelper.exportIdentities());
    WidgetUtil.trySubscribe(this, "storageServiceAction", widget -> {
        if (storageService.getStatus() == StorageServiceWorkerStatus.LOGGED_IN) {
            ThreeButtonPopup logoutPopup = getManager().pushScreen(ThreeButtonPopup.ASSET_URI, ThreeButtonPopup.class);
            logoutPopup.setMessage(translationSystem.translate("${engine:menu#storage-service-log-out}"), translationSystem.translate("${engine:menu#storage-service-log-out-popup}"));
            logoutPopup.setLeftButton(translationSystem.translate("${engine:menu#dialog-yes}"), () -> storageService.logout(true));
            logoutPopup.setCenterButton(translationSystem.translate("${engine:menu#dialog-no}"), () -> storageService.logout(false));
            logoutPopup.setRightButton(translationSystem.translate("${engine:menu#dialog-cancel}"), () -> {
            });
        } else if (storageService.getStatus() == StorageServiceWorkerStatus.LOGGED_OUT) {
            getManager().pushScreen(StorageServiceLoginPopup.ASSET_URI, StorageServiceLoginPopup.class);
        }
    });
    UIButton okButton = find("ok", UIButton.class);
    if (okButton != null) {
        okButton.subscribe(button -> {
            savePlayerSettings();
            triggerBackAnimation();
        });
        okButton.bindEnabled(new ReadOnlyBinding<Boolean>() {

            @Override
            public Boolean get() {
                return Strings.isNullOrEmpty(validateScreen());
            }
        });
        okButton.setTooltipDelay(0);
        okButton.bindTooltipString(new ReadOnlyBinding<String>() {

            @Override
            public String get() {
                return validateScreen();
            }
        });
    }
}
Also used : UILabel(org.terasology.rendering.nui.widgets.UILabel) Locale(java.util.Locale) UISlider(org.terasology.rendering.nui.widgets.UISlider) UIDropdownScrollable(org.terasology.rendering.nui.widgets.UIDropdownScrollable) SimpleUri(org.terasology.engine.SimpleUri) ArrayList(java.util.ArrayList) Texture(org.terasology.rendering.assets.texture.Texture) StorageServiceLoginPopup(org.terasology.rendering.nui.layers.mainMenu.StorageServiceLoginPopup) TranslationProject(org.terasology.i18n.TranslationProject) UIButton(org.terasology.rendering.nui.widgets.UIButton) UIText(org.terasology.rendering.nui.widgets.UIText) UIImage(org.terasology.rendering.nui.widgets.UIImage) ResourceUrn(org.terasology.assets.ResourceUrn) ThreeButtonPopup(org.terasology.rendering.nui.layers.mainMenu.ThreeButtonPopup)

Aggregations

ResourceUrn (org.terasology.assets.ResourceUrn)65 Before (org.junit.Before)10 BlockFamilyDefinitionData (org.terasology.world.block.loader.BlockFamilyDefinitionData)10 AssetManager (org.terasology.assets.management.AssetManager)9 Prefab (org.terasology.entitySystem.prefab.Prefab)9 SymmetricBlockFamilyFactory (org.terasology.world.block.family.SymmetricBlockFamilyFactory)9 Command (org.terasology.logic.console.commandSystem.annotations.Command)8 EntityRef (org.terasology.entitySystem.entity.EntityRef)7 PrefabData (org.terasology.entitySystem.prefab.PrefabData)7 BlockUri (org.terasology.world.block.BlockUri)7 Name (org.terasology.naming.Name)6 Texture (org.terasology.rendering.assets.texture.Texture)6 BlockManagerImpl (org.terasology.world.block.internal.BlockManagerImpl)6 NullWorldAtlas (org.terasology.world.block.tiles.NullWorldAtlas)6 ByteBuffer (java.nio.ByteBuffer)5 Test (org.junit.Test)5 SimpleUri (org.terasology.engine.SimpleUri)5 IOException (java.io.IOException)4 PojoPrefab (org.terasology.entitySystem.prefab.internal.PojoPrefab)4 BiomeManager (org.terasology.world.biomes.BiomeManager)4