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
Valeur par défaut : ""
Valeur par défaut : ""
finalOptions: Dictionary
Valeur par défaut : ""

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)

GetCanRedo

Sécurité des plugins

Retours

GetCanUndo

Sécurité des plugins

Retours

IsRecordingInProgress

Sécurité des plugins

Paramètres

identifier: string
Valeur par défaut : ""

Retours

Redo

()
Sécurité des plugins

Retours

()

ResetWaypoints

()
Sécurité des plugins

Retours

()

SetEnabled

()
Sécurité des plugins

Paramètres

state: boolean
Valeur par défaut : ""

Retours

()

SetWaypoint

()
Sécurité des plugins

Paramètres

name: string
Valeur par défaut : ""

Retours

()

É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

Paramètres

name: string
Valeur par défaut : ""
displayName: string
Valeur par défaut : ""

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

()
Sécurité des plugins

Retours

()

Événements

OnRecordingFinished

Sécurité des plugins

Paramètres

name: string
displayName: string
identifier: string
finalOptions: Dictionary

OnRecordingStarted

Sécurité des plugins

Paramètres

name: string
displayName: string

OnRedo

Sécurité des plugins

Paramètres

waypoint: string

OnUndo

Sécurité des plugins

Paramètres

waypoint: string