BramStoutProductions / MiEx

A modern Minecraft Exporter
BSD 3-Clause "New" or "Revised" License
61 stars 9 forks source link

(Suggestion) QoL #110

Open Not-None opened 2 months ago

Not-None commented 2 months ago

Working on a project where i need to use world painter for large scale terrain editing. Noticed this project and tried it out and i have a few suggestions, I have laid out the problems I've faced and suggested some ways they could be fixed

  1. For world painter to export to a map other applications cannot be using the map, this means i basically have to either A close the MiEx process or B open another map in MiEx. which is very annoying

Suggestion: have a way to unload the map or when changes aren't being made somehow not have the map loaded.

  1. In conjunction with the last problem having to go through closing the program and selecting the map over and over, selecting a map is very tedious and time consuming especially trying to select a map from a folder that is not the default, this could be much easier if the program used window's file browser so i can select from my quick access list.

Suggestion: Like i stated before use Microsoft's default file browser or when a map is selected set the path to the previous map as the default path,

  1. Some of the options in the UI while somewhat are a bit descriptive they don't tell you really how you're supposed to use them or what they actually do

Suggestion: Have a tooltip that appears after like 2 - 3 seconds of hovering over a value or button describe exactly what it does and how to use it. (side problem, i saw there was a LOD system, didn't know how it worked so i went looking through the wiki in the features and all the wiki does is tell me it exists not how to use it, i did end up figuring it out but it'd be nice if the wiki stated how your supposed to use tools as well - Edit: I've seen in the projects page that the wiki will be updated if this improves this issue then i retract this)

Other suggestions In general having preset settings would be very nice like active packs so you wouldn't have to redo them everytime. Having a dark them would be nice Alt + left mouse drag(or Ctrl + left mouse drag) to select other chunks so you can select different sections

BramStout commented 2 months ago

Thank you for the feedback!

Suggestion: have a way to unload the map or when changes aren't being made somehow not have the map loaded.

In order to keep memory usage down, MiEx constantly unloads chunks and the top-down preview images of the chunks when they aren't needed. This does mean that MiEx is constantly needing to reload chunks and having an application modify a world while MiEx is trying to read it will cause issues. So I had added in that it wouldn't open up a world if another program has already opened it.

I can definitely see it being annoying to constantly have to close and re-open MiEx if you just want to make a quick edit either in world painter or Minecraft. I've added in an item in the To-Do list to add in a "pause load" button which will pause the loading of the world and release it so that another program can edit the world. Currently, you could also load in another world to unload the world that you want to edit.

Another suggestion is the "Load from Export" button. If you have made an export, but you want to make a quick change in world painter or Minecraft and then re-export that same area, you can use this button to open up a previous version of the exported USD file. MiEx will then read the metadata from that file and use that to recover the export settings. It'll open up the relevant world, set up the export bounds, and recover which resource packs you had enabled. Then you can just immediately hit export again.

Suggestion: Like i stated before use Microsoft's default file browser or when a map is selected set the path to the previous map as the default path,

MiEx is meant to be as easy to run as possible and so I'm limiting myself to only use Java's standard library and it needs to work in all version of Java 8 and up. Unfortunately, this means that I can't use Window's native file browser and I'm stuck with using the current one, unless I'd implement one myself.

What I have done already for in the next version of MiEx, is a new world browser dialog. Here's a screenshot of it: image It looks at the registered launchers and shows all worlds for the different launchers. There's also the browse button which will open the file browser. This file browser will now also continue where you left off. I've also added an item to the To-Do list to allow you to specify save folders via an environment variable to add custom tabs to this.

Have a tooltip that appears after like 2 - 3 seconds of hovering over a value or button describe exactly what it does and how to use it.

The next version of MiEx will have some help information printed in the bottom of the window. The idea is that for more detailed explanations you can go to the Wiki.

side problem, i saw there was a LOD system, didn't know how it worked so i went looking through the wiki in the features and all the wiki does is tell me it exists not how to use it, i did end up figuring it out but it'd be nice if the wiki stated how your supposed to use tools as well - Edit: I've seen in the projects page that the wiki will be updated if this improves this issue then i retract this

The Wiki does indeed need some work. It's already a lot better than it originally was. The next version of MiEx is going to be a pretty big update (as you've probably seen in the projects page). When the next version comes out, I'm going to have to update the Wiki anyways with information about all of the new features and I'm planning on rewriting existing stuff as well. If you have any specific things that you think could do with more detailed explanation or explained differently, then please do share it!

In general having preset settings would be very nice like active packs so you wouldn't have to redo them everytime.

I've added this to the To-Do list. For now, if you want to set the active packs in order to re-export something, then you could also look into the "Load from Export" button that I described above.

Having a dark them would be nice

I'll have to look how easy this is with the UI library that I use, but I've added it to the To-Do list.

Alt + left mouse drag(or Ctrl + left mouse drag) to select other chunks so you can select different sections

This would be quite a lot of work to implement, since so much of the code assumes a single export region. I do have an alternative solution; What if you still make a big rectangular export region, but you can then turn off export for specific export chunks (just like how you can toggle whether specific export chunks are foreground chunks or not)? This is way easier to implement and should still give enough control over what gets exported and what not.

Not-None commented 2 months ago

What I have done already for in the next version of MiEx, is a new world browser dialog. Here's a screenshot of it:

That looks like it would definitely help alot!

This would be quite a lot of work to implement, since so much of the code assumes a single export region. I do have an alternative solution; What if you still make a big rectangular export region, but you can then turn off export for specific export chunks (just like how you can toggle whether specific export chunks are foreground chunks or not)? This is way easier to implement and should still give enough control over what gets exported and what not.

This would certainly solve the issue somewhat but i feel like it could be a bit confusing to people that are used to drag selecting in programs and using shift + select to add more to the selection and ctrl/alt select to remove it, but nevertheless this would make it easier to select the specific chunks you want to export, the user then just needs to be made aware that this is how it works

The rest of the things here pretty much solve my issues! I will comment on this thread if i find anything else that may improve the QoL side of this project!!