ChangeHistoryService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

Plugin-Entwickler müssen verwenden ChangeHistoryService, um Studio mitzuteilen, wie Änderungen, die ihre Plugins an Erlebnissen durch Aufzeichnung machen, rückgängig gemacht und wiederholt werden.Bevor Änderungen vorgenommen werden, ruft ein Plugin ChangeHistoryService:TryBeginRecording() auf, sich an den Identifikator zu erinnern, den es zuweist, und nach Änderungen ruft das Plugin ChangeHistoryService:FinishRecording() auf, um die Aufzeichnung abzuschließen.

Plugins können auch programmatisch eine Rückgängigmachung oder Wiederholung durch ChangeHistoryService:Undo() oder ChangeHistoryService:Redo() aufrufen.

ChangeHistoryService ist zur laufzeit nicht aktiviert, sodass das aufrufen seiner methoden in einer laufenden erfahrung keine auswirkung hat.

Zusammenfassung

Methoden

  • FinishRecording(identifier : string,operation : Enum.FinishRecordingOperation,finalOptions : Dictionary?):()
    Plugin-Sicherheit

    Kommuniziert mit Studio, dass die identifizierte Aufnahme abgeschlossen ist und die letzte Operation durchgeführt werden soll, um die Aufnahme abzuschließen.

  • Plugin-Sicherheit

    Gibt zurück, ob es Aktionen gibt, die rückgängig gemacht werden können, und, wenn es welche gibt, gibt es die letzte von ihnen zurück.

  • Plugin-Sicherheit

    Gibt zurück, ob es Aktionen gibt, die rückgängig gemacht werden können, und, wenn es welche gibt, gibt es die letzte von ihnen zurück.

  • Plugin-Sicherheit
  • Redo():()
    Plugin-Sicherheit

    Führe die letzte Aktion aus, die rückgängig gemacht wurde.

  • Plugin-Sicherheit

    Löscht die Geschichte, wodurch alle Rückgängig/Wiederholen-Wegpunkte entfernt werden.

  • SetEnabled(state : boolean):()
    Plugin-Sicherheit

    Legt fest, ob der ChangeHistoryService aktiviert ist oder nicht.

  • SetWaypoint(name : string):()
    Plugin-Sicherheit

    Legt einen neuen Wegpunkt fest, der als Rückgängigkeits- oder Wiederholungspunkt verwendet werden kann.

  • TryBeginRecording(name : string,displayName : string?):string?
    Plugin-Sicherheit

    Beginnt die Änderungen am Datenmodell in eine Aufzeichnung zu verfolgen.

  • Undo():()
    Plugin-Sicherheit

    Rückgängig die letzte ausgeführte Aktion, für die es einen Wegpunkt gibt.

Ereignisse

Eigenschaften

Methoden

FinishRecording

()
Plugin-Sicherheit

Parameter

identifier: string

Identifiziert die Aufzeichnung von der vorherigen Anruf an TryBeginRecording() .Wenn die Operation Enum.ChangeHistoryService.FinishRecordingOperation.Cancel ist, wird dieser Wert ignoriert, und die Aufzeichnung wird durch den Kontext bestimmt.

Standardwert: ""

Gibt die Operation an, die durchgeführt werden soll.

Standardwert: ""
finalOptions: Dictionary

Optionale Tabelle von Werten, die an OnFinishRecording übergeben werden.

Standardwert: ""

Rückgaben

()

Code-Beispiele

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

Plugin-Sicherheit

Gibt zurück, ob es Aktionen gibt, die rückgängig gemacht werden können, und, wenn es welche gibt, gibt es die letzte von ihnen zurück.


Rückgaben

GetCanUndo

Plugin-Sicherheit

Gibt zurück, ob es Aktionen gibt, die rückgängig gemacht werden können, und, wenn es welche gibt, gibt es die letzte von ihnen zurück.


Rückgaben

IsRecordingInProgress

Plugin-Sicherheit

Parameter

identifier: string
Standardwert: ""

Rückgaben

Redo

()
Plugin-Sicherheit

Führe die letzte Aktion aus, die rückgängig gemacht wurde.


Rückgaben

()

ResetWaypoints

()
Plugin-Sicherheit

Löscht die Geschichte, wodurch alle Rückgängig/Wiederholen-Wegpunkte entfernt werden.


Rückgaben

()

SetEnabled

()
Plugin-Sicherheit

Legt fest, ob der ChangeHistoryService aktiviert ist oder nicht.Wenn auf false gesetzt, wird die Rückgängig/Wiederholen-Liste geleert und nicht wiederbefüllt.Wenn es wieder auf wahr gesetzt wird, wird die ursprüngliche Liste nicht wiederhergestellt, sondern weitere Operationen werden einmal mehr an die Liste angehängt

Parameter

state: boolean
Standardwert: ""

Rückgaben

()

SetWaypoint

()
Plugin-Sicherheit

Diese Methode wird bald veraltet sein zugunsten von TryBeginRecording() .

ChangeHistoryService verfolgt plugin-historie als stream von eigenschaftsänderungen.SetWaypoint() erstellt einen schnitt in diesem stream von eigenschaftsänderungen, so dass die rückgängig- und wiederholungsaktionen wissen, wo sie aufhören.

Gemäß Konvention müssen Benutzeraktionen in Studio aufgerufen werden, nachdem sie ihre Änderungen an der Erlebnisabgeschlossen haben.Nenn es bevor ein Satz von Änderungen gereinigt werden kann, ein weiteres fehlgeschlagenes Plugin, das keinen Wegpunkt festlegen konnte, aber es ist ein schlechter Grund, eine solche Verwendung in deinem eigenen Plug-inzu rechtfertigen.

Parameter

name: string
Standardwert: ""

Rückgaben

()

Code-Beispiele

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

Plugin-Sicherheit

Diese Methode beginnt eine Aufzeichnung, um Änderungen am Modellzu verfolgen.Du musst es vor Änderungen anrufen, um zukünftige Warnungen oder Fehler zu vermeiden.

Wenn die Aufnahme abgeschlossen ist, rufen Sie FinishRecording() mit dem zurückgegebenen Aufzeichnungsidentifikator auf, um die Aufnahme abzuschließen und den Rückgängig/Wiederholungs-Stack zu aktualisieren.

Diese Methode gibt nil zurück, wenn sie nicht in der Lage ist, eine Aufzeichnung zu beginnen.Aufnahmen scheitern, wenn das Plugin bereits eine Aufnahme im Gange hat, oder wenn der Benutzer im Lauf - oder Spiel -Modus ist.

Du kannst IsRecordingInProgress() verwenden, um den Aufzeichnungsstatus des Plug-inzu überprüfen.

Parameter

name: string

Name der ausgeführten Aktion, geeignet für Zwecke der Aufzeichnung und des Codierens.

Standardwert: ""
displayName: string

Name der Aktion, die zum Anzeigen für den Benutzer ausgeführt wird.

Standardwert: ""

Rückgaben

Code-Beispiele

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

()
Plugin-Sicherheit

Rückgängig die letzte ausgeführte Aktion, für die es einen Wegpunkt gibt.


Rückgaben

()

Ereignisse

OnRecordingFinished

Plugin-Sicherheit

Parameter

name: string

Name der ausgeführten Aktion, geeignet für Zwecke der Aufzeichnung und des Codierens.

displayName: string

Name der Aktion, die zum Anzeigen für den Benutzer ausgeführt wird.

identifier: string

Die Identifikator für die Aufzeichnung.

finalOptions: Dictionary

Optioneller Tisch von FinishOperation().


OnRecordingStarted

Plugin-Sicherheit

Parameter

name: string

Name der ausgeführten Aktion, geeignet für Zwecke der Aufzeichnung und des Codierens.

displayName: string

Name der Aktion, die zum Anzeigen für den Benutzer ausgeführt wird.


OnRedo

Plugin-Sicherheit

Feuert, wenn der Benutzer den Rückgabebefehl umkehrt. Waypoint beschreibt die Art-Aktion, die wiederholt wurde.

Parameter

waypoint: string

OnUndo

Plugin-Sicherheit

Feuert ab, wenn der Benutzer eine Aktion im Studio rückgängig macht. Waypoint beschreibt die Art-Aktion, die rückgängig gemacht wurde.

Parameter

waypoint: string