-
-
Notifications
You must be signed in to change notification settings - Fork 21
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
Update GraphicInterface.tscn to allow different layouts and themes #40
Labels
Milestone
Comments
mapedorr
added
improvement
New feature or request
epic
This issue is huge and will be split into smaller issues
labels
Mar 26, 2023
stickgrinder
pushed a commit
that referenced
this issue
Jan 8, 2024
* GUI templates and game commands Progress on refactoring the GI Progress on working with 9 verbs First draft of the Sierra GUI implementation Created the `g.gd` script to test an approach for accessing the commands defined for the graphic interface. Moved the Toolbar folder to the popochiu template folder since that component will be part of that GUI only. Added a function to "replace" the default cursor. This still needs improvements or a complete refactor. GUI template selection in Setup popup Refactorization of GUI template commands This fixes a dependency generated when having the commands of the current GUI in the g.gd singleton. Now each GUI has its own commands Resource class. Selecting the GUI template in the Setup popup is now working without bugs. Changed Popochiu GUI template name to BASS Usability improvements in 9 verb interface Sound settings script moved to BASS' toolbar folder History popup working again in BASS template upd: Lines in History to RichTextLabel so one can uses colors to highlight characters, commands and props. fea: Improved the way BASS handles mouse positioning to open/close the inventory and the settings. upd: Renamed scene and script filenames from Toolbar to SettingsBar. PopochiuPopup are now used by History, Save and Load and Sound settings. upd: Updated the Settings popup for the 9 verb interface. Now it allows to Save, Load, open the History, and update sound volumes. upd: New appearance for Sound volumes sliders. upd: Created Sound volumes component, so devs can use the sliders without having to use a popup. fea: Created Settings icon for settings button in 9 verb interface. upd: Created cursor for UI elements in 9 verb interface. fix: Opening the SaveAndLoad popup when saving no longer requires to pass a String as a parameter. upd: new style for 9 verb interface Now it get closer to the style used in Thimbleweed Park. fea: created icons for GUI templates in the Setup window. fea: added option to 9 verb settings popup to choose between classic and modern sentences. fea: created sprites and style for CheckButton. Sierra theme styles updated This is for PanelContainers and Buttons. Created inventory popup for Sierra GUI. Created USE cursor for Sierra GUI. Created top bar (hover text + score) panel for Sierra GUI. Fixed some bugs in the Sierra GUI. Working on making the inventory popup to work properly in Sierra GUI. SystemText working again. fix: showing the SystemText blocks interactions until players click anywhere to close the panel. upd: `G.display` changed to `G.show_system_text`. fea: basic inventory functionality working in Sierra GUI. Players can inspect items and select them for use. Once used, the item disappears from the inventory grid. First approach on having varios dialog text types Devs can choose between Above character, Portrait and Caption. The implementation is still hardcoded in various parts. Improvements will come soon. Fix: cursor behavior in Sierra inventory popup. fix: the error related to set_name.call_deferred is now solved. Working on fix for C singleton. Fallback for commands improved Code refactor and improvements for DialogText. upd: Now the now supports the three display modes (Above character, Portrait and Caption) by itself. fix: #79 . fix: Recognizing emotions in dialog lines for `E.queue` was not working. upd: Added support for avatars with emotions in PopochiuCharacter. upd: Portrait mode displays the avatar of the talking character (with its corresponding emotion). Improved CAPTION text style rendering. Fixes and minor improvements in DialogText rendering. Updated properties in scaling and layout for PopochiuInventoryItem. 9 verb inventory scroll working It takes into account the size of each slot, the size of the gaps between rows and the number of rows. This inventory panel adds items to the i_inventory based on what the scene tree has. NEXT >> Make this as a component that can work in a popup (i.e. in the Sierra inventory popup). Progress on 9 verb inventory functionality Can trigger commands on inventory items. Can use inventory items with popochiu clickable and other inventory items. fea: Make suggested command to work This applies for PopochiuClickable and PopochiuInventoryItem (which suggested verb will be always LOOK AT). fea: Try calling the left click version of a command before triggering its fallback (this applies to PopochiuClickable and PopochiuInventoryItem). NEXT >> [9 verb] Make inventory container to re-arrange after removing an inventory item. fea: can remove items in 9 verb inventory Removing the item also removes the slot it belongs to, which ensures the container will re-arrange correctly. A new slot is created after removing the item. NEXT >> Allow to replace an item (useful for combining items). fea: Adds method to replace an inventory item The new inventory item replaces the one that calls the `replace` method in the 9 verb interface. fea: Cursor doesn't leave the screen when the mouse exits the game window. upd: Adjust styles and layout of 9 verb interface upd: Inventory container component for Sierra GPI Uses the component created for the 9 verb interface in the Inventory popup of the Sierra template. upd: Create scroll buttons for Sierra inventory. upd: Work in Sierra inventory popup Now players can select an inventory item (with the INTERACT command active), close the popup, and use such item with clickables. Create Settings popup for Sierra template. Can change dialog style in Text options popup in Sierra template. Can change dialog text speed with a slider in Text options popup in Sierra template. Create Sound options popup. Create Sierra settings option to toggle auto-continue Update style of text continue icon for Sierra template. Create texture for QUIT button in Sierra template. Sierra template now has buttons to quit the game. Improvements in dialog_text component behavior and anchors setup. Add function to E for registering commands The 9 verb and Sierra commands' scripts now register their commands using the created method. PopochiuClickable and PopochiuInventoryItem now store the mouse button index used in the last click. Started to prepare everything to freeze the development of the 9 verb and Sierra templates. NEXT >> Cursor refactor or Verb coin template creation. Dialog menu working in 9 verb and Sierra templates Change G.freed to G.unblocked. DialogText no longer affects the Cursor. Now it triggers a signal so the graphic interface decides what to do while a dialog line is played. Create signal in D to know when a dialog starts. Refactors Dialog menu Now it works in 9 verb and Sierra templates. It is a bit easier to modify the appearance of the Dialog menu. Added more signals to PopochiuGraphicInterface in order to allow devs to customize how to handle more interactions. Remove G.continue_clicked Connect to G.dialog_line_finished in PopochiuCharacter.say() Create signal for listening when the system text is hidden. Behavior improvements in 9 verb GUI. Update in BASS GUI for setting the cursor Set "popochiu_gui_component" group to GI components in order to start building the UI tab in the dock. Rename methods Create InventoryGrid component This is the type of inventory used by 9 verbs and Sierra templates. upd: change `Cursor.set_cursor(int)` by `Cursor.show_cursor(String)`. Create inventory grid component for 9 Verb template Ready to start freezing development for PR creation. Updated command handling Both in PopochiuClickable and PopochiuInventoryItem. They will call `_on_click` if not custom method is present in the object. Method fallback should be manually called with `E.command_fallback()`. Added script_name property to PopochiuCommands class. This can be used to know which set of commands is the current one. BASS template working with new commands approach Fix various issues in the BASS template regarding cursor animations and behavior with PopochiuClickable and PopochiuInventoryItem. The reference to the current commands class is now in E. Updated InventoryBar so it can react to the I.item_replaced signal. Restore cursor property Both in PopochiuClickable and PopochiuInventory Item. Now variations for voices are defined by an array of AudioCueSound. Fix and update in Setup popup Now it shows a description of the selected template so devs can know a bit more about each one. If the selected template is the same that is currently active after closing the Setup popup, no action is performed. Add Popsy as a character to test a bug reported related to z-index. Add GUI cursor to BASS cursors. Improve GUI template change with confirmation popup Created templates for GUI commands types. Create script copies when selecting GUI template A copy of the template scripts for the graphic interface and the commands linked to it is created and placed in res://popochiu/graphic_interface. This makes sure devs can play with those scripts instead of modifying those in the addons folder. fea: Create a commands template script for the Empty template. First draft of UI tab working. It allows to add GUI components to the graphic interface scene. Buttons in the UI panel show enable when the component they represent is deleted from the graphic interface scene. Change to Godot 4.1.2 and removed game scenes Add buttons to open graphic interface script and commands script upd: use PopochiuGroup for base components and popups in UI tab. Change BASS template to SimpleClick template Fix "Start with it" for inventory items. fix: Devs can select items to start with in the Main tab. fix: Setting an inventory item as active with `add_as_active` makes the cursor take the appearance of the item. fix: Text color changes when character talks in the Caption dialog style. fix: PopochiuInventoryItem.add was not showing InventoryBar. fea: Added `is_pixel_art_game` property to ProjectSettings. upd: When selecting Pixel in Game type (setup popup) the default texture filter is set to TEXTURE_FILTER_NEAREST for props, characters and inventory items. Progress on improving code before merge Better positioning of avatars in Portrait dialog style Adressed all comments and sugestions made by @stickgrinder Fix scene validation on Editor2D. Created House, Goddiu, Popsy and Key for testing. Sierra template fixes Improve on copying the selected GUI template. Fix on opening Sierra popups. Warning for GUI template change when graphic_interface.tscn is open DialogText is no longer an editable children in 9_verb_gi.tscn and sierra_gi.tscn. Add method to print normal messages in PopochiuUtils. Add customization properties to InventoryGrid Devs can define the number of columns, the visible rows, the scene to use for slots, the horizontal and vertical gap sizes, if the UP and DOWN buttons should be visible, if the component will scroll with the mouse wheel. Update Sierra and 9 verb inventory grids so they use the new customization properties. upd: refactor in Setup popup script for better code reading. Post Alpha 5 rebase Add button to create popochiu popups This allows the creation of the scene and script for devs to make their own popups. The created popup is added to the Popups node in the graphic_interface scene. upd: Change name of Empty template to Custom. upd: Set groups for missing popochiu components and popups scenes. Add ignored files Create script to handle gui template operations Copy dependencies to res://game/graphic_interface based on GUI template selection (#139) * Progress on copying components when choosing GUI template * Separate GUI copy operations into methods Now the game is placed in `res://game` instead of `res://popochiu`. === Ready to work on moving components based on source scene dependencies === * Graphic interface dependencies point to game folder Scene dependencies in `res://game/graphic_interface/graphic_interface.tscn` now point to the corresponding scene of the component in the `res://game/graphic_interface/components` folder. When changing the GUI template, previous components are removed from the FileSystem. * GUI components determined by group instead of scene path Assign corresponding groups to all the components in the Sierra template. Add .png files as part of copying components from the addon to the graphic interface folder in the game. The .png files will need an extra validation to work properly. Same will apply to .theme files. * GUI template change copies everything Components and their scripts and dependencies are correclty moved to res://game/graphic_interface/ === Ready to test updating the dependencies in each .tscn file === * Change dependency source check Now dependencies are searched in the already copied files of res://game/graphic_interface instead of relying on the source files in res://addons/popochiu... * Fix untracked files * Copy components working Ready to make more tests. * Add progress window to GUI template change The copy process ignores resources that were already copied. Update reference to cursor PNG in SimpleClick template. * Fix on shared resources when copying components Fix double call on Setup close in Linux/MacOS Update minimum size of Setup popup. [fix] Use EditorInterface scale to update minimum and maximum size of Setup popup. Copy component when adding it from UI tab Now the dependencies of the selected component are copied to the graphic interface folder in order to make customization easier. UI tab now access EditorInterface directly instead of using the _main_dock variable. Improve scene instantiation for UI components Adding the component no longer includes adding dependencies to its script or other resources. The same applies for props created inside rooms using the importer. Should apply for other types, and also things created without the importer. [upd] Translate to English the Spanish comments in PopochiuObjectRow. [upd] Use EditorInterface singleton in PopochiuObjectRow. [fix] Removing a whole room from the Popochiu panel works again. Move CanvasEditorMenu for PopochiuClickable to its own scene A script is also created to remove extra logic from popochiu_plugin.gd. Use EditorInterface singleton instead of main_dock.ei Same for EditorFileSystem (main_dock.fs) Fix with progress animation when choosing Custom template [fix] Multiply issue about Setup popup min and max size based on editor scale. [fix] Double creation of progress panel. Improve GUI template selection Added a button to change the template inside the Setup popup instead of relying on closing it. Update behavior of Popochiu editor popups so they render better. Texture track no longer added when importing animations from Aseprite Update flow of fallback interaction for PopochiuInventoryItem.on_click() Sierra GI now selects the clicked inventory item by default when using the Interact command. SimpleClick GI selects an inventory item by default when clicked (same as the Sierra GI). Inventory item selected by default when clicked in 9 Verb template Fix on deselecting invisible nodes This was hapenning while editing the InteractionPolygon of PopochiuClickable objects. [upd] When a character is added to a room, now its instance is properly created passing the correct instance flag. [fix] Create room popup was not correctly updating the size of the RichTextLabel that shows the info about the files to create. [fea] Editing the InteractionPolygon of a PopochiuClickable also stores its position so the edited data is stored in the room. Change chain of interaction calls This applies to PopochiuClickable and PopochiuInventoryItem. Now the function called by the mouse input interaction is the public method (i.e. on_click()), and this calls the virtual version of the method (i.e. _on_click()). Command functions now should have the signature on_command_name() instead of _on_command_name(). [upd] Add regions to various scripts. Create SierraBar and SierraMenu SierraMenu was previously SierraTopMenu. SierraBar can be used to show the score of the game. [upd] Improve feedback of SierraInventory when a command is selected. [fea] Create public function in PopochiuGraphicInterface so one can get a component by its name. [upd] Assign class_names to each GUI template script. Improve behavior of Sierra inventory SierraMenu hides after opening the inventory or the settings popup. [upd] Hide QUIT button in SierraMenu. [upd] Blocking/Unblocking the graphic interface now also takes into account if is there a popup opened. [fea] **G** singleton now has a `gui` variable to store a reference to the graphic interface node. [fea] PopochiuRoom scenes can now be played from their row in the main tab. Better feedback for Sierra inventory slots [fea] Add "unselected" signal to PopochiuInventoryItem. [upd] Minor improvements in GUI components copy process popup. GUI components' theme now point to the _theme.tres file in the game All the components that have a theme are overriden so the theme used when copied to the graphic interface folder is the one in there. [upd] All components in Sierra GUI scene use the sierra_theme.tres. [upd] All components in 9 Verb GUI scene use the 9_verb_theme.tres. Create GUI template buttons in Setup from directories Now the buttons are not created in the SceneTree, but loaded based on the folders in res://addons/popochiu/engine/objects/graphic_interface/tempaltes [fea] Create resource to define the title, description and icon of each GUI template. Fix button selection for current template in Setup popup * Input field in CreationPopups allow pasting from clipboard [upd] Moved code that changes the font used in some nodes of CreationPopups and Setup popup to the signal "about_to_popup" instead of doing it in "_ready()" so the .tscn files do not store font data. [fea] PopochiuCharacter nodes in PopochiuRooms now also allow to edit/store the following Visibility properties: visible, modulate, self_modulate and light_mask. * Add character childs to PopochiuCharacter instance Nodes added to characters in room tree are also added to PopochiuCharacter instance [fix] Creating hotspot, walkable area and region was not assigned the created script to the node.
mapedorr
added a commit
that referenced
this issue
Feb 18, 2024
* GUI templates and game commands Progress on refactoring the GI Progress on working with 9 verbs First draft of the Sierra GUI implementation Created the `g.gd` script to test an approach for accessing the commands defined for the graphic interface. Moved the Toolbar folder to the popochiu template folder since that component will be part of that GUI only. Added a function to "replace" the default cursor. This still needs improvements or a complete refactor. GUI template selection in Setup popup Refactorization of GUI template commands This fixes a dependency generated when having the commands of the current GUI in the g.gd singleton. Now each GUI has its own commands Resource class. Selecting the GUI template in the Setup popup is now working without bugs. Changed Popochiu GUI template name to BASS Usability improvements in 9 verb interface Sound settings script moved to BASS' toolbar folder History popup working again in BASS template upd: Lines in History to RichTextLabel so one can uses colors to highlight characters, commands and props. fea: Improved the way BASS handles mouse positioning to open/close the inventory and the settings. upd: Renamed scene and script filenames from Toolbar to SettingsBar. PopochiuPopup are now used by History, Save and Load and Sound settings. upd: Updated the Settings popup for the 9 verb interface. Now it allows to Save, Load, open the History, and update sound volumes. upd: New appearance for Sound volumes sliders. upd: Created Sound volumes component, so devs can use the sliders without having to use a popup. fea: Created Settings icon for settings button in 9 verb interface. upd: Created cursor for UI elements in 9 verb interface. fix: Opening the SaveAndLoad popup when saving no longer requires to pass a String as a parameter. upd: new style for 9 verb interface Now it get closer to the style used in Thimbleweed Park. fea: created icons for GUI templates in the Setup window. fea: added option to 9 verb settings popup to choose between classic and modern sentences. fea: created sprites and style for CheckButton. Sierra theme styles updated This is for PanelContainers and Buttons. Created inventory popup for Sierra GUI. Created USE cursor for Sierra GUI. Created top bar (hover text + score) panel for Sierra GUI. Fixed some bugs in the Sierra GUI. Working on making the inventory popup to work properly in Sierra GUI. SystemText working again. fix: showing the SystemText blocks interactions until players click anywhere to close the panel. upd: `G.display` changed to `G.show_system_text`. fea: basic inventory functionality working in Sierra GUI. Players can inspect items and select them for use. Once used, the item disappears from the inventory grid. First approach on having varios dialog text types Devs can choose between Above character, Portrait and Caption. The implementation is still hardcoded in various parts. Improvements will come soon. Fix: cursor behavior in Sierra inventory popup. fix: the error related to set_name.call_deferred is now solved. Working on fix for C singleton. Fallback for commands improved Code refactor and improvements for DialogText. upd: Now the now supports the three display modes (Above character, Portrait and Caption) by itself. fix: #79 . fix: Recognizing emotions in dialog lines for `E.queue` was not working. upd: Added support for avatars with emotions in PopochiuCharacter. upd: Portrait mode displays the avatar of the talking character (with its corresponding emotion). Improved CAPTION text style rendering. Fixes and minor improvements in DialogText rendering. Updated properties in scaling and layout for PopochiuInventoryItem. 9 verb inventory scroll working It takes into account the size of each slot, the size of the gaps between rows and the number of rows. This inventory panel adds items to the i_inventory based on what the scene tree has. NEXT >> Make this as a component that can work in a popup (i.e. in the Sierra inventory popup). Progress on 9 verb inventory functionality Can trigger commands on inventory items. Can use inventory items with popochiu clickable and other inventory items. fea: Make suggested command to work This applies for PopochiuClickable and PopochiuInventoryItem (which suggested verb will be always LOOK AT). fea: Try calling the left click version of a command before triggering its fallback (this applies to PopochiuClickable and PopochiuInventoryItem). NEXT >> [9 verb] Make inventory container to re-arrange after removing an inventory item. fea: can remove items in 9 verb inventory Removing the item also removes the slot it belongs to, which ensures the container will re-arrange correctly. A new slot is created after removing the item. NEXT >> Allow to replace an item (useful for combining items). fea: Adds method to replace an inventory item The new inventory item replaces the one that calls the `replace` method in the 9 verb interface. fea: Cursor doesn't leave the screen when the mouse exits the game window. upd: Adjust styles and layout of 9 verb interface upd: Inventory container component for Sierra GPI Uses the component created for the 9 verb interface in the Inventory popup of the Sierra template. upd: Create scroll buttons for Sierra inventory. upd: Work in Sierra inventory popup Now players can select an inventory item (with the INTERACT command active), close the popup, and use such item with clickables. Create Settings popup for Sierra template. Can change dialog style in Text options popup in Sierra template. Can change dialog text speed with a slider in Text options popup in Sierra template. Create Sound options popup. Create Sierra settings option to toggle auto-continue Update style of text continue icon for Sierra template. Create texture for QUIT button in Sierra template. Sierra template now has buttons to quit the game. Improvements in dialog_text component behavior and anchors setup. Add function to E for registering commands The 9 verb and Sierra commands' scripts now register their commands using the created method. PopochiuClickable and PopochiuInventoryItem now store the mouse button index used in the last click. Started to prepare everything to freeze the development of the 9 verb and Sierra templates. NEXT >> Cursor refactor or Verb coin template creation. Dialog menu working in 9 verb and Sierra templates Change G.freed to G.unblocked. DialogText no longer affects the Cursor. Now it triggers a signal so the graphic interface decides what to do while a dialog line is played. Create signal in D to know when a dialog starts. Refactors Dialog menu Now it works in 9 verb and Sierra templates. It is a bit easier to modify the appearance of the Dialog menu. Added more signals to PopochiuGraphicInterface in order to allow devs to customize how to handle more interactions. Remove G.continue_clicked Connect to G.dialog_line_finished in PopochiuCharacter.say() Create signal for listening when the system text is hidden. Behavior improvements in 9 verb GUI. Update in BASS GUI for setting the cursor Set "popochiu_gui_component" group to GI components in order to start building the UI tab in the dock. Rename methods Create InventoryGrid component This is the type of inventory used by 9 verbs and Sierra templates. upd: change `Cursor.set_cursor(int)` by `Cursor.show_cursor(String)`. Create inventory grid component for 9 Verb template Ready to start freezing development for PR creation. Updated command handling Both in PopochiuClickable and PopochiuInventoryItem. They will call `_on_click` if not custom method is present in the object. Method fallback should be manually called with `E.command_fallback()`. Added script_name property to PopochiuCommands class. This can be used to know which set of commands is the current one. BASS template working with new commands approach Fix various issues in the BASS template regarding cursor animations and behavior with PopochiuClickable and PopochiuInventoryItem. The reference to the current commands class is now in E. Updated InventoryBar so it can react to the I.item_replaced signal. Restore cursor property Both in PopochiuClickable and PopochiuInventory Item. Now variations for voices are defined by an array of AudioCueSound. Fix and update in Setup popup Now it shows a description of the selected template so devs can know a bit more about each one. If the selected template is the same that is currently active after closing the Setup popup, no action is performed. Add Popsy as a character to test a bug reported related to z-index. Add GUI cursor to BASS cursors. Improve GUI template change with confirmation popup Created templates for GUI commands types. Create script copies when selecting GUI template A copy of the template scripts for the graphic interface and the commands linked to it is created and placed in res://popochiu/graphic_interface. This makes sure devs can play with those scripts instead of modifying those in the addons folder. fea: Create a commands template script for the Empty template. First draft of UI tab working. It allows to add GUI components to the graphic interface scene. Buttons in the UI panel show enable when the component they represent is deleted from the graphic interface scene. Change to Godot 4.1.2 and removed game scenes Add buttons to open graphic interface script and commands script upd: use PopochiuGroup for base components and popups in UI tab. Change BASS template to SimpleClick template Fix "Start with it" for inventory items. fix: Devs can select items to start with in the Main tab. fix: Setting an inventory item as active with `add_as_active` makes the cursor take the appearance of the item. fix: Text color changes when character talks in the Caption dialog style. fix: PopochiuInventoryItem.add was not showing InventoryBar. fea: Added `is_pixel_art_game` property to ProjectSettings. upd: When selecting Pixel in Game type (setup popup) the default texture filter is set to TEXTURE_FILTER_NEAREST for props, characters and inventory items. Progress on improving code before merge Better positioning of avatars in Portrait dialog style Adressed all comments and sugestions made by @stickgrinder Fix scene validation on Editor2D. Created House, Goddiu, Popsy and Key for testing. Sierra template fixes Improve on copying the selected GUI template. Fix on opening Sierra popups. Warning for GUI template change when graphic_interface.tscn is open DialogText is no longer an editable children in 9_verb_gi.tscn and sierra_gi.tscn. Add method to print normal messages in PopochiuUtils. Add customization properties to InventoryGrid Devs can define the number of columns, the visible rows, the scene to use for slots, the horizontal and vertical gap sizes, if the UP and DOWN buttons should be visible, if the component will scroll with the mouse wheel. Update Sierra and 9 verb inventory grids so they use the new customization properties. upd: refactor in Setup popup script for better code reading. Post Alpha 5 rebase Add button to create popochiu popups This allows the creation of the scene and script for devs to make their own popups. The created popup is added to the Popups node in the graphic_interface scene. upd: Change name of Empty template to Custom. upd: Set groups for missing popochiu components and popups scenes. Add ignored files Create script to handle gui template operations Copy dependencies to res://game/graphic_interface based on GUI template selection (#139) * Progress on copying components when choosing GUI template * Separate GUI copy operations into methods Now the game is placed in `res://game` instead of `res://popochiu`. === Ready to work on moving components based on source scene dependencies === * Graphic interface dependencies point to game folder Scene dependencies in `res://game/graphic_interface/graphic_interface.tscn` now point to the corresponding scene of the component in the `res://game/graphic_interface/components` folder. When changing the GUI template, previous components are removed from the FileSystem. * GUI components determined by group instead of scene path Assign corresponding groups to all the components in the Sierra template. Add .png files as part of copying components from the addon to the graphic interface folder in the game. The .png files will need an extra validation to work properly. Same will apply to .theme files. * GUI template change copies everything Components and their scripts and dependencies are correclty moved to res://game/graphic_interface/ === Ready to test updating the dependencies in each .tscn file === * Change dependency source check Now dependencies are searched in the already copied files of res://game/graphic_interface instead of relying on the source files in res://addons/popochiu... * Fix untracked files * Copy components working Ready to make more tests. * Add progress window to GUI template change The copy process ignores resources that were already copied. Update reference to cursor PNG in SimpleClick template. * Fix on shared resources when copying components Fix double call on Setup close in Linux/MacOS Update minimum size of Setup popup. [fix] Use EditorInterface scale to update minimum and maximum size of Setup popup. Copy component when adding it from UI tab Now the dependencies of the selected component are copied to the graphic interface folder in order to make customization easier. UI tab now access EditorInterface directly instead of using the _main_dock variable. Improve scene instantiation for UI components Adding the component no longer includes adding dependencies to its script or other resources. The same applies for props created inside rooms using the importer. Should apply for other types, and also things created without the importer. [upd] Translate to English the Spanish comments in PopochiuObjectRow. [upd] Use EditorInterface singleton in PopochiuObjectRow. [fix] Removing a whole room from the Popochiu panel works again. Move CanvasEditorMenu for PopochiuClickable to its own scene A script is also created to remove extra logic from popochiu_plugin.gd. Use EditorInterface singleton instead of main_dock.ei Same for EditorFileSystem (main_dock.fs) Fix with progress animation when choosing Custom template [fix] Multiply issue about Setup popup min and max size based on editor scale. [fix] Double creation of progress panel. Improve GUI template selection Added a button to change the template inside the Setup popup instead of relying on closing it. Update behavior of Popochiu editor popups so they render better. Texture track no longer added when importing animations from Aseprite Update flow of fallback interaction for PopochiuInventoryItem.on_click() Sierra GI now selects the clicked inventory item by default when using the Interact command. SimpleClick GI selects an inventory item by default when clicked (same as the Sierra GI). Inventory item selected by default when clicked in 9 Verb template Fix on deselecting invisible nodes This was hapenning while editing the InteractionPolygon of PopochiuClickable objects. [upd] When a character is added to a room, now its instance is properly created passing the correct instance flag. [fix] Create room popup was not correctly updating the size of the RichTextLabel that shows the info about the files to create. [fea] Editing the InteractionPolygon of a PopochiuClickable also stores its position so the edited data is stored in the room. Change chain of interaction calls This applies to PopochiuClickable and PopochiuInventoryItem. Now the function called by the mouse input interaction is the public method (i.e. on_click()), and this calls the virtual version of the method (i.e. _on_click()). Command functions now should have the signature on_command_name() instead of _on_command_name(). [upd] Add regions to various scripts. Create SierraBar and SierraMenu SierraMenu was previously SierraTopMenu. SierraBar can be used to show the score of the game. [upd] Improve feedback of SierraInventory when a command is selected. [fea] Create public function in PopochiuGraphicInterface so one can get a component by its name. [upd] Assign class_names to each GUI template script. Improve behavior of Sierra inventory SierraMenu hides after opening the inventory or the settings popup. [upd] Hide QUIT button in SierraMenu. [upd] Blocking/Unblocking the graphic interface now also takes into account if is there a popup opened. [fea] **G** singleton now has a `gui` variable to store a reference to the graphic interface node. [fea] PopochiuRoom scenes can now be played from their row in the main tab. Better feedback for Sierra inventory slots [fea] Add "unselected" signal to PopochiuInventoryItem. [upd] Minor improvements in GUI components copy process popup. GUI components' theme now point to the _theme.tres file in the game All the components that have a theme are overriden so the theme used when copied to the graphic interface folder is the one in there. [upd] All components in Sierra GUI scene use the sierra_theme.tres. [upd] All components in 9 Verb GUI scene use the 9_verb_theme.tres. Create GUI template buttons in Setup from directories Now the buttons are not created in the SceneTree, but loaded based on the folders in res://addons/popochiu/engine/objects/graphic_interface/tempaltes [fea] Create resource to define the title, description and icon of each GUI template. Fix button selection for current template in Setup popup * Input field in CreationPopups allow pasting from clipboard [upd] Moved code that changes the font used in some nodes of CreationPopups and Setup popup to the signal "about_to_popup" instead of doing it in "_ready()" so the .tscn files do not store font data. [fea] PopochiuCharacter nodes in PopochiuRooms now also allow to edit/store the following Visibility properties: visible, modulate, self_modulate and light_mask. * Add character childs to PopochiuCharacter instance Nodes added to characters in room tree are also added to PopochiuCharacter instance [fix] Creating hotspot, walkable area and region was not assigned the created script to the node.
stickgrinder
pushed a commit
that referenced
this issue
Feb 25, 2024
* GUI templates and game commands Progress on refactoring the GI Progress on working with 9 verbs First draft of the Sierra GUI implementation Created the `g.gd` script to test an approach for accessing the commands defined for the graphic interface. Moved the Toolbar folder to the popochiu template folder since that component will be part of that GUI only. Added a function to "replace" the default cursor. This still needs improvements or a complete refactor. GUI template selection in Setup popup Refactorization of GUI template commands This fixes a dependency generated when having the commands of the current GUI in the g.gd singleton. Now each GUI has its own commands Resource class. Selecting the GUI template in the Setup popup is now working without bugs. Changed Popochiu GUI template name to BASS Usability improvements in 9 verb interface Sound settings script moved to BASS' toolbar folder History popup working again in BASS template upd: Lines in History to RichTextLabel so one can uses colors to highlight characters, commands and props. fea: Improved the way BASS handles mouse positioning to open/close the inventory and the settings. upd: Renamed scene and script filenames from Toolbar to SettingsBar. PopochiuPopup are now used by History, Save and Load and Sound settings. upd: Updated the Settings popup for the 9 verb interface. Now it allows to Save, Load, open the History, and update sound volumes. upd: New appearance for Sound volumes sliders. upd: Created Sound volumes component, so devs can use the sliders without having to use a popup. fea: Created Settings icon for settings button in 9 verb interface. upd: Created cursor for UI elements in 9 verb interface. fix: Opening the SaveAndLoad popup when saving no longer requires to pass a String as a parameter. upd: new style for 9 verb interface Now it get closer to the style used in Thimbleweed Park. fea: created icons for GUI templates in the Setup window. fea: added option to 9 verb settings popup to choose between classic and modern sentences. fea: created sprites and style for CheckButton. Sierra theme styles updated This is for PanelContainers and Buttons. Created inventory popup for Sierra GUI. Created USE cursor for Sierra GUI. Created top bar (hover text + score) panel for Sierra GUI. Fixed some bugs in the Sierra GUI. Working on making the inventory popup to work properly in Sierra GUI. SystemText working again. fix: showing the SystemText blocks interactions until players click anywhere to close the panel. upd: `G.display` changed to `G.show_system_text`. fea: basic inventory functionality working in Sierra GUI. Players can inspect items and select them for use. Once used, the item disappears from the inventory grid. First approach on having varios dialog text types Devs can choose between Above character, Portrait and Caption. The implementation is still hardcoded in various parts. Improvements will come soon. Fix: cursor behavior in Sierra inventory popup. fix: the error related to set_name.call_deferred is now solved. Working on fix for C singleton. Fallback for commands improved Code refactor and improvements for DialogText. upd: Now the now supports the three display modes (Above character, Portrait and Caption) by itself. fix: #79 . fix: Recognizing emotions in dialog lines for `E.queue` was not working. upd: Added support for avatars with emotions in PopochiuCharacter. upd: Portrait mode displays the avatar of the talking character (with its corresponding emotion). Improved CAPTION text style rendering. Fixes and minor improvements in DialogText rendering. Updated properties in scaling and layout for PopochiuInventoryItem. 9 verb inventory scroll working It takes into account the size of each slot, the size of the gaps between rows and the number of rows. This inventory panel adds items to the i_inventory based on what the scene tree has. NEXT >> Make this as a component that can work in a popup (i.e. in the Sierra inventory popup). Progress on 9 verb inventory functionality Can trigger commands on inventory items. Can use inventory items with popochiu clickable and other inventory items. fea: Make suggested command to work This applies for PopochiuClickable and PopochiuInventoryItem (which suggested verb will be always LOOK AT). fea: Try calling the left click version of a command before triggering its fallback (this applies to PopochiuClickable and PopochiuInventoryItem). NEXT >> [9 verb] Make inventory container to re-arrange after removing an inventory item. fea: can remove items in 9 verb inventory Removing the item also removes the slot it belongs to, which ensures the container will re-arrange correctly. A new slot is created after removing the item. NEXT >> Allow to replace an item (useful for combining items). fea: Adds method to replace an inventory item The new inventory item replaces the one that calls the `replace` method in the 9 verb interface. fea: Cursor doesn't leave the screen when the mouse exits the game window. upd: Adjust styles and layout of 9 verb interface upd: Inventory container component for Sierra GPI Uses the component created for the 9 verb interface in the Inventory popup of the Sierra template. upd: Create scroll buttons for Sierra inventory. upd: Work in Sierra inventory popup Now players can select an inventory item (with the INTERACT command active), close the popup, and use such item with clickables. Create Settings popup for Sierra template. Can change dialog style in Text options popup in Sierra template. Can change dialog text speed with a slider in Text options popup in Sierra template. Create Sound options popup. Create Sierra settings option to toggle auto-continue Update style of text continue icon for Sierra template. Create texture for QUIT button in Sierra template. Sierra template now has buttons to quit the game. Improvements in dialog_text component behavior and anchors setup. Add function to E for registering commands The 9 verb and Sierra commands' scripts now register their commands using the created method. PopochiuClickable and PopochiuInventoryItem now store the mouse button index used in the last click. Started to prepare everything to freeze the development of the 9 verb and Sierra templates. NEXT >> Cursor refactor or Verb coin template creation. Dialog menu working in 9 verb and Sierra templates Change G.freed to G.unblocked. DialogText no longer affects the Cursor. Now it triggers a signal so the graphic interface decides what to do while a dialog line is played. Create signal in D to know when a dialog starts. Refactors Dialog menu Now it works in 9 verb and Sierra templates. It is a bit easier to modify the appearance of the Dialog menu. Added more signals to PopochiuGraphicInterface in order to allow devs to customize how to handle more interactions. Remove G.continue_clicked Connect to G.dialog_line_finished in PopochiuCharacter.say() Create signal for listening when the system text is hidden. Behavior improvements in 9 verb GUI. Update in BASS GUI for setting the cursor Set "popochiu_gui_component" group to GI components in order to start building the UI tab in the dock. Rename methods Create InventoryGrid component This is the type of inventory used by 9 verbs and Sierra templates. upd: change `Cursor.set_cursor(int)` by `Cursor.show_cursor(String)`. Create inventory grid component for 9 Verb template Ready to start freezing development for PR creation. Updated command handling Both in PopochiuClickable and PopochiuInventoryItem. They will call `_on_click` if not custom method is present in the object. Method fallback should be manually called with `E.command_fallback()`. Added script_name property to PopochiuCommands class. This can be used to know which set of commands is the current one. BASS template working with new commands approach Fix various issues in the BASS template regarding cursor animations and behavior with PopochiuClickable and PopochiuInventoryItem. The reference to the current commands class is now in E. Updated InventoryBar so it can react to the I.item_replaced signal. Restore cursor property Both in PopochiuClickable and PopochiuInventory Item. Now variations for voices are defined by an array of AudioCueSound. Fix and update in Setup popup Now it shows a description of the selected template so devs can know a bit more about each one. If the selected template is the same that is currently active after closing the Setup popup, no action is performed. Add Popsy as a character to test a bug reported related to z-index. Add GUI cursor to BASS cursors. Improve GUI template change with confirmation popup Created templates for GUI commands types. Create script copies when selecting GUI template A copy of the template scripts for the graphic interface and the commands linked to it is created and placed in res://popochiu/graphic_interface. This makes sure devs can play with those scripts instead of modifying those in the addons folder. fea: Create a commands template script for the Empty template. First draft of UI tab working. It allows to add GUI components to the graphic interface scene. Buttons in the UI panel show enable when the component they represent is deleted from the graphic interface scene. Change to Godot 4.1.2 and removed game scenes Add buttons to open graphic interface script and commands script upd: use PopochiuGroup for base components and popups in UI tab. Change BASS template to SimpleClick template Fix "Start with it" for inventory items. fix: Devs can select items to start with in the Main tab. fix: Setting an inventory item as active with `add_as_active` makes the cursor take the appearance of the item. fix: Text color changes when character talks in the Caption dialog style. fix: PopochiuInventoryItem.add was not showing InventoryBar. fea: Added `is_pixel_art_game` property to ProjectSettings. upd: When selecting Pixel in Game type (setup popup) the default texture filter is set to TEXTURE_FILTER_NEAREST for props, characters and inventory items. Progress on improving code before merge Better positioning of avatars in Portrait dialog style Adressed all comments and sugestions made by @stickgrinder Fix scene validation on Editor2D. Created House, Goddiu, Popsy and Key for testing. Sierra template fixes Improve on copying the selected GUI template. Fix on opening Sierra popups. Warning for GUI template change when graphic_interface.tscn is open DialogText is no longer an editable children in 9_verb_gi.tscn and sierra_gi.tscn. Add method to print normal messages in PopochiuUtils. Add customization properties to InventoryGrid Devs can define the number of columns, the visible rows, the scene to use for slots, the horizontal and vertical gap sizes, if the UP and DOWN buttons should be visible, if the component will scroll with the mouse wheel. Update Sierra and 9 verb inventory grids so they use the new customization properties. upd: refactor in Setup popup script for better code reading. Post Alpha 5 rebase Add button to create popochiu popups This allows the creation of the scene and script for devs to make their own popups. The created popup is added to the Popups node in the graphic_interface scene. upd: Change name of Empty template to Custom. upd: Set groups for missing popochiu components and popups scenes. Add ignored files Create script to handle gui template operations Copy dependencies to res://game/graphic_interface based on GUI template selection (#139) * Progress on copying components when choosing GUI template * Separate GUI copy operations into methods Now the game is placed in `res://game` instead of `res://popochiu`. === Ready to work on moving components based on source scene dependencies === * Graphic interface dependencies point to game folder Scene dependencies in `res://game/graphic_interface/graphic_interface.tscn` now point to the corresponding scene of the component in the `res://game/graphic_interface/components` folder. When changing the GUI template, previous components are removed from the FileSystem. * GUI components determined by group instead of scene path Assign corresponding groups to all the components in the Sierra template. Add .png files as part of copying components from the addon to the graphic interface folder in the game. The .png files will need an extra validation to work properly. Same will apply to .theme files. * GUI template change copies everything Components and their scripts and dependencies are correclty moved to res://game/graphic_interface/ === Ready to test updating the dependencies in each .tscn file === * Change dependency source check Now dependencies are searched in the already copied files of res://game/graphic_interface instead of relying on the source files in res://addons/popochiu... * Fix untracked files * Copy components working Ready to make more tests. * Add progress window to GUI template change The copy process ignores resources that were already copied. Update reference to cursor PNG in SimpleClick template. * Fix on shared resources when copying components Fix double call on Setup close in Linux/MacOS Update minimum size of Setup popup. [fix] Use EditorInterface scale to update minimum and maximum size of Setup popup. Copy component when adding it from UI tab Now the dependencies of the selected component are copied to the graphic interface folder in order to make customization easier. UI tab now access EditorInterface directly instead of using the _main_dock variable. Improve scene instantiation for UI components Adding the component no longer includes adding dependencies to its script or other resources. The same applies for props created inside rooms using the importer. Should apply for other types, and also things created without the importer. [upd] Translate to English the Spanish comments in PopochiuObjectRow. [upd] Use EditorInterface singleton in PopochiuObjectRow. [fix] Removing a whole room from the Popochiu panel works again. Move CanvasEditorMenu for PopochiuClickable to its own scene A script is also created to remove extra logic from popochiu_plugin.gd. Use EditorInterface singleton instead of main_dock.ei Same for EditorFileSystem (main_dock.fs) Fix with progress animation when choosing Custom template [fix] Multiply issue about Setup popup min and max size based on editor scale. [fix] Double creation of progress panel. Improve GUI template selection Added a button to change the template inside the Setup popup instead of relying on closing it. Update behavior of Popochiu editor popups so they render better. Texture track no longer added when importing animations from Aseprite Update flow of fallback interaction for PopochiuInventoryItem.on_click() Sierra GI now selects the clicked inventory item by default when using the Interact command. SimpleClick GI selects an inventory item by default when clicked (same as the Sierra GI). Inventory item selected by default when clicked in 9 Verb template Fix on deselecting invisible nodes This was hapenning while editing the InteractionPolygon of PopochiuClickable objects. [upd] When a character is added to a room, now its instance is properly created passing the correct instance flag. [fix] Create room popup was not correctly updating the size of the RichTextLabel that shows the info about the files to create. [fea] Editing the InteractionPolygon of a PopochiuClickable also stores its position so the edited data is stored in the room. Change chain of interaction calls This applies to PopochiuClickable and PopochiuInventoryItem. Now the function called by the mouse input interaction is the public method (i.e. on_click()), and this calls the virtual version of the method (i.e. _on_click()). Command functions now should have the signature on_command_name() instead of _on_command_name(). [upd] Add regions to various scripts. Create SierraBar and SierraMenu SierraMenu was previously SierraTopMenu. SierraBar can be used to show the score of the game. [upd] Improve feedback of SierraInventory when a command is selected. [fea] Create public function in PopochiuGraphicInterface so one can get a component by its name. [upd] Assign class_names to each GUI template script. Improve behavior of Sierra inventory SierraMenu hides after opening the inventory or the settings popup. [upd] Hide QUIT button in SierraMenu. [upd] Blocking/Unblocking the graphic interface now also takes into account if is there a popup opened. [fea] **G** singleton now has a `gui` variable to store a reference to the graphic interface node. [fea] PopochiuRoom scenes can now be played from their row in the main tab. Better feedback for Sierra inventory slots [fea] Add "unselected" signal to PopochiuInventoryItem. [upd] Minor improvements in GUI components copy process popup. GUI components' theme now point to the _theme.tres file in the game All the components that have a theme are overriden so the theme used when copied to the graphic interface folder is the one in there. [upd] All components in Sierra GUI scene use the sierra_theme.tres. [upd] All components in 9 Verb GUI scene use the 9_verb_theme.tres. Create GUI template buttons in Setup from directories Now the buttons are not created in the SceneTree, but loaded based on the folders in res://addons/popochiu/engine/objects/graphic_interface/tempaltes [fea] Create resource to define the title, description and icon of each GUI template. Fix button selection for current template in Setup popup * Input field in CreationPopups allow pasting from clipboard [upd] Moved code that changes the font used in some nodes of CreationPopups and Setup popup to the signal "about_to_popup" instead of doing it in "_ready()" so the .tscn files do not store font data. [fea] PopochiuCharacter nodes in PopochiuRooms now also allow to edit/store the following Visibility properties: visible, modulate, self_modulate and light_mask. * Add character childs to PopochiuCharacter instance Nodes added to characters in room tree are also added to PopochiuCharacter instance [fix] Creating hotspot, walkable area and region was not assigned the created script to the node.
mapedorr
added a commit
that referenced
this issue
Feb 25, 2024
* refs #37: Rooms Aseprite importer preparatory code and PopochiuObjects creation refactoring (#64) * refs #37: Squashed Room Importer and Objects creation refactoring. refs #37: Preparation for refactoring of importer code. refs #37: The plugin is now ready for the implementation of the Room importing logic. refs #37: WIP refactoring the prop creation logic. It works but needs heavy polishing. refs #37: Open #67 about the heavy polishing, in the meantime this reduce the passing-over of UI elements. refs #37: Changed commit language. refs #37: Refactored the region creation following the new template. Added a base class to limit code-duplication. refs #37: Refactored the walkable areas too. refs #37: Refactored the hotspots creation too. refs #37: Project file updated to Godot 4.1 refs #37: Rooms creation have been refactored. refs #37: Characters creation have been refactored. refs #37: Inventory items creation have been refactored. refs #37: Dialog creation have been refactored. refs #37: some code dedup on type helpers. refs #37: code dedup in helpers should be over. Also addressed annoying Godot 4.1 bug. refs #37: all creation helpers have been renamed to factories. refs #37: factories init methods changed to real constructors. refs #37: renamed and added internal factories variables for better readability. refs #37: Fixed inconsistency in inventory items file naming. refs #37: Renamed local variables in factory classes. refs #37: Switch to a success state return strategy to bubble feedback up to the popup. refs #37: Fixed wrong ownership for room objects children bug. refs #37: Cleaned up useless and hard-to-maintain references to the obj types in comments. Addresses PR comments by @carenalga. refs #37: Renamed factories private members to reduce unnecessary verbosity. refs #37: Solved error message about invalid ownership when creating room objects. refs #37: WIP for rooms importer. This code is broken! refs #37: WIP for rooms importer. This code is broken! refs #37: WIP for rooms importer. This code is broken! refs #37: A lot of code rewriting to make the base feature work. It works :) refs #37: More work to get rid of strange execution errors. refs #37: moving stuff in a desperate attempt to make this working in a predictable way. refs #37: changed the importing flow strategy to circumvent a nasty error on linux with filesystem signals availability. refs #37: off-by-one error fixed in animation frames range. refs #37: fixed an error I probably inherited from another branch. TEST1: messing with importer. refs #37: worked around the console error when packing a scene with not-owned children (please see Godot GH-81982 for details). refs #37: visibility toggle in the importer interface is now working as intended. refs #37: all props now have an attached script, even the non-clickable ones; the importer is now able to update visibility and clickability status of already imported props. refs #37: InteractionPolygons for props and hotspots have been moved in the scene and an edit button has been exposed in the toolbar to edit them. Fix missing images when importing room from Aseprite (#110) Store polygon for interaction in @export var This will allow to keep the data of the polygon in the .tscn file of the room so the InteractionPolygon.polygon data of each prop is overwritten by the room both in runtime and while editing the room. NOTE: The polygon of the InteractionPolygon in each prop is not saved in the prop's scene file yet. Add comments and broke some long lines refs #37: InteractionPolygons icon is now more readable. Fixes for post-import error message (#126) * Fix Output error after importing room * Fix error message after closing room import popup The problem was caused because the popup was being added to the Room tree. Now it is added to Popochiu's main dock. * Temporary fix for bad row naming after import * Imported prop image is placed in the prop's folder Fix Aseprite importer section not showing in Inspector for room refs #37: Added a feature flag to Editor Settings, to disable Aseprite Importer for those who does not use Aseprite. refs #37: Fixed a warning related to EditorInterface being a singleton in 4.2. * refs #37: Removed leftovers after squashing and rebasing over 2.0 * Fix post-rebase issues about main_dock --------- Co-authored-by: carenalga <[email protected]> * refs #40: New GUIs subsystem * GUI templates and game commands Progress on refactoring the GI Progress on working with 9 verbs First draft of the Sierra GUI implementation Created the `g.gd` script to test an approach for accessing the commands defined for the graphic interface. Moved the Toolbar folder to the popochiu template folder since that component will be part of that GUI only. Added a function to "replace" the default cursor. This still needs improvements or a complete refactor. GUI template selection in Setup popup Refactorization of GUI template commands This fixes a dependency generated when having the commands of the current GUI in the g.gd singleton. Now each GUI has its own commands Resource class. Selecting the GUI template in the Setup popup is now working without bugs. Changed Popochiu GUI template name to BASS Usability improvements in 9 verb interface Sound settings script moved to BASS' toolbar folder History popup working again in BASS template upd: Lines in History to RichTextLabel so one can uses colors to highlight characters, commands and props. fea: Improved the way BASS handles mouse positioning to open/close the inventory and the settings. upd: Renamed scene and script filenames from Toolbar to SettingsBar. PopochiuPopup are now used by History, Save and Load and Sound settings. upd: Updated the Settings popup for the 9 verb interface. Now it allows to Save, Load, open the History, and update sound volumes. upd: New appearance for Sound volumes sliders. upd: Created Sound volumes component, so devs can use the sliders without having to use a popup. fea: Created Settings icon for settings button in 9 verb interface. upd: Created cursor for UI elements in 9 verb interface. fix: Opening the SaveAndLoad popup when saving no longer requires to pass a String as a parameter. upd: new style for 9 verb interface Now it get closer to the style used in Thimbleweed Park. fea: created icons for GUI templates in the Setup window. fea: added option to 9 verb settings popup to choose between classic and modern sentences. fea: created sprites and style for CheckButton. Sierra theme styles updated This is for PanelContainers and Buttons. Created inventory popup for Sierra GUI. Created USE cursor for Sierra GUI. Created top bar (hover text + score) panel for Sierra GUI. Fixed some bugs in the Sierra GUI. Working on making the inventory popup to work properly in Sierra GUI. SystemText working again. fix: showing the SystemText blocks interactions until players click anywhere to close the panel. upd: `G.display` changed to `G.show_system_text`. fea: basic inventory functionality working in Sierra GUI. Players can inspect items and select them for use. Once used, the item disappears from the inventory grid. First approach on having varios dialog text types Devs can choose between Above character, Portrait and Caption. The implementation is still hardcoded in various parts. Improvements will come soon. Fix: cursor behavior in Sierra inventory popup. fix: the error related to set_name.call_deferred is now solved. Working on fix for C singleton. Fallback for commands improved Code refactor and improvements for DialogText. upd: Now the now supports the three display modes (Above character, Portrait and Caption) by itself. fix: #79 . fix: Recognizing emotions in dialog lines for `E.queue` was not working. upd: Added support for avatars with emotions in PopochiuCharacter. upd: Portrait mode displays the avatar of the talking character (with its corresponding emotion). Improved CAPTION text style rendering. Fixes and minor improvements in DialogText rendering. Updated properties in scaling and layout for PopochiuInventoryItem. 9 verb inventory scroll working It takes into account the size of each slot, the size of the gaps between rows and the number of rows. This inventory panel adds items to the i_inventory based on what the scene tree has. NEXT >> Make this as a component that can work in a popup (i.e. in the Sierra inventory popup). Progress on 9 verb inventory functionality Can trigger commands on inventory items. Can use inventory items with popochiu clickable and other inventory items. fea: Make suggested command to work This applies for PopochiuClickable and PopochiuInventoryItem (which suggested verb will be always LOOK AT). fea: Try calling the left click version of a command before triggering its fallback (this applies to PopochiuClickable and PopochiuInventoryItem). NEXT >> [9 verb] Make inventory container to re-arrange after removing an inventory item. fea: can remove items in 9 verb inventory Removing the item also removes the slot it belongs to, which ensures the container will re-arrange correctly. A new slot is created after removing the item. NEXT >> Allow to replace an item (useful for combining items). fea: Adds method to replace an inventory item The new inventory item replaces the one that calls the `replace` method in the 9 verb interface. fea: Cursor doesn't leave the screen when the mouse exits the game window. upd: Adjust styles and layout of 9 verb interface upd: Inventory container component for Sierra GPI Uses the component created for the 9 verb interface in the Inventory popup of the Sierra template. upd: Create scroll buttons for Sierra inventory. upd: Work in Sierra inventory popup Now players can select an inventory item (with the INTERACT command active), close the popup, and use such item with clickables. Create Settings popup for Sierra template. Can change dialog style in Text options popup in Sierra template. Can change dialog text speed with a slider in Text options popup in Sierra template. Create Sound options popup. Create Sierra settings option to toggle auto-continue Update style of text continue icon for Sierra template. Create texture for QUIT button in Sierra template. Sierra template now has buttons to quit the game. Improvements in dialog_text component behavior and anchors setup. Add function to E for registering commands The 9 verb and Sierra commands' scripts now register their commands using the created method. PopochiuClickable and PopochiuInventoryItem now store the mouse button index used in the last click. Started to prepare everything to freeze the development of the 9 verb and Sierra templates. NEXT >> Cursor refactor or Verb coin template creation. Dialog menu working in 9 verb and Sierra templates Change G.freed to G.unblocked. DialogText no longer affects the Cursor. Now it triggers a signal so the graphic interface decides what to do while a dialog line is played. Create signal in D to know when a dialog starts. Refactors Dialog menu Now it works in 9 verb and Sierra templates. It is a bit easier to modify the appearance of the Dialog menu. Added more signals to PopochiuGraphicInterface in order to allow devs to customize how to handle more interactions. Remove G.continue_clicked Connect to G.dialog_line_finished in PopochiuCharacter.say() Create signal for listening when the system text is hidden. Behavior improvements in 9 verb GUI. Update in BASS GUI for setting the cursor Set "popochiu_gui_component" group to GI components in order to start building the UI tab in the dock. Rename methods Create InventoryGrid component This is the type of inventory used by 9 verbs and Sierra templates. upd: change `Cursor.set_cursor(int)` by `Cursor.show_cursor(String)`. Create inventory grid component for 9 Verb template Ready to start freezing development for PR creation. Updated command handling Both in PopochiuClickable and PopochiuInventoryItem. They will call `_on_click` if not custom method is present in the object. Method fallback should be manually called with `E.command_fallback()`. Added script_name property to PopochiuCommands class. This can be used to know which set of commands is the current one. BASS template working with new commands approach Fix various issues in the BASS template regarding cursor animations and behavior with PopochiuClickable and PopochiuInventoryItem. The reference to the current commands class is now in E. Updated InventoryBar so it can react to the I.item_replaced signal. Restore cursor property Both in PopochiuClickable and PopochiuInventory Item. Now variations for voices are defined by an array of AudioCueSound. Fix and update in Setup popup Now it shows a description of the selected template so devs can know a bit more about each one. If the selected template is the same that is currently active after closing the Setup popup, no action is performed. Add Popsy as a character to test a bug reported related to z-index. Add GUI cursor to BASS cursors. Improve GUI template change with confirmation popup Created templates for GUI commands types. Create script copies when selecting GUI template A copy of the template scripts for the graphic interface and the commands linked to it is created and placed in res://popochiu/graphic_interface. This makes sure devs can play with those scripts instead of modifying those in the addons folder. fea: Create a commands template script for the Empty template. First draft of UI tab working. It allows to add GUI components to the graphic interface scene. Buttons in the UI panel show enable when the component they represent is deleted from the graphic interface scene. Change to Godot 4.1.2 and removed game scenes Add buttons to open graphic interface script and commands script upd: use PopochiuGroup for base components and popups in UI tab. Change BASS template to SimpleClick template Fix "Start with it" for inventory items. fix: Devs can select items to start with in the Main tab. fix: Setting an inventory item as active with `add_as_active` makes the cursor take the appearance of the item. fix: Text color changes when character talks in the Caption dialog style. fix: PopochiuInventoryItem.add was not showing InventoryBar. fea: Added `is_pixel_art_game` property to ProjectSettings. upd: When selecting Pixel in Game type (setup popup) the default texture filter is set to TEXTURE_FILTER_NEAREST for props, characters and inventory items. Progress on improving code before merge Better positioning of avatars in Portrait dialog style Adressed all comments and sugestions made by @stickgrinder Fix scene validation on Editor2D. Created House, Goddiu, Popsy and Key for testing. Sierra template fixes Improve on copying the selected GUI template. Fix on opening Sierra popups. Warning for GUI template change when graphic_interface.tscn is open DialogText is no longer an editable children in 9_verb_gi.tscn and sierra_gi.tscn. Add method to print normal messages in PopochiuUtils. Add customization properties to InventoryGrid Devs can define the number of columns, the visible rows, the scene to use for slots, the horizontal and vertical gap sizes, if the UP and DOWN buttons should be visible, if the component will scroll with the mouse wheel. Update Sierra and 9 verb inventory grids so they use the new customization properties. upd: refactor in Setup popup script for better code reading. Post Alpha 5 rebase Add button to create popochiu popups This allows the creation of the scene and script for devs to make their own popups. The created popup is added to the Popups node in the graphic_interface scene. upd: Change name of Empty template to Custom. upd: Set groups for missing popochiu components and popups scenes. Add ignored files Create script to handle gui template operations Copy dependencies to res://game/graphic_interface based on GUI template selection (#139) * Progress on copying components when choosing GUI template * Separate GUI copy operations into methods Now the game is placed in `res://game` instead of `res://popochiu`. === Ready to work on moving components based on source scene dependencies === * Graphic interface dependencies point to game folder Scene dependencies in `res://game/graphic_interface/graphic_interface.tscn` now point to the corresponding scene of the component in the `res://game/graphic_interface/components` folder. When changing the GUI template, previous components are removed from the FileSystem. * GUI components determined by group instead of scene path Assign corresponding groups to all the components in the Sierra template. Add .png files as part of copying components from the addon to the graphic interface folder in the game. The .png files will need an extra validation to work properly. Same will apply to .theme files. * GUI template change copies everything Components and their scripts and dependencies are correclty moved to res://game/graphic_interface/ === Ready to test updating the dependencies in each .tscn file === * Change dependency source check Now dependencies are searched in the already copied files of res://game/graphic_interface instead of relying on the source files in res://addons/popochiu... * Fix untracked files * Copy components working Ready to make more tests. * Add progress window to GUI template change The copy process ignores resources that were already copied. Update reference to cursor PNG in SimpleClick template. * Fix on shared resources when copying components Fix double call on Setup close in Linux/MacOS Update minimum size of Setup popup. [fix] Use EditorInterface scale to update minimum and maximum size of Setup popup. Copy component when adding it from UI tab Now the dependencies of the selected component are copied to the graphic interface folder in order to make customization easier. UI tab now access EditorInterface directly instead of using the _main_dock variable. Improve scene instantiation for UI components Adding the component no longer includes adding dependencies to its script or other resources. The same applies for props created inside rooms using the importer. Should apply for other types, and also things created without the importer. [upd] Translate to English the Spanish comments in PopochiuObjectRow. [upd] Use EditorInterface singleton in PopochiuObjectRow. [fix] Removing a whole room from the Popochiu panel works again. Move CanvasEditorMenu for PopochiuClickable to its own scene A script is also created to remove extra logic from popochiu_plugin.gd. Use EditorInterface singleton instead of main_dock.ei Same for EditorFileSystem (main_dock.fs) Fix with progress animation when choosing Custom template [fix] Multiply issue about Setup popup min and max size based on editor scale. [fix] Double creation of progress panel. Improve GUI template selection Added a button to change the template inside the Setup popup instead of relying on closing it. Update behavior of Popochiu editor popups so they render better. Texture track no longer added when importing animations from Aseprite Update flow of fallback interaction for PopochiuInventoryItem.on_click() Sierra GI now selects the clicked inventory item by default when using the Interact command. SimpleClick GI selects an inventory item by default when clicked (same as the Sierra GI). Inventory item selected by default when clicked in 9 Verb template Fix on deselecting invisible nodes This was hapenning while editing the InteractionPolygon of PopochiuClickable objects. [upd] When a character is added to a room, now its instance is properly created passing the correct instance flag. [fix] Create room popup was not correctly updating the size of the RichTextLabel that shows the info about the files to create. [fea] Editing the InteractionPolygon of a PopochiuClickable also stores its position so the edited data is stored in the room. Change chain of interaction calls This applies to PopochiuClickable and PopochiuInventoryItem. Now the function called by the mouse input interaction is the public method (i.e. on_click()), and this calls the virtual version of the method (i.e. _on_click()). Command functions now should have the signature on_command_name() instead of _on_command_name(). [upd] Add regions to various scripts. Create SierraBar and SierraMenu SierraMenu was previously SierraTopMenu. SierraBar can be used to show the score of the game. [upd] Improve feedback of SierraInventory when a command is selected. [fea] Create public function in PopochiuGraphicInterface so one can get a component by its name. [upd] Assign class_names to each GUI template script. Improve behavior of Sierra inventory SierraMenu hides after opening the inventory or the settings popup. [upd] Hide QUIT button in SierraMenu. [upd] Blocking/Unblocking the graphic interface now also takes into account if is there a popup opened. [fea] **G** singleton now has a `gui` variable to store a reference to the graphic interface node. [fea] PopochiuRoom scenes can now be played from their row in the main tab. Better feedback for Sierra inventory slots [fea] Add "unselected" signal to PopochiuInventoryItem. [upd] Minor improvements in GUI components copy process popup. GUI components' theme now point to the _theme.tres file in the game All the components that have a theme are overriden so the theme used when copied to the graphic interface folder is the one in there. [upd] All components in Sierra GUI scene use the sierra_theme.tres. [upd] All components in 9 Verb GUI scene use the 9_verb_theme.tres. Create GUI template buttons in Setup from directories Now the buttons are not created in the SceneTree, but loaded based on the folders in res://addons/popochiu/engine/objects/graphic_interface/tempaltes [fea] Create resource to define the title, description and icon of each GUI template. Fix button selection for current template in Setup popup * Input field in CreationPopups allow pasting from clipboard [upd] Moved code that changes the font used in some nodes of CreationPopups and Setup popup to the signal "about_to_popup" instead of doing it in "_ready()" so the .tscn files do not store font data. [fea] PopochiuCharacter nodes in PopochiuRooms now also allow to edit/store the following Visibility properties: visible, modulate, self_modulate and light_mask. * Add character childs to PopochiuCharacter instance Nodes added to characters in room tree are also added to PopochiuCharacter instance [fix] Creating hotspot, walkable area and region was not assigned the created script to the node. * Documentation for Engine classes (#150) * First documentation annotations for Popochiu class Base description, signals, constants and public members documented. [upd] Documentation annotations of other classes in order to make them available to access from the Popochiu docs page. * Progress on documenting E public methods * Finish first pass of E documentation Comments added to all public methods and members. * Finish documentation for PopochiuSettings Progress on documenting PopochiuClickable. * Finish documentation for PopochiuClickable Restored class_name definition and extends to their previous code format because the one line approach was causing problems with showing the classes in the documentation. * Finish documentation for PopochiuInventoryItem Minor updates to Popochiu and PopochiuClickable docs. * Finish documentation for PopochiuRoom * Finish documentation for PopochiuProp, PopochiuHotspot and PopochiuWalkableArea * Finish documentation for PopochiuRegion [upd] Minor text order update for virtual methods. * Progress on documenting PopochiuCharacter * Progress in PopochiuCharacter documentation Update a typo when refering to Popochiu.queue outside popochiu.gd documentation comments. * Finish documentation for PopochiuCharacter * Finish documentation of PopochiuDialog * Finish documentation for PopochiuDialogOption. * Finish documentation for Data classes. PopochiuCharacterData, PopochiuInventoryItemData and PopochiuRoomData. * refs #147: File positions restructured to make the docs site deployable on GH Pages. * refs #147: Fixed problem with gh-pages unable to read assets from a path starting with underscore. * refs #147: Fixed mistaken docs assets position. * refs #147: Removed unwanted files after a rebase. * refs #147: Fixed wrong diffs after rebase. * refs #147: Fixed wrong paths after rebase. --------- Co-authored-by: carenalga <[email protected]>
stickgrinder
added a commit
that referenced
this issue
Mar 4, 2024
* refs #37: Rooms Aseprite importer preparatory code and PopochiuObjects creation refactoring (#64) * refs #37: Squashed Room Importer and Objects creation refactoring. refs #37: Preparation for refactoring of importer code. refs #37: The plugin is now ready for the implementation of the Room importing logic. refs #37: WIP refactoring the prop creation logic. It works but needs heavy polishing. refs #37: Open #67 about the heavy polishing, in the meantime this reduce the passing-over of UI elements. refs #37: Changed commit language. refs #37: Refactored the region creation following the new template. Added a base class to limit code-duplication. refs #37: Refactored the walkable areas too. refs #37: Refactored the hotspots creation too. refs #37: Project file updated to Godot 4.1 refs #37: Rooms creation have been refactored. refs #37: Characters creation have been refactored. refs #37: Inventory items creation have been refactored. refs #37: Dialog creation have been refactored. refs #37: some code dedup on type helpers. refs #37: code dedup in helpers should be over. Also addressed annoying Godot 4.1 bug. refs #37: all creation helpers have been renamed to factories. refs #37: factories init methods changed to real constructors. refs #37: renamed and added internal factories variables for better readability. refs #37: Fixed inconsistency in inventory items file naming. refs #37: Renamed local variables in factory classes. refs #37: Switch to a success state return strategy to bubble feedback up to the popup. refs #37: Fixed wrong ownership for room objects children bug. refs #37: Cleaned up useless and hard-to-maintain references to the obj types in comments. Addresses PR comments by @carenalga. refs #37: Renamed factories private members to reduce unnecessary verbosity. refs #37: Solved error message about invalid ownership when creating room objects. refs #37: WIP for rooms importer. This code is broken! refs #37: WIP for rooms importer. This code is broken! refs #37: WIP for rooms importer. This code is broken! refs #37: A lot of code rewriting to make the base feature work. It works :) refs #37: More work to get rid of strange execution errors. refs #37: moving stuff in a desperate attempt to make this working in a predictable way. refs #37: changed the importing flow strategy to circumvent a nasty error on linux with filesystem signals availability. refs #37: off-by-one error fixed in animation frames range. refs #37: fixed an error I probably inherited from another branch. TEST1: messing with importer. refs #37: worked around the console error when packing a scene with not-owned children (please see Godot GH-81982 for details). refs #37: visibility toggle in the importer interface is now working as intended. refs #37: all props now have an attached script, even the non-clickable ones; the importer is now able to update visibility and clickability status of already imported props. refs #37: InteractionPolygons for props and hotspots have been moved in the scene and an edit button has been exposed in the toolbar to edit them. Fix missing images when importing room from Aseprite (#110) Store polygon for interaction in @export var This will allow to keep the data of the polygon in the .tscn file of the room so the InteractionPolygon.polygon data of each prop is overwritten by the room both in runtime and while editing the room. NOTE: The polygon of the InteractionPolygon in each prop is not saved in the prop's scene file yet. Add comments and broke some long lines refs #37: InteractionPolygons icon is now more readable. Fixes for post-import error message (#126) * Fix Output error after importing room * Fix error message after closing room import popup The problem was caused because the popup was being added to the Room tree. Now it is added to Popochiu's main dock. * Temporary fix for bad row naming after import * Imported prop image is placed in the prop's folder Fix Aseprite importer section not showing in Inspector for room refs #37: Added a feature flag to Editor Settings, to disable Aseprite Importer for those who does not use Aseprite. refs #37: Fixed a warning related to EditorInterface being a singleton in 4.2. * refs #37: Removed leftovers after squashing and rebasing over 2.0 * Fix post-rebase issues about main_dock --------- Co-authored-by: carenalga <[email protected]> * refs #40: New GUIs subsystem * GUI templates and game commands Progress on refactoring the GI Progress on working with 9 verbs First draft of the Sierra GUI implementation Created the `g.gd` script to test an approach for accessing the commands defined for the graphic interface. Moved the Toolbar folder to the popochiu template folder since that component will be part of that GUI only. Added a function to "replace" the default cursor. This still needs improvements or a complete refactor. GUI template selection in Setup popup Refactorization of GUI template commands This fixes a dependency generated when having the commands of the current GUI in the g.gd singleton. Now each GUI has its own commands Resource class. Selecting the GUI template in the Setup popup is now working without bugs. Changed Popochiu GUI template name to BASS Usability improvements in 9 verb interface Sound settings script moved to BASS' toolbar folder History popup working again in BASS template upd: Lines in History to RichTextLabel so one can uses colors to highlight characters, commands and props. fea: Improved the way BASS handles mouse positioning to open/close the inventory and the settings. upd: Renamed scene and script filenames from Toolbar to SettingsBar. PopochiuPopup are now used by History, Save and Load and Sound settings. upd: Updated the Settings popup for the 9 verb interface. Now it allows to Save, Load, open the History, and update sound volumes. upd: New appearance for Sound volumes sliders. upd: Created Sound volumes component, so devs can use the sliders without having to use a popup. fea: Created Settings icon for settings button in 9 verb interface. upd: Created cursor for UI elements in 9 verb interface. fix: Opening the SaveAndLoad popup when saving no longer requires to pass a String as a parameter. upd: new style for 9 verb interface Now it get closer to the style used in Thimbleweed Park. fea: created icons for GUI templates in the Setup window. fea: added option to 9 verb settings popup to choose between classic and modern sentences. fea: created sprites and style for CheckButton. Sierra theme styles updated This is for PanelContainers and Buttons. Created inventory popup for Sierra GUI. Created USE cursor for Sierra GUI. Created top bar (hover text + score) panel for Sierra GUI. Fixed some bugs in the Sierra GUI. Working on making the inventory popup to work properly in Sierra GUI. SystemText working again. fix: showing the SystemText blocks interactions until players click anywhere to close the panel. upd: `G.display` changed to `G.show_system_text`. fea: basic inventory functionality working in Sierra GUI. Players can inspect items and select them for use. Once used, the item disappears from the inventory grid. First approach on having varios dialog text types Devs can choose between Above character, Portrait and Caption. The implementation is still hardcoded in various parts. Improvements will come soon. Fix: cursor behavior in Sierra inventory popup. fix: the error related to set_name.call_deferred is now solved. Working on fix for C singleton. Fallback for commands improved Code refactor and improvements for DialogText. upd: Now the now supports the three display modes (Above character, Portrait and Caption) by itself. fix: #79 . fix: Recognizing emotions in dialog lines for `E.queue` was not working. upd: Added support for avatars with emotions in PopochiuCharacter. upd: Portrait mode displays the avatar of the talking character (with its corresponding emotion). Improved CAPTION text style rendering. Fixes and minor improvements in DialogText rendering. Updated properties in scaling and layout for PopochiuInventoryItem. 9 verb inventory scroll working It takes into account the size of each slot, the size of the gaps between rows and the number of rows. This inventory panel adds items to the i_inventory based on what the scene tree has. NEXT >> Make this as a component that can work in a popup (i.e. in the Sierra inventory popup). Progress on 9 verb inventory functionality Can trigger commands on inventory items. Can use inventory items with popochiu clickable and other inventory items. fea: Make suggested command to work This applies for PopochiuClickable and PopochiuInventoryItem (which suggested verb will be always LOOK AT). fea: Try calling the left click version of a command before triggering its fallback (this applies to PopochiuClickable and PopochiuInventoryItem). NEXT >> [9 verb] Make inventory container to re-arrange after removing an inventory item. fea: can remove items in 9 verb inventory Removing the item also removes the slot it belongs to, which ensures the container will re-arrange correctly. A new slot is created after removing the item. NEXT >> Allow to replace an item (useful for combining items). fea: Adds method to replace an inventory item The new inventory item replaces the one that calls the `replace` method in the 9 verb interface. fea: Cursor doesn't leave the screen when the mouse exits the game window. upd: Adjust styles and layout of 9 verb interface upd: Inventory container component for Sierra GPI Uses the component created for the 9 verb interface in the Inventory popup of the Sierra template. upd: Create scroll buttons for Sierra inventory. upd: Work in Sierra inventory popup Now players can select an inventory item (with the INTERACT command active), close the popup, and use such item with clickables. Create Settings popup for Sierra template. Can change dialog style in Text options popup in Sierra template. Can change dialog text speed with a slider in Text options popup in Sierra template. Create Sound options popup. Create Sierra settings option to toggle auto-continue Update style of text continue icon for Sierra template. Create texture for QUIT button in Sierra template. Sierra template now has buttons to quit the game. Improvements in dialog_text component behavior and anchors setup. Add function to E for registering commands The 9 verb and Sierra commands' scripts now register their commands using the created method. PopochiuClickable and PopochiuInventoryItem now store the mouse button index used in the last click. Started to prepare everything to freeze the development of the 9 verb and Sierra templates. NEXT >> Cursor refactor or Verb coin template creation. Dialog menu working in 9 verb and Sierra templates Change G.freed to G.unblocked. DialogText no longer affects the Cursor. Now it triggers a signal so the graphic interface decides what to do while a dialog line is played. Create signal in D to know when a dialog starts. Refactors Dialog menu Now it works in 9 verb and Sierra templates. It is a bit easier to modify the appearance of the Dialog menu. Added more signals to PopochiuGraphicInterface in order to allow devs to customize how to handle more interactions. Remove G.continue_clicked Connect to G.dialog_line_finished in PopochiuCharacter.say() Create signal for listening when the system text is hidden. Behavior improvements in 9 verb GUI. Update in BASS GUI for setting the cursor Set "popochiu_gui_component" group to GI components in order to start building the UI tab in the dock. Rename methods Create InventoryGrid component This is the type of inventory used by 9 verbs and Sierra templates. upd: change `Cursor.set_cursor(int)` by `Cursor.show_cursor(String)`. Create inventory grid component for 9 Verb template Ready to start freezing development for PR creation. Updated command handling Both in PopochiuClickable and PopochiuInventoryItem. They will call `_on_click` if not custom method is present in the object. Method fallback should be manually called with `E.command_fallback()`. Added script_name property to PopochiuCommands class. This can be used to know which set of commands is the current one. BASS template working with new commands approach Fix various issues in the BASS template regarding cursor animations and behavior with PopochiuClickable and PopochiuInventoryItem. The reference to the current commands class is now in E. Updated InventoryBar so it can react to the I.item_replaced signal. Restore cursor property Both in PopochiuClickable and PopochiuInventory Item. Now variations for voices are defined by an array of AudioCueSound. Fix and update in Setup popup Now it shows a description of the selected template so devs can know a bit more about each one. If the selected template is the same that is currently active after closing the Setup popup, no action is performed. Add Popsy as a character to test a bug reported related to z-index. Add GUI cursor to BASS cursors. Improve GUI template change with confirmation popup Created templates for GUI commands types. Create script copies when selecting GUI template A copy of the template scripts for the graphic interface and the commands linked to it is created and placed in res://popochiu/graphic_interface. This makes sure devs can play with those scripts instead of modifying those in the addons folder. fea: Create a commands template script for the Empty template. First draft of UI tab working. It allows to add GUI components to the graphic interface scene. Buttons in the UI panel show enable when the component they represent is deleted from the graphic interface scene. Change to Godot 4.1.2 and removed game scenes Add buttons to open graphic interface script and commands script upd: use PopochiuGroup for base components and popups in UI tab. Change BASS template to SimpleClick template Fix "Start with it" for inventory items. fix: Devs can select items to start with in the Main tab. fix: Setting an inventory item as active with `add_as_active` makes the cursor take the appearance of the item. fix: Text color changes when character talks in the Caption dialog style. fix: PopochiuInventoryItem.add was not showing InventoryBar. fea: Added `is_pixel_art_game` property to ProjectSettings. upd: When selecting Pixel in Game type (setup popup) the default texture filter is set to TEXTURE_FILTER_NEAREST for props, characters and inventory items. Progress on improving code before merge Better positioning of avatars in Portrait dialog style Adressed all comments and sugestions made by @stickgrinder Fix scene validation on Editor2D. Created House, Goddiu, Popsy and Key for testing. Sierra template fixes Improve on copying the selected GUI template. Fix on opening Sierra popups. Warning for GUI template change when graphic_interface.tscn is open DialogText is no longer an editable children in 9_verb_gi.tscn and sierra_gi.tscn. Add method to print normal messages in PopochiuUtils. Add customization properties to InventoryGrid Devs can define the number of columns, the visible rows, the scene to use for slots, the horizontal and vertical gap sizes, if the UP and DOWN buttons should be visible, if the component will scroll with the mouse wheel. Update Sierra and 9 verb inventory grids so they use the new customization properties. upd: refactor in Setup popup script for better code reading. Post Alpha 5 rebase Add button to create popochiu popups This allows the creation of the scene and script for devs to make their own popups. The created popup is added to the Popups node in the graphic_interface scene. upd: Change name of Empty template to Custom. upd: Set groups for missing popochiu components and popups scenes. Add ignored files Create script to handle gui template operations Copy dependencies to res://game/graphic_interface based on GUI template selection (#139) * Progress on copying components when choosing GUI template * Separate GUI copy operations into methods Now the game is placed in `res://game` instead of `res://popochiu`. === Ready to work on moving components based on source scene dependencies === * Graphic interface dependencies point to game folder Scene dependencies in `res://game/graphic_interface/graphic_interface.tscn` now point to the corresponding scene of the component in the `res://game/graphic_interface/components` folder. When changing the GUI template, previous components are removed from the FileSystem. * GUI components determined by group instead of scene path Assign corresponding groups to all the components in the Sierra template. Add .png files as part of copying components from the addon to the graphic interface folder in the game. The .png files will need an extra validation to work properly. Same will apply to .theme files. * GUI template change copies everything Components and their scripts and dependencies are correclty moved to res://game/graphic_interface/ === Ready to test updating the dependencies in each .tscn file === * Change dependency source check Now dependencies are searched in the already copied files of res://game/graphic_interface instead of relying on the source files in res://addons/popochiu... * Fix untracked files * Copy components working Ready to make more tests. * Add progress window to GUI template change The copy process ignores resources that were already copied. Update reference to cursor PNG in SimpleClick template. * Fix on shared resources when copying components Fix double call on Setup close in Linux/MacOS Update minimum size of Setup popup. [fix] Use EditorInterface scale to update minimum and maximum size of Setup popup. Copy component when adding it from UI tab Now the dependencies of the selected component are copied to the graphic interface folder in order to make customization easier. UI tab now access EditorInterface directly instead of using the _main_dock variable. Improve scene instantiation for UI components Adding the component no longer includes adding dependencies to its script or other resources. The same applies for props created inside rooms using the importer. Should apply for other types, and also things created without the importer. [upd] Translate to English the Spanish comments in PopochiuObjectRow. [upd] Use EditorInterface singleton in PopochiuObjectRow. [fix] Removing a whole room from the Popochiu panel works again. Move CanvasEditorMenu for PopochiuClickable to its own scene A script is also created to remove extra logic from popochiu_plugin.gd. Use EditorInterface singleton instead of main_dock.ei Same for EditorFileSystem (main_dock.fs) Fix with progress animation when choosing Custom template [fix] Multiply issue about Setup popup min and max size based on editor scale. [fix] Double creation of progress panel. Improve GUI template selection Added a button to change the template inside the Setup popup instead of relying on closing it. Update behavior of Popochiu editor popups so they render better. Texture track no longer added when importing animations from Aseprite Update flow of fallback interaction for PopochiuInventoryItem.on_click() Sierra GI now selects the clicked inventory item by default when using the Interact command. SimpleClick GI selects an inventory item by default when clicked (same as the Sierra GI). Inventory item selected by default when clicked in 9 Verb template Fix on deselecting invisible nodes This was hapenning while editing the InteractionPolygon of PopochiuClickable objects. [upd] When a character is added to a room, now its instance is properly created passing the correct instance flag. [fix] Create room popup was not correctly updating the size of the RichTextLabel that shows the info about the files to create. [fea] Editing the InteractionPolygon of a PopochiuClickable also stores its position so the edited data is stored in the room. Change chain of interaction calls This applies to PopochiuClickable and PopochiuInventoryItem. Now the function called by the mouse input interaction is the public method (i.e. on_click()), and this calls the virtual version of the method (i.e. _on_click()). Command functions now should have the signature on_command_name() instead of _on_command_name(). [upd] Add regions to various scripts. Create SierraBar and SierraMenu SierraMenu was previously SierraTopMenu. SierraBar can be used to show the score of the game. [upd] Improve feedback of SierraInventory when a command is selected. [fea] Create public function in PopochiuGraphicInterface so one can get a component by its name. [upd] Assign class_names to each GUI template script. Improve behavior of Sierra inventory SierraMenu hides after opening the inventory or the settings popup. [upd] Hide QUIT button in SierraMenu. [upd] Blocking/Unblocking the graphic interface now also takes into account if is there a popup opened. [fea] **G** singleton now has a `gui` variable to store a reference to the graphic interface node. [fea] PopochiuRoom scenes can now be played from their row in the main tab. Better feedback for Sierra inventory slots [fea] Add "unselected" signal to PopochiuInventoryItem. [upd] Minor improvements in GUI components copy process popup. GUI components' theme now point to the _theme.tres file in the game All the components that have a theme are overriden so the theme used when copied to the graphic interface folder is the one in there. [upd] All components in Sierra GUI scene use the sierra_theme.tres. [upd] All components in 9 Verb GUI scene use the 9_verb_theme.tres. Create GUI template buttons in Setup from directories Now the buttons are not created in the SceneTree, but loaded based on the folders in res://addons/popochiu/engine/objects/graphic_interface/tempaltes [fea] Create resource to define the title, description and icon of each GUI template. Fix button selection for current template in Setup popup * Input field in CreationPopups allow pasting from clipboard [upd] Moved code that changes the font used in some nodes of CreationPopups and Setup popup to the signal "about_to_popup" instead of doing it in "_ready()" so the .tscn files do not store font data. [fea] PopochiuCharacter nodes in PopochiuRooms now also allow to edit/store the following Visibility properties: visible, modulate, self_modulate and light_mask. * Add character childs to PopochiuCharacter instance Nodes added to characters in room tree are also added to PopochiuCharacter instance [fix] Creating hotspot, walkable area and region was not assigned the created script to the node. * Documentation for Engine classes (#150) * First documentation annotations for Popochiu class Base description, signals, constants and public members documented. [upd] Documentation annotations of other classes in order to make them available to access from the Popochiu docs page. * Progress on documenting E public methods * Finish first pass of E documentation Comments added to all public methods and members. * Finish documentation for PopochiuSettings Progress on documenting PopochiuClickable. * Finish documentation for PopochiuClickable Restored class_name definition and extends to their previous code format because the one line approach was causing problems with showing the classes in the documentation. * Finish documentation for PopochiuInventoryItem Minor updates to Popochiu and PopochiuClickable docs. * Finish documentation for PopochiuRoom * Finish documentation for PopochiuProp, PopochiuHotspot and PopochiuWalkableArea * Finish documentation for PopochiuRegion [upd] Minor text order update for virtual methods. * Progress on documenting PopochiuCharacter * Progress in PopochiuCharacter documentation Update a typo when refering to Popochiu.queue outside popochiu.gd documentation comments. * Finish documentation for PopochiuCharacter * Finish documentation of PopochiuDialog * Finish documentation for PopochiuDialogOption. * Finish documentation for Data classes. PopochiuCharacterData, PopochiuInventoryItemData and PopochiuRoomData. * refs #147: File positions restructured to make the docs site deployable on GH Pages. * refs #147: Fixed problem with gh-pages unable to read assets from a path starting with underscore. * refs #147: Fixed mistaken docs assets position. * refs #147: Removed unwanted files after a rebase. * refs #147: Fixed wrong diffs after rebase. * refs #147: Fixed wrong paths after rebase. --------- Co-authored-by: carenalga <[email protected]>
stickgrinder
added a commit
that referenced
this issue
Aug 16, 2024
stickgrinder
added a commit
that referenced
this issue
Aug 23, 2024
stickgrinder
added a commit
that referenced
this issue
Sep 8, 2024
…troduce new users to the main concepts.
stickgrinder
added a commit
that referenced
this issue
Sep 8, 2024
stickgrinder
added a commit
that referenced
this issue
Sep 14, 2024
* Fix #216 (#220) Fix #216 by using `queue_free()` to delete rows in a **PopochiuGroup**, use `free()` so the name of the node is available. * Fix #219 (#222) Set `PopochiuRoom.state.visited_first_time` to `true` after the `_on_room_transition_finished()` is executed. - **fix** InventoryGrid slots were being deleted in the process of adding items in the ProjectSettings.items_on_start array. This was causing an issue in the 9 Verb and Sierra templates. - **upd** Settings popup in 9 Verb and Sierra templates now close automatically when a slot is selected for saving or loading. - **upd** Slots in InventoryGrid are no longer deleted when removing an item. Instead, only its name changes. - **fix** Improve fix to avoid Godot printing a Warning related with setting the size of dialog_text and hover_text during a `_ready()` execution. * Added information about default inventory icon sizes (#223) * Fix #224 (#225) Clean E.clicked when an inventory item is clicked and make sure items are removed when clicking anywhere in the room only if there is no PopochiuClickable hovered. - **fix** The modified options in Project Settings > Popochiu were being hidden. - **upd** Cursor texture is properly rendered when the mouse enters and exits the SettingsBar. - **fea** (!) Inventory items fit the height of the inventory slot (in case of InventoryGrid) or the InventoryBar. This was only available when Experimental Scale GUI was on. * Fix on adding inventory items on start * Fix #59 - Update audio autoload (A) on file deletion (#226) * Minor UX improvements - **upd** Can't start the same dialog twice. - **upd** PopochiuClickable clicks are ignored if a dialog is running. - **upd** TransitionLayer now uses a Control node to block interactions when a transition is playing. - **upd** The GUI is hidden when a transition is playing. - **upd** If a dialog is running when a game is loaded, the dialog stops. - **fea** Add properties to InventoryBar and SettingsBar so devs can define if they should hide when the GUI is blocked. * Fix #59 AudioCues that are inside a Popochiu object's folder (room, character, etc.) or that are deleted from the FileSystem dock are properly removed in the A autoload, so a Godot error triggers when trying to play those cues from scripts. * .gitignore update (#228) * Updating .gitignore * Reset cache * addons/ is not ignored anymore * Popochiu (E) refactor (#229) * Move camera, room and character logic out of popochiu.gd - Now the camera has its own script. - PopochiuIRoom is now in charge of changing rooms. - Create PopochiuCharactersHelper script to take care of player initialization and executing strings inside E.queue([]) calls. * Remove code that should be handled by other classes Now the rooms_states are in PopochiuIRoom. - **upd** Remove some unused variables. - **upd** Add @deprecated note to moved properties and methods. - **upd** Add code comments to moved properties and methods so they point devs in the right direction when reading the Documentation. - **fix** Sometimes the Popochiu dock show nothing inside its groups despite having rooms, characters, inventory items and dialogs in the project. - **upd** Minor refactor to `popochiu_dock.gd` for better code readability. * Add removed methods with the corresponding @deprecated note To avoid breaking old projects * Add deleted methods with the corresponding @deprecated annotation * Fix in room changing. Replace calls to E.main_camera by E.camera. * Fix error in storing room data This happened only when the room was changed by using R.current = R.AnotherRoom. - **fix** Add some code validations to stop error messages appearing in the Output when debugging. - **upd** Update remaining calls/mentions to "E.goto_room". * Some improvements based on code review. * Improve RegEx for dialog lines Now the emotion and the time can be send in any order. - **upd** Typos and logic improved based on the PR review comments. - **fix** Inventory items should call `set_active()` by default in their `_on_click()` function. * Last improvements after last code review Now instances of objects inside interface classes are all stored in a Dictionary, to avoid using a for over an Array. - **upd** Now the GUI has methods to react to saving and loading the game, instead of the fixed behavoir of showing a text in the SystemText component. * Add `get_instance` method to PopochiuIRoom This is in order to homogenize all the interface classes. * Fix #230 (#231) Now the Cursor is not in charge of changing its texture based on GUI blocking. It's the GUI's responsibility to determine what happens to the cursor when it's locked or unlocked. - **upd** Clean E.clicked and I.clicked once the interaction is handled. - **fix** Sierra GUI inventory item use was not behaving as expected. - **fix** Rollback call to E.command_fallback() as the default call for the _on_click() function in inventory_item_template.gd. * fixes #192: As suggested by @mapedorr, the v_frames property is now ignored when a the room default state is loaded at scene start. (#237) * refs #232: gizmos working for PopochiuClickables. (#235) * refs #232: gizmos working for PopochiuClickables. * refs #232: editor settings refactoring. * refs #232: initialization and clean-up. * refs #232: gizmo sub-plugin enable/disable. * refs #232 #134: old node-based helpers removed. * refs #232: updating documentation to reflect the new gizmos * refs #232: interaction polygon button visibility follows node selection, updated look at point init code. * refs #232: restored correct default values for baseline and walk_to_point for PopochiuProp. See: #235 (comment) * refs #232: removed _exit_tree(). See: #235 (comment) * refs #232: _try_grab_gizmo restricted to InputEventMouseButton. See: #235 (comment) * refs #232: added/edited code regions. See: #235 (comment) * refs #232: updated plugin.cfg. See: #235 (comment) --------- Co-authored-by: Paolo Pustorino <[email protected]> * Refactor popochiu_object_row and remove dependencies to popochiu_dock (#236) * Refactor scripts and classes in the Editor side Remove main dock dependency in PopochiuObjectRow and PopochiuAudioRow Create script that will serve as a signal bus to communicate components in the Editor side of Popochiu The DeleteConfirmation popup is created in runtime by PopochiuObjectRow and PopochiuAudioRow when needed. Improve use of DeleteConfirmation dialog - **fix** issue when assigning the PC from popochiu_data.cfg. - **fix** issue when clearing the inventory. - **fix** deleting object rooms was not saving the .tscn file of the room. Separate the script of popochiu_object_row into several Now popochiu_audio_row inherits from popochiu_row. - **fea** Create popochiu_object_row specific scripts for rooms, character, inventory item, and room object (props, hotspots, walkable areas, regions and markers). - **fea** Create Project Settings section for Popochiu audio. Here devs we'll be able to define the prefix for audio cues. - **upd** Remove main_dock dependency in TabAudio. - **upd** Create folders for TabAudio and TabRoom. Fix issue with character rows in Room tab Also makes the Play button in popochiu_room_row visible. - **upd** Update some calls to String.find() by `"TheStringToLookFor" in String`. - Audio tab now takes into account the prefixes in the audio section of the Project Settings to clasify new audio cues. Remove main_dock dependency in factories and creation popups Remove non used functions Remove `main_dock` dependency in Aseprite importer scripts Separate the Main tab from the Popochiu dock. Now it has its own scene and script. Remove preload of PopochiuResources in Constants var Now scripts access PopochiuResources directly. - **upd** Minor flow improvement when removing main objects in popochiu_object_row. Add wait for popochiu_dock.ready signal This makes a better flow for the plugin start, and avoid the use of timers to assure everything is ready to show project data in the dock. - **upd** Now the Setup popup is shown by calling a method in PopochiuEditorHelper. - **upd** The Audio tab connects directly to the signal needed to update the list of audio files and cues, instead of the popochiu_plugin script doing that. Fix in Creation popup for room objects - **fix** Fix Tab audio when deleting files from FileSystem. - **upd** Change inheritance of Loading popup to AcceptDialog. - **upd** Now Popochiu Editor popups are added to the dock, not to the EditorInterface. - **upd** Deleting a Popochiu Audio Cue now also deletes the audio file if the checkbox is marked. Remove popochiu_types_helper script Now those functions are in PopochiuEditorHelper. - **upd** Refactor Audio tab to separate the search for deleted audio cues from the assignation of audio cues to their corresponding groups. The deletion is a bit cleaner now. - **fea** In the Popochiu/Audio section of the Project Settings devs can specify the character that will be used to define the prefixes to categorize audio files. Additionally, devs can now define different prefixes for each category separating them by comma. Progress on making popups work on Linux Create scenes to put the content of some popups Now instead of having a scene that inherits from ConfirmationDialog, the content of each dialog has its own scene, and the dialog is created by Popochiu when needed, putting the scene of said popup inside the created node. This improves the behavior of windows when shown. Refactor for more object creation dialogs Now characters, inventory items, dialogs, hotspots and markers are created using the new dialogs. - **upd** Improve the behavior of the creation dialog when its content changes. Refactor creation dialogs to remove repeated code This makes each script shorter and specific. Show error message when trying to create an existing object When the path of the object to create is already in the FileSystem, the Create Object Confirmation shows an error message and disables the OK button of the dialog. Update Loading and Setup dialogs to the new flow Now the scenes for those popups only define the content of the popup, and it is added to the popup when it is created. Fix Setup popup dissappearing on first GUI template copy process Update folder and file names. Apply suggestions from code review Co-authored-by: Paolo Pustorino <[email protected]> Progress in PR review Simplify the logic of playing/pausing audio rows. Improve code based on PR review Rename `show_add_to_core()` to `show_as_not_in_core()` Remove the option to create the state script since this is no longer a problem since version 1.9 or 1.10. Refactor how is_main and is_pc are set. This apply for popochiu_room_row and popochiu_character_row correspondingly - **upd** Remove type looking in popochiu_group by creating a public function in popochiu_row that calls a virtual function so each row knows if it should or not do something with clearing its tag icon. Remove unnecessary editor validation in Audio tab Fix an issue that was causing the PC not to be set properly when it was selected in Popochiu's dock. * Update to match defaults pattern of editor_config.gd * 9 verbs interface: working GIVE command (#242) * 9 verbs interface: working GIVE command * give() and use() calls _give_or_use() to reduce duplidate code * refs #232: added dialog_pos management with gizmo. (#241) * refs #232: added dialog_pos management with gizmo. * refs #232: gizmo buttons visibility refactor (WIP). * refs #134: WIP: All room objects now contain their own colliders/polygons, which are no more exposed in the room. * refs #134 #232: Complete refactoring of the toolbar menu buttons. Now they work as visibility toggles, and the polygon selection button is toggleable to switch back and forth from parent to child. * refs #232: partially addressed PR comments. * refs #232: added editing_polygon flag to WA. * refs #134: Added an editor option to always show interaction polygons for Popochiu clickables, regions and WAs. * refs #134: Changed the previous commit so that only the WAs may be always visible. * refs #232: Walkable Areas perimeter should now be saved when the scene is saved. * refs #232: Walkable Areas perimeter are now correctly saved + some polishing in former code. * refs #232: Saving and baking interaction polygons is now more efficent, since it happens at node saving, not every frame. * refs #134: Popochiu object polygons are now identified by groups, instead of meta. Also, there is no need for editing_polygon boolean anymore, since the polygons are saved only when the scene is saved from the editor. * refs #134: New icons for toolbar buttons, SVG format and in line with Godot interface. * refs #134: Added check to avoid errors when called in scene different from rooms. * refs #134: Popochiu toolbar gizmos icons are now colored if the user so prefer. Also addressed regression about button visibility and make things more robust. * refs #134: Popochiu toolbar now sports a label to make clear what you are looking at. * refs #134: SVG icons optimized as per Godot docs. Removed leftovers. * refs #134: Icons have been renamed to make it clear they are toolbar buttons. * Removed excessive indentation Co-authored-by: Carenalga <[email protected]> * refs #134: Added type hinting in virtual method. Co-authored-by: Carenalga <[email protected]> * refs #134: Added type hinting on another virtual method. Co-authored-by: Carenalga <[email protected]> * refs #134: Last type hinting addition. Co-authored-by: Carenalga <[email protected]> * refs #134: Icons resource references fixed in toolbar scene. * refs #134: All polygons are marked as such at runtime, not in the base scenes. This makes things easier to change on future projects (no need for migrations). * refs #134: Addressed all the last bug reports by @mapedorr. --------- Co-authored-by: Paolo Pustorino <[email protected]> Co-authored-by: Paolo Pustorino <[email protected]> Co-authored-by: Carenalga <[email protected]> * refs #134: polygon disappears when selecting another object on scene. (#247) * Migration tool (#246) * add initial migration framework support * update files to have less then 100 characters * in progress work pushed for others to look at * Migration tool for Popochiu release. Change spaces to tabs Progress on formating code Refactor some code to make it cleaner Create migration scripts for new migration steps - Migration 2 is intended to update changes between beta 1 and beta 2 to beta 3. - Migration 3 is intended to update changes between beta 3 to 2.0 release. - **upd** Minor refactor of the PopochiuMigration class. Finish code for PopochiuMigration1 This allows to update the project structure and file/folder naming from versions prior to Beta 1. It also assigns the SimpleClick as the default GUI template. - **upd** Setup popup resizes each time a template button is clicked. Add PopochiuCharacter voices update Progress on making a Popup window to show the migration progress. Fix scene linking in Props created in alpha 1 Assign script for non clickable props (which didn't have one prior to beta 1). - **upd** Migration 1 also updates the radius of WalkableArea's Perimeter node. Update prop update task to store interaction polygon's polygon Refactor code to take into account Hotspots and Regions. Update props and hotspots in Migration 1 Finish migration of PopochiuRegion and PopochiuWalkableArea objects Replace calls to old methods in scripts. Add Migrations popup to show migration progress Closing the Migrations popup will restart the engine. Update InventoryItem root nodes to PascalCase Update visual style of Migrations popup. Finish Migration 1 with node additions to PopochiuCharacter Now this migration doesn't stops if the `res://popochiu/` folder doesn't exists in the project. - **fea** AnimationPlayer and ScalingPolygon nodes are added to PopochiuCharacter scenes if needed. - **upd** Refactor code to make it simplier and clearer. - **upd** Now MigrationTab shows the steps and the migration progress using CheckBox buttons instead of BBcode. Update the way migrations notify their steps completion Now a migration step can be completed as: FAILED, DONE or IGNORED - **upd** Ignored migration steps are rendered different in the Migrations dialog. - **fix** Check if a PopochiuProp or PopochiuHotspot has an InteractionPolygon or InteractionPolygon2 node before trying to store its `polygon` property. Progress on improving Migration 1 behavior for projects in beta Can run Migration 1 in projects made in beta-3 A new function was added to **PopochiuUtils** in order to perform an improved `Array.any()` that doesn't stops early. - **fix** Don't update `PopochiuClickable.interaction_polygon` value if the object already has a scene with an **InteractionPolygon** child. Start coding for Migration 2 Now the process of adding the ScalingPolygon node to PopochiuCharacters is done by Migration 2. - **upd** Rename Migrations to MigrationsPanel for better understanding. - **upd** Add comments to some functions in PopochiuMigrationHelper. - **upd** Add constants and sample code to popochiu_migration_template.gd. Fix on checking if migrations are needed The version in PopochiuMigrationHelper is no longer needed since we're gonna take into account the number of files (migrations) in the migration_files folder. - **upd** Migration 2 first step working. Make each migration to ask for an Engine reload Instead of assuming an Engine reload is required each time a Migration is executed, each Migration can set to `true` the `PopochiuMigrationHelper.is_reload_required` property in order to make the popup restart the Engine when clicking OK. Progress on fixing and improving Migration 1 Moving values from old popochiu_settings.tres to Project Settings will need extra steps since the PopochiuSettings script changed since beta-3. Fix PopochiuSettings issue for Migration 2 Migration 1 now iterates through all possible children of each group to obtain objects of that type, instead of assuming that each group only has children of its specific type (e.g., if there are props grouped within a node). Migration 2 deletes helper nodes in PopochiuClickables Update Migration 2 with changes done to SettingsBar In beta-3 the SettingsBar GUI component changed to improve how the text speed options are defined. - **fix** Ignore room objects that already have a scene and a script in the step that updates the room in Migration 1 so devs don't lose their changes. Add step to update DialogMenu component in Migration 2 Add code update step for deprecated properties and methods Add step to update properties from the old popochiu_settings.tres into InventoryBar and SettingsBar GUI components. Fix on deprecated camera functions replacement Calls to functions in PopochiuMainCamera changed their names compared to those used before in the **E** autoload. - **fix** On moving inventory items on start from old popochiu_settings.tres to Popochiu Project Settings. - **upd** Inventory items on start are now stored as an array of String in Project Settings. Create Markers scenes in Migration 1 Update Migrations process to be started by the user Instead of triggering the migrations automatically, the Migrations popup asks devs to start the migrations by pressing the Run migrations button. - **fix** Updating room objects wasn't working properly due to an issue in Godot when appending elements to an Array inside a Dictionary. Fix an issue found when running migration 2 in Alpha projects - **upd** Execution pauses in popochiu_plugin.gd if Migrations are required until dev run the migrations. - **fix** Other issues found when running migrations in alpha projects after adding Migration 2. Update Migration 1 and 2 related to PopochiuCharacter In Migration 1, now the "Sprite2D:texture" track is removed from AnimationPlayer nodes (something that affected characters imported from Aseprite prior Beta 1). In Migration 2 the coordinates of the **DialogPos** node are stored in the `dialog_pos` property before deleting the node. - **fix** Enable the Remove button in Room objects context menu in Room tab. Fix issue after snake_case renaming Changing file and folder names in the snake_case renaming process required to update the references to the new names inside .gd, .tscn, .tres, and .cfg files. Restore code that shows the confirmation dialog in Setup popup - **upd** Rename function to more descriptive name. Fix PopochiuDialog deletion (after refactor) Update Migration 2 to take into account the changes made to autoloads after refactor Fix setting PC character in Create character popup Improve visual feedback of migrations progress - **fix** Closing the Migrations tool popup doesn't stops the execution in `popochiu_plugin.gd`. * Remove not needed nodes in PopochiuRegion and PopochiuWalkableArea This is because in the release version these objects won't need a node in the room to define their InteractionPolygon and Perimeter nodes. - **upd** Remove the old DialogPos node in PopochiuCharacter and store its position in the new `@export var dialog_pos` property. * Add check for lacking nodes in room objects Ignore "graphic_interface" folder in code updates for Migration 1. * Fix for WalkableAreas not working until room save - **fix** Send `hint_string` parameter when creating settings in config.gd. - **upd** Minor refactor in **PopochiuWalkableArea** to avoid duplicated code. * Apply suggestions from code review Co-authored-by: Paolo Pustorino <[email protected]> * Make changes based in PR comments * Enable gizmos plugin when Popochiu dock is ready This happens only if the plugin is not already enabled. - **upd** Add comments to some functions with the help of Copilot. * Add lacking comments to Migration 2 functions * Check custom script in Room object If a room object created during migration has a script attached that is not in the "addons" folder, assume it is a custom script and copy its properties to the new instance of the object. * Add comments for better understanding Co-authored-by: Paolo Pustorino <[email protected]> * Fix getting custom vars in walkable area - **upd** Add a $Sprite2D check in PopochiuProp. - **upd** Set specific steps in Migration 1 to ask for an engine restart. * Fix polygon assignation when adding nodes to Walkable Area - **fix** Change code order to first assign custom script properties on Migration 1. * Move room objects update to Migration 2 - **upd** Add validation to ignore Migration 1 in project done since beta 1. --------- Co-authored-by: Anthony Irwin <[email protected]> Co-authored-by: Paolo Pustorino <[email protected]> * Add virtual method for character when they stop moving (#253) * Create virtual function in PopochiuCharacter to know when movement ended * Add _on_move_ended virtual to character template * Fix changing PopochiuClickable.clickable in runtime (#254) Now it has a setter method that changes the `Area2D.input_pickable` value based on the `clickable` property. - **fix** Set right path to **PopochiuGroup** icon. * Fix #239 by auto-enabling WAV looping. (#255) * Update message when trying to loop read-only WAV * Change LoopMode in imported WAV files Popochiu now sets the loop mode for WAV files to FORWARD or DISABLED based on the type of the PopochiuAudioCue. This will save developers from having to manually re-import these files to enable looping. - **fix** Do not connect to the finished signal when playing audio files in the Audio tab. * Added RFC issue template; updated label to reflect changes in the board. * Update how camera limits are defined for rooms (#257) * Update camera limits definition for PopochiuRoom Now these limits are calculated by Popochiu based on the `width` and `height` of the room. * Update Migration 2 to update rooms' width and height Camera limits in rooms are now calculated based on their `width` and `height` properties, so this new migration step takes into account the deprecated camera limits properties to define the values of the new properties in rooms created prior 2.0. * Update camera limits only when room size exceeds the viewport size * Update code comments for clarity * Godot 4.3 fixes (#265) * Progress on adding resources scan to improve UX in Godot 4.3 * Move function _remove_object to its corresponding region * refs #267: Mildly unrelated, I added Mermaid and Font-Awesome support to the docs, plus some more useful automation. * refs #267: New theme and new assets, ready for version 2.0 release. * refs #267: Added site Favicon, removed unnecessary class from home banner. * refs 217: added option for change spoken text or dialog option to gibberish (#218) * added option for change spoken text or dialog option to gibberish * updated some code and added documentation * typos * images location fix * Fix issues in config.gd --------- Co-authored-by: carenalga <[email protected]> * refs #40: Documentation section for the GUIs. (#261) * refs #40: WIP on the documentation section for the GUIs. * WIP fixed a mistyped warning block. * refs #40: Small rephrasing. * refs #40: "Getting Started" section on GUIs is complete and should introduce new users to the main concepts. * GUI templates structure and appearance update (#271) Progress in standarizing GUI templates Set base_gui_theme.tres as default theme for all GUIs - **upd** Update structure of some components to have a Control node as root (this is a way to standarize all the GUI components). - Replace all the uses of 9_verb_theme and sierra_theme by base_gui_theme. Make all Popochiu popups have a Control as root Update base_gui_theme Buttons' style Now the buttons have a simpler style. - **upd** Create DialogLine script to wrap the DialogText nodes that will allow render dialog lines with different styles. Progress on creating Popochiu GUI components for each dialog style Separate logic for the different DialogText styles Now each dialog style has its own scene and script so the specific logic of each component relies in its own script. Fix issues after testing GUI template selection Fix issues in Simple Click GUI template Now it is possible to make the inventory bar and the settings bar to show when moving the mouse on top of the viewport. - **fix** Fix wrong position calculation for DialogMenu component. Standarize popups Now all popups have the same structure and use a .tres file to define the style of their PanelContainer node (the one that containts the content of the popup). Fix wrong calculations in DialogText component Now the Overhead dialog works as expected. - **fix** Fix closing PopochiuPopups by clicking the Overlay node. Fix issues in Sierra GUI The inventory wasn't working, and the DialogPortrait component was having an unexpected behavior. Add avatar background panels to DialogPortrait refs #264: Some changes to the base GUI theme, with the news consistent style. Also added new "Minecraftia Regular" font. refs #264: Components cleanup: redundant theme assignement removed, aesthetic matching everywhere, some small structural change to inventory grid. refs #264: Aesthetic changes to 9Verbs template (missing popups). refs #264: SimpleClick template redundant theme assignment cleanup. refs #264: Sierra template cleanup from redundant themeing, plus aesthetic changes to the main elements. Some WIP on the popups. refs #264: Inventory up and down buttons are referred to by unique names in script. refs #264: All popup buttons are now coherent (OK, Back, Cancel), plus the quit popup is translucent. refs #264: All overlays are now transparent (StyleBoxEmpty) to support translucent popups. refs #264: NEEDS REVIEW by @carenalga! - Overlays are now always open in "exclusive mode", so when one is visible the other ones in the stack are hidden. refs #264: New Sierra menu icons and cursors. refs #264: Update GUI scripts creation and folder renaming (#270) * refs #264: Update scripts created for game GUI. Now the original script attached to a component is copied to the game folder, and a *_custom.gd is created so that devs can easily modify the default behavior. - **upd** Now the `graphic_interface` folder inside the plugin's folder is named `gui`. * refs #264: Fix path issues in some GUI components. - **fix** Fix type infer bug in Dialog Overhead component. * Fix GUI theme Panel overwrite issue in Dialog Menu component refs #264: Fix issues in Sierra and Simple Click GUIs - **fix** Change mouse_filter in Dialog Portrait component to "IGNORE". - **fix** Remove unnecessary uses of preload in some GUI components. - **upd** Improve inheritance of btn_dialog_speed in Simple Click GUI. refs #264: Deselect active inventory item with RMB in Sierra GUI - **upd** Add I.deselect_active() and PopochiuInventoryItem.deselect() methods to make deselection easier. - **fix** Update Sierra Inventory popup buttons' atlas texture sizes and positions in order to match the new 24x24 icons. refs #264: Move Settings button to bottom panel in 9 Verb GUI Now the button to open the Settings popup in the 9 Verb GUI is located between the UP and DOWN arrows in its bottom panel. - **upd** Create custom script for 9 Verb Inventory Grid. refs #264: 9 Verbs GUI icons are done. Fix click blocking when using DialogPortrait. - **upd** Rename the idle animation in Popochiu's default cursor to match the correct name ("normal"). - **upd** Reduce the custom minimum size of the Popochiud dock since all those pixels are no longer needed. refs #264: Padding for Sierra dialog panel. refs #264: New inventory arrow icons for Sierra GUI. refs #264: New toolbar icons for SimpleClick GUI. refs #264: Fixed fonts and outlines for SimpleClick GUI. refs #264: Add option to hide HoverText when a dialog line is shown This can be configured by devs with the export variable in the HoverText component. - **upd** Hide the GUI tab in Popochiu dock while we define how it should work. - **upd** Hide "Use translations" and "Dialog style" options in `Project Settings > Popochiu > Dialogs`. refs #264: New icons for dialogue controls. refs #264: SimpleClick GUI now opens text settings popup. Removed useless setting from the same popup. refs #264: SimpleClick GUI now shows a confirmation popup before quitting the game. refs #264: Fixed a visual glitch on Sierra toolbar buttons. refs #264: Useless SimpleClick icons cleanup. refs #264: SimpleClick GUI icons are now colored. refs #264: Fix history button in Simple Click GUI refs #264: Hide Custom button in Setup popup We agreed to release Popochiu 2.0 with only 3 GUI options since enabling the Empty (a.k.a. Custom) GUI will require more documentation to be done so devs have a guide on how to create their GUIs from zero. refs #264: SimpleClick GUI icons are now colored - Missing icons. Fix double-click double-tap issue in DialogText component refs #264: Update base retro resolution to 356x200 * refs #264: Make ALL GUIs open their popups the same way. (#272) Instead of relying on IGraphicInterface methods and signals, each GUI handles local signals to decide which popup to open. This change affected the Simple Click and the 9 Verb GUIs. - **upd** Remove unused images in the Sierra GUI. - **upd** Update button style for CheckBox Buttons in base_gui_theme.tres. * refs #273: Fix Room tab not working as expected (#274) If there are no opened scenes in the Editor, now the PopochiuDock listens to a node selection (EditorSelection.selection_changed) in order to ensure that the Room tab continues to function as expected. * Various fixes related (mostly) to visual issues (#275) - **fix** Make 9VerbHoverText component render its text properly without cutting the first letter of the string. - **fix** Take into account the size of the continue icon in the DialogOverhead component so it is not rendered out of screen when it exceeds the size of the viewport. - **fix** Add null validation in Room tab when importing Aseprite rooms. - **fix** Remove the Key string from the `items_on_start` property in project.godot. - **fix** Update path of TextSpeedOption script in Migration 2 script. * Update TransitionLayer background to match the new 356x200 resolution (#278) * Update transition layer background image. Now it has the size of the default resolution (356x200), and its animations were updated to fix positioning. Also, the scene scales by default instead of depending on the `PopochiuSettings.scale_gui` property. * Update position of sprite for Fade in and Fade out transitions * Fix characters not updating their walk_to_point property (#280) Now the property is stored as part of the room data so it is not lost when the room is loaded. - **upd** Move characters position and scale calculation operations from PopochiuRoom to PopochiuCharacter. - **fix** Add validations to remove Output error messages when inspecting nodes in Remote. * Added a Task issue type for maintainers. * refs #276: "Getting started" index updated and fixed broken links. (#283) * Remove GUI related steps from migrations * Add release notes for 2.0.0 * refs #282: final release notes + changed author of Popochiu to mentions a dev team. * Add section about removing the old GUI folder * refs #282: Added notes about the GUI folder. * refs #267: New readme files and project branding (#281) * Updated project and default icon to the new branding. * Updated README files for branding and content. * Updated README files in both languages, with new branding and an updatet text. * Minor adjustments * refs #267: Cover image has a better sizing. * refs #267: readability improvement. --------- Co-authored-by: carenalga <[email protected]> --------- Co-authored-by: Carenalga <[email protected]> Co-authored-by: Anthony Irwin <[email protected]> Co-authored-by: drbb <[email protected]> Co-authored-by: Artur Maciąg <[email protected]> Co-authored-by: Filip Motyczka <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
In Adventure Game Studio and PowerQuest, devs can choose from different UI types when creating a new project: BASS, Sierra-style, Tumbleweed (a.k.a. 7 verbs), Verb coin.
This is just the starting issue for a bunch of tasks to allow devs to:
The text was updated successfully, but these errors were encountered: