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 Class.ChangeHistoryService pour dire à Studio comment annuler et restaurer les modifications que leurs plugins apportent aux expériences en enregistrant. Avant de faire des modifications, un plugin appelle ChangeHistoryService, en mémorisant l'identifiant qu'il attribue, puis après avoir fait des modifications, le plugin appelle Class.Change

Les plugins peuvent également invoquer programmiquement un annuler ou restaurer via ChangeHistoryService:Undo() ou ChangeHistoryService:Redo() .

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

Résumé

Méthodes

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

    Communiquez à Studio que la prise de son identifiée est terminée et pour prendre l'opération finale pour terminer la prise de son.

  • Sécurité des plugins

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

  • Sécurité des plugins

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

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

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

  • Sécurité des plugins

    Efface l'historique, ce qui supprime tous les points d'ancrage/défaire.

  • SetEnabled(state : bool):void
    Sécurité des plugins

    Définit si oui ou non le ChangeHistoryService est activé.

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

    Définit un nouveau point d'ancrage qui peut être utilisé comme point d'annulation ou de redo.

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

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

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

    Annule la dernière action prise, pour laquelle il existe un point d'ancrage.

Évènements

Propriétés

Méthodes

FinishRecording

void
Sécurité des plugins

Paramètres

identifier: string

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

Spécifiez l'opération à prendre.

finalOptions: Dictionary

Table facultative des valeurs à passer à OnFinishRecording .


Retours

void

Échantillons de code

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 il y a des actions qui peuvent être annulées, et, si elles sont annulées, renvoie la dernière d'entre elles.


Retours

GetCanUndo

Sécurité des plugins

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


Retours

IsRecordingInProgress

Sécurité des plugins

Paramètres

identifier: string

Retours

Redo

void
Sécurité des plugins

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


Retours

void

ResetWaypoints

void
Sécurité des plugins

Efface l'historique, ce qui supprime tous les points d'ancrage/défaire.


Retours

void

SetEnabled

void
Sécurité des plugins

Définit si oui ou non le ChangeHistoryService est activé. Lorsqu'il est réglé sur false, la liste dérou/refaire est vidé et ne se réplique pas. Lorsqu'il est réglé sur true de nouveau, la liste originale n'est pas restaurée, mais des opérations supplémentaires sont ajoutées à la liste une fois de plus

Paramètres

state: bool

Retours

void

SetWaypoint

void
Sécurité des plugins

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

ChangeHistoryService suit l'historique des plugins comme un flux de modifications de propriété. SetWaypoint() crée un coup dans cet flux de modifications de propriété afin que les annulations et les redo actions sachent où s'arrêter.

Par convention, les actions invoquées par l'utilisateur dans Studio doivent appeler Class.ChangeHistoryService:SetWaypoint()|SetWaypoint() après avoir terminé leur ensemble de modifications dans l'expérience. L'appeler SetWaypoint() un ensemble de modifications peut nettoyer un autre plugin qui a échoué à définir un point d'arrêt, mais c'est une mauvaise raison de justifier un tel

Paramètres

name: string

Retours

void

Échantillons de code

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 avertissements ou les erreurs futures.

Lorsque l'enregistrement est terminé, vous appelez FinishRecording() avec l'identifiant de l'enregistrement renvoyé pour terminer l'enregistrement et mettre à jour le pilier annuler/refaire.

Cette méthode renverra nil si elle ne peut pas commencer une enregistrement. Les enregistrements échouent si le plugin a déjà un enregistrement en cours, ou si l'utilisateur est dans le Mode d'exécution ou Mode de lecture .

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

Paramètres

name: string

Nom de l'action à exécuter pour des fins de journalisation et de codage appropriées.

displayName: string

Nom de l'action à exécuter pour afficher à l'utilisateur.


Retours

Échantillons de code

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

void
Sécurité des plugins

Annule la dernière action prise, pour laquelle il existe un point d'ancrage.


Retours

void

Évènements

OnRecordingFinished

Sécurité des plugins

Paramètres

name: string

Nom de l'action à exécuter pour des fins de journalisation et de codage appropriées.

displayName: string

Nom de l'action à exécuter 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 à exécuter pour des fins de journalisation et de codage appropriées.

displayName: string

Nom de l'action à exécuter pour afficher à l'utilisateur.


OnRedo

Sécurité des plugins

Feu quand l'utilisateur annule la commande annuler. Waypoint décrit le type d'action qui a été redéfini.

Paramètres

waypoint: string

OnUndo

Sécurité des plugins

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

Paramètres

waypoint: string