ChangeHistoryService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

I sviluppatori di plugin devono usare Class.ChangeHistoryService per dire a Studio come annullare e ripetere le modifiche che i loro plugin apportano alle esperienze registrando. Prima di apportare modifiche, un plugin chiama Class.ChangeHistoryService:TryBeginRecording(), ricordando l'identificatore che assegna, quindi dopo aver apportato

I plugin possono anche invocare programmaticamente un annullamento o una ripetizione attraverso ChangeHistoryService:Undo() o ChangeHistoryService:Redo() .

ChangeHistoryService non è abilitato in tempo Tempo esecuzione, quindi chiamare i suoi metodi in un'esperienza in esecuzione non ha effetto.

Sommario

Metodi

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

    Comunica a Studio che il registrazione identificata è finita e per completare la registrazione.

  • Sicurezza Plugin

    Restituisce se ci sono azioni che possono essere ripetute e, se ci sono, restituisce l'ultima di esse.

  • Sicurezza Plugin

    Restituisce se ci sono azioni che possono essere annullate, e, se ci sono, restituisce l'ultima di esse.

  • Sicurezza Plugin
  • Redo():void
    Sicurezza Plugin

    Esegue l'ultima azione che è stata annullata.

  • Sicurezza Plugin

    Svuota la cronologia, causando la rimozione di tutti i punti di interruzione/ripetizione.

  • SetEnabled(state : bool):void
    Sicurezza Plugin

    Imposta se o no il ChangeHistoryService è abilitato.

  • SetWaypoint(name : string):void
    Sicurezza Plugin

    Imposta un nuovo punto di interesse che può essere utilizzato come punto di annullamento o ripetizione.

  • TryBeginRecording(name : string,displayName : string?):string?
    Sicurezza Plugin

    Inizia a tracciare le modifiche apportate al modello di dati in un registro.

  • Undo():void
    Sicurezza Plugin

    Annulla l'ultima azione intrapresa, per la quale esiste un punto di interruzione.

Eventi

Proprietà

Metodi

FinishRecording

void
Sicurezza Plugin

Parametri

identifier: string

Identifica il registro da chiamata precedente a TryBeginRecording() . Se l'operazione è Enum.ChangeHistoryService.FinishRecordingOperation.Cancel, questo valore viene ignorato e il registro viene determinato dal contesto.

Specifica l'operazione da eseguire.

finalOptions: Dictionary

Opzionale tavola di valori da passare a OnFinishRecording .


Restituzioni

void

Campioni di codice

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

Sicurezza Plugin

Restituisce se ci sono azioni che possono essere ripetute e, se ci sono, restituisce l'ultima di esse.


Restituzioni

GetCanUndo

Sicurezza Plugin

Restituisce se ci sono azioni che possono essere annullate, e, se ci sono, restituisce l'ultima di esse.


Restituzioni

IsRecordingInProgress

Sicurezza Plugin

Parametri

identifier: string

Restituzioni

Redo

void
Sicurezza Plugin

Esegue l'ultima azione che è stata annullata.


Restituzioni

void

ResetWaypoints

void
Sicurezza Plugin

Svuota la cronologia, causando la rimozione di tutti i punti di interruzione/ripetizione.


Restituzioni

void

SetEnabled

void
Sicurezza Plugin

Imposta se è abilitato o meno ChangeHistoryService. Quando è impostato su false, la lista undo/redo viene cancellata e non viene riempita. Quando è impostato su true again, la lista originale non viene ripristinata, ma le operazioni successive vengono aggiunte alla lista una volta di più

Parametri

state: bool

Restituzioni

void

SetWaypoint

void
Sicurezza Plugin

Questo metodo sarà presto deprecato in favore di TryBeginRecording() .

ChangeHistoryService traccia la cronologia dei plugin come flusso di cambiamenti di proprietà. SetWaypoint() crea un taglio in quella cronologia dei plugin in modo che le azioni annullare e ripetere sappiano dove fermarsi.

Per convenzione, le azioni chiamate dagli utenti in Studio devono chiamare SetWaypoint()dopo aver completato il loro set di modifiche all'esperienza. Chiamarlo 1> prima1> di un set di modifiche potrebbe pulire un altro Collegareche non funziona correttamente,

Parametri

name: string

Restituzioni

void

Campioni di codice

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

Sicurezza Plugin

Questo metodo inizia un registro per tracciare le modifiche al modello di dati. Devi chiamarlo prima di apportare modifiche per evitare future avvertenze o errori.

Quando il registrazione è completata, chiami FinishRecording() con l'identificatore di registrazione restituito per completare il registrazione e aggiornare lo stack di annullamento/ripetizione.

Questo metodo restituirà nil se non riesce a iniziare un'registrazione. Le registrazioni falliscono se il plugin ha già un'registrazione in corso, o se l'utente è in Run o Play mode.

Puoi usare IsRecordingInProgress() per controllare lo stato di registrazione del Collegare.

Parametri

name: string

Nome dell'azione in esecuzione adatto per scopi di registrazione e codifica.

displayName: string

Nome dell'azione che viene eseguita per mostrare all'utente.


Restituzioni

Campioni di codice

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
Sicurezza Plugin

Annulla l'ultima azione intrapresa, per la quale esiste un punto di interruzione.


Restituzioni

void

Eventi

OnRecordingFinished

Sicurezza Plugin

Parametri

name: string

Nome dell'azione in esecuzione adatto per scopi di registrazione e codifica.

displayName: string

Nome dell'azione che viene eseguita per mostrare all'utente.

identifier: string

L'identificatore per la registrazione.

finalOptions: Dictionary

Tavola opzionale da FinishOperation() .


OnRecordingStarted

Sicurezza Plugin

Parametri

name: string

Nome dell'azione in esecuzione adatto per scopi di registrazione e codifica.

displayName: string

Nome dell'azione che viene eseguita per mostrare all'utente.


OnRedo

Sicurezza Plugin

Si attiva quando l'utente inverte il comando di annullamento. Waypoint descrive il tipo di azione che è stata ripetuta.

Parametri

waypoint: string

OnUndo

Sicurezza Plugin

Si attiva quando l'utente annulla un'azione in studio. Waypoint descrive il tipo di azione che è stata annullata.

Parametri

waypoint: string