guillaumechereau / goxel

Goxel: Free and Open Source 3D Voxel Editor
GNU General Public License v3.0
2.73k stars 219 forks source link

minetest .mts support #285

Closed Ygarr closed 6 months ago

Ygarr commented 1 year ago

Any options about support .mts schemes used in minetest?

pegvin commented 1 year ago

not really sure if you know this but upcoming release of Goxel2 will be supporting minecraft & minetest's schemes.

All thanks to @bztsrc

guillaumechereau commented 1 year ago

Is there any documentation on the format somewhere?

Ygarr commented 1 year ago

Is there any documentation on the format somewhere? https://dev.minetest.net/Minetest_Schematic_File_Format

guillaumechereau commented 1 year ago

OK the format looks simple enough. Do you have some example of files I could try?

bztsrc commented 1 year ago

Do you have some example of files I could try?

A quick websearch will reveal plenty...

For example you can find some in my MTS editor's repo. Also look around in the Minetest mods, lots of them ship such files, they are in each mods' schematics subdirectory (for example). And they are also attached to forum posts, like here.

Cheers, bzt

Ygarr commented 1 year ago

OK the format looks simple enough. Do you have some example of files I could try? Yes, of cource abkeep.zip

Ygarr commented 1 year ago

ranger_post_mts.zip

Ygarr commented 1 year ago

simple_house.zip

guillaumechereau commented 1 year ago

OK I got a basic import code working. All I need now is a mapping of all the minetest nodes id to a plain color. I am not familiar at all with minetest. Is there a source for that? Or even better a way to automatically generate it from the original textures?

Ygarr commented 1 year ago

Think this partially can help https://wiki.minetest.net/Games/Minetest_Game/Node But nodes id or itemstring only by url click. Perhaps can be useful such in-game mod but it uses inner engine and lua https://content.minetest.net/packages/Sokomine/handle_schematics/

guillaumechereau commented 1 year ago

OK, I guess the simpler for now is to create a 'minetest' palette manually using the wiki as a source. I'll try to do that. Assuming all the nodes are listed in the wiki it should be enough to get something decent when opening images for the default minetest game.

guillaumechereau commented 1 year ago

In the end the only proper way would be for goxel to support textured voxels, but that is way beyond the scope of the project.

guillaumechereau commented 1 year ago

OK actually the project minetestmapper provides a txt file with the colors for most minetest nodes, so I just used that. I get basic import working.

Screenshot from 2022-09-05 09-57-23

bztsrc commented 1 year ago

I guess the simpler for now is to create a 'minetest' palette manually using the wiki as a source.

actually the project minetestmapper provides a txt file with the colors

The problem is, these mappings are changing dynamically. Minetestmapper's color.txt doesn't work with the most popular Mineclone2 game at all for example, and it does not support mods registered nodes either.

https://gitlab.com/bztsrc/mtsedit may can help also if smth.

Yes, MTSEdit can generate a node mapping from an arbitrary MTS file using the GIMP Palette format. That's why in Goxel2 I've implemented node matching using .gpl files.

If someone is looking for real MTS support, I'd recommend Goxel2, as that supports Mineclone2 too and arbitrary Minetest Game mod nodes much better. Furthermore, you can select the desired mapping from the UI.

Cheers, bzt

ps: @guillaumechereau you are such a liar. You said you won't add new formats, and I have to wait until you implement a plugin system. Yet, here we are, you haven't added Model 3D, but despite what you said, now you're trying to add MTS...

guillaumechereau commented 1 year ago

@bztsrs, please not this topic again... I already explained: I only want support for well known formats. I don't play Minetest, but it seems big enough to deserve some support from Goxel. It is perfectly fine for you to make a fork of Goxel for your own need as long as you respect the license.

As for the topic at hand. I can add a name matching fallback to the current palette, so that if needed users could still create their own palettes to match the colors they want. I don't think much more is needed, as a proper minetest file editor would probably need to support textured voxels.

pegvin commented 1 year ago

ah calm down, @guillaumechereau i have no problem with you just pulling those files from goxel2's repo, bztsrc wrote them so he might need to sign the CLA, but the implementations are quite simple you don't need to mess so much.

tbh you can just pull all the changes you want i have no problem in that, but a plugin system would help alot!

Ygarr commented 1 year ago

Hope "grain by grain" without burden everyone would be "satiated".

bztsrc commented 1 year ago

bztsrc wrote them so he might need to sign the CLA

Which I won't. I've signed a CLA with my original M3D patch, @guillaumechereau doesn't gave a shit about that, so I definitely won't sign it for any MTS patches.

And if @guillaumechereau by any chance tries to use my M3D patch CLA for this, I'll consider this an act of theft and bad intentions.

Cheers, bzt

mgerhardy commented 1 year ago

enkimi has a mapping https://github.com/dougbinks/enkiMI and vengi, too: https://github.com/mgerhardy/vengi/blob/master/src/modules/voxelformat/private/MinecraftPaletteMap.cpp not sure though if this works for minetest, too - not much minecraft knowledge here to answer this.