private static void AskTransformStructure(byte x, byte y, uint instanceID) { ThreadUtil.assertIsGameThread(); if (!StructureManager.tryGetRegion(x, y, out var region)) { return; } var index = region.structures.FindIndex(k => k.instanceID == instanceID); var data = region.structures[index]; var drop = region.drops[index]; OnStructureTransformed?.Invoke(data, drop); }
private static void TellTransformStructure(StructureManager __instance, CSteamID steamID, byte x, byte y, uint instanceID) { ThreadUtil.assertIsGameThread(); if (!__instance.channel.checkServer(steamID) || !StructureManager.tryGetRegion(x, y, out var region)) { return; } var index = region.structures.FindIndex(k => k.instanceID == instanceID); if (index < 0) { return; } var data = region.structures[index]; var drop = region.drops[index]; OnStructureTransformed?.Invoke(data, drop, CurrentTransformingPlayerId); }