Пример #1
0
 private void EnableTool()
 {
     Log("EnableTool: called");
     WorldInfoPanel.HideAllWorldInfoPanels();
     GameAreaInfoPanel.Hide();
     ToolsModifierControl.toolController.CurrentTool = this;
 }
Пример #2
0
        /// <summary>
        /// ToolsModifierControl.SetTool
        /// But instead of searching the tool in ToolsModifierControl.m_Tools,
        /// this method uses ToolsModifierControl.toolController.gameObject.GetComponent<T>
        /// </summary>
        public static T SetTool <T>()
            where T : ToolBase
        {
            var toolController = ToolsModifierControl.toolController;

            if (toolController == null)
            {
                return(null);
            }
            var tool = toolController.GetComponent <T>();

            if (tool == null)
            {
                return(null);
            }

            if (!ToolsModifierControl.keepThisWorldInfoPanel)
            {
                WorldInfoPanel.HideAllWorldInfoPanels();
            }
            GameAreaInfoPanel.Hide();
            ToolsModifierControl.keepThisWorldInfoPanel = false;
            if (toolController.CurrentTool != tool)
            {
                toolController.CurrentTool = tool;
            }
            return(tool);
        }
        protected override void OnToolGUI(Event e)
        {
            ToolController toolController = ToolsModifierControl.toolController;
            int            num            = (int)_mouseAreaIndexField.GetValue(this);

            if (toolController.IsInsideUI)
            {
                return;
            }
            if (e.type != EventType.MouseDown)
            {
                return;
            }
            if (e.button == 0)
            {
                if (num != -1)
                {
                    if ((Object)toolController != (Object)null && (toolController.m_mode & ItemClass.Availability.MapEditor) != ItemClass.Availability.None)
                    {
                        //begin mod
                        //end mod
                    }
                    else
                    {
                        int x;
                        int z;
                        //begin mod
                        FakeGameAreaManager.GetTileXZ(num, out x, out z); //This method gets inlined and can't be detoured
                        //end mod
                        if (Singleton <GameAreaManager> .instance.CanUnlock(x, z) || Singleton <GameAreaManager> .instance.IsUnlocked(x, z))
                        {
                            UIInput.MouseUsed();
                            GameAreaInfoPanel.Show(num);
                        }
                        else
                        {
                            GameAreaInfoPanel.Hide();
                        }
                    }
                }
                else
                {
                    GameAreaInfoPanel.Hide();
                }
            }
            else if (e.button != 1)
            {
                ;
            }
        }
        private static void SetToolInternal(ToolController toolController, Type toolType)
        {
            FieldInfo toolField = typeof(ToolsModifierControl).GetField("m_Tools", BindingFlags.Static | BindingFlags.NonPublic);
            var       tools     = (Dictionary <Type, ToolBase>)toolField.GetValue(null);

            ToolBase toolBase;

            if (toolController != null && tools.TryGetValue(toolType, out toolBase))
            {
                if (!ToolsModifierControl.keepThisWorldInfoPanel)
                {
                    WorldInfoPanel.HideAllWorldInfoPanels();
                }
                GameAreaInfoPanel.Hide();
                ToolsModifierControl.keepThisWorldInfoPanel = false;
                if (toolController.CurrentTool != toolBase)
                {
                    toolController.CurrentTool = toolBase;
                }
            }
        }