Portponky / better-terrain

Terrain plugin for Godot 4
The Unlicense
433 stars 21 forks source link

Allow support for making layers transparent other than currently selected layer #68

Open mickeyordog opened 5 months ago

mickeyordog commented 5 months ago

This is a feature when placing tiles normally through the tilemap tab at the bottom, and it would be great if I could do this too in the terrain tab to prevent me from placing tiles on the incorrect layers.

As a side note, have you considered adding this plugin to the Godot asset library and adding a version number? Would make it much easier to manage updates. Thanks!

Portponky commented 5 months ago

Hi, a lot of research and experimentation went into figuring out how to use the layer highlight tool from the tilemap. The problem is that the functionality is not provided through the Godot API (it's an internal function), and it is hard coded to only be visible when the tilemap dock is open. I would love to have this feature (and to correctly sync the layer selection), but every method that was attempted has been very messy, and none of them have been glitch free. Ultimately, I wanted to provide a plugin that is going to be as reliable and glitch-free as possible, so none of these concepts made it back to the main branch. If a clean and safe way of doing this is found, I will happily implement or accept a patch.

The plugin is available in the asset library, available here: https://godotengine.org/asset-library/asset/1806 You can add it straight from the asset tab in the engine.

mickeyordog commented 5 months ago

Hello, thanks for the info and link.

While I have you here, is there any way you could make it so either 1. when I switch between tilemap nodes in the editor, or click off a tilemap and come back later to select the tilemap, the terrain tab automatically opens where I left off? Or 2. after I reopen the Terrain tab, it puts me where I left off.

The reason I mention this is because your plugin works great, but I spend a lot of time opening up the same grass or tree terrain when switching between different tilemaps, when in my opinion it should just stay selected.

By the way one more question, can you confirm that the scene data is the same whether I place tiles X Y and Z manually using the tilemap tab, vs automatically place the same tiles using terrains? Thanks!

Portponky commented 5 months ago

I don't manage how Godot shows and prioritises docks, so I cant make it pop one dock up over another. What do you mean make it open where you left off? Like select the same terrain in different tilemaps?

There is no difference between placing the tiles manually or using a terrain. The terrain is doing exactly the same thing as manual placement, just very quickly.

mickeyordog commented 5 months ago

Thanks for the info. Attached is a video of the necessary workflow when simply adding a few trees between different tilemaps. Every time I click on a different tilemap, I have to reselect the terrains tab, and I also have to reselect the tree tile. When I'm moving over several tilemaps, this takes quite a bit of time. Is there a way the terrains tab could stay open if we select another tilemap, or at least if we come back to the terrains tab later then it automatically selects the tree tile again? Screen Recording 2024-01-15 at 8.25.10 PM.zip

univeous commented 2 months ago

In Godot 4.3 dev6, Tilemap layers are now nodes. I wonder if this helps the situation.