forum

detect skin elements inside subfolders

posted
Total Posts
13
This is a feature request. Feature requests can be voted up by supporters.
Current Priority: +10
Topic Starter
jemhuntr
This should be a tiny addition which would help in organizing cluttered skin folders. Everything will still be based on filenames, so there's no restriction about where to put certain elements.

Example scenario, if you didn't get what I mean. Consider this folder tree:
> Skin Folder Root
---> Folder A
------> hitcircleoverlay.png
------> lighting.png
---> Folder B
------> approachcircle.png
------> lighting.png
> approachcircle.png
> hitcircle.png

The elements that will be used will then be: approachcircle.png, hitcircle.png, hitcircleoverlay.png, lighting.png

All elements on the root will be prioritized. Then osu! runs through all subfolders alphabetically, replacing previous duplicate sprites with the newly detected ones (that's why the lighting.png from Folder B was used). Skin.ini should be strictly inside the root directly. There could also be a toggle for reading elements inside subfolders using skin.ini, which should be off by default.
XPJ38
Without considering the toggle: do not want. I personally use folders strictly for backups of old elements I do not use anymore but still want to keep. If your system was implemented, my old mod icons would be applied instead of the regular ones and I do not want that.

Plus, what if one would want "Hatsune Miku elements" to have priority over "Nexus style elements" (folder names are purely fiction)? Would that be impossible?

Considering the toggle: I think that would be another tickbox to implement that could be avoided, there are already too many of them in the options. But, well, it's just my opinion.
Luna
I think it would be really confusing to figure out which elements are actually being used when there's so many duplicates floating around in different subfolders.
zinckingeye
no. waste of disk space also for duplicate.

ok. which of this hitcircle will you prioritize assumib g root folder only contains subfolder?

root folder
--sub folder 1
--hitcircle.png
--sub folder 2
--hitcircle.png

---

when i see your folder structure, why you choose green lightning.png? although it is last to be scan by osu!
Topic Starter
jemhuntr

XPJ38 wrote:

Plus, what if one would want "Hatsune Miku elements" to have priority over "Nexus style elements" (folder names are purely fiction)? Would that be impossible?

Considering the toggle: I think that would be another tickbox to implement that could be avoided, there are already too many of them in the options. But, well, it's just my opinion.
> add integers on the folders' names. That should fix the hierarchy to your liking.
> this doesn't need an in-game toggle. This isn't something a normal user should be able to change. For example, if I group all elements into subfolders -- leaving no elements on the root folder -- being able to turn off this toggle will result in a default skin.

Luna wrote:

I think it would be really confusing to figure out which elements are actually being used when there's so many duplicates floating around in different subfolders.
This request was made in order to promote order inside skin folders, not to create multiple duplicates or variations of a single element and distribute it among different subfolders. And besides, you could always still dump all elements into the root folder if you're still confused about it.

zinckingeye wrote:

no. waste of disk space also for duplicate.

ok. which of this hitcircle will you prioritize assumib g root folder only contains subfolder?

root folder
--sub folder 1
--hitcircle.png
--sub folder 2
--hitcircle.png
> having duplicates is completely optional. In fact, I myself wouldn't use multiple elements. As I stated, this was meant purely for organizing the folder.
> Subfolder 2's hitcircle sprite will be used since it was the last occurence of hitcircle.png which osu! will detect.

zinckingeye wrote:

when i see your folder structure, why you choose green lightning.png? although it is last to be scan by osu!
exactly why it was used. osu! should run through elements inside subfolders alphabetically. It will first detect a lighting.png inside Folder A, but since there's also a lighting.png inside Folder B, osu! will replace the stored memory it had for lighting.png (which used to be the lighting.png inside Folder A) once it reaches Folder B.



again, I want you to think that this request was made in order to keep things tidy inside the skin folder. It's really a trouble scrolling through 1,695 files if you want to find specific elements to edit.
Luna
I still think that if you accidentally use duplicate elements in those folders, it will be much harder to figure out where (and what) those elements are.
Ctrl+F seems like an easier way to locate the desired elements to me.
zinckingeye

JeMhUnTeR wrote:

XPJ38 wrote:

Plus, what if one would want "Hatsune Miku elements" to have priority over "Nexus style elements" (folder names are purely fiction)? Would that be impossible?

Considering the toggle: I think that would be another tickbox to implement that could be avoided, there are already too many of them in the options. But, well, it's just my opinion.
> add integers on the folders' names. That should fix the hierarchy to your liking.
> this doesn't need an in-game toggle. This isn't something a normal user should be able to change. For example, if I group all elements into subfolders -- leaving no elements on the root folder -- being able to turn off this toggle will result in a default skin.

Luna wrote:

I think it would be really confusing to figure out which elements are actually being used when there's so many duplicates floating around in different subfolders.
This request was made in order to promote order inside skin folders, not to create multiple duplicates or variations of a single element and distribute it among different subfolders. And besides, you could always still dump all elements into the root folder if you're still confused about it.

zinckingeye wrote:

no. waste of disk space also for duplicate.

ok. which of this hitcircle will you prioritize assumib g root folder only contains subfolder?

root folder
--sub folder 1
--hitcircle.png
--sub folder 2
--hitcircle.png
> having duplicates is completely optional. In fact, I myself wouldn't use multiple elements. As I stated, this was meant purely for organizing the folder.
> Subfolder 2's hitcircle sprite will be used since it was the last occurence of hitcircle.png which osu! will detect.

zinckingeye wrote:

when i see your folder structure, why you choose green lightning.png? although it is last to be scan by osu!
exactly why it was used. osu! should run through elements inside subfolders alphabetically. It will first detect a lighting.png inside Folder A, but since there's also a lighting.png inside Folder B, osu! will replace the stored memory it had for lighting.png (which used to be the lighting.png inside Folder A) once it reaches Folder B.


so sort by directory stack level first, then folder sorting(last folder name will be automatically loaded at last scan)?

so posibly, if all elements that cannot be loaded then those elements will not be used for a longtime(or your lifetime rather), if this happens, what is the essence of those unloaded elements?


again, I want you to think that this request was made in order to keep things tidy inside the skin folder. It's really a trouble scrolling through 1,695 files if you want to find specific elements to edit.
I agree with you in terms of organizing, all of elements that i really don't use will be save as archive like this, but in case i need it, just copy from archive and paste to skin folder

Sample 1
skin folder(root)
->hitcircle.png (active element)
->approachcircle.png (active element too)
.
.
.
-->hitcircle archive(folder for my collection of hitcircle)
--->hitcircle1.png
--->hitcircle2.png
-->approarchcircle archive(folder for my collection of approarchcircle )
--->approarchcircle 1.png
--->approarchcircle 2.png

or this


sample 2
skin folder(root)
->hitcircle.png (active element)
->approachcircle.png (active element too)
.
.
.
-->skin v2.0 archive(folder for my previous version of my skin)
--->hitcircle1.png
--->approarchcircle 1.png
-->skin v1.0 archive(folder for my oldest version of my skin )
--->approarchcircle 2.png
--->hitcircle2.png

etc...

and sometimes, i use some wilcards like * to search elements containing a word.
Topic Starter
jemhuntr
^I don't really get your point on that last post, but if you think this feature would be a hindrance, it should always be toggle-able through the skin.ini.
pixeldesu
the idea with different subfolders is nice, but yes...maybe some users would get confused with (at the moment) 200 different files inside a folder splitted up to 3 more. Maybe it could be used for different play modes, or personal sorting, kind-of.

And for the people which reserve stuff in subfolders there could be some rule or a special folder-prefix to deselect a folder from getting picked by osu! to look-up for skin files, maybe something like a ".reserve"-folder or a "ReserveFolder = {FOLDERNAME}" rule inside the skin.ini

JeMhUnTeR wrote:

exactly why it was used. osu! should run through elements inside subfolders alphabetically. It will first detect a lighting.png inside Folder A, but since there's also a lighting.png inside Folder B, osu! will replace the stored memory it had for lighting.png (which used to be the lighting.png inside Folder A) once it reaches Folder B.
I don't think this would be a good idea..at least with the current skin selection. It would load all elements and if it finds a new one while checking through it, it will replace it, this would cause some bugs at a 90% chance: multiple textures would load at once(even if not selected) or the textures change while playing (imagine a beatmap playthrough with new hitcircle/overlays every combo or each new hit)
zinckingeye
^you right. and imagine if i have 1000 subfolders of same list of elements? it will load / unload all 1000elements but only the last one used. thats time consuming too.
chelly
I am personally against this idea if there's no toggle for it. I use subfolders within my skin folder to keep backups/old items/misc items that I sometimes use and this idea would make me go through my items to relabel them to fix their priorities.
Topic Starter
jemhuntr
what if we make use of .nomedia? if osu! finds a blank file named ".nomedia" inside a subfolder, it will skip that subfolder.

pixeldesu:
it's possible to not load the same element more than once. Everything depends on how the programmer codes it. You could store the images' paths to a string array first and overwrite a certain string if it detects a duplicate in the file. You don't load the image, you just peek at the files inside the subfolder. After running through all the files (including the elements on the root), that's the time when osu! loads all elements using the paths from the string array.

zinckingeye:
as I said above, it would not load your 1000 sprites. It will just rewrite a string inside an array 1000 times. Can you imagine how fast that would be?

PikaPika677:
if you've read the OP (and through the replies as well), you'll know that there would be a skin.ini toggle for it (which would be off by default, so it wouldn't mess up old skins). and if we make use of .nomedia, the issue of having a specific folder for storing backups or misc items would be solved. and you wouldn't have to relabel elements. all you need to relabel is the subfolder itself.


I'm pretty sure that this will be a useful feature for organizing skins. I also don't think there would be a huge fallback on skin loading and usability. If we have this feature, along with the skin.ini toggle and the .nomedia option, this feature should be flawless.
benguin
I could see this being useful. That way I could easily throw hitsound folders in there to change my desired hitsounds on a whim.
Please sign in to reply.

New reply