RustTip

OnBuildingMerge

OxideCarbonStructure

Called when a building merges.

void OnBuildingMerge(ServerBuildingManager serverBuildingManager, BuildingManager.Building building1, BuildingManager.Building building2)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

serverBuildingManager
ServerBuildingManager
building1
BuildingManager.Building
building2
BuildingManager.Building

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

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

Пример

private void OnBuildingMerge(ServerBuildingManager serverBuildingManager, BuildingManager.Building building1, BuildingManager.Building building2)
{
    Puts("OnBuildingMerge");
}

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

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

Rust.opj (Oxide)
void ServerBuildingManager.Merge(BuildingManager.Building, BuildingManager.Building)

Передаёт: ServerBuildingManager serverBuildingManager, BuildingManager.Building building1, BuildingManager.Building building2

РаботаетReturnBehavior: ContinueArgumentBehavior: AllAssembly-CSharp.dll

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

private void Merge(Building building1, Building building2)
Interface.CallHook("OnBuildingMerge", this, building1, building2);
{
	while (building2.HasDecayEntities())
	{
		building2.decayEntities[0].AttachToBuilding(building1.ID);
	}
	if (AI.useUnityNavmesh && AI.nav_carve_use_building_optimization)
	{
		building1.isNavMeshCarvingDirty = true;
// …

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