From e0aa36aee209a4baa0458ddcb3f11b192f078daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Z=C3=B8zo?= Date: Thu, 11 Jun 2026 00:42:02 +0200 Subject: [PATCH 1/2] docs: add main menu customization guide --- content/psdk/ui-development/11-main-menu.md | 156 ++++++++++++++++++ .../psdk/ui-development/11-main-menu.md | 156 ++++++++++++++++++ static/img/psdk/ui-development/main-menu.png | Bin 0 -> 76826 bytes 3 files changed, 312 insertions(+) create mode 100644 content/psdk/ui-development/11-main-menu.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md create mode 100644 static/img/psdk/ui-development/main-menu.png diff --git a/content/psdk/ui-development/11-main-menu.md b/content/psdk/ui-development/11-main-menu.md new file mode 100644 index 0000000..878f993 --- /dev/null +++ b/content/psdk/ui-development/11-main-menu.md @@ -0,0 +1,156 @@ +--- +title: "How to customize the Main Menu in PSDK?" +slug: customize-main-menu +sidebar_position: 11 +description: "This guide explains how the Main Menu works and how to customize it: adding a button, changing a button's look and defining a custom button order. It is one of the simplest UI customizations in PSDK, perfect as a first contact with the engine's UI code." +--- + +This guide explains how the **Main Menu** works and how to customize it: adding a button, changing a button's look and defining a custom button order. It is one of the simplest UI customizations in PSDK, perfect as a first contact with the engine's UI code. + +## How the Main Menu works + +![The Main Menu in game](/img/psdk/ui-development/main-menu.png) + +The Main Menu (often just called **Menu**) lets the player access the main interfaces of the game. Internally, its model is simple: an ordered list of buttons, where each button is registered with two pieces of information. + +- An **action**: a Symbol naming the method of `GamePlay::Menu` that is called when the player presses the button. +- A **visibility condition**: a block evaluated every time the menu opens. The button only shows when the block returns a truthy value. + +This is why the screenshot above has no Dex and no party button: their conditions are false as long as the player has no Dex and no creature. Here are the buttons PSDK registers by default: + +| Button | Action | Condition | Meaning | +| ------------ | ------------- | ---------------------------------- | ------------------------------------------ | +| Dex | `:open_dex` | `$game_switches[Yuki::Sw::Pokedex]` | The game switch enabling the Dex is on | +| Party | `:open_party` | `$actors.any?` | The player has at least one creature | +| Bag | `:open_bag` | `!$bag.locked` | The bag is not locked by an event | +| Trainer card | `:open_tcard` | `true` | Always visible | +| Options | `:open_option`| `true` | Always visible | +| Save | `:open_save` | `!$game_system.save_disabled` | Saving is not disabled by an event | +| Quit | `:open_quit` | `true` | Always visible, always pushed to the end | + +Since the conditions are re-evaluated each time the menu opens, a button appears as soon as its condition becomes true. For example, the party button shows up right after the player receives their first creature. + +## How to open the menu + +In game, press V (the physical key bound to the X input by default). + +From a script, call `GamePlay.open_menu`. + +If you want to replace the PSDK Main Menu with your own fully home-made Menu, assign your class to `GamePlay.menu_class`. This is an advanced move: your class must respect `MenuMixin` (`scripts/4 Systems/100 Menu/099 MenuMixin.rb`), which defines the `execute_skill_process` function that `Scene_Map` needs to execute field moves properly. For most needs, the customizations below are enough, with no need to rewrite the whole scene. + +## Where to write your customizations + +Never edit the engine files: the next PSDK update would overwrite your changes. Instead, write your customizations in your own script inside your project's `scripts/` folder, by reopening the `GamePlay::Menu` class. If this technique is new to you, read [What is monkey-patching and how to apply it in PSDK?](/getting-started/monkey-patching-in-psdk) first. + +```ruby +module GamePlay + # Reopen the engine class to add our own registrations + class Menu + # Your customizations go here + end +end +``` + +All the examples below go inside this block. + +## How to add a button + +Call `GamePlay::Menu.register_button` with the action Symbol and the visibility condition. One important thing to understand: the engine has **already registered** the seven default buttons when your script runs. `register_button` appends to that list, it does not replace anything. So registering `:open_party` again would give the menu two party buttons; use `register_button` to add **new** buttons only (to modify the default ones, see the last section). + +The action Symbol must name a method of `GamePlay::Menu`. For a brand new button, you define that method yourself in the reopened class. A complete example with a quest journal: + +```ruby +module GamePlay + class Menu + register_button(:open_quests) { $game_switches[42] } + + private + + # Open the quest journal UI + def open_quests + call_scene(MyGame::QuestUI) + end + end +end +``` + +Here `MyGame::QuestUI` stands for whatever scene your button should open, and game switch 42 controls when the button shows up. `call_scene` is the same helper the engine uses for its own buttons (look at `open_save` in `scripts/4 Systems/100 Menu/100 Menu.rb`). + +:::warning + +A new button displays the **Quit** icon and text by default! Read on to understand why, and how to fix it. + +::: + +Each button finds its icon and its text through its index in the registration list: + +- The icon comes from the `menu_icons` file in your project's interface graphics. It is a sprite sheet of 2 columns (normal and selected state) by 8 rows, and the button uses the row matching its index. Your first custom button has index 7, so draw its icon on the 8th row (by default that row holds the girl bag variant: replace it or use a button overwrite). +- The text comes from the `text` method of `UI::PSDKMenuButtonBase` (`scripts/4 Systems/100 Menu/300 MenuButtonBase.rb`), which is a `case` on the index. Any index it does not know falls back to the Quit text, hence the warning above. Patch this method with `prepend`, the technique detailed in [the monkey-patching guide](/getting-started/monkey-patching-in-psdk), to add your own entry: + +```ruby +module UI + class PSDKMenuButtonBase + # Patch to add the text of the quest button (index 7) + module QuestButtonText + # Get the text based on the index + # @return [String] + def text + return 'Quests' if @index == 7 + + super + end + end + + prepend QuestButtonText + end +end +``` + +## How to change a button's look + +A button overwrite replaces the button class used for one specific index, which lets you change anything: icon, text, or the whole look. The engine itself uses one: when the player plays a girl, the bag button (index 2) is rendered by `UI::GirlBagMenuButton`, which uses the 8th row of `menu_icons` instead of the 3rd. + +```ruby +GamePlay::Menu.register_button_overwrite(2) { $trainer.playing_girl ? UI::GirlBagMenuButton : nil } +``` + +The block is evaluated when the menu opens: return a class to use it, or `nil` to keep the default button. + +:::note + +Overwrites target the `real_index` (the position in the registration list), not the position on screen. The two differ as soon as a button is hidden: if the player has no Dex, the party button keeps `real_index` 1 but is drawn first on screen (`positional_index` 0). The `real_index` drives the icon and text, the `positional_index` drives the position (see `UI::PSDKMenuButtonBase`). + +::: + +## How to change the default buttons + +To remove a default button, change its condition or reorder the list, you cannot edit a registered entry: clear everything and re-register the list your way. + +```ruby +module GamePlay + class Menu + clear_previous_registers + register_button(:open_party) { $actors.any? } + register_button(:open_bag) { !$bag.locked } + register_button(:open_save) { !$game_system.save_disabled } + register_button(:open_quit) { true } + end +end +``` + +The default registration in `scripts/4 Systems/100 Menu/100 Menu.rb` (shown in the table at the top) is your reference for the actions and conditions to re-register. + +:::warning + +Reordering changes every button's index, and the icons and texts are indexed: with the order above, the party button would display the Dex icon. Fix the `menu_icons` rows and the `text` method of `UI::PSDKMenuButtonBase` to match your new order. + +::: + +## Conclusion + +- The Main Menu is an ordered list of buttons; each button is an **action** (a method of `GamePlay::Menu`) plus a **visibility condition** evaluated when the menu opens. +- Write your customizations in your own script by reopening `GamePlay::Menu`, and never edit the engine files. +- `register_button(:action) { condition }` **appends** a new button; the seven default buttons are already registered. +- A brand new button needs three things: the registration, the action method, and its icon/text (row in `menu_icons` plus a `prepend` patch of `text` in `UI::PSDKMenuButtonBase`). +- `register_button_overwrite(real_index) { CustomClass }` changes how one button is rendered. +- `clear_previous_registers` then re-registering everything is the way to remove, modify or reorder the default buttons. Keep `menu_icons` and `text` consistent with the new order. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md new file mode 100644 index 0000000..dd34973 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md @@ -0,0 +1,156 @@ +--- +title: "Comment personnaliser le menu principal dans PSDK ?" +slug: personnaliser-le-menu-principal +sidebar_position: 11 +description: "Ce guide explique le fonctionnement du menu principal et comment le personnaliser : ajouter un bouton, changer l'apparence d'un bouton et définir un ordre personnalisé. C'est l'une des personnalisations d'UI les plus simples de PSDK, parfaite comme premier contact avec le code d'interface du moteur." +--- + +Ce guide explique le fonctionnement du **menu principal** et comment le personnaliser : ajouter un bouton, changer l'apparence d'un bouton et définir un ordre personnalisé. C'est l'une des personnalisations d'UI les plus simples de PSDK, parfaite comme premier contact avec le code d'interface du moteur. + +## Fonctionnement du menu principal + +![Le menu principal en jeu](/img/psdk/ui-development/main-menu.png) + +Le menu principal (souvent appelé simplement **Menu**) permet au joueur d'accéder aux interfaces principales du jeu. En interne, son modèle est simple : une liste ordonnée de boutons, où chaque bouton est enregistré avec deux informations. + +- Une **action** : un Symbol qui nomme la méthode de `GamePlay::Menu` appelée quand le joueur active le bouton. +- Une **condition de visibilité** : un bloc évalué à chaque ouverture du menu. Le bouton ne s'affiche que si le bloc renvoie une valeur vraie. + +C'est pour cela que la capture ci-dessus n'a ni bouton Dex ni bouton équipe : leurs conditions sont fausses tant que le joueur n'a ni Dex ni créature. Voici les boutons que PSDK enregistre par défaut : + +| Bouton | Action | Condition | Signification | +| ---------------- | -------------- | ----------------------------------- | ---------------------------------------------- | +| Dex | `:open_dex` | `$game_switches[Yuki::Sw::Pokedex]` | L'interrupteur de jeu activant le Dex est on | +| Équipe | `:open_party` | `$actors.any?` | Le joueur a au moins une créature | +| Sac | `:open_bag` | `!$bag.locked` | Le sac n'est pas verrouillé par un événement | +| Carte dresseur | `:open_tcard` | `true` | Toujours visible | +| Options | `:open_option` | `true` | Toujours visible | +| Sauvegarde | `:open_save` | `!$game_system.save_disabled` | La sauvegarde n'est pas désactivée | +| Quitter | `:open_quit` | `true` | Toujours visible, toujours placé en dernier | + +Comme les conditions sont réévaluées à chaque ouverture du menu, un bouton apparaît dès que sa condition devient vraie. Par exemple, le bouton équipe s'affiche juste après que le joueur a reçu sa première créature. + +## Comment ouvrir le menu + +En jeu, on appuie sur V (la touche physique associée par défaut à l'entrée X). + +Depuis un script, on appelle `GamePlay.open_menu`. + +Si vous voulez remplacer le menu principal de PSDK par votre propre Menu entièrement fait maison, assignez votre classe à `GamePlay.menu_class`. C'est une opération avancée : votre classe doit respecter `MenuMixin` (`scripts/4 Systems/100 Menu/099 MenuMixin.rb`), qui définit la fonction `execute_skill_process` dont `Scene_Map` a besoin pour exécuter correctement les capacités de terrain. Pour la plupart des besoins, les personnalisations ci-dessous suffisent, sans avoir à réécrire toute la scène. + +## Où écrire vos personnalisations + +Ne modifiez jamais les fichiers du moteur : la prochaine mise à jour de PSDK écraserait vos changements. Écrivez plutôt vos personnalisations dans votre propre script, dans le dossier `scripts/` de votre projet, en rouvrant la classe `GamePlay::Menu`. Si cette technique est nouvelle pour vous, lisez d'abord [Qu'est-ce que le monkey-patch et comment l'appliquer dans PSDK ?](/getting-started/monkey-patch-dans-psdk). + +```ruby +module GamePlay + # Reopen the engine class to add our own registrations + class Menu + # Your customizations go here + end +end +``` + +Tous les exemples ci-dessous se placent dans ce bloc. + +## Comment ajouter un bouton + +On appelle `GamePlay::Menu.register_button` avec le Symbol de l'action et la condition de visibilité. Une chose importante à comprendre : le moteur a **déjà enregistré** les sept boutons par défaut quand votre script s'exécute. `register_button` ajoute à la fin de cette liste, il ne remplace rien. Enregistrer `:open_party` une deuxième fois donnerait donc deux boutons équipe au menu ; utilisez `register_button` uniquement pour ajouter de **nouveaux** boutons (pour modifier ceux par défaut, voir la dernière section). + +Le Symbol de l'action doit nommer une méthode de `GamePlay::Menu`. Pour un bouton entièrement nouveau, c'est vous qui définissez cette méthode dans la classe rouverte. Un exemple complet avec un journal de quêtes : + +```ruby +module GamePlay + class Menu + register_button(:open_quests) { $game_switches[42] } + + private + + # Open the quest journal UI + def open_quests + call_scene(MyGame::QuestUI) + end + end +end +``` + +Ici, `MyGame::QuestUI` représente la scène que votre bouton doit ouvrir, et l'interrupteur de jeu 42 contrôle le moment où le bouton apparaît. `call_scene` est le même helper que le moteur utilise pour ses propres boutons (regardez `open_save` dans `scripts/4 Systems/100 Menu/100 Menu.rb`). + +:::warning + +Un nouveau bouton affiche l'icône et le texte de **Quitter** par défaut ! Lisez la suite pour comprendre pourquoi, et comment corriger ça. + +::: + +Chaque bouton trouve son icône et son texte grâce à son index dans la liste d'enregistrement : + +- L'icône vient du fichier `menu_icons` dans les graphismes d'interface de votre projet. C'est une feuille de sprites de 2 colonnes (état normal et sélectionné) par 8 lignes, et le bouton utilise la ligne correspondant à son index. Votre premier bouton personnalisé a l'index 7 : dessinez donc son icône sur la 8e ligne (par défaut, cette ligne contient la variante féminine du sac ; remplacez-la ou utilisez une surcharge de bouton). +- Le texte vient de la méthode `text` de `UI::PSDKMenuButtonBase` (`scripts/4 Systems/100 Menu/300 MenuButtonBase.rb`), qui est un `case` sur l'index. Tout index inconnu retombe sur le texte de Quitter, d'où l'avertissement ci-dessus. Patchez cette méthode avec `prepend`, la technique détaillée dans [le guide du monkey-patch](/getting-started/monkey-patch-dans-psdk), pour ajouter votre entrée : + +```ruby +module UI + class PSDKMenuButtonBase + # Patch to add the text of the quest button (index 7) + module QuestButtonText + # Get the text based on the index + # @return [String] + def text + return 'Quêtes' if @index == 7 + + super + end + end + + prepend QuestButtonText + end +end +``` + +## Comment changer l'apparence d'un bouton + +Une surcharge de bouton remplace la classe de bouton utilisée pour un index précis, ce qui permet de tout changer : icône, texte, ou l'apparence entière. Le moteur lui-même en utilise une : quand le joueur incarne une fille, le bouton du sac (index 2) est affiché par `UI::GirlBagMenuButton`, qui utilise la 8e ligne de `menu_icons` au lieu de la 3e. + +```ruby +GamePlay::Menu.register_button_overwrite(2) { $trainer.playing_girl ? UI::GirlBagMenuButton : nil } +``` + +Le bloc est évalué à l'ouverture du menu : renvoyez une classe pour l'utiliser, ou `nil` pour garder le bouton par défaut. + +:::note + +Les surcharges ciblent le `real_index` (la position dans la liste d'enregistrement), et non la position à l'écran. Les deux divergent dès qu'un bouton est masqué : si le joueur n'a pas de Dex, le bouton équipe garde le `real_index` 1 mais est dessiné en premier à l'écran (`positional_index` 0). Le `real_index` pilote l'icône et le texte, le `positional_index` pilote la position (voir `UI::PSDKMenuButtonBase`). + +::: + +## Comment modifier les boutons par défaut + +Pour retirer un bouton par défaut, changer sa condition ou réordonner la liste, on ne peut pas éditer une entrée déjà enregistrée : il faut tout effacer et réenregistrer la liste à sa façon. + +```ruby +module GamePlay + class Menu + clear_previous_registers + register_button(:open_party) { $actors.any? } + register_button(:open_bag) { !$bag.locked } + register_button(:open_save) { !$game_system.save_disabled } + register_button(:open_quit) { true } + end +end +``` + +L'enregistrement par défaut dans `scripts/4 Systems/100 Menu/100 Menu.rb` (présenté dans le tableau en haut de page) vous sert de référence pour les actions et conditions à réenregistrer. + +:::warning + +Réordonner change l'index de tous les boutons, et les icônes comme les textes sont indexés : avec l'ordre ci-dessus, le bouton équipe afficherait l'icône du Dex. Adaptez les lignes de `menu_icons` et la méthode `text` de `UI::PSDKMenuButtonBase` à votre nouvel ordre. + +::: + +## Conclusion + +- Le menu principal est une liste ordonnée de boutons ; chaque bouton est une **action** (une méthode de `GamePlay::Menu`) plus une **condition de visibilité** évaluée à l'ouverture du menu. +- On écrit ses personnalisations dans son propre script en rouvrant `GamePlay::Menu`, jamais en éditant les fichiers du moteur. +- `register_button(:action) { condition }` **ajoute** un nouveau bouton ; les sept boutons par défaut sont déjà enregistrés. +- Un bouton entièrement nouveau demande trois choses : l'enregistrement, la méthode d'action, et son icône/texte (ligne dans `menu_icons` plus un patch `prepend` de `text` dans `UI::PSDKMenuButtonBase`). +- `register_button_overwrite(real_index) { ClassePersonnalisee }` change l'affichage d'un seul bouton. +- `clear_previous_registers` puis tout réenregistrer est la façon de retirer, modifier ou réordonner les boutons par défaut. On garde `menu_icons` et `text` cohérents avec le nouvel ordre. diff --git a/static/img/psdk/ui-development/main-menu.png b/static/img/psdk/ui-development/main-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..43b1a36dedbdd40dd7d97673a73a0d23f7fe1edd GIT binary patch literal 76826 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 tWlPpP|Wv& z1fif1hqMG6vVzGgVH@Ot#Rg98{fzm7zNHN+7801enL|xZVzX^(gq{j-M*bY=TcdFRxz9!<(}UhW6tO_Jx??QZuixpe^|*L_gSYM0;6ALi5X?4lBZ?VZJWsDyswb!H(v=&{+oMmwJT7UxKDVVMH z@z2S2NnlteO_J3J7gN~2;~9AUNf+b&uOALH={zqi)q0n!wqxcB8GUPe!1;_1B)FQB zyV*aRzmOV6mD_Ae<*1d7L1bWV@(8g~m`%6&(;YW^;Zk2ErZ+!_c_@FnbMMHtpS}34 zxPHEo;k$ohQT*4q^pK0B+r8=4~6hE{tmmbzphTGR}1#fMZ_~_N}l=Ra=VKKT@1bANI|r=yaM^^r|%&r@NGq8#9l5qDm|xFPvF z(xUsfr4#BX?o-B0XGjU4Z@SM@*HtC+@)E9ANm*H+eJ}u`2DNMYC9#SR^pdk27Yk%_ zTAg~3p$t@^iqhcpB4xYAIFfbh9=s05`jQl$5bS}GDm{BwvMuF{$KonMy=^Ni zEBvR8f$^AEza^Z!`b|p1`pas|mYQpmFe}_E5obJW{ipsf@ddu3V>oD99X#+UdC@M3 qLSB?3e<2W2FgwyH^vwJwo}t~W(P{XNh!(k#7iANfCV=S-9U literal 0 HcmV?d00001 From f5f4b365a35fbf9648bbb29d676c1cd7d6626a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Z=C3=B8zo?= Date: Thu, 11 Jun 2026 00:53:34 +0200 Subject: [PATCH 2/2] refactor: nest mystery gift series in its own sidebar category --- .../{11-main-menu.md => 02-main-menu.md} | 2 +- content/psdk/ui-development/_category_.json | 2 +- .../psdk/ui-development/{ => mystery-gift}/00-setup.md | 0 .../ui-development/{ => mystery-gift}/01-ui-scene.md | 0 .../{ => mystery-gift}/02-composition.md | 0 .../{ => mystery-gift}/03-spritestack.md | 0 .../{ => mystery-gift}/04-mystery-gift-data.md | 0 .../ui-development/{ => mystery-gift}/05-keyboard.md | 0 .../psdk/ui-development/{ => mystery-gift}/06-mouse.md | 0 .../psdk/ui-development/{ => mystery-gift}/07-i18n.md | 0 .../ui-development/{ => mystery-gift}/08-dialogs.md | 0 .../ui-development/{ => mystery-gift}/09-animations.md | 0 .../{ => mystery-gift}/10-genericbase.md | 0 .../psdk/ui-development/mystery-gift/_category_.json | 9 +++++++++ i18n/fr/docusaurus-plugin-content-docs/current.json | 10 +++++++++- .../{11-main-menu.md => 02-main-menu.md} | 2 +- .../psdk/ui-development/{ => mystery-gift}/00-setup.md | 0 .../ui-development/{ => mystery-gift}/01-ui-scene.md | 0 .../{ => mystery-gift}/02-composition.md | 0 .../{ => mystery-gift}/03-spritestack.md | 0 .../{ => mystery-gift}/04-mystery-gift-data.md | 0 .../ui-development/{ => mystery-gift}/05-keyboard.md | 0 .../psdk/ui-development/{ => mystery-gift}/06-mouse.md | 0 .../psdk/ui-development/{ => mystery-gift}/07-i18n.md | 0 .../ui-development/{ => mystery-gift}/08-dialogs.md | 0 .../ui-development/{ => mystery-gift}/09-animations.md | 0 .../{ => mystery-gift}/10-genericbase.md | 0 src/theme/DocItem/Layout/index.tsx | 2 +- 28 files changed, 22 insertions(+), 5 deletions(-) rename content/psdk/ui-development/{11-main-menu.md => 02-main-menu.md} (99%) rename content/psdk/ui-development/{ => mystery-gift}/00-setup.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/01-ui-scene.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/02-composition.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/03-spritestack.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/04-mystery-gift-data.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/05-keyboard.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/06-mouse.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/07-i18n.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/08-dialogs.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/09-animations.md (100%) rename content/psdk/ui-development/{ => mystery-gift}/10-genericbase.md (100%) create mode 100644 content/psdk/ui-development/mystery-gift/_category_.json rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{11-main-menu.md => 02-main-menu.md} (99%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/00-setup.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/01-ui-scene.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/02-composition.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/03-spritestack.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/04-mystery-gift-data.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/05-keyboard.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/06-mouse.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/07-i18n.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/08-dialogs.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/09-animations.md (100%) rename i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/{ => mystery-gift}/10-genericbase.md (100%) diff --git a/content/psdk/ui-development/11-main-menu.md b/content/psdk/ui-development/02-main-menu.md similarity index 99% rename from content/psdk/ui-development/11-main-menu.md rename to content/psdk/ui-development/02-main-menu.md index 878f993..a0f00d5 100644 --- a/content/psdk/ui-development/11-main-menu.md +++ b/content/psdk/ui-development/02-main-menu.md @@ -1,7 +1,7 @@ --- title: "How to customize the Main Menu in PSDK?" slug: customize-main-menu -sidebar_position: 11 +sidebar_position: 2 description: "This guide explains how the Main Menu works and how to customize it: adding a button, changing a button's look and defining a custom button order. It is one of the simplest UI customizations in PSDK, perfect as a first contact with the engine's UI code." --- diff --git a/content/psdk/ui-development/_category_.json b/content/psdk/ui-development/_category_.json index 2676a8e..7dff0d5 100644 --- a/content/psdk/ui-development/_category_.json +++ b/content/psdk/ui-development/_category_.json @@ -4,6 +4,6 @@ "link": { "type": "generated-index", "slug": "/psdk/ui-development", - "description": "Build a full Mystery Gift plugin from scratch and master PSDK's UI layer: scenes, compositions, input, animations and i18n." + "description": "Master PSDK's UI layer: a step-by-step Mystery Gift series, plus standalone guides such as customizing the Main Menu." } } diff --git a/content/psdk/ui-development/00-setup.md b/content/psdk/ui-development/mystery-gift/00-setup.md similarity index 100% rename from content/psdk/ui-development/00-setup.md rename to content/psdk/ui-development/mystery-gift/00-setup.md diff --git a/content/psdk/ui-development/01-ui-scene.md b/content/psdk/ui-development/mystery-gift/01-ui-scene.md similarity index 100% rename from content/psdk/ui-development/01-ui-scene.md rename to content/psdk/ui-development/mystery-gift/01-ui-scene.md diff --git a/content/psdk/ui-development/02-composition.md b/content/psdk/ui-development/mystery-gift/02-composition.md similarity index 100% rename from content/psdk/ui-development/02-composition.md rename to content/psdk/ui-development/mystery-gift/02-composition.md diff --git a/content/psdk/ui-development/03-spritestack.md b/content/psdk/ui-development/mystery-gift/03-spritestack.md similarity index 100% rename from content/psdk/ui-development/03-spritestack.md rename to content/psdk/ui-development/mystery-gift/03-spritestack.md diff --git a/content/psdk/ui-development/04-mystery-gift-data.md b/content/psdk/ui-development/mystery-gift/04-mystery-gift-data.md similarity index 100% rename from content/psdk/ui-development/04-mystery-gift-data.md rename to content/psdk/ui-development/mystery-gift/04-mystery-gift-data.md diff --git a/content/psdk/ui-development/05-keyboard.md b/content/psdk/ui-development/mystery-gift/05-keyboard.md similarity index 100% rename from content/psdk/ui-development/05-keyboard.md rename to content/psdk/ui-development/mystery-gift/05-keyboard.md diff --git a/content/psdk/ui-development/06-mouse.md b/content/psdk/ui-development/mystery-gift/06-mouse.md similarity index 100% rename from content/psdk/ui-development/06-mouse.md rename to content/psdk/ui-development/mystery-gift/06-mouse.md diff --git a/content/psdk/ui-development/07-i18n.md b/content/psdk/ui-development/mystery-gift/07-i18n.md similarity index 100% rename from content/psdk/ui-development/07-i18n.md rename to content/psdk/ui-development/mystery-gift/07-i18n.md diff --git a/content/psdk/ui-development/08-dialogs.md b/content/psdk/ui-development/mystery-gift/08-dialogs.md similarity index 100% rename from content/psdk/ui-development/08-dialogs.md rename to content/psdk/ui-development/mystery-gift/08-dialogs.md diff --git a/content/psdk/ui-development/09-animations.md b/content/psdk/ui-development/mystery-gift/09-animations.md similarity index 100% rename from content/psdk/ui-development/09-animations.md rename to content/psdk/ui-development/mystery-gift/09-animations.md diff --git a/content/psdk/ui-development/10-genericbase.md b/content/psdk/ui-development/mystery-gift/10-genericbase.md similarity index 100% rename from content/psdk/ui-development/10-genericbase.md rename to content/psdk/ui-development/mystery-gift/10-genericbase.md diff --git a/content/psdk/ui-development/mystery-gift/_category_.json b/content/psdk/ui-development/mystery-gift/_category_.json new file mode 100644 index 0000000..6151f10 --- /dev/null +++ b/content/psdk/ui-development/mystery-gift/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Mystery Gift", + "position": 1, + "link": { + "type": "generated-index", + "slug": "/psdk/ui-development/mystery-gift", + "description": "An 11-step series building a complete Mystery Gift plugin from scratch: scenes, compositions, input, animations and i18n. Follow it in order." + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/current.json b/i18n/fr/docusaurus-plugin-content-docs/current.json index 2a805c7..2dc694b 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current.json +++ b/i18n/fr/docusaurus-plugin-content-docs/current.json @@ -28,9 +28,17 @@ "description": "The label for category 'UI Development' in sidebar 'mainSidebar'" }, "sidebar.mainSidebar.category.UI Development.link.generated-index.description": { - "message": "Construire un plugin Mystery Gift complet et maîtriser la couche UI de PSDK : scènes, compositions, entrées, animations et i18n.", + "message": "Maîtriser la couche UI de PSDK : une série Mystery Gift pas à pas, plus des guides autonomes comme la personnalisation du menu principal.", "description": "The generated-index page description for category UI Development in sidebar mainSidebar" }, + "sidebar.mainSidebar.category.Mystery Gift": { + "message": "Mystery Gift", + "description": "The label for category 'Mystery Gift' in sidebar 'mainSidebar'" + }, + "sidebar.mainSidebar.category.Mystery Gift.link.generated-index.description": { + "message": "Une série en 11 étapes qui construit un plugin Mystery Gift complet de zéro : scènes, compositions, entrées, animations et i18n. À suivre dans l'ordre.", + "description": "The generated-index page description for category Mystery Gift in sidebar mainSidebar" + }, "sidebar.mainSidebar.category.Battle Engine": { "message": "Moteur de Combat", "description": "The label for category 'Battle Engine' in sidebar 'mainSidebar'" diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/02-main-menu.md similarity index 99% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/02-main-menu.md index dd34973..3304480 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/11-main-menu.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/02-main-menu.md @@ -1,7 +1,7 @@ --- title: "Comment personnaliser le menu principal dans PSDK ?" slug: personnaliser-le-menu-principal -sidebar_position: 11 +sidebar_position: 2 description: "Ce guide explique le fonctionnement du menu principal et comment le personnaliser : ajouter un bouton, changer l'apparence d'un bouton et définir un ordre personnalisé. C'est l'une des personnalisations d'UI les plus simples de PSDK, parfaite comme premier contact avec le code d'interface du moteur." --- diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/00-setup.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/00-setup.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/00-setup.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/00-setup.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/01-ui-scene.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/01-ui-scene.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/01-ui-scene.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/01-ui-scene.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/02-composition.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/02-composition.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/02-composition.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/02-composition.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/03-spritestack.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/03-spritestack.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/03-spritestack.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/03-spritestack.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/04-mystery-gift-data.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/04-mystery-gift-data.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/04-mystery-gift-data.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/04-mystery-gift-data.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/05-keyboard.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/05-keyboard.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/05-keyboard.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/05-keyboard.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/06-mouse.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/06-mouse.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/06-mouse.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/06-mouse.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/07-i18n.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/07-i18n.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/07-i18n.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/07-i18n.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/08-dialogs.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/08-dialogs.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/08-dialogs.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/08-dialogs.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/09-animations.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/09-animations.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/09-animations.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/09-animations.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/10-genericbase.md b/i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/10-genericbase.md similarity index 100% rename from i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/10-genericbase.md rename to i18n/fr/docusaurus-plugin-content-docs/current/psdk/ui-development/mystery-gift/10-genericbase.md diff --git a/src/theme/DocItem/Layout/index.tsx b/src/theme/DocItem/Layout/index.tsx index d25c367..15ba0f8 100644 --- a/src/theme/DocItem/Layout/index.tsx +++ b/src/theme/DocItem/Layout/index.tsx @@ -27,7 +27,7 @@ export default function DocItemLayout(props: Props) { label={rubyChapterLabel} /> )} - {metadata.sourceDirName === "psdk/ui-development" && ( + {metadata.sourceDirName === "psdk/ui-development/mystery-gift" && (