ChangeHistoryService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço

Desenvolvedores de plugins devem usar ChangeHistoryService dizer ao Studio como desfazer e refazer as alterações que seus plugins fazem às experiências gravando.Antes de fazer alterações, um plugin chama ChangeHistoryService:TryBeginRecording() , lembrando o identificador que atribui, então depois de fazer alterações, o Plugin chama ChangeHistoryService:FinishRecording() para completar a gravação.

Plugins também podem invocar um desfazer ou refazer programaticamente através de ChangeHistoryService:Undo() ou ChangeHistoryService:Redo() .

ChangeHistoryService não está habilitado em tempo de execução, então chamar seus métodos em uma experiência em andamento não tem efeito.

Resumo

Métodos

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    Segurança do plugin

    Comunica ao Studio que a gravação identificada está terminada e para tomar a operação final para concluir a gravação.

  • Segurança do plugin

    Retorna se existem ações que podem ser desfeitas e, se existirem, retorna a última delas.

  • Segurança do plugin

    Retorna se há ações que podem ser desfeitas e, se houver, retorna a última delas.

  • Segurança do plugin
  • Redo():()
    Segurança do plugin

    Executa a última ação que foi desfeita.

  • Segurança do plugin

    Limpa o histórico, causando a remoção de todos os pontos de desfazer/refazer.

  • SetEnabled(state : boolean):()
    Segurança do plugin

    Define se o ChangeHistoryService está habilitado ou não.

  • SetWaypoint(name : string):()
    Segurança do plugin

    Define um novo waypoint que pode ser usado como ponto de desfazer ou refazer.

  • TryBeginRecording(name : string,displayName : string?):string?
    Segurança do plugin

    Começa a rastrear as alterações feitas no modelo de dados para um registro.

  • Undo():()
    Segurança do plugin

    Desfaz a última ação realizada, para a qual existe um waypoint.

Eventos

Propriedades

Métodos

FinishRecording

()
Segurança do plugin

Parâmetros

identifier: string

Identifica a gravação da chamada anterior para TryBeginRecording() .Se a operação for Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, este valor é ignorado e a gravação é determinada pelo contexto.

Valor Padrão: ""

Specifica a operação a ser tomada.

Valor Padrão: ""
finalOptions: Dictionary

Tabela opcional de valores para passar para OnFinishRecording.

Valor Padrão: ""

Devolução

()

Amostras de código

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

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

Segurança do plugin

Retorna se existem ações que podem ser desfeitas e, se existirem, retorna a última delas.


Devolução

GetCanUndo

Segurança do plugin

Retorna se há ações que podem ser desfeitas e, se houver, retorna a última delas.


Devolução

IsRecordingInProgress

Segurança do plugin

Parâmetros

identifier: string
Valor Padrão: ""

Devolução

Redo

()
Segurança do plugin

Executa a última ação que foi desfeita.


Devolução

()

ResetWaypoints

()
Segurança do plugin

Limpa o histórico, causando a remoção de todos os pontos de desfazer/refazer.


Devolução

()

SetEnabled

()
Segurança do plugin

Define se o ChangeHistoryService está habilitado ou não.Quando definido como falso, a lista de desfazer/refazer é limpa e não é recomeçada.Quando definido como verdadeiro novamente, a lista original não é restaurada, mas operações posteriores são adicionadas à lista mais uma vez

Parâmetros

state: boolean
Valor Padrão: ""

Devolução

()

SetWaypoint

()
Segurança do plugin

Este método será descontinuado em breve em favor de TryBeginRecording().

ChangeHistoryService rastros de plugins histórico como um fluxo de alterações de propriedade.SetWaypoint()

Por convenção, ações invocadas pelo usuário no Studio devem chamar após completar seu conjunto de alterações na experiência.Chamá-lo antes de um conjunto de alterações pode limpar outro plugin que falhou em definir um caminho, mas é uma razão pobre para justificar tal uso em seu próprio plugin.

Parâmetros

name: string
Valor Padrão: ""

Devolução

()

Amostras de código

In order for the waypoints to work correctly, you need to set one both before AND after you perform the action that should be able to be undone.

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

Segurança do plugin

Este método inicia uma gravação para rastrear alterações no modelo de dados.Você deve chamá-la antes de fazer alterações para evitar futuras advertências ou erros.

Quando a gravação é concluída, você chama FinishRecording() com o identificador de gravação retornado para concluir a gravação e atualizar a pilha de desfazer/refazer.

Este método retornará nil se não conseguir iniciar uma gravação.Gravar falha se o plugin já tiver uma gravação em andamento ou se o usuário estiver no modo Executar ou Jogar .

Você pode usar IsRecordingInProgress() para verificar o status de gravação do plugin.

Parâmetros

name: string

Nome da ação que está sendo realizada adequado para fins de registro e codificação.

Valor Padrão: ""
displayName: string

Nome da ação que está sendo realizada para exibir ao usuário.

Valor Padrão: ""

Devolução

Amostras de código

To commit an undo/redo record, you need to first call TryBeginRecording() followed by calling FinishRecording().

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

()
Segurança do plugin

Desfaz a última ação realizada, para a qual existe um waypoint.


Devolução

()

Eventos

OnRecordingFinished

Segurança do plugin

Parâmetros

name: string

Nome da ação que está sendo realizada adequado para fins de registro e codificação.

displayName: string

Nome da ação que está sendo realizada para exibir ao usuário.

identifier: string

O identificador para a gravação.

finalOptions: Dictionary

Tabela opcional de FinishOperation() .


OnRecordingStarted

Segurança do plugin

Parâmetros

name: string

Nome da ação que está sendo realizada adequado para fins de registro e codificação.

displayName: string

Nome da ação que está sendo realizada para exibir ao usuário.


OnRedo

Segurança do plugin

Dispedido quando o usuário reverter o comando de desfazer. O Waypoint descreve a ação de tipo que foi refeita.

Parâmetros

waypoint: string

OnUndo

Segurança do plugin

Dispedido quando o usuário desfaz uma ação no estúdio. Waypoint descreve o tipo de ação que foi desfeita.

Parâmetros

waypoint: string