
API И ИНТЕГРАЦИЯ
Собственного публичного API для вызова функций PlanterShiftActions другими плагинами не предусмотрено.
Используемые Oxide/Rust hooks:
OnLootEntity(BasePlayer player, BaseEntity targetEntity)
OnLootEntityEnd(BasePlayer player, StorageContainer targetEntity)
OnPlayerLootEnd(PlayerLoot instance)
OnGrowableGathered(GrowableEntity instance, Item item, BasePlayer player)
OnPlayerInput(BasePlayer player, InputState input)
OnPlayerDisconnected(BasePlayer player, string reason)
OnServerSave()
Интеграция с AutoPlanter является опциональной.
PlanterShiftActions вызывает у AutoPlanter:
OnAutoPlanterQueryManaged
Аргументы:
PlanterBox planter
Ожидаемый результат:
bool
Если возвращается true, грядка считается управляемой AutoPlanter.
Второй вызов:
OnAutoPlanterManualAction
Аргументы:
PlanterBox planter
BasePlayer player
string mode
mode:
"harvest"
или
"clone"
Ожидаемый результат:
int
0 или больше — количество обработанных растений.
-1 — действие не принято AutoPlanter.
Пример совместимого интерфейса:
private object OnAutoPlanterQueryManaged(PlanterBox planter)
{
return IsManagedPlanter(planter);
}
private object OnAutoPlanterManualAction(
PlanterBox planter,
BasePlayer player,
string mode)
{
if (!IsManagedPlanter(planter))
return -1;
return ProcessManualAction(planter, player, mode);
}