-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Allow Sprite's "Convert to Mesh2D", "Convert to Polygon2D" etc be callable in script. #2071
Comments
The functions right now are in editor code, they aren't actually in the core engine. That means that are in the "tools" build of the engine, but they aren't included in the release templates. Accordingly, this proposal is actually asking for new functions to be added to the engine rather than for functions to be simply exposed to scripting. One of the nice things about Godot is that the editor is built as a Godot app. This means that you can actually duplicate the editor functionality in GDScript without adding anything into the core engine! |
My bad, I just checked the relevant source code for this part and it is indeed in the editor, but I still think it wouldn't makes much sense for something that is doable in the editor but not via script to exist in the engine. |
Fair enough! :) I'm just trying to help focus the proposal. |
Out of curiosity, can't you use a few premade CollisionShapes for all country flags instead of generating them from the images? As far as I know, most country flags have the same size/aspect ratio. There are a few exceptions such as Switzerland, but these are usually well-known. |
@Calinou: Nope, quote from Wiki: The ratios most commonly used are 2:3, used by 85 of 195 sovereign states, followed by 1:2, used by 54 sovereign states. That's two different ratios, plus you get all the oddities like Switzerland, Albania and Nepal. |
@Calinou: Oh mate, you misunderstood, if it's flag I can probably write a func to make me custom sized Rect2D and deal with the exception myself, I'm talking about country borders here |
If we're going to add such conversion functionality in core, I think we should go for systematic approach for the code which deals with converting different types. Perhaps just like GDScript has Alternatively, come up with a convention that each class should define it's own The problem is the same as for having randomization methods in each of the core class, which also bloats the API... That's why I also previously proposed #1741 so that we can add more useful methods to |
The Shaggy Dev’s Video Titled, “Pixel-perfect collisions on sprites in Godot, seems relevant, so I’m posting it here. He shows how to generate collisions shapes from sprites in code during runtime. |
Describe the project you are working on
(Irrelevant) A game with a world map
Describe the problem or limitation you are having in your project
After Creating individuals sprite from a colored country sheet (on runtime), I'm unable to create Area2D that I need to be used for detecting mouse position since I can't create a CollisionShape2D at runtime from a sprite.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Expose the following functions to be callable in script:
Sprite: Convert to Mesh2D
Sprite: Convert to Polygon2D
Sprite: Create CollisionPolygon2D Sibling
Sprite: Create LightOccluder Sibling
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
var mesh = Sprite_ref.convert_to_mesh2d()
or something along that lightIf this enhancement will not be used often, can it be worked around with a few lines of script?
Pretty much impossible to worked around for some of them, like for example
Create CollisionPolygon2D Sibling
can only be worked around if you use custom vectorization algo on the sprite and then converts them to positional pointsIs there a reason why this should be core and not an add-on in the asset library?
The functions are already in the core engine, no reason they shouldn't be accessible via script
The text was updated successfully, but these errors were encountered: