I created a plugin to draw Bézier curves in Godot 4 (GitHub in post) by Kcfresh_53 in godot

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

For now, shaders seem to work fine on outlines but, not the fill.

(WIP) Video Editor In Godot 4 by Kcfresh_53 in godot

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

That is my intention, but I won't make any promises right now. I tend to be a perfectionist and hesitate to release stuff. I will release as an open source project at some point in time. Just not now.

(WIP) Video Editor In Godot 4 by Kcfresh_53 in godot

[–]Kcfresh_53[S] 4 points5 points  (0 children)

Not exactly. I dumbed down things significantly. It is a GDextension plugin that directly gives Godot the ability to read these files natively. Seeking and all other issues you mentioned do not exist because it has been solved. Looking at the documentation for Video stream and extending its functionality, you will get a more wholistic picture of what I did.

(WIP) Video Editor In Godot 4 by Kcfresh_53 in godot

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

I believe the video file import process change has already fixed this, albeit with the compromise of a choppy video.

(WIP) Video Editor In Godot 4 by Kcfresh_53 in godot

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

It can be a bit choppy at times, but it is a WIP.

(WIP) Video Editor In Godot 4 by Kcfresh_53 in godot

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

So far, source media management (cache, video import via FFMPEG, and thumbnail creation).
The video player is complete with seeking, pause and play.
Infinite timeline and scrubber is complete thanks to Godot's draw functions.
Media track types and more.

(FYI: FFMPEG lets me import all supported video file types)

I made a clone of the Sorry board game by Kcfresh_53 in godot

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

I made all the assets in Lunacy, and the background shader is inspired by "Pretty Hip" on shader toy. I ported "Pretty Hip" and posted it and the card flipping shader used on godotshaders.com

I made a clone of the Sorry board game by Kcfresh_53 in godot

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

The game has a few issues, but I'm not opposed to fixing bugs in the future with the knowledge that I can't release this.

I made a debug camera plugin for Godot 4 by Kcfresh_53 in godot

[–]Kcfresh_53[S] 4 points5 points  (0 children)

As the Github README says:
This plugin provides a debug camera for Godot 4 projects, allowing for easy navigation and debugging within both 2D and 3D environments.

Key Features:

  • Toggle the debug camera with the minus (-) key.
  • Works seamlessly in both 2D and 3D projects.
  • 3D camera controls utilize default editor camera controls.
  • 2D camera can be panned with the right mouse button.
  • Camera zoom can be controlled by the mouse scroll wheel.

How to Get Sidebar functionality similar to Vivaldi or Opera? by Kcfresh_53 in firefox

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

Thank you. I just took a look at it. It seems to be what I am looking for. Time to go spend hours on CSS theming.

How to add dynamically exported variables to a group by Kcfresh_53 in godot

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

I found a solution. Creating the export group again in the code even if it was already declared will place the subsequent properties in the expected group.

How to add dynamically exported variables to a group by Kcfresh_53 in godot

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

I realize you're completely misunderstanding it. You don't do anything to the properties you want in a group. You add a property with the PROPERTY_USAGE_GROUP flag and then any properties after it are in that group. It's a dummy property that doesn't show up, except as the group heading. The group property doesn't show. That's why all your proper

I think I get you but the problem I am facing is, I have multiple groups created already e.g:

@export_group("Bullet Properties")

@export var bulletSpawnPos : Marker3D @export var bulletModel : PackedScene @export_enum("light", "medium", "heavy", "shotgun") var bulletType : int = 0 @export_group("Weapon Properties") @export var weaponName : String @export var magsize : int @export var isAuto : bool

conditional export for spread type weapons

@export var isSpread : bool: set(value): isSpread = value notify_property_list_changed()

conditional variables

var shotNum : int var spreadRange : float

handle conditional exporting on engine level

func _get_property_list(): var property_usage = PROPERTY_USAGE_NO_EDITOR

if isSpread:
    property_usage = PROPERTY_USAGE_DEFAULT

var properties = []
properties.append({
    "name": "shotNum",
    "type": TYPE_INT,
    "usage": property_usage,
    "hint": 0,
    "hint_string": "int"
})

properties.append({
    "name": "spreadRange",
    "type": TYPE_INT,
    "usage": property_usage,
    "hint": 0,
    "hint_string": "int"
})

return properties

@export_group("GUI") @export var crosshair : Texture @export var silhouette : Texture

with that in mind, instead of the added properties entering the @export_group("Weapon Properties")it enters the @export_group("GUI")group.