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

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

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