ChangeHistoryService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa

Developerzy pluginów muszą używać Class.ChangeHistoryService , aby powiedzieć Studio, jak cofnąć i ponownie wykonać zmiany, które ich plugin dokonuje na doświadczeniach poprzez nagrywanie. Przed dokonaniem zmian, plugin wzywa ChangeHistoryService, zapamiętując identy

Plugins mogą również programowo wywołać cofnięcie lub ponowne poprzez ChangeHistoryService:Undo() lub ChangeHistoryService:Redo().

ChangeHistoryService nie jest włączony do czasu uruchomienia, więc wezwanie jego metod w doświadczeniu bieżącym nie ma efektu.

Podsumowanie

Metody

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):void
    Zabezpieczenia dodatku plug-in

    Komunikuje się z Studio, aby poinformować Studio, że nagrania zidentyfikowane zostały zakończone i aby podjąć ostateczną operację, aby ukończyć nagranie.

  • Zabezpieczenia dodatku plug-in

    Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.

  • Zabezpieczenia dodatku plug-in

    Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.

  • Zabezpieczenia dodatku plug-in
  • Redo():void
    Zabezpieczenia dodatku plug-in

    Wykonuje ostatnią akcję, która została cofnięta.

  • Zabezpieczenia dodatku plug-in

    Oczyща historię, powodując usunięcie wszystkich punktów końcowych / wykonanych ponownie.

  • SetEnabled(state : bool):void
    Zabezpieczenia dodatku plug-in

    Ustawia, czy zmiana historii serwera jest włączona lub nie.

  • SetWaypoint(name : string):void
    Zabezpieczenia dodatku plug-in

    Ustawia nowy punkt odniesienia, który może być używany jako punkt cofnięcia lub ponownego wykonania.

  • TryBeginRecording(name : string,displayName : string?):string?
    Zabezpieczenia dodatku plug-in

    Zaczyna śledzić zmiany dokonane w modelu danych w nagraniu.

  • Undo():void
    Zabezpieczenia dodatku plug-in

    Odwraca ostatnie podejście, dla którego istnieje punkt odniesienia.

Zdarzenia

Właściwości

Metody

FinishRecording

void
Zabezpieczenia dodatku plug-in

Parametry

identifier: string

Określa zapis z poprzedniego wezwania do TryBeginRecording() . Jeśli operacja jest Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, ten wartość jest ignorowana, a zapis jest określony przez kontekst.

Określa operację do wykonania.

finalOptions: Dictionary

Opcjonalna tabela wartości do przesłania na OnFinishRecording.


Zwroty

void

Przykłady kodu

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

Zabezpieczenia dodatku plug-in

Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.


Zwroty

GetCanUndo

Zabezpieczenia dodatku plug-in

Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.


Zwroty

IsRecordingInProgress

Zabezpieczenia dodatku plug-in

Parametry

identifier: string

Zwroty

Redo

void
Zabezpieczenia dodatku plug-in

Wykonuje ostatnią akcję, która została cofnięta.


Zwroty

void

ResetWaypoints

void
Zabezpieczenia dodatku plug-in

Oczyща historię, powodując usunięcie wszystkich punktów końcowych / wykonanych ponownie.


Zwroty

void

SetEnabled

void
Zabezpieczenia dodatku plug-in

Ustawia, czy zmiana historii serwisu jest włączona. Gdy ustawiony na fałszywy, listę odwołania/przywrócenia jest opróżniony i nie jest zrespawnowywany. Gdy ustawiony na prawdziwy ponownie, lista oryginalna nie jest przywracana, ale dalsze operacje są przyłączane do listy raz jeszcze

Parametry

state: bool

Zwroty

void

SetWaypoint

void
Zabezpieczenia dodatku plug-in

Ten metod będzie przestarzały wkrótce na rzecz TryBeginRecording() .

ChangeHistoryService śledzi historię pluginów jako ciąg zmian właściwości. SetWaypoint() tworzy cięcie tego ciągu zmian właściwości, aby działania odwołania i ponownego wykonania wiedziały, gdzie się zatrzymać.

Zgodnie z konwencją, użyj zwołanych akcji w Studio musi SetWaypoint()Class.ChangeHistoryService:SetWaypoint()|SetWaypoint()2>po2> ukończeniu swojego zestawu zmian doświadczenia. Zadzwonić go 5>przed5> ukończen

Parametry

name: string

Zwroty

void

Przykłady kodu

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

Zabezpieczenia dodatku plug-in

Ten metodą rozpoczyna się nagrania, aby śledzić zmiany w modelu danych. Musisz musisz wezwieć go przed wprowadzeniem zmian, aby uniknąć przyszłych ostrzeżeń lub błędów.

Kiedy nagranie zostanie zakończone, wezwiecie FinishRecording() z powrotem identyfikatora nagrania, aby ukończyć nagranie i zaktualizować kolejkę odwołania/zrób jeszcze raz.

Ten metod returnuje nil jeśli nie udało się zacząć nagrania. Nagrania gromadzą się, jeśli wtyczka ma już nagranie w toku lub jeśli użytkownik jest w trybie Biegnij lub Graj .

Możesz użyć IsRecordingInProgress() aby sprawdzić stan zapisu dodatek plug-in.

Parametry

name: string

Nazwa akcji wykonanej odpowiednio do celów logowania i kodowania.

displayName: string

Nazwa akcji wykonanej, aby użytkownik mogła zobaczyć.


Zwroty

Przykłady kodu

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

void
Zabezpieczenia dodatku plug-in

Odwraca ostatnie podejście, dla którego istnieje punkt odniesienia.


Zwroty

void

Zdarzenia

OnRecordingFinished

Zabezpieczenia dodatku plug-in

Parametry

name: string

Nazwa akcji wykonanej odpowiednio do celów logowania i kodowania.

displayName: string

Nazwa akcji wykonanej, aby użytkownik mogła zobaczyć.

identifier: string

Zidentyfikator zapisu.

finalOptions: Dictionary

Opcjonalny tabela z FinishOperation() .


OnRecordingStarted

Zabezpieczenia dodatku plug-in

Parametry

name: string

Nazwa akcji wykonanej odpowiednio do celów logowania i kodowania.

displayName: string

Nazwa akcji wykonanej, aby użytkownik mogła zobaczyć.


OnRedo

Zabezpieczenia dodatku plug-in

Wystrzelono, gdy użytkownik odwrócił komendę cofnięcia. Waypoint opisuje typ akcji, która została ponowna.

Parametry

waypoint: string

OnUndo

Zabezpieczenia dodatku plug-in

Wystrzelony, gdy użytkownik cofnie akcję w studio. Waypoint opisuje typ akcji, która została cofnięta.

Parametry

waypoint: string