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 ChangeHistoryService para decirle a Studio cómo deshacer y rehacer los cambios que sus plugins hacen a las experiencias al grabar.Antes de hacer cambios, un plugin llama ChangeHistoryService:TryBeginRecording() , recordando el identificador que asigna, luego después de hacer cambios, el Plugin llama ChangeHistoryService:FinishRecording() para completar la grabación.

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 en tiempo de ejecución, por lo que llamar a sus métodos en una experiencia en ejecución no tiene efecto.

Resumen

Métodos

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    Seguridad del plugin

    Se comunica con Studio que la grabación identificada está terminada y para tomar la operación final para completar la grabación.

  • Seguridad del plugin

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

  • Seguridad del plugin

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

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

    Ejecuta la última acción que se deshizo.

  • Seguridad del plugin

    Limpia la historia, causando que todos los puntos de deshacer/rehacer se eliminen.

  • SetEnabled(state : boolean):()
    Seguridad del plugin

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

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

    Establece un nuevo punto de ruta que se puede utilizar como punto de deshacer o de rehacer.

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

    Empieza a rastrear los cambios realizados al modelo de datos en una grabación.

  • Undo():()
    Seguridad del plugin

    Deshace la última acción tomada, para la cual existe un punto de ruta.

Eventos

Propiedades

Métodos

FinishRecording

()
Seguridad del plugin

Parámetros

identifier: string
Valor predeterminado: ""
Valor predeterminado: ""
finalOptions: Dictionary
Valor predeterminado: ""

Devuelve

()

Muestras de código

Cambio de historial de servicio: Intenta comenzar a grabar

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
-- Nada que hacer.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Manija el error aquí. Esto indica que tu plugin comenzó una anterior
-- grabando y nunca lo completó. Solo puedes tener una grabación
-- por plugin activo a la vez.
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

GetCanUndo

Seguridad del plugin

Devuelve

IsRecordingInProgress

Seguridad del plugin

Parámetros

identifier: string
Valor predeterminado: ""

Devuelve

Redo

()
Seguridad del plugin

Devuelve

()

ResetWaypoints

()
Seguridad del plugin

Devuelve

()

SetEnabled

()
Seguridad del plugin

Parámetros

state: boolean
Valor predeterminado: ""

Devuelve

()

SetWaypoint

()
Seguridad del plugin

Parámetros

name: string
Valor predeterminado: ""

Devuelve

()

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

Parámetros

name: string
Valor predeterminado: ""
displayName: string
Valor predeterminado: ""

Devuelve

Muestras de código

Cambio de historial de servicio: Intenta comenzar a grabar

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
-- Nada que hacer.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Set selection to neon")
if not recording then
-- Manija el error aquí. Esto indica que tu plugin comenzó una anterior
-- grabando y nunca lo completó. Solo puedes tener una grabación
-- por plugin activo a la vez.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo

()
Seguridad del plugin

Devuelve

()

Eventos

OnRecordingFinished

Seguridad del plugin

Parámetros

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

OnRecordingStarted

Seguridad del plugin

Parámetros

name: string
displayName: string

OnRedo

Seguridad del plugin

Parámetros

waypoint: string

OnUndo

Seguridad del plugin

Parámetros

waypoint: string