public static void askRepair(this Barricade barricade, ushort amount) { // Set the variables bool cancel = false; // Run the events BarricadeEvents.RunBarricadeRepair(UnturnedBarricade.FindBarricade(barricade), ref amount, ref cancel); // Run the original function if (!cancel) { DetourManager.CallOriginal(typeof(Barricade).GetMethod("askRepair", BindingFlags.Instance | BindingFlags.Public), barricade, amount); } }
public void askSalvageBarricade(CSteamID steamID, byte x, byte y, ushort plant, ushort index) { BarricadeRegion barricadeRegion; bool cancel = false; if (BarricadeManager.tryGetRegion(x, y, plant, out barricadeRegion)) { BarricadeData data = barricadeRegion.barricades[(int)index]; BarricadeEvents.RunBarricadeSalvage(UnturnedBarricade.Create(data), ref cancel); } if (!cancel) { DetourManager.CallOriginal(typeof(BarricadeManager).GetMethod("askSalvageBarricade", BindingFlags.Public | BindingFlags.Instance), BarricadeManager.instance, steamID, x, y, plant, index); } }