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));
            }
        }
Пример #2
0
 public static void OnCloseAfter(BuildTool_Dismantle __instance, int __state)
 {
     if (__state == 2)
     {
         __instance.cursorType = 2;
     }
 }
Пример #3
0
        public static bool CheckActive(BuildTool_Dismantle __instance, ref bool __result)
        {
            if (__instance.cursorType != 2)
            {
                return(true);
            }

            __result = false;
            return(false);
        }
Пример #4
0
 public static void BuildTool_Dismantle_DeterminePreviews_Postfix(BuildTool_Dismantle __instance)
 {
     RenderBuildCounter(__instance);
 }
Пример #5
0
 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;
            }
        }