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

Twórcy pluginów muszą używać ChangeHistoryService aby powiedzieć Studio, jak cofnąć i powtórzyć zmiany, które ich pluginy wprowadzają do doświadczeń, rejestrując je.Zanim dokonasz zmian, wtyczka dzwoni ChangeHistoryService:TryBeginRecording(), pamiętając identyfikator, który przypisuje, a następnie po dokonaniu zmian wtyczka dzwoni ChangeHistoryService:FinishRecording(), aby ukończyć rejestrację.

Wtyczki mogą również programowo wywołać odwołanie lub powtórzenie za pomocą ChangeHistoryService:Undo() lub ChangeHistoryService:Redo() .

ChangeHistoryService nie jest włączone podczas wykonywania, więc wezwanie jego metod w doświadczeniu uruchomionym nie ma żadnego efektu.

Podsumowanie

Metody

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

    Komunikuje się ze Studio, że zidentyfikowane nagranie zostało zakończone i należy wykonać ostatnią operację, aby ukończyć nagranie.

  • Zabezpieczenia dodatku plug-in

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

  • Zabezpieczenia dodatku plug-in

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

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

    Wykonuje ostatnią akcję, która została odwołana.

  • Zabezpieczenia dodatku plug-in

    Wyczyść historię, powodując usunięcie wszystkich punktów odwołania/przywrócenia.

  • SetEnabled(state : boolean):()
    Zabezpieczenia dodatku plug-in

    Ustawia, czy usługa ChangeHistory jest włączona, czy nie.

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

    Ustawia nowy punkt docelowy, który może być użyty jako punkt cofania lub powrotu.

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

    Zaczyna śledzić zmiany dokonane w modelu danych do zapisu.

  • Undo():()
    Zabezpieczenia dodatku plug-in

    Odwraca ostatnią wykonaną akcję, dla której istnieje punkt docelowy.

Zdarzenia

Właściwości

Metody

FinishRecording

()
Zabezpieczenia dodatku plug-in

Parametry

identifier: string

Określa rejestrację z poprzedniego wezwania do TryBeginRecording().Jeśli operacja jest Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, ta wartość jest ignorowana, a rejestracja jest określana przez kontekst.

Wartość domyślna: ""

Określa operację do wykonania.

Wartość domyślna: ""
finalOptions: Dictionary

Opcjonalna tabela wartości do przekazania do OnFinishRecording.

Wartość domyślna: ""

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)

GetCanRedo

Zabezpieczenia dodatku plug-in

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


Zwroty

GetCanUndo

Zabezpieczenia dodatku plug-in

Zwraca, 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
Wartość domyślna: ""

Zwroty

Redo

()
Zabezpieczenia dodatku plug-in

Wykonuje ostatnią akcję, która została odwołana.


Zwroty

()

ResetWaypoints

()
Zabezpieczenia dodatku plug-in

Wyczyść historię, powodując usunięcie wszystkich punktów odwołania/przywrócenia.


Zwroty

()

SetEnabled

()
Zabezpieczenia dodatku plug-in

Ustawia, czy usługa ChangeHistory jest włączona, czy nie.Gdy ustawiono na fałsz, lista odwołań/powrotów jest oczyszczana i nie jest ponownie zapełniana.Gdy zostanie ponownie ustawiony na prawdę, oryginalna lista nie zostanie przywrócona, ale kolejne operacje dodane zostaną do listy po raz kolejny

Parametry

state: boolean
Wartość domyślna: ""

Zwroty

()

SetWaypoint

()
Zabezpieczenia dodatku plug-in

Ta metoda zostanie wkrótce zniesiona na rzecz TryBeginRecording().

ChangeHistoryService śledzi historię pluginów jako strumień zmian właściwości.SetWaypoint() tworzy cięcie w tym strumieniu zmian właściwości, aby działania cofania i powrotu wiedziały, gdzie się zatrzymać.

Zgodnie z konwencją, działania uruchamiane przez użytkownika w Studio muszą wezwać po zakończeniu ich zestawu zmian w doświadczeniu.Wezwanie go przed zestaw zmian może oczyścić inny nieprawidłowo działający plugin, który nie udało się ustawić punktu docelowego, ale jest to słaba przyczyna uzasadniająca takie użycie w swoim własnym dodatek plug-in.

Parametry

name: string
Wartość domyślna: ""

Zwroty

()

Przykłady kodu

Aby punktów drogi poprawnie działały, musisz ustawić jeden zarówno przed, jak i po wykonaniu akcji, która powinna być możliwa do cofnięcia.

ChangeHistoryService: Ustaw punkt docelowy

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
-- Wezwanie SetWaypoint przed pracą nie spowoduje żadnych problemów, jednak
-- jest zbędny, potrzebny jest tylko połączenie po wykonaniu pracy.
--ChangeHistoryService: SetWaypoint("Ustawienie wyboru na neon")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Wezwij SetWaypoint po zakończeniu pracy
ChangeHistoryService:SetWaypoint("Set selection to neon")
else
-- Nie ma co robić. Nie musisz wzywać SetWaypoint w przypadku, gdy
-- akcja nie skończyła się żadnymi zmianami w doświadczeniu.
end
end)

TryBeginRecording

Zabezpieczenia dodatku plug-in

Ta metoda rozpoczyna rejestrację, aby śledzić zmiany w modelu danych.Musisz wezwać go przed dokonaniem zmian, aby uniknąć przyszłych ostrzeżeń lub błędów.

Gdy rejestracja zostanie zakończona, dzwonisz FinishRecording() z powrotnym identyfikatorem rejestracji, aby ukończyć rejestrację i zaktualizować stos odwołania/powrotu.

Ta metoda zwróci nil, jeśli nie uda się rozpocząć rejestracji.Nagrywania zawodzą, jeśli wtyczka ma już w toku nagrywanie lub użytkownik jest w trybie Uruchom lub Odtwarzanie .

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

Parametry

name: string

Nazwa wykonywanej akcji odpowiednia do celów rejestracji i kodowania.

Wartość domyślna: ""
displayName: string

Nazwa akcji wykonywanej do wyświetlenia użytkownikowi.

Wartość domyślna: ""

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

()
Zabezpieczenia dodatku plug-in

Odwraca ostatnią wykonaną akcję, dla której istnieje punkt docelowy.


Zwroty

()

Zdarzenia

OnRecordingFinished

Zabezpieczenia dodatku plug-in

Parametry

name: string

Nazwa wykonywanej akcji odpowiednia do celów rejestracji i kodowania.

displayName: string

Nazwa akcji wykonywanej do wyświetlenia użytkownikowi.

identifier: string

Identyfikator dla rejestracji.

finalOptions: Dictionary

Opcjonalny stół z FinishOperation().


OnRecordingStarted

Zabezpieczenia dodatku plug-in

Parametry

name: string

Nazwa wykonywanej akcji odpowiednia do celów rejestracji i kodowania.

displayName: string

Nazwa akcji wykonywanej do wyświetlenia użytkownikowi.


OnRedo

Zabezpieczenia dodatku plug-in

Wystrzeliwany, gdy użytkownik odwraca polecenie cofania. Waypoint opisuje rodzaj akcji, która została wykonana ponownie.

Parametry

waypoint: string

OnUndo

Zabezpieczenia dodatku plug-in

Wystrzeliwany, gdy użytkownik cofnie działanie w studio. Waypoint opisuje rodzaj działania, które zostało cofnięte.

Parametry

waypoint: string