private void EnableTool() { Log("EnableTool: called"); WorldInfoPanel.HideAllWorldInfoPanels(); GameAreaInfoPanel.Hide(); ToolsModifierControl.toolController.CurrentTool = this; }
/// <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; } } }