public static void askRepair(this Structure stru, ushort amount) { // Set the events bool cancel = false; // Run the events StructureEvents.RunRepairStructure(UnturnedStructure.FindStructure(stru), ref amount, ref cancel); // Run the original function if (!cancel) { DetourManager.CallOriginal(typeof(Structure).GetMethod("askRepair", BindingFlags.Instance | BindingFlags.Public), stru, amount); } }
public void askSalvageStructure(CSteamID steamID, byte x, byte y, ushort index) { StructureRegion structureRegion; bool cancel = false; if (StructureManager.tryGetRegion(x, y, out structureRegion)) { StructureData data = structureRegion.structures[(int)index]; StructureEvents.RunSalvageStructure(UnturnedStructure.Create(data), ref cancel); } if (!cancel) { DetourManager.CallOriginal(typeof(StructureManager).GetMethod("askSalvageStructure", BindingFlags.Instance | BindingFlags.Public), StructureManager.instance, steamID, x, y, index); } }