ChangeHistoryService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Los desarrolladores de plugins deben usar Class.ChangeHistoryService para decirle a Studio cómo deshacer y rehacer las modificaciones que sus plugins hacen en las experiencias al grabar. Antes de hacer cambios, un plugin llama ChangeHistoryService, recordando el identificador que asigna, luego después de hacer cambios, el plugin llama Class.ChangeHistoryService:
Los plugins también pueden invocar programáticamente un deshacer o rehacer a través de ChangeHistoryService:Undo() o ChangeHistoryService:Redo() .
ChangeHistoryService no está habilitado para el tiempo de ejecución, por lo que llamar sus métodos en una experiencia en ejecución no tiene ningún efecto.
Resumen
Métodos
- FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
Comunica a Studio que el registro identificado está terminado y para completar la operación final.
Devuelve si hay acciones que se pueden rehacer y, si hay, la última de ellas.
Devuelve si hay acciones que se pueden deshacer, y, si hay, devuelve la última de ellas.
Ejecuta la última acción que se deshizo.
Borrar el historial, causando que todos los puntos de deshacer/hacer de nuevo sean eliminados.
Establece si el servicio de cambio de historia está habilitado o no.
Establece un nuevo punto de interés que se puede utilizar como punto de deshacer o rehacer.
Empieza a rastrear los cambios hechos en el modelo de datos en una grabación.
Deshace la última acción tomada, para la que hay un punto de interés.
Eventos
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Se ha disparado cuando el usuario completa una acción. Los parámetros vienen de TryBeginRecording() y FinishRecording() .
Se ha disparado cuando el usuario comienza una acción. Los parámetros vienen de TryBeginRecording() .
Se ha disparado cuando el usuario ha revertido el comando deshacer. Waypoint describe el tipo de acción que se ha rediseñado.
Se ha disparado cuando el usuario deshace una acción en el estudio. Waypoint describe el tipo de acción que se ha deshuelto.
Propiedades
Métodos
FinishRecording
Parámetros
Identifica la grabación de la llamada anterior a TryBeginRecording() . Si la operación es Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, este valor se ignora y la grabación se determina por contexto.
Especifica la operación a tomar.
Tabla de valores opcional para pasar a OnFinishRecording .
Devuelve
Muestras de código
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
Devuelve si hay acciones que se pueden rehacer y, si hay, la última de ellas.
Devuelve
GetCanUndo
Devuelve si hay acciones que se pueden deshacer, y, si hay, devuelve la última de ellas.
Devuelve
Redo
Ejecuta la última acción que se deshizo.
Devuelve
ResetWaypoints
Borrar el historial, causando que todos los puntos de deshacer/hacer de nuevo sean eliminados.
Devuelve
SetEnabled
Establece si el servicio de historia de cambios está habilitado o no. Cuando se establece en falso, la lista de deshacer/hacer se elimina y no se repobula. Cuando se establece en verdadero de nuevo, la lista original no se restaura, pero las operaciones posteriores se añaden a la lista una vez más
Parámetros
Devuelve
SetWaypoint
Este método será deprecado pronto en favor de TryBeginRecording() .
ChangeHistoryService rastrea el historial del plugin como un stream de cambios de propiedad. SetWaypoint() crea una baja en ese stream de cambios de propiedad para que las acciones de deshacer y hacer de nuevo sepan dónde parar.
Por convención, las acciones invocadas por el usuario en Studio deben llamar SetWaypoint()después de completar su conjunto de cambios para la experiencia. Llamarlo 1> antes1> de un conjunto de cambios puede limpiar otro complementoque falló al establecer un punto de referencia, pero
Parámetros
Devuelve
Muestras de código
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
Este método comienza a grabar para rastrear los cambios en el aplicación de modeladode datos. Debes tenerla llamada antes de hacer cambios para evitar futuras advertencias o errores.
Cuando se complete el grabado, llamas FinishRecording() con el identificador de grabado devuelto para completar el grabado y actualizar la pila de deshacer/hacer.
Este método devolverá nil si no se puede iniciar una grabación. Las grabaciones fallan si el plugin ya tiene una grabación en progreso, o si el usuario está en el modo Correr o Jugar .
Puede usar IsRecordingInProgress() para ver el estado de grabación del complemento.
Parámetros
Nombre de la acción que se está realizando para propósitos de registro y codificación.
Nombre de la acción que se está realizando para mostrar al usuario.
Devuelve
Muestras de código
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
Deshace la última acción tomada, para la que hay un punto de interés.
Devuelve
Eventos
OnRecordingFinished
Parámetros
Nombre de la acción que se está realizando para propósitos de registro y codificación.
Nombre de la acción que se está realizando para mostrar al usuario.
El identificador para la grabación.
Tabla opcional de FinishOperation() .
OnRecordingStarted
Parámetros
Nombre de la acción que se está realizando para propósitos de registro y codificación.
Nombre de la acción que se está realizando para mostrar al usuario.
OnRedo
Se ha disparado cuando el usuario ha revertido el comando deshacer. Waypoint describe el tipo de acción que se ha rediseñado.
Parámetros
OnUndo
Se ha disparado cuando el usuario deshace una acción en el estudio. Waypoint describe el tipo de acción que se ha deshuelto.