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

Os desenvolvedores de plugins devem usar Class.ChangeHistoryService para dizer ao Studio como desfazer e refazer as alterações que seus plugins fazem às experiências ao gravar. Antes de fazer alterações, um plugin chama ChangeHistoryService, lembrando-se do identificador que atribui, então, após fazer alterações, o

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

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

Resumo

Métodos

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

    Comunica-se ao Studio que a gravação identificada está terminada e para levar a operação final para completar a gravação.

  • Segurança do plugin

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

  • Segurança do plugin

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

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

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

  • Segurança do plugin

    Limpa o histórico, causando todos os waypoints de desfazer/refazer serem removidos.

  • SetEnabled(state : bool):void
    Segurança do plugin

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

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

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

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

    Começa a rastrear as alterações feitas ao modelo de dados em um arquivo.

  • Undo():void
    Segurança do plugin

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

Eventos

Propriedades

Métodos

FinishRecording

void
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, esse valor é ignorado e a gravação é determinada pelo contexto.

Especifica a operação a ser tomada.

finalOptions: Dictionary

Tabela opcional de valores para passar para OnFinishRecording .


Devolução

void

Amostras 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

Segurança do plugin

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


Devolução

GetCanUndo

Segurança do plugin

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


Devolução

IsRecordingInProgress

Segurança do plugin

Parâmetros

identifier: string

Devolução

Redo

void
Segurança do plugin

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


Devolução

void

ResetWaypoints

void
Segurança do plugin

Limpa o histórico, causando todos os waypoints de desfazer/refazer serem removidos.


Devolução

void

SetEnabled

void
Segurança do plugin

Define se o Serviço de Histórico de Mudanças está ativado ou não. Quando definido como falso, a lista de desfaz/refaz é limpa e não é repopulado. Quando definido como verdadeiro novamente, a lista original não é restaurada, mas novas operações são adicionadas à lista uma vez mais

Parâmetros

state: bool

Devolução

void

SetWaypoint

void
Segurança do plugin

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

ChangeHistoryService rastreia o histórico de plugins como uma stream de mudanças de propriedade. SetWaypoint() cria uma cut naquele stream de mudanças de propriedade para que as ações de desfazer e refazer saibam onde parar.

Por convenção, ações invocadas pelo usuário no Studio devem ser chamadas para Class.ChangeHistoryService:SetWaypoint()|SetWaypoint() depois de completar seu conjunto de alterações na experiência. Chamá-lo 1> antes1> de uma alteração pode limpar outro plugin que falhou em definir um ponto de referência, mas é uma raz

Parâmetros

name: string

Devolução

void

Amostras 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

Segurança do plugin

Este método começa uma gravação para rastrear alterações no modelo de dados. Você deve chamá-lo 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 desfaz/refaz.

Este método retornará nil se não puder iniciar uma gravação. Gravações falharão se o plugin já tiver uma gravação em andamento ou se o usuário estiver em Correr ou Jogar modo.

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

Parâmetros

name: string

Nome da ação sendo executada para fins de registro e codificação.

displayName: string

Nome da ação sendo executada para ser exibida ao usuário.


Devolução

Amostras 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
Segurança do plugin

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


Devolução

void

Eventos

OnRecordingFinished

Segurança do plugin

Parâmetros

name: string

Nome da ação sendo executada para fins de registro e codificação.

displayName: string

Nome da ação sendo executada para ser exibida ao usuário.

identifier: string

O identificador da gravação.

finalOptions: Dictionary

Tabela opcional de FinishOperation() .


OnRecordingStarted

Segurança do plugin

Parâmetros

name: string

Nome da ação sendo executada para fins de registro e codificação.

displayName: string

Nome da ação sendo executada para ser exibida ao usuário.


OnRedo

Segurança do plugin

Fired quando o usuário desiste do comando de desfazer. Waypoint descreve o tipo de ação que foi refeita.

Parâmetros

waypoint: string

OnUndo

Segurança do plugin

Dispensado 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