ChangeHistoryService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio

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
    Seguridad del plugin

    Comunica a Studio que el registro identificado está terminado y para completar la operación final.

  • Seguridad del plugin

    Devuelve si hay acciones que se pueden rehacer y, si hay, la última de ellas.

  • Seguridad del plugin

    Devuelve si hay acciones que se pueden deshacer, y, si hay, devuelve la última de ellas.

  • Seguridad del plugin
  • Redo():void
    Seguridad del plugin

    Ejecuta la última acción que se deshizo.

  • Seguridad del plugin

    Borrar el historial, causando que todos los puntos de deshacer/hacer de nuevo sean eliminados.

  • SetEnabled(state : bool):void
    Seguridad del plugin

    Establece si el servicio de cambio de historia está habilitado o no.

  • SetWaypoint(name : string):void
    Seguridad del plugin

    Establece un nuevo punto de interés que se puede utilizar como punto de deshacer o rehacer.

  • TryBeginRecording(name : string,displayName : string?):string?
    Seguridad del plugin

    Empieza a rastrear los cambios hechos en el modelo de datos en una grabación.

  • Undo():void
    Seguridad del plugin

    Deshace la última acción tomada, para la que hay un punto de interés.

Eventos

Propiedades

Métodos

FinishRecording

void
Seguridad del plugin

Parámetros

identifier: string

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.

finalOptions: Dictionary

Tabla de valores opcional para pasar a OnFinishRecording .


Devuelve

void

Muestras de código

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

Seguridad del plugin

Devuelve si hay acciones que se pueden rehacer y, si hay, la última de ellas.


Devuelve

GetCanUndo

Seguridad del plugin

Devuelve si hay acciones que se pueden deshacer, y, si hay, devuelve la última de ellas.


Devuelve

IsRecordingInProgress

Seguridad del plugin

Parámetros

identifier: string

Devuelve

Redo

void
Seguridad del plugin

Ejecuta la última acción que se deshizo.


Devuelve

void

ResetWaypoints

void
Seguridad del plugin

Borrar el historial, causando que todos los puntos de deshacer/hacer de nuevo sean eliminados.


Devuelve

void

SetEnabled

void
Seguridad del plugin

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

state: bool

Devuelve

void

SetWaypoint

void
Seguridad del plugin

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

name: string

Devuelve

void

Muestras de código

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

Seguridad del plugin

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

name: string

Nombre de la acción que se está realizando para propósitos de registro y codificación.

displayName: string

Nombre de la acción que se está realizando para mostrar al usuario.


Devuelve

Muestras de código

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
Seguridad del plugin

Deshace la última acción tomada, para la que hay un punto de interés.


Devuelve

void

Eventos

OnRecordingFinished

Seguridad del plugin

Parámetros

name: string

Nombre de la acción que se está realizando para propósitos de registro y codificación.

displayName: string

Nombre de la acción que se está realizando para mostrar al usuario.

identifier: string

El identificador para la grabación.

finalOptions: Dictionary

Tabla opcional de FinishOperation() .


OnRecordingStarted

Seguridad del plugin

Parámetros

name: string

Nombre de la acción que se está realizando para propósitos de registro y codificación.

displayName: string

Nombre de la acción que se está realizando para mostrar al usuario.


OnRedo

Seguridad del plugin

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

waypoint: string

OnUndo

Seguridad del plugin

Se ha disparado cuando el usuario deshace una acción en el estudio. Waypoint describe el tipo de acción que se ha deshuelto.

Parámetros

waypoint: string