-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scene publishing support #255
Conversation
da41d35
to
a30a52e
Compare
3d0a6df
to
5e0de04
Compare
5e0de04
to
a5a2d73
Compare
Thanks! I'll review this as soon as I can. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My apologies for the long delay in reviewing this. I think this will be a fantastic addition, but I have some notes:
- The attribution field and remixing/promotion checkboxes are missing.
- The json module is needed several times in the api.py file, so I think it might as well be imported at the top of the file.
- Why were the context pointers, etc. changed in environment_settings.py and operators.py? They seem unrelated.
- I talked to @j-conrad at one point and he mentioned that he had added the old update scene operator to the quick favorites menu and now it updates the published scene rather than the local scene in the room. I know this is because the idnames were updated to be more descriptive, but it might be nice if they could be tweaked slightly so this could be avoided.
- The warning for needing to be signed in should only be applied when updating the scene, not spawning objects, also it looks like my fix for allowing spawned objects hasn't been merged in (although, my fix may need to be tweaked because of the new requirements of sign in for publishing/updating scenes).
- I'm not sure the annotations you added are needed. Currently they're applied inconsistently and they don't provide any additional information in my opinion.
- I don't think the scene list should be cached and/or saved to the json prefs. This adds a lot of complexity just to allow a speed boost in getting scenes for an instance when reloaded, can easily be outdated, and can cause poll issues with the other operators in that section when switching instances (because the items are technically still there, just hidden). Unless it's really slow getting a long list of scenes (once the unneeded export scene is removed), I don't think the caching is worth it. Also, I think the scene list should be cleared when the session is closed.
- Underscores shouldn't be allowed in the scene name and a warning should be displayed. A warning should also be shown for an empty scene name.
- I don't think there's any way to update the screenshot/room name/attribution/remixing/promotion of an already published scene. It would be nice if there were a checkbox or something to allow this.
- The update scene confirmation doesn't provide very good user feedback in Blender 4.0 (the menu doesn't disappear after clicking on yes for me). I'm not sure if there's anything to do about this or not, but I thought I should mention it.
screenshot = context.scene.hubs_scene_debugger_scene_publish_props.screenshot | ||
screenshot_full = bpy.path.abspath( | ||
screenshot.filepath, library=screenshot.library) | ||
screenshot_norm = os.path.normpath(screenshot_full) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this has been needed for paths elsewhere, what's the reason for adding it here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly I don't remember, I might have run into some issues at the time. I don't think it harms.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really, I think I've might read about it at the time.
name="Id", | ||
description="Scene id", | ||
default="Scene id", | ||
get=lambda self: self["scene_id"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why were lambdas added for the get methods of the properties in this property group only?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it was simple enough to be a good lambda case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But doesn't it just do the same as the default? If so, why add it?
Thanks a lot for the review. I think I have addressed quite some important issues. for the rest:
Yes, that's important, but doing it right will require some time and I would rather not be delaying this feature anymore as I think it can be very useful. Maybe some good Samaritan would be willing to add support for that. It shouldn't be difficult, it's mostly a matter of adding a list with "creator" and "url" that get added to the attributions object in scene_data when publishing or updating. We would probably need two lists UI widgets, one inside "manage" and another one inside "Publish".
We are using the
This shouldn't happen anymore, right? I updated the name as you described above, hope that helps.
We can address this in a follow-up if it's a real problem, dealing with undoing that delay this release quite a lot.
Another good follow-up.
Related to my comment above.
Same, good follow up. |
You're welcome :)
Ah, okay. Thanks.
This was an issue with the idname for the new
Well, it introduces a number of corner cases, but sure, it can be updated in a followup PR. I guess, if it's alright with you, I'll address the remaining things in followup PRs after the release. |
Yep, taht sounds great! |
This PR adds support for scene publishing