ChangeHistoryService
*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.
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
Komunikuje się z Studio, aby poinformować Studio, że nagrania zidentyfikowane zostały zakończone i aby podjąć ostateczną operację, aby ukończyć nagranie.
Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.
Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.
Wykonuje ostatnią akcję, która została cofnięta.
Oczyща historię, powodując usunięcie wszystkich punktów końcowych / wykonanych ponownie.
Ustawia, czy zmiana historii serwera jest włączona lub nie.
Ustawia nowy punkt odniesienia, który może być używany jako punkt cofnięcia lub ponownego wykonania.
Zaczyna śledzić zmiany dokonane w modelu danych w nagraniu.
Odwraca ostatnie podejście, dla którego istnieje punkt odniesienia.
Zdarzenia
- OnRecordingFinished(name : string,displayName : string?,identifier : string?,operationn : Enum.FinishRecordingOperation,finalOptions : Dictionary?):RBXScriptSignal
Wystrzelony, gdy użytkownik ukończy akcji. Parametry pochodzą z TryBeginRecording() i FinishRecording().
Wystrzelony, gdy użytkownik rozpoczyna akcji. Parametry pochodzą z TryBeginRecording() .
Wystrzelono, gdy użytkownik odwrócił komendę cofnięcia. Waypoint opisuje typ akcji, która została ponowna.
Wystrzelony, gdy użytkownik cofnie akcję w studio. Waypoint opisuje typ akcji, która została cofnięta.
Właściwości
Metody
FinishRecording
Parametry
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.
Opcjonalna tabela wartości do przesłania na OnFinishRecording.
Zwroty
Przykłady kodu
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
Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.
Zwroty
GetCanUndo
Wykonuje, czy istnieją działania, które można cofnąć, i, jeśli istnieją, zwraca ostatni z nich.
Zwroty
Redo
Wykonuje ostatnią akcję, która została cofnięta.
Zwroty
ResetWaypoints
Oczyща historię, powodując usunięcie wszystkich punktów końcowych / wykonanych ponownie.
Zwroty
SetEnabled
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
Zwroty
SetWaypoint
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
Zwroty
Przykłady kodu
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
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
Nazwa akcji wykonanej odpowiednio do celów logowania i kodowania.
Nazwa akcji wykonanej, aby użytkownik mogła zobaczyć.
Zwroty
Przykłady kodu
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
Odwraca ostatnie podejście, dla którego istnieje punkt odniesienia.
Zwroty
Zdarzenia
OnRecordingFinished
Parametry
Nazwa akcji wykonanej odpowiednio do celów logowania i kodowania.
Nazwa akcji wykonanej, aby użytkownik mogła zobaczyć.
Zidentyfikator zapisu.
Opcjonalny tabela z FinishOperation() .
OnRecordingStarted
Parametry
Nazwa akcji wykonanej odpowiednio do celów logowania i kodowania.
Nazwa akcji wykonanej, aby użytkownik mogła zobaczyć.
OnRedo
Wystrzelono, gdy użytkownik odwrócił komendę cofnięcia. Waypoint opisuje typ akcji, która została ponowna.
Parametry
OnUndo
Wystrzelony, gdy użytkownik cofnie akcję w studio. Waypoint opisuje typ akcji, która została cofnięta.