diff --git a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsLevelEditor.java b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsLevelEditor.java index c1f092e0..0d07196d 100644 --- a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsLevelEditor.java +++ b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsLevelEditor.java @@ -4,11 +4,13 @@ import java.util.List; import electrosphere.client.ui.components.InputMacros; import electrosphere.client.ui.components.VoxelSelectionPanel; +import electrosphere.client.ui.menu.WindowStrings; import electrosphere.client.ui.menu.WindowUtils; import electrosphere.engine.Globals; import electrosphere.engine.assetmanager.AssetDataStrings; import electrosphere.engine.loadingthreads.LoadingThread; import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType; +import electrosphere.engine.signal.Signal.SignalType; import electrosphere.entity.scene.SceneFile; import electrosphere.game.data.voxel.VoxelType; import electrosphere.renderer.ui.elements.Button; @@ -32,6 +34,11 @@ public class MenuGeneratorsLevelEditor { */ static final int DEFAULT_GRID_SIZE = 2; + /** + * The maximum selectable size for the grid + */ + static final int MAX_SELECTABLE_SIZE = 128; + /** * Creates the top level menu for the level editor * @return The actual element containing the menu @@ -187,12 +194,24 @@ public class MenuGeneratorsLevelEditor { // Div griddedRealmControls = Div.createCol(); { + Label gridSizeLabel = Label.createLabel("" + DEFAULT_GRID_SIZE); + + //add actual slider griddedRealmControls.addChild( InputMacros.createSliderInput("Realm Size", (ValueChangeEvent event) -> { - float value = event.getAsFloat() * GriddedDataCellManager.MAX_GRID_SIZE; + float value = event.getAsFloat() * MenuGeneratorsLevelEditor.MAX_SELECTABLE_SIZE; sceneFile.getRealmDescriptor().setGriddedRealmSize((int)value); + Globals.signalSystem.post(SignalType.UI_MODIFICATION,() -> { + gridSizeLabel.setText("" + (int)value); + Globals.signalSystem.post(SignalType.YOGA_APPLY, Globals.elementService.getWindow(WindowStrings.WINDOW_MENU_MAIN)); + }); }, DEFAULT_GRID_SIZE / (float)GriddedDataCellManager.MAX_GRID_SIZE) ); + + //add size label + griddedRealmControls.addChild(gridSizeLabel); + + //add voxel type selection sceneFile.getRealmDescriptor().setGriddedRealmSize(DEFAULT_GRID_SIZE); griddedRealmControls.addChild(VoxelSelectionPanel.createVoxelTypeSelectionPanel((VoxelType type) -> { sceneFile.getRealmDescriptor().setBaseVoxel(type.getId());