Supprime le concept de "quête" au profit d'un onglet unique "Déclencheurs"
portant toute la logique (dialogue, condition, marquage terminé) directement
sur l'objet de scène. Ajoute une nouvelle action "Modifier une variable"
(réutilisant le vocabulaire du graphe de flow) utilisable après une
collision, une interaction ou une branche de condition, ainsi qu'un
chaînage d'actions ("then") permettant d'enchaîner plusieurs actions à la
suite et d'étendre un déclencheur déjà posé sans le recréer.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
108 lines
5.5 KiB
Python
108 lines
5.5 KiB
Python
"""
|
|
db — toute la logique base de données du moteur Forge, organisée en un
|
|
sous-module par responsabilité (un fichier = une fonction, un dossier = un
|
|
domaine) plutôt qu'un seul gros fichier. Ce fichier réexporte l'intégralité
|
|
de l'API publique historique : le reste du moteur continue simplement
|
|
d'écrire `import db` puis `db.ma_fonction(...)`, sans rien savoir de cette
|
|
organisation interne.
|
|
|
|
Chaque JEU créé a SA PROPRE base SQLite (fichier .db dans son dossier de
|
|
projet). Cette base contient :
|
|
- des tables "méta" (_definitions, _fields) qui décrivent les objets que
|
|
l'utilisateur a définis via l'interface (l'équivalent d'un schéma de
|
|
base de données, mais construit à la souris plutôt qu'en SQL) ;
|
|
- une VRAIE table SQL par objet défini (obj_<nom>), avec des colonnes du
|
|
bon type SQLite selon le type choisi pour chaque champ, y compris des
|
|
colonnes de clé étrangère pour les champs de type "relation".
|
|
|
|
Rien n'est une simulation : créer une "définition d'objet" avec des champs
|
|
exécute un vrai CREATE TABLE, et remplir le formulaire généré exécute un
|
|
vrai INSERT dans cette table.
|
|
"""
|
|
|
|
from .constants import PROJECTS_DIR, FIELD_TYPES, GLOBAL_VARIABLE_TYPES, SCORE_STATUS_CHOICES, SCORE_STATUS_LABELS
|
|
from .slugify import slugify
|
|
from .table_name_for import table_name_for
|
|
from .game_dir import game_dir
|
|
from .db_path import db_path
|
|
from .connection import connect
|
|
|
|
from .games.list_games import list_games
|
|
from .games.game_meta import game_meta
|
|
from .games.get_game_type import get_game_type, DEFAULT_GAME_TYPE
|
|
from .games.create_game import create_game
|
|
from .games.update_game_name import update_game_name
|
|
from .games.delete_game import delete_game
|
|
from .games.move_game import move_game
|
|
from .games.get_xapi_settings import get_xapi_settings
|
|
from .games.set_xapi_settings import set_xapi_settings
|
|
from .games.get_success_threshold import get_success_threshold
|
|
from .games.set_success_threshold import set_success_threshold
|
|
from .games.get_scorm_version import get_scorm_version
|
|
from .games.set_scorm_version import set_scorm_version
|
|
from .games.game_type_catalog import (
|
|
ONBOARDING_TYPES, DEFAULT_ONBOARDING_TYPE,
|
|
get_onboarding_type, get_onboarding_type_raw, set_onboarding_type,
|
|
is_restricted,
|
|
)
|
|
|
|
from .definitions.list_definitions import list_definitions
|
|
from .definitions.get_definition import get_definition
|
|
from .definitions.create_definition import create_definition
|
|
from .definitions.rename_definition import rename_definition
|
|
from .definitions.definitions_referencing import definitions_referencing
|
|
from .definitions.add_field_to_definition import add_field_to_definition
|
|
from .definitions.update_field import update_field
|
|
from .definitions.delete_field import delete_field
|
|
from .definitions.delete_definition import delete_definition
|
|
|
|
from .rows.list_rows import list_rows
|
|
from .rows.relation_options import relation_options
|
|
from .rows.insert_row import insert_row
|
|
from .rows.get_row import get_row
|
|
from .rows.update_row import update_row
|
|
from .rows.update_row_field import update_row_field
|
|
from .rows.delete_row import delete_row
|
|
from .rows.rows_referencing import rows_referencing
|
|
|
|
from .global_vars.ensure_global_vars_schema import PLAYER_SHARED
|
|
from .global_vars.list_global_variables import list_global_variables
|
|
from .global_vars.list_global_variables_for_player import list_global_variables_for_player
|
|
from .global_vars.get_global_variable import get_global_variable
|
|
from .global_vars.create_global_variable import create_global_variable
|
|
from .global_vars.update_global_variable_value import update_global_variable_value
|
|
from .global_vars.update_global_variable import update_global_variable
|
|
from .global_vars.delete_global_variable import delete_global_variable
|
|
from .global_vars.delete_global_variable_by_id import delete_global_variable_by_id
|
|
|
|
from .scoring.get_score import get_score
|
|
from .scoring.set_score_value import set_score_value
|
|
from .scoring.set_status import set_status
|
|
|
|
from .custom_events.list_custom_events import list_custom_events
|
|
from .custom_events.get_custom_event import get_custom_event
|
|
from .custom_events.create_custom_event import create_custom_event
|
|
from .custom_events.update_custom_event import update_custom_event
|
|
|
|
from .dialogue_lines import sanitize_dialogue_lines, QUESTION_REWARD_TYPES, sum_question_rewards
|
|
|
|
__all__ = [
|
|
"PROJECTS_DIR", "FIELD_TYPES", "GLOBAL_VARIABLE_TYPES", "PLAYER_SHARED",
|
|
"SCORE_STATUS_CHOICES", "SCORE_STATUS_LABELS", "get_score", "set_score_value", "set_status",
|
|
"slugify", "table_name_for", "game_dir", "db_path", "connect",
|
|
"list_games", "game_meta", "create_game", "update_game_name", "delete_game", "move_game",
|
|
"get_game_type", "DEFAULT_GAME_TYPE",
|
|
"ONBOARDING_TYPES", "DEFAULT_ONBOARDING_TYPE", "get_onboarding_type",
|
|
"get_onboarding_type_raw", "set_onboarding_type", "is_restricted",
|
|
"list_definitions", "get_definition", "create_definition", "rename_definition",
|
|
"definitions_referencing", "add_field_to_definition", "update_field", "delete_field",
|
|
"delete_definition",
|
|
"list_rows", "relation_options", "insert_row", "get_row", "update_row",
|
|
"update_row_field", "delete_row", "rows_referencing",
|
|
"list_global_variables", "list_global_variables_for_player", "get_global_variable", "create_global_variable",
|
|
"update_global_variable_value", "update_global_variable", "delete_global_variable",
|
|
"delete_global_variable_by_id",
|
|
"list_custom_events", "get_custom_event", "create_custom_event", "update_custom_event",
|
|
"sanitize_dialogue_lines", "QUESTION_REWARD_TYPES", "sum_question_rewards",
|
|
]
|