Skip to content

Commit

Permalink
refs@282: v2.0.0 Stable release (#284)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
6 people authored Sep 14, 2024
1 parent e77db29 commit 516bbed
Show file tree
Hide file tree
Showing 510 changed files with 20,811 additions and 9,956 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
labels: improvement
assignees: ''

---
Expand Down
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/rfc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Proposal (RFC)
about: Request For Comments on a specific topic. Used to discuss high-level decisions before we open issues and milestones.
title: ''
labels: proposal
assignees: ''

---

### Topic

A clear and concise description of the scope of this discussion.
May specify which aspects NOT to discuss.

### Goals

Describe the goals, if any, of this discussion or proposal.
Some examples of valid goals:

- Define architectural direction
- Identify use cases
- Change how we do things
- Propose a new course of actions
- Discuss changes

### Your proposal, in detail

Be detailed; add visuals, schemas, and diagrams as you see fit (consider using [mermaid](https://mermaid.js.org/) for them).
Post references, explain experiments, name people in our community if you feel they can add value.

The aim here is to discuss, so do your best to set the conversation.

### Record of decisions taken

> LEAVE EMPTY
We will discuss in the comments, and fill this area only with the final decision, as we take them.
9 changes: 3 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
# Addons other than Popochiu
# (we use some for development)
# addons/*
# !addons/popochiu/

# Godot-specific ignores
.import/
export.cfg
Expand Down Expand Up @@ -43,4 +38,6 @@ docs/dist/**/*
!docs/dist/.gitkeep
Collector*.gd
ReferenceCollectorCLI*.gd
reference.json
reference.json

!addons/*
122 changes: 79 additions & 43 deletions LEEME.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,115 @@
# Popochiu 2
# Popochiu

[![Godot v4.2.x](https://img.shields.io/badge/Godot-4.2.x-blue)](https://godotengine.org/download/archive/4.2.1-stable/) [![Discord](https://img.shields.io/discord/1128222869898416182?label=Discord&logo=discord&logoColor=ffffff&labelColor=5865F2&color=5865F2)](https://discord.gg/Frv8C9Ters)
[![Godot v4.3](https://img.shields.io/badge/Godot-4.3-blue)](https://godotengine.org/download/archive/4.3-stable/) [![Godot v4.2.x](https://img.shields.io/badge/Godot-4.2.x-blue)](https://godotengine.org/download/archive/4.2.2-stable/) [![Discord](https://img.shields.io/discord/1128222869898416182?label=Discord&logo=discord&logoColor=ffffff&labelColor=5865F2&color=5865F2)](https://discord.gg/Frv8C9Ters)

![cover](https://github.com/carenalgas/popochiu/wiki/images/popochiu_2_hero-es.png "Popochiu")
![Imagen de portada](home_banner.png "Popochiu")

Un plugin para Godot que permite crear juegos de aventura gráfica fácilmente con un flujo de trabajo como el de [Adventure Game Studio](https://www.adventuregamestudio.co.uk/) y [PowerQuest](https://powerhoof.itch.io/powerquest).
Un plugin de Godot para crear juegos point n' click inspirado por [Adventure Game Studio](https://www.adventuregamestudio.co.uk/) y [PowerQuest](https://powerhoof.itch.io/powerquest).

### 🌎 [Read this in English](./README.md) 🌎
> 🌎👉🏽 [Read the English version](./README.md) 👈🏽🌎
---

🔍 Lee la [Documentación](https://carenalgas.github.io/popochiu/) (en progreso) para conocer lo que puedes hacer con el plugin.
🔍 Lee la [Documentación](https://carenalgas.github.io/popochiu/) para saber qué puedes hacer con el plugin.

❤️ Únete al [Discord de Carenalgas](https://discord.gg/Frv8C9Ters) para ver actualizaciones diarias y otras publicaciones.
❤️ Únete al [Discord de Carenalga](https://discord.gg/Frv8C9Ters) para conocer actualizaciones diarias y lanzamientos.

▶️ Sigue los [tutoriales](https://www.youtube.com/playlist?list=PLH0IOYEunrBDz6h4G3vujEmQUZs8vLjz8) (en español) para aprender a usar el plugin.
▶️ Sigue los [tutoriales](https://www.youtube.com/playlist?list=PLH0IOYEunrBDz6h4G3vujEmQUZs8vLjz8) (subtítulos en inglés) para aprender a usar el plugin.

## Acerca de

Esta herramienta consta de dos partes: el motor (Popochiu) y el plugin del editor que ayuda con la creación de elementos del juego (nodos y recursos) que utilizan dicho motor. Está inspirado en herramientas bien establecidas para la creación de juegos de aventura gráfica, como Adventure Game Studio y PowerQuest (un plugin para Unity de PowerHoof). Popochiu organiza los juegos en Habitaciones, las escenas donde los Personajes pueden moverse e interactuar con Objetos y Puntos de Interés. También proporciona sistemas de gestión de Inventario y Diálogos.

# ¿Qué es?
## Características

Esta herramienta consta de dos partes: el núcleo (Popochiu) y el dock que facilita la creación de los Objetos que hacen uso de dicho núcleo. Está inspirado en como se desarrollan las aventuras gráficas en Adventure Game Studio y en el plugin de Unity de Power Hoof: PowerQuest. Esto es, utilizando Habitaciones (Room) como escenarios donde los Personajes (Character) pueden moverse e interactuar con Props y Hotspots, y proporcionando un sistema de inventario y de gestión de diálogos.
### Motor

![features](https://github.com/carenalgas/popochiu/wiki/images/popochiu_list_of_features-es.png "Features")
* Soporte completo para juegos en 2D de estilo retro, pixel art o alta resolución
* Gestión de personajes, con soporte para diferentes emociones durante los diálogos
* Velocidad de texto ajustable y avance automático
* Habitaciones llenas de objetos interactivos, puntos de interés, personajes locales, múltiples áreas transitables, regiones reactivas y marcadores de posición
* Gestión de inventario para tu personaje principal
* Diálogos basados en scripts, que permitien escenas complejas y múltiples interacciones
* Guardado y carga de sesiones de juego
* Gestión del historial de acciones
* Transiciones personalizables entre habitaciones
* Múltiples interfaces gráficas predefinidas con libertad para crear una personalizada
* GUI basada en comandos
* Gestión sencilla de música de fondo y efectos de sonido
* Código y elementos 100% de Godot, sin bloqueos

### Editor

* Panel de Popochiu para acceder fácilmente a todos los elementos del juego
* API moderna e intuitiva basada en GDScript, con funciones de autocompletado
* Creación visual de todos los elementos del juego, con gizmos personalizados para propiedades especiales
* Gestión de árboles de diálogo
* Gestión de audio para música de fondo y efectos de sonido
* Importación de Habitaciones y Personajes, desde archivos fuente de [Aseprite](https://www.aseprite.org/), con toda su estructura

# Instalación
Y vendrán muchas cosas más. Popochiu está en desarrollo activo y tenemos un hoja de ruta de lanzamientos bien mantenida.

**Popochiu puede usarse en Godot 3.3.x a 3.5.x**. **¡¡¡Y ahora también funciona en Godot 4!!!**
## Tabla de compatibilidad

1. Si usas Godot 4.2, descarga [Popochiu 2.0 Beta 3](https://github.com/carenalgas/popochiu/releases/download/v2.0.0-beta3/popochiu-v2.0.0-beta3.zip). Si usas **Godot 3.5 o superior**, descarga [Popochiu 1.10.1](https://github.com/carenalgas/popochiu/releases/download/v1.10.1/popochiu-v1.10.1.zip). Si estás usando **Godot 3.3 a Godot 3.4.5**, descarga [Popochiu 1.8.7](https://github.com/carenalgas/popochiu/releases/download/v1.8.7/popochiu-v1.8.7.zip).
2. Extra su contenido y copia la carpeta `addons` dentro de la carpeta de tu proyecto.
3. Abre tu proyecto en Godot y habilita el plugin Popochiu: `Proyecto > Ajustes del Proyecto > Plugins` (the tab on the top).
4. Reinicia Godot `Proyecto > Volver a Cargar el Proyecto Actual`.
5. Verás el dock de Popochiu a la derecha del editor. ¡Eso es todo!
Popochiu es compatible con Godot 4 y Godot 3, pero sólo la versión para Godot 4 está en desarrollo activo, y la versión estable más reciente de Popochiu requiere Godot 4.3.

Por favor, revisa esta tabla para saber qué versión descargar dependiendo de la versión de Godot que quieras usar:

| Versión requerida de Godot | Lanzamiento de Popochiu |
|---|---|
| 4.3 y superior | [Popochiu 2.0](https://github.com/carenalgas/popochiu/releases/download/v2.0/popochiu-v2.0.0.zip) |
| 3.5 a 3.6 | [Popochiu 1.10.1](https://github.com/carenalgas/popochiu/releases/download/v1.10.1/popochiu-v1.10.1.zip) |
| 3.3 a 3.4.5 | [Popochiu 1.8.7](https://github.com/carenalgas/popochiu/releases/download/v1.8.7/popochiu-v1.8.7.zip) |

## Instalación

# Tutoriales
1. Descarga la versión correcta para tu versión de Godot.
2. Extrae el archivo y copia la carpeta `addons` en la carpeta de tu proyecto.
3. Abre tu proyecto de Godot y habilita el plugin de Popochiu: `Proyecto > Configuración del Proyecto` y selecciona la pestaña `Plugins` en la parte superior.
4. Popochiu te dirá que reiniciará el motor.
5. Verás el panel de Popochiu en el área inferior derecha del editor. ¡Eso es todo!

[![tutoriales](https://github.com/carenalgas/popochiu/wiki/images/popochiu_tutorials_button-es.png "Ir a los tutoriales")](https://www.youtube.com/playlist?list=PLH0IOYEunrBDz6h4G3vujEmQUZs8vLjz8)
## Documentación

Ahora puedes seguir los tutoriales (¡Completamente en español! (la versión en Inglés la publicaremos pronto)) [en este enlace](https://www.youtube.com/playlist?list=PLH0IOYEunrBDz6h4G3vujEmQUZs8vLjz8). Allí aprenderás:
* Encuentra [aquí la documentación de la última versión](https://carenalgas.github.io/popochiu/).
* Lee [esta wiki para la versión 1.x](https://github.com/carenalgas/popochiu/wiki).

- [Instalar el plugin, crear una habitación, un área transitable y un personaje](https://youtu.be/-N62S1DHbcs).
- [Configurar baselines, huecos en las areas transitables y crear Hotspots](https://youtu.be/5RbqbG3_0ak).
- [Crear Props con interacción y un objeto de inventario](https://youtu.be/_an0YF3Bd50).
- [Crear diálogos con opciones](https://youtu.be/Aql4wh2itF4).
- [Habilitar opciones dentro de un diálogo y usar objetos de inventario](https://youtu.be/Ad_YBG-_wYE).
- [Agregar otra habitación y configurar la cámara para que siga al personaje](https://youtu.be/YFEZaSty3aw).
- [Agregar audio](https://youtu.be/VF7V6BJmQVQ).
## Tutoriales

Los tutoriales están disponibles para la versión 1.x de Popochiu:

[![tutoriales](https://github.com/carenalgas/popochiu/wiki/images/popochiu_tutorials_button-en.png "Tutorial en Video")](https://www.youtube.com/playlist?list=PLH0IOYEunrBDz6h4G3vujEmQUZs8vLjz8)

# Juegos hechos con Popochiu
Puedes seguir los tutoriales (con subtítulos en inglés) [en esta lista](https://www.youtube.com/playlist?list=PLH0IOYEunrBDz6h4G3vujEmQUZs8vLjz8) para aprender:

- [Gustavo the Shy Ghost](https://lexibobble.itch.io/gustavo-the-shy-ghost-project) - En inglés.
- [Detective Paws](https://benjatk.itch.io/detective-paws) - En inglés.
- [Zappin' da Mubis](https://carenalga.itch.io/zappin-da-mubis) - En inglés.
- [Reality-On-The-Norm: Ghost of Reality's Past](https://edmundito.itch.io/ron-ghost) (password: `popochiu`) - En inglés.
- [Breakout (demo)](https://rockyrococo.itch.io/breakout-demo) - En inglés.
- [Poin'n'Sueldo](https://matata-exe.itch.io/pointnsueldo) - En español.
- [Dr. Rajoy](https://guldann.itch.io/dr-rajoy) - En español.
- [I'm Byron Mental](https://leocantus23.itch.io/im-byron-mental-colombia) - En español.
- [Benito Simulator](https://panconqueso94.itch.io/benito-simulator) - En español.
- [Pato & Lobo](https://perroviejo.itch.io/patolobo) - En inglés y español (¡este fue el primer juego hecho con Popochiu!).
* [Instalar el plugin, crear una habitación, un área transitable y un personaje](https://youtu.be/-N62S1DHbcs).
* [Configurar las líneas base, agujeros en áreas transitables y crear Puntos de Interés](https://youtu.be/5RbqbG3_0ak).
* [Crear Objetos interactivos y un objeto de inventario](https://youtu.be/_an0YF3Bd50).
* [Crear diálogos con opciones](https://youtu.be/Aql4wh2itF4).
* [Habilitar opciones dentro de un diálogo y usar objetos de inventario](https://youtu.be/Ad_YBG-_wYE).
* [Agregar otra habitación y configurar la cámara para seguir al personaje](https://youtu.be/YFEZaSty3aw).
* [Agregar audio](https://youtu.be/VF7V6BJmQVQ).

## Hechos con Popochiu

* [Gustavo the Shy Ghost](https://lexibobble.itch.io/gustavo-the-shy-ghost-project) - Inglés.
* [Detective Paws](https://benjatk.itch.io/detective-paws) - Inglés.
* [The Sunnyside Motel in Huttsville Arkansas](https://fgaha56.itch.io/the-sunnyside-motel-in-huttsville-arkansas) - Inglés.
* [Zappin' da Mubis](https://carenalga.itch.io/zappin-da-mubis) - Inglés.
* [Reality-On-The-Norm: Ghost of Reality's Past](https://edmundito.itch.io/ron-ghost) (contraseña: `popochiu`) - Inglés.
* [Breakout (demo)](https://rockyrococo.itch.io/breakout-demo) - Inglés.
* [Poin'n'Sueldo](https://matata-exe.itch.io/pointnsueldo) - Español.
* [Dr. Rajoy](https://guldann.itch.io/dr-rajoy) - Español.
* [I'm Byron Mental](https://leocantus23.itch.io/im-byron-mental-colombia) - Español.
* [Benito Simulator](https://panconqueso94.itch.io/benito-simulator) - Español.
* [Pato & Lobo](https://perroviejo.itch.io/patolobo) - Inglés y Español (este fue el primer juego hecho con Popochiu!).

# Créditos
## Créditos

Hecho por [Carenalga](https://carenalga.itch.io).
Popochiu es un proyecto de [Carenalga](https://carenalga.itch.io).
Ahora es mantenido por [Carenalga](https://carenalga.itch.io) y [StickGrinder](https://twitter.com/StickGrinder) con muchas contribuciones de otros miembros de nuestra encantadora comunidad.

Ahora con la colaboración de [StickGrinder](https://twitter.com/StickGrinder) (y otros miembros de [Illiterate Code Games](https://illiteratecodegames.itch.io)), [@vonagam](https://github.com/vonagam), [@JuannFerrari](https://github.com/JuannFerrari), [Whyschuck](https://github.com/Whyshchuck), y nuestra querida comunidad.
:heart::heart::heart: Agradecimientos especiales a :heart::heart::heart:

:heart::heart::heart: Unas muchísimas gracias a [Edmundito](https://github.com/edmundito), [Whyschuck](https://github.com/Whyshchuck), y **Matthew** por su aporte mensual a nuestra [Ko-fi](https://ko-fi.com/carenalga) :heart::heart::heart:
* [Edmundito](https://github.com/edmundito), [Whyschuck](https://github.com/Whyshchuck), y **Turquoise** por su contribución mensual a nuestro [Ko-fi](https://ko-fi.com/carenalga)
* [Illiterate Code Games](https://illiteratecodegames.itch.io)), [@vonagam](https://github.com/vonagam), [@JuannFerrari](https://github.com/JuannFerrari), [Whyschuck](https://github.com/Whyshchuck) por sus valiosas contribuciones
Loading

0 comments on commit 516bbed

Please sign in to comment.