RustTip

OnEntitySaved

OxideCarbonGlobal

Called when an entity's state is serialized and written to the save stream.

void OnEntitySaved(BaseNetworkable networkable, BaseNetworkable.SaveInfo info)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

networkable
BaseNetworkable
info
BaseNetworkable.SaveInfo

Возвращаемое значение

voidВозвращаемое значение игнорируется — хук только уведомляет.

Пример

private void OnEntitySaved(BaseNetworkable networkable, BaseNetworkable.SaveInfo info)
{
    Puts("OnEntitySaved");
}

Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.

Где вызывается

ядро Oxide (Oxide.Rust)
RustCore::IOnEntitySaved(BaseNetworkable baseNetworkable, BaseNetworkable.SaveInfo saveInfo)

Код ядра Oxide — отсюда вызывается хук

private void IOnEntitySaved(BaseNetworkable baseNetworkable, BaseNetworkable.SaveInfo saveInfo)
{
    // Only call when saving for the network since we don't expect plugins to want to intercept saving to disk
    if (!serverInitialized || saveInfo.forConnection == null)
    {
        return;
    }

    Interface.CallHook("OnEntitySaved", baseNetworkable, saveInfo);
}

Место встраивания

Carbon
void BaseNetworkable.ToStream(System.IO.Stream stream, BaseNetworkable.SaveInfo saveInfo)
РаботаетAssembly-CSharp

Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.