ChangeHistoryService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service

Les développeurs de plugins doivent utiliser ChangeHistoryService pour dire à Studio comment annuler et restaurer les modifications que leurs plugins apportent aux expériences en les enregistrant.Avant de faire des modifications, un plugin appelle ChangeHistoryService:TryBeginRecording(), en se souvenant de l'identifiant qu'il attribue, puis après avoir apporté des modifications, le plugin appelle ChangeHistoryService:FinishRecording() pour terminer l'enregistrement.

Les plugins peuvent également invoquer un annuler ou restaurer de manière programmatique via ChangeHistoryService:Undo() ou ChangeHistoryService:Redo() .

ChangeHistoryService n'est pas activé au moment de l'exécution, donc l'appel de ses méthodes dans une expérience en cours n'a aucun effet.

Résumé

Méthodes

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    Sécurité des plugins

    Communique au studio que l'enregistrement identifié est terminé et de prendre la dernière opération pour terminer l'enregistrement.

  • Sécurité des plugins

    Renvoie si des actions peuvent être annulées, et, s'il y en a, renvoie la dernière d'entre elles.

  • Sécurité des plugins

    Renvoie si des actions peuvent être annulées, et, s'il y en a, renvoie la dernière d'entre elles.

  • Sécurité des plugins
  • Redo():()
    Sécurité des plugins

    Exécute la dernière action qui a été annulée.

  • Sécurité des plugins

    Efface l'histoire, ce qui fait en sorte que tous les points de retour/retour sont supprimés.

  • SetEnabled(state : boolean):()
    Sécurité des plugins

    Définit si le service historique des modifications est activé ou non.

  • SetWaypoint(name : string):()
    Sécurité des plugins

    Définit un nouveau point de passage qui peut être utilisé comme point d'annulation ou de répétition.

  • TryBeginRecording(name : string,displayName : string?):string?
    Sécurité des plugins

    Commence à suivre les modifications apportées au modèle de données dans une enregistrement.

  • Undo():()
    Sécurité des plugins

    Annule la dernière action effectuée, pour laquelle il existe un point de passage.

Évènements

Propriétés

Méthodes

FinishRecording

()
Sécurité des plugins

Paramètres

identifier: string

Identifie l'enregistrement de l'appel précédent à TryBeginRecording() .Si l'opération est Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, cette valeur est ignorée et l'enregistrement est déterminé par le contexte.

Valeur par défaut : ""

Spécifie l'opération à effectuer.

Valeur par défaut : ""
finalOptions: Dictionary

Table facultative de valeurs à transmettre à OnFinishRecording.

Valeur par défaut : ""

Retours

()

Échantillons de code

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

ChangeHistoryService:TryBeginRecording

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

GetCanRedo

Sécurité des plugins

Renvoie si des actions peuvent être annulées, et, s'il y en a, renvoie la dernière d'entre elles.


Retours

GetCanUndo

Sécurité des plugins

Renvoie si des actions peuvent être annulées, et, s'il y en a, renvoie la dernière d'entre elles.


Retours

IsRecordingInProgress

Sécurité des plugins

Paramètres

identifier: string
Valeur par défaut : ""

Retours

Redo

()
Sécurité des plugins

Exécute la dernière action qui a été annulée.


Retours

()

ResetWaypoints

()
Sécurité des plugins

Efface l'histoire, ce qui fait en sorte que tous les points de retour/retour sont supprimés.


Retours

()

SetEnabled

()
Sécurité des plugins

Définit si le service historique des modifications est activé ou non.Lorsqu'il est défini sur false, la liste annuler/refaire est vidée et ne se remplit pas.Lorsqu'il est réinitialisé à vrai de nouveau, la liste originale n'est pas restaurée, mais d'autres opérations s'ajoutent à la liste une fois de plus

Paramètres

state: boolean
Valeur par défaut : ""

Retours

()

SetWaypoint

()
Sécurité des plugins

Cette méthode sera bientôt obsolète au profit de TryBeginRecording().

ChangeHistoryService suit l'histoire du plugin des pistes comme un flux de modifications de propriété.SetWaypoint() crée une coupe dans ce flux de modifications de propriété afin que les actions annuler et restaurer sachent où s'arrêter.

Par convention, les actions invoquées par l'utilisateur dans Studio doivent appeler SetWaypoint()après avoir terminé leur ensemble de modifications de l'expérience.L'appeler avant un ensemble de modifications peut nettoyer un autre plugin mal comporté qui n'a pas réussi à définir un point de passage, mais c'est une mauvaise raison de justifier une telle utilisation dans votre propre plugin.

Paramètres

name: string
Valeur par défaut : ""

Retours

()

Échantillons de code

In order for the waypoints to work correctly, you need to set one both before AND after you perform the action that should be able to be undone.

ChangeHistoryService:SetWaypoint

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts > 0 then
-- Calling SetWaypoint before the work will not cause any issues, however
-- it is redundant, only the call AFTER the work is needed.
--ChangeHistoryService:SetWaypoint("Setting selection to neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Call SetWaypoint AFTER completing the work
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nothing to do. You do not need to call SetWaypoint in the case where
-- the action did not end up making any changes to the experience.
end
end)

TryBeginRecording

Sécurité des plugins

Cette méthode commence une enregistrement pour suivre les modifications du modèlisationde données.Vous devez l'appeler avant de faire des modifications pour éviter les futures avertissements ou erreurs .

Lorsque l'enregistrement est terminé, vous appelez FinishRecording() avec l'identifiant d'enregistrement retourné pour terminer l'enregistrement et mettre à jour la pile annulation/restauration.

Cette méthode renverra nil si elle échoue à commencer une enregistrement.Les enregistrements échouent si le plugin a déjà une enregistrement en cours ou si l'utilisateur est en mode exécution ou lecture .

Vous pouvez utiliser IsRecordingInProgress() pour vérifier le statut d'enregistrement du plugin.

Paramètres

name: string

Nom de l'action effectuée approprié pour les fins de journalisation et de codage.

Valeur par défaut : ""
displayName: string

Nom de l'action effectuée pour afficher à l'utilisateur.

Valeur par défaut : ""

Retours

Échantillons de code

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

ChangeHistoryService:TryBeginRecording

local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Example Plugin")
local button = toolbar:CreateButton("Neon it up", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- Nothing to do.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Handle error here. This indidcates that your plugin began a previous
-- recording and never completed it. You may only have one recording
-- per plugin active at a time.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo

()
Sécurité des plugins

Annule la dernière action effectuée, pour laquelle il existe un point de passage.


Retours

()

Évènements

OnRecordingFinished

Sécurité des plugins

Paramètres

name: string

Nom de l'action effectuée approprié pour les fins de journalisation et de codage.

displayName: string

Nom de l'action effectuée pour afficher à l'utilisateur.

identifier: string

L'identifiant de l'enregistrement.

finalOptions: Dictionary

Table optionnelle de FinishOperation() .


OnRecordingStarted

Sécurité des plugins

Paramètres

name: string

Nom de l'action effectuée approprié pour les fins de journalisation et de codage.

displayName: string

Nom de l'action effectuée pour afficher à l'utilisateur.


OnRedo

Sécurité des plugins

Tiré lorsque l'utilisateur annule la commande d'annulation. Waypoint décrit l'action de type qui a été restaurée.

Paramètres

waypoint: string

OnUndo

Sécurité des plugins

Tiré lorsque l'utilisateur annule une action dans le studio. Waypoint décrit le type d'action qui a été annulé.

Paramètres

waypoint: string