RustTip

CanUseWires

OxideCarbonPlayer

Called to determine whether to use wires.

Return true to allow the action and false to block it.

object CanUseWires(BasePlayer player, bool cached, float cacheDuration, IOEntity targetIoEnt)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

player
BasePlayer
cached
bool
cacheDuration
float
targetIoEnt
IOEntity

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

objectВозвращённое значение заменяет результат игры; null — игра решает сама.

Пример

object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.

private object CanUseWires(BasePlayer player, bool cached, float cacheDuration, IOEntity targetIoEnt)
{
    Puts("CanUseWires");

    // ничего не меняем — игра продолжит как обычно
    return null;

    // повлиять на игру:
    // return false; // своё значение вместо результата игры
}

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

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

Rust.opj (Oxide)
bool WireTool.CanPlayerUseWires(BasePlayer, bool, float, IOEntity)

Передаёт: BasePlayer player, bool cached, float cacheDuration, IOEntity targetIoEnt

РаботаетReturnBehavior: ExitWhenValidTypeArgumentBehavior: JustParamsAssembly-CSharp.dll

Где вызывается (код игры этой ветки)

public static bool CanPlayerUseWires(BasePlayer player, bool cached = false, float cacheDuration = 1f, IOEntity targetIoEnt = null)
{
	object returnvar = Interface.CallHook("CanUseWires", player, cached, cacheDuration, targetIoEnt);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	if (player != null && player.IsInCreativeMode && Creative.unlimitedIo)
	{
		return true;
	}
// …

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