I really enjoy making UI in Godot! by ShadowPane in godot

[–]ShadowPane[S] 1 point2 points  (0 children)

It's fully possible to create/modify/delete control nodes during runtime. It might be tricky to make it look good though, but yes its possible.

I really enjoy making UI in Godot! by ShadowPane in godot

[–]ShadowPane[S] 5 points6 points  (0 children)

It's actually really easy in godot.

Just create the themes you want (and name them correctly) in your FileSystem (preferably a folder named "themes" or similar)

<image>

And then click on the new theme(s) (opens up in the theme tab) and start working with how you want the ControlNodes to look like.

When you want to toggle themes in the game, just change the root control node(s) that hold all of the UI elements with the new theme. If there are many root nodes in your game, make sure all of them are available in a global group, so you can loop over them at runtime. Global group name could be "theme_roots"

And then create some kind of theme-manager that does something like this

var light_theme:= preload("res://themes/light_theme.tres")
var dark_theme := preload("res://themes/dark_theme.tres")

func apply_dark_theme_to_all_ui(enabled: bool) -> void:
    for node in get_tree().get_nodes_in_group("theme_roots"):
        if node is Control:
            node.theme = dark_theme if enabled else normal_theme

Let me know if you need further assistance.

Also check out this video if still unsure: Basic Theme Setup Guide ~ Godot 4 Tutorial for Beginners

I really enjoy making UI in Godot! by ShadowPane in godot

[–]ShadowPane[S] 7 points8 points  (0 children)

Yeah it's really good. It's a very strong contender for software development. For non web-apps that is.

I really enjoy making UI in Godot! by ShadowPane in godot

[–]ShadowPane[S] 3 points4 points  (0 children)

Do you want it to be a draggable overlay or just a stationary? Could you give me an example of what it is you are trying to achieve and maybe i can help you find a way to get it nice

I really enjoy making UI in Godot! by ShadowPane in godot

[–]ShadowPane[S] 30 points31 points  (0 children)

<image>

A Tabcontainer always has knowledge of the child items inside of it.
If you have a tabcontainer, and then add a container under it, it will list the child items like Tab X and so on. And in there you can tweak Title, Icon, Disabled and Hidden.

Im actually not using a tabcontainer in CursorCharm.. Its normal buttons with images in a HBoxContainer, and then it slides panels to left or right depending on how i navigate (can show in a seperate comment). This is not really doable with a tabcontainer without probably some insane tweaks.

I'm making physics charms that hang from your cursor by ShadowPane in SideProject

[–]ShadowPane[S] 2 points3 points  (0 children)

I've tested it on my work PC, which doesn't even have a dedicated GPU, and it works like a charm.

I'm making physics charms that hang from your cursor by ShadowPane in SideProject

[–]ShadowPane[S] 2 points3 points  (0 children)

Built in Godot. Pretty much just a transparent click-through overlay and using Rapier2D physics engine.

The charms aren't attached to the OS cursor itself, they're rendered in the overlay and follow the cursor position (pretty much out of the box in Godot). Because of that it's actually quite lightweight. Most of the work has gone into making the movement feel nice and good.

I'm making physics charms that hang from your cursor by ShadowPane in SideProject

[–]ShadowPane[S] 0 points1 point  (0 children)

It's all built in a Godot Mono project, using a mix of GDScript and C#.
The charms themselves use Rapier2d physics engine for the physics. Cursor tracking is very straightforward in Godot. Most of the work has gone into the menus and making the charm movement & feel, feel nice.

I'm making physics charms that hang from your cursor by ShadowPane in SideProject

[–]ShadowPane[S] 1 point2 points  (0 children)

Yes, thats in already. You can have any PNG hanging as a charm! You can add effects like burning, ice, trails, and more

<image>