public static void OnDismantle(BuildTool_Dismantle __instance) { if (UndoManager.IgnoreAllEvents.Value) { return; } if (NebulaModAPI.IsMultiplayerActive) { if (NebulaModAPI.MultiplayerSession.LocalPlayer.IsClient) { return; } } List <int> objectIds = __instance.DetermineDismantle().ToList(); if (objectIds.Count <= 0) { return; } BlueprintData blueprint = UndoUtils.GenerateBlueprint(objectIds, out Vector3 position); if (blueprint.buildings.Length > 0 && !position.Equals(Vector3.zero)) { PlayerUndo data = UndoManager.GetCurrentPlayerData(); data.AddUndoItem(new UndoDismantle(data, objectIds, blueprint, new[] { position }, 0)); } }
public static void OnCloseAfter(BuildTool_Dismantle __instance, int __state) { if (__state == 2) { __instance.cursorType = 2; } }
public static bool CheckActive(BuildTool_Dismantle __instance, ref bool __result) { if (__instance.cursorType != 2) { return(true); } __result = false; return(false); }
public static void BuildTool_Dismantle_DeterminePreviews_Postfix(BuildTool_Dismantle __instance) { RenderBuildCounter(__instance); }
public static void OnCloseBefore(BuildTool_Dismantle __instance, ref int __state) { __state = __instance.cursorType; }
public static void Postfix(int category, UIBuildMenu __instance, ref Player ___player, ref BuildTool_Dismantle ___dismantleTool, ref bool ___forceDismantleChain) { if (___player == null) { return; } if (!__instance.isDismantleMode) { return; } if (DestructorModeResetPlugin.PluginConfig.EnableDecstructCursorReset) { ___dismantleTool.cursorType = DestructorModeResetPlugin.PluginConfig.DestructCursor; if (DestructorModeResetPlugin.PluginConfig.DestructChain.HasValue) { ___dismantleTool.chainReaction = DestructorModeResetPlugin.PluginConfig.DestructChain.Value; ___forceDismantleChain = DestructorModeResetPlugin.PluginConfig.DestructChain.Value; } } if (DestructorModeResetPlugin.PluginConfig.EnableDestructFilterReset) { ___dismantleTool.filterFacility = DestructorModeResetPlugin.PluginConfig.DestructFilterFactory; ___dismantleTool.filterBelt = DestructorModeResetPlugin.PluginConfig.DestructFilterBelt; ___dismantleTool.filterInserter = DestructorModeResetPlugin.PluginConfig.DestructFilterInserter; } }