Exemple #1
0
        public static void InstallMod()
        {
            if (MoveItTool.instance == null)
            {
                // Creating the instance
                ToolController toolController = GameObject.FindObjectOfType <ToolController>();

                MoveItTool.instance = toolController.gameObject.AddComponent <MoveItTool>();
            }
            else
            {
                Debug.Log($"InstallMod with existing instance!");
            }

            MoveItTool.stepOver     = new StepOver();
            MoveItTool.m_debugPanel = new DebugPanel();

            UIFilters.FilterCBs.Clear();
            UIFilters.NetworkCBs.Clear();

            Filters.Picker = new PickerFilter();

            MoveItTool.filterBuildings = true;
            MoveItTool.filterProps     = true;
            MoveItTool.filterDecals    = true;
            MoveItTool.filterSurfaces  = true;
            MoveItTool.filterTrees     = true;
            MoveItTool.filterNodes     = true;
            MoveItTool.filterSegments  = true;
            MoveItTool.filterNetworks  = false;

            IsGameLoaded = true;
        }
Exemple #2
0
        public override void OnCreated(ILoading loading)
        {
            base.OnCreated(loading);
            ToolController tc = UnityEngine.Object.FindObjectOfType <ToolController>();

            tc?.gameObject?.AddComponent <TouchThisTool>();
        }
Exemple #3
0
        // called when level is loaded
        public void OnLevelLoaded(LoadMode mode)
        {
            //instatiate tools
            if (RoundaboutTool.Instance == null || EllipseTool.Instance == null)
            {
                ToolController toolController = GameObject.FindObjectOfType <ToolController>();

                RoundaboutTool.Instance         = toolController.gameObject.AddComponent <RoundaboutTool>();
                RoundaboutTool.Instance.enabled = false;
                EllipseTool.Instance            = toolController.gameObject.AddComponent <EllipseTool>();
                EllipseTool.Instance.enabled    = false;
                FreeCursorTool.Instance         = toolController.gameObject.AddComponent <FreeCursorTool>();
                FreeCursorTool.Instance.enabled = false;
            }

            //instatiate UI
            if (UIWindow2.instance == null) // !!
            {
                UIView.GetAView().AddUIComponent(typeof(UIWindow2));
            }

            /*if (NetInfoController.instance == null)
             * {
             *  GameObject gameObject = new GameObject("RoundaboutBuilderNetinfoManager");
             *  NetInfoController.instance = gameObject.AddComponent<NetInfoController>();
             * }*/

            //Debug.Log(_string);
            LevelLoaded = true;
            //debug();
        }
        public static void InstallMod()
        {
            if (MoveItTool.instance == null)
            {
                // Creating the instance
                ToolController toolController = GameObject.FindObjectOfType <ToolController>();

                MoveItTool.instance = toolController.gameObject.AddComponent <MoveItTool>();

                MoveItTool.stepOver = new StepOver();

                UIFilters.FilterCBs.Clear();
                UIFilters.NetworkCBs.Clear();

                MoveItTool.filterBuildings = true;
                MoveItTool.filterProps     = true;
                MoveItTool.filterDecals    = true;
                MoveItTool.filterSurfaces  = true;
                MoveItTool.filterTrees     = true;
                MoveItTool.filterNodes     = true;
                MoveItTool.filterSegments  = true;
                MoveItTool.filterNetworks  = false;
            }

            IsGameLoaded = true;
        }
 // Use this for initialization
 private void Start()
 {
     LevelController = new LevelController(FindObjectOfType <SceneLoader>());
     GC = FindObjectOfType <GameController>();
     ActionController = GetComponent <PlayerActionController>();
     ToolController   = GetComponent <ToolController>();
 }
Exemple #6
0
        public override void OnLevelLoaded(LoadMode mode)
        {
            try
            {
                _loadMode = mode;

                if (_loadMode != LoadMode.LoadGame && _loadMode != LoadMode.NewGame && _loadMode != LoadMode.NewGameFromScenario)
                {
                    return;
                }

                ToolController toolController = UnityEngine.Object.FindObjectOfType <ToolController>();
                if (toolController != null)
                {
                    LocationTool.Instance = toolController.gameObject.AddComponent <LocationTool>();
                }

                UIView uiView = UnityEngine.Object.FindObjectOfType <UIView>();
                if (uiView != null)
                {
                    _mainPanelGameObject = new GameObject("NoteItMainPanel");
                    _mainPanelGameObject.transform.parent = uiView.transform;
                    _mainPanelGameObject.AddComponent <MainPanel>();

                    _locationPanelGameObject = new GameObject("NoteItLocationPanel");
                    _locationPanelGameObject.transform.parent = uiView.transform;
                    _locationPanelGameObject.AddComponent <LocationPanel>();
                }
            }
            catch (Exception e)
            {
                Debug.Log("[Note It!] Loading:OnLevelLoaded -> Exception: " + e.Message);
            }
        }
Exemple #7
0
        public static T GetTool <T>(int sender) where T : ToolBase
        {
            ToolBase tool;

            if (_currentTools.ContainsKey(sender))
            {
                tool = _currentTools[sender];
                if (tool.GetType() == typeof(T))
                {
                    return((T)tool);
                }
            }

            tool = (ToolBase)Activator.CreateInstance(typeof(T));

            ToolController controller = new ToolController();

            ReflectionHelper.SetAttr(tool, "m_toolController", controller);

            // See ToolController::Awake
            ReflectionHelper.SetAttr(controller, "m_brushData", new float[4096]);

            _currentTools[sender] = tool;
            return((T)tool);
        }
Exemple #8
0
    protected override void OnDeactivate(ToolController owner, GameObject target)
    {
        if (SalvComp == null | SwitchedTargets | !FinishedSalvage | OutOfRange)
        {
            return;
        }
        Debug.Log("Deactivated");

        if (owner.PlayerInventory.AddToResourceBucket(SalvComp.SalvageItem, SalvComp.Amount))
        {
            //Debug.Log(owner.PlayerInventory.GetResourceAmount(SalvComp.SalvageItem.ResourceType));
            Destroy(OriginalTarget);

            //EVAN: Play salvaged success sound here
            AkSoundEngine.PostEvent("SFX_Debris_Collect", target);
            //resource gained pop text
            Instantiate(popText).popText.SetText(SalvComp.SalvageItem.ResourceType.DisplayName + " Gained");
            //Debug.Log("Salvaged Object");
        }
        else
        {
            Instantiate(popText).popText.SetText(SalvComp.SalvageItem.ResourceType.DisplayName + " Full");
        }

        //EVAN: finish the salvage sound
        //error pop text
        //Debug.Log("Not enough space");
        SalvComp        = null;
        SwitchedTargets = true;
        OriginalTarget  = null;
    }
        public static void EndColliding(/*ulong[] ___m_collidingSegments1*/)
        {
            StackTrace     stackTrace     = new StackTrace();
            ToolController targetInstance = Singleton <ToolManager> .instance.m_properties;

            if (stackTrace.GetFrame(1).GetMethod().Name == "SimulationStep")
            {
                ulong[] ___m_collidingSegments1 = typeof(ToolController).GetField("m_collidingSegments1", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(targetInstance) as ulong[];

                //UnityEngine.Debug.Log("EndColliding caller: " + stackTrace.GetFrame(2).GetMethod().GetUnderlyingType() + " " + stackTrace.GetFrame(2).GetMethod().Name + " " + ", count: " + CollidingSegments.Count);

                CollidingSegments.Clear();
                foreach (int segment in NetUtil.SegmentsFromMask(___m_collidingSegments1))
                {
                    CollidingSegments.Add((ushort)segment);
                }
                CollidingSegmentsCache2 = CollidingSegments.ToArray();
            }

            Redirector <ToolControllerDetour> .Revert();

            targetInstance.EndColliding();
            Redirector <ToolControllerDetour> .Deploy();

            //UnityEngine.Debug.Log("EndColliding: " + CollidingSegmentsCache2.Length);
        }
        public static void AddExtraToolsToController(ToolController toolController, List <ToolBase> extraTools)
        {
            if (extraTools.Count < 1)
            {
                return;
            }
            var fieldInfo     = typeof(ToolController).GetField("m_tools", BindingFlags.Instance | BindingFlags.NonPublic);
            var tools         = (ToolBase[])fieldInfo.GetValue(toolController);
            var initialLength = tools.Length;

            Array.Resize(ref tools, initialLength + extraTools.Count);
            var i          = 0;
            var dictionary =
                (Dictionary <Type, ToolBase>)
                typeof(ToolsModifierControl).GetField("m_Tools", BindingFlags.Static | BindingFlags.NonPublic)
                .GetValue(null);

            foreach (var tool in extraTools)
            {
                dictionary.Add(tool.GetType(), tool);
                tools[initialLength + i] = tool;
                i++;
            }
            fieldInfo.SetValue(toolController, tools);
        }
Exemple #11
0
    void Start()
    {
        geometryBehaviour   = GameObject.Find("/3D/Geometry").GetComponent <GeometryBehaviour>();
        navigationBehaviour = GameObject.Find("/3D/Navigation").GetComponent <NavigationBehaviour>();
        gridBehaviour       = GameObject.Find("/3D/Grid").GetComponent <GridBehaviour>();
        coordinateBehaviour = GameObject.Find("/3D/Coordinate").GetComponent <CoordinateBehaviour>();

        geoCamera = GameObject.Find("/3D/GeoCamera").GetComponent <GeoCamera>();
        navCamera = GameObject.Find("/3D/NavCamera").GetComponent <NavCamera>();

        InitTouchSystem();
        InitView();
        InitUI();

        geoCamera.InitDefault();

        stateController = GetComponent <StateController>();
        stateController.Init(geoUI.statePanel);

        toolController = GetComponent <ToolController>();
        toolController.Init(geoUI.toolPanel);

        recognizeController = GetComponent <RecognizeController>();
        recognizeController.Init(geoUI.writingPanel);

        ClearGeometry();
    }
 public static void SetTool(this ToolController toolController, Type toolType)
 {
     if (!IsToolActive(toolController, toolType))
     {
         SetToolInternal(toolController, toolType);
     }
 }
Exemple #13
0
        public static void Initialize(ToolController toolController)
        {
            if (sm_initialized)
            {
                return;
            }

            Debug.Log("Traffic++: Initializing Transport Tool.\n");

            TransportTool       originalTransportTool = toolController.GetComponent <TransportTool>();
            CustomTransportTool customTransportTool   = toolController.gameObject.AddComponent <CustomTransportTool>();

            // contributed by Japa
            FieldInfo toolControllerField = typeof(ToolController).GetField("m_tools", BindingFlags.Instance | BindingFlags.NonPublic);

            if (toolControllerField != null)
            {
                toolControllerField.SetValue(toolController, toolController.GetComponents <ToolBase>());
            }
            FieldInfo toolModifierDictionary = typeof(ToolsModifierControl).GetField("m_Tools", BindingFlags.Static | BindingFlags.NonPublic);

            if (toolModifierDictionary != null)
            {
                toolModifierDictionary.SetValue(null, null);
            }

            sm_initialized = true;

            Debug.Log("Traffic++: Transport Tool initialized.\n");
        }
Exemple #14
0
 // Use this for initialization
 private void Start()
 {
     ToolCtrl   = FindObjectOfType <ToolController>();
     TutorialUI = FindObjectOfType <TutorialUIController>();
     SpaceBarUI = Instantiate(TutorialUI.PressSpaceImg, FindObjectOfType <Canvas>().transform);
     SpaceBarUI.SetActive(false);
 }
    // Use this for initialization
    void Start()
    {
        //hauteur d'un bloc
        g_cubeHeight = 1.0f;

        //distance entre le joueur et le cube
        //g_cubeDistance = 3.0f;

        //détermine si l'on est en train de dessiner un mur
        g_isDrawingWall = false;

        //détermine si l'on est en train de supprimer des blocs
        g_isRemoving = false;

        //sert à décrire l'état dans lequel le builder se trouve
        g_currentMode = (int)g_modes.IDLE;

        g_isPlayMode = false;

        m_wallController = g_wallTool.GetComponent <wallController> ();
        //m_removeController = g_removeTool.GetComponent<removeController> ();
        //m_grabController = g_grabTool.GetComponent<grabController> ();
        m_toolController  = GetComponent <ToolController>();
        m_colorController = GetComponent <colorController> ();
        m_zoomController  = GetComponent <zoomController> ();

        m_rightWandController = g_rightController.GetComponent <wandController> ();
        m_leftWandController  = g_leftController.GetComponent <wandController> ();
    }
    protected override void OnSelect(ToolController owner)
    {
        Debug.Log("Satellite Tool Selected");
        satInv = owner.GetComponent <SatelliteInventory>();
        if (satInv == null || satInv.StoredSatellites.Count == 0 || satInv.StoredSatellites[0] == null)
        {
            satInv.NoSatTooltip.SetActive(true);
            //Debug.Log("NoSat Found");
            return;
        }

        //this is such a gross way of checking what satellite type a thing is im sorry
        if (satInv.StoredSatellites[0].name == "FuelSatellite")
        {
            foreach (var cloud in cloudVisualizers)
            {
                cloud.VisualizeArea();
            }
        }

        SatellitePreview = GameObject.Instantiate(satInv.StoredSatellites[0].PreviewPrefab);
        SatellitePreview.transform.position = satInv.SatelliteSpawnPos.position;
        SatellitePreview.transform.rotation = satInv.SatelliteSpawnPos.rotation;
        SatellitePreview.transform.SetParent(owner.GetComponentInChildren <Camera>().transform);
        SatBehavior = SatellitePreview.GetComponent <SatelliteBehavior>();
    }
Exemple #17
0
        private void FreshPrefab(PrefabInfo info)
        {
            if (info != null)
            {
                ToolController properties = Singleton <ToolManager> .instance.m_properties;
                var            isAllowRun = false;
                if (properties != null && properties.m_editPrefabInfo != null)
                {
                    if (properties.m_editPrefabInfo.GetType() == typeof(VehicleInfo))
                    {
                        isAllowRun = true;
                    }
                    else if (properties.m_editPrefabInfo.GetType() == typeof(BuildingInfo))
                    {
                        isAllowRun = true;
                    }
                    else if (properties.m_editPrefabInfo.GetType() == typeof(PropInfo))
                    {
                        isAllowRun = true;
                    }
                    else if (properties.m_editPrefabInfo.GetType() == typeof(CitizenInfo))
                    {
                        isAllowRun = true;
                    }
                }

                if (isAllowRun)
                {
                    try { AddHexColorsFields(); }
                    catch (Exception ex) { Debug.LogException(ex); }
                }
            }
        }
Exemple #18
0
        //original as of 160815 2312
        //private static List<ToolBase> SetupExtraTools(ref ToolController toolController)
        //{
        //    List<ToolBase> toolBaseList = new List<ToolBase>();

        //    SetUpPropLineTool(ref toolController, ref toolBaseList);

        //    return toolBaseList;
        //}

        //new 160815 2312
        private static bool SetupExtraTools(ref ToolController toolController, out List <ToolBase> extraTools)
        {
            List <ToolBase> _toolBaseList = new List <ToolBase>();

            extraTools = _toolBaseList;

            bool _setupPropLineToolResult = false;

            _setupPropLineToolResult = SetUpPropLineTool(ref toolController, ref _toolBaseList);

            //return false iff all extraTools already exist
            if (_setupPropLineToolResult == false)
            {
                Debug.Log("[PLT]: ToolMan.SetupExtraTools(): Returning false...");

                return(false);
            }
            else
            {
                extraTools = _toolBaseList;

                Debug.Log("[PLT]: ToolMan.SetupExtraTools(): Returning true...");

                return(true);
            }
        }
        protected override void Handle(BuildingToolCreateCommand command)
        {
            BuildingTool tool = ToolSimulator.GetTool <BuildingTool>(command.SenderId);

            IgnoreHelper.StartIgnore();
            ArrayHandler.StartApplying(command.Array16Ids, command.Array32Ids);

            BuildingInfo prefab = null;

            if (command.Relocate == 0)
            {
                prefab = PrefabCollection <BuildingInfo> .GetPrefab(command.Prefab);
            }

            tool.m_prefab   = prefab;
            tool.m_relocate = command.Relocate;

            ReflectionHelper.SetAttr(tool, "m_mousePosition", command.MousePosition);
            ReflectionHelper.SetAttr(tool, "m_mouseAngle", command.MouseAngle);
            ReflectionHelper.SetAttr(tool, "m_elevation", command.Elevation);
            ReflectionHelper.SetAttr(tool, "m_placementErrors", ToolBase.ToolErrors.None);
            ReflectionHelper.SetAttr(tool, "m_constructionCost", 0);

            ToolController controller = ReflectionHelper.GetAttr <ToolController>(tool, "m_toolController");

            ReflectionHelper.SetAttr(controller, "m_collidingSegments1", command.CollidingSegments);
            ReflectionHelper.SetAttr(controller, "m_collidingBuildings1", command.CollidingBuildings);
            ReflectionHelper.SetAttr(controller, "m_collidingDepth", 1);

            ReflectionHelper.Call <IEnumerator>(tool, "CreateBuilding")?.MoveNext();

            ArrayHandler.StopApplying();
            IgnoreHelper.EndIgnore();
        }
        // called when level is loaded
        public void OnLevelLoaded(LoadMode mode)
        {
            //instatiate tools
            if (RoundaboutTool.Instance == null || EllipseTool.Instance == null)
            {
                ToolController toolController = GameObject.FindObjectOfType <ToolController>();

                RoundaboutTool.Instance         = toolController.gameObject.AddComponent <RoundaboutTool>();
                RoundaboutTool.Instance.enabled = false;
                EllipseTool.Instance            = toolController.gameObject.AddComponent <EllipseTool>();
                EllipseTool.Instance.enabled    = false;
                FreeCursorTool.Instance         = toolController.gameObject.AddComponent <FreeCursorTool>();
                FreeCursorTool.Instance.enabled = false;
            }

            //instatiate UI
            if (UIWindow2.instance == null) // !!
            {
                UIView.GetAView().AddUIComponent(typeof(UIWindow2));
            }

            //update msg
            if (!RoundAboutBuilder.SeenUpdateMsg)
            {
                UIWindow2.instance.ThrowErrorMsg("Roundabout Builder now supports undo! Yaay! Moreover, building costs are now taken from your account.\n" +
                                                 "Please report any bugs on the Steam Workshop page.");
                RoundAboutBuilder.SeenUpdateMsg.value = true;
            }


            LevelLoaded = true;
        }
Exemple #21
0
    protected override bool LoopCondition(ToolController owner, GameObject target)
    {
        SwitchedTargets = (OriginalTarget != target);
        if (target == null)
        {
            return(false);
        }

        OutOfRange = Vector3.Distance(target.transform.position, owner.transform.position) >= _ToolRange;
        if (OutOfRange)
        {
            progressBarFill.fillAmount = 0f;
            ToggleBars(false);
        }
        if (!OutOfRange && progressBarBG.gameObject.activeSelf == false)
        {
            progressBarFill.fillAmount = 0f;
            ToggleBars(true);
        }

        FinishedSalvage = ((SalvageStartTime + salvageTime) <= Time.unscaledTime);

        if (!FinishedSalvage && !OutOfRange)
        {
            progressBarFill.fillAmount = ((Time.unscaledTime - SalvageStartTime) / (salvageTime));
            //Debug.LogWarning(((Time.unscaledTime - SalvageStartTime )/ (salvageTime)));
        }
        else if (SwitchedTargets || FinishedSalvage || OutOfRange)
        {
            progressBarFill.fillAmount = 0f;
            ToggleBars(false);
        }

        return(!(OutOfRange || SwitchedTargets || FinishedSalvage));
    }
 protected override bool ActivateCondition(ToolController owner, GameObject target)
 {
     if (SatBehavior == null || target == null)
     {
         return(false);
     }
     return(SatBehavior.PlacementConditionCheck(owner) && (satInv.StoredSatellites[0] != null));
 }
Exemple #23
0
 protected override void OnDeselect(ToolController owner)
 {
     //Debug.Log("Salvager DeSelected");
     SalvComp = null; //cleanup
     ToggleBars(false);
     progressBarBG   = null;
     progressBarFill = null;
 }
        public static bool IsToolActive(this ToolController toolController, Type toolType)
        {
            if (toolController.CurrentTool == null)
            {
                return(false);
            }

            return(toolController.CurrentTool.GetType() == toolType);
        }
Exemple #25
0
 protected override bool LoopCondition(ToolController owner, GameObject target)
 {
     if (healthComponent == null || target == null)
     {
         Debug.LogWarning("Nothing to repair");
         return(false);
     }
     return(healthComponent.CanRepair(owner.gameObject) && inventoryComponent.GetResource(RepairNaniteResource) >= NanitesPerCycle);
 }
Exemple #26
0
        /// <summary>
        /// Detour for ToolManager.EndRenderingImpl
        /// </summary>
        private void EndRenderingImpl(RenderManager.CameraInfo cameraInfo)
        {
            ToolController properties = Singleton <ToolManager> .instance.m_properties;

            if (properties != null)
            {
                PrefabInfo editPrefabInfo = properties.m_editPrefabInfo;
                if (editPrefabInfo != null)
                {
                    VehicleInfo vehicleInfo = editPrefabInfo as VehicleInfo;
                    if (vehicleInfo != null)
                    {
                        // Modified implementation
                        RenderInfo(cameraInfo, vehicleInfo, new Vector3(0f, 60f, 0f), false);
                        if (vehicleInfo.m_trailers != null)
                        {
                            // Bug(?) fix: main info's m_attachOffsetBack did not get applied
                            float num = vehicleInfo.m_generatedInfo.m_size.z * 0.5f - vehicleInfo.m_attachOffsetBack;

                            for (int i = 0; i < vehicleInfo.m_trailers.Length; i++)
                            {
                                VehicleInfo info = vehicleInfo.m_trailers[i].m_info;
                                // New: Support correct display of inverted trailers
                                bool  isInverted = (vehicleInfo.m_trailers[i].m_invertProbability >= 100);
                                float frontDelta = info.m_generatedInfo.m_size.z * 0.5f - info.m_attachOffsetFront;
                                float backDelta  = info.m_generatedInfo.m_size.z * 0.5f - info.m_attachOffsetBack;
                                num += isInverted ? backDelta : frontDelta;
                                Vector3 position = new Vector3(0f, 60f, 0f) + new Vector3(0f, 0f, -num);

                                RenderInfo(cameraInfo, info, position, isInverted);

                                // Change for inverted vehicles
                                num += isInverted ? frontDelta : backDelta;
                            }
                        }
                    }
                    else
                    {
                        //Default
                        editPrefabInfo.RenderMesh(cameraInfo);
                    }
                }
                try
                {
                    ToolBase currentTool = properties.CurrentTool;
                    if (currentTool != null)
                    {
                        currentTool.RenderGeometry(cameraInfo);
                    }
                }
                catch (Exception ex)
                {
                    UIView.ForwardException(ex);
                    CODebugBase <LogChannel> .Error(LogChannel.Core, "Tool error: " + ex.Message + "\n" + ex.StackTrace);
                }
            }
        }
 // Use this for initialization
 private void Start()
 {
     StatusCtrl  = GetComponent <PatientStatusController>();
     TutorialUI  = FindObjectOfType <TutorialUIController>();
     ToolCtrl    = FindObjectOfType <ToolController>();
     AilmentCtrl = GetComponent <AilmentController>();
     SpaceBarImg = Instantiate(TutorialUI.HoldSpaceImg, FindObjectOfType <Canvas>().transform);
     SpaceBarImg.SetActive(false);
 }
Exemple #28
0
 private void Start()
 {
     gooGlueBar.SetActive(false);
     if (player == null)
     {
         player = UIRoot.GetPlayer();
     }
     playerTools = player.GetComponent <ToolController>();
     PopulateToolbar();
 }
Exemple #29
0
        public override void OnLevelLoaded(LoadMode mode)
        {
            if (MoveItTool.instance == null)
            {
                // Creating the instance
                ToolController toolController = GameObject.FindObjectOfType <ToolController>();

                MoveItTool.instance = toolController.gameObject.AddComponent <MoveItTool>();
            }
        }
        private void saveButton_Click(object sender, EventArgs e)
        {
            ToolController.SavePlaylist(this);
            if (SaveConfirmHandle != null)
            {
                SaveConfirmHandle();
            }

            Close();
        }
        public void Start()
        {
            m_view = UIView.GetAView();

            m_selectAIPanel = m_view.FindUIComponent<SelectAIPanel>("SelectAIPanel");
            m_uiContainer = m_view.FindUIComponent("FullScreenContainer");
            m_propPanel = m_uiContainer.Find<UIPanel>("DecorationProperties");

            m_toolController = ToolsModifierControl.toolController;
            m_selectAIPanel.eventValueChanged += OnAIFieldChanged;
            m_toolController.eventEditPrefabChanged += OnEditPrefabChanged;
        }
 public static void AddExtraToolsToController(ToolController toolController, List<ToolBase> extraTools)
 {
     if (extraTools.Count < 1)
     {
         return;
     }
     var fieldInfo = typeof(ToolController).GetField("m_tools", BindingFlags.Instance | BindingFlags.NonPublic);
     var tools = (ToolBase[])fieldInfo.GetValue(toolController);
     var initialLength = tools.Length;
     Array.Resize(ref tools, initialLength + extraTools.Count);
     var i = 0;
     var dictionary =
         (Dictionary<Type, ToolBase>)
             typeof(ToolsModifierControl).GetField("m_Tools", BindingFlags.Static | BindingFlags.NonPublic)
                 .GetValue(null);
     foreach (var tool in extraTools)
     {
         dictionary.Add(tool.GetType(), tool);
         tools[initialLength + i] = tool;
         i++;
     }
     fieldInfo.SetValue(toolController, tools);
 }
 //returns false in no extra tools were set up
 public static List<ToolBase> SetUpExtraTools(LoadMode mode, ToolController toolController)
 {
     var extraTools = new List<ToolBase>();
     if (mode == LoadMode.LoadGame || mode == LoadMode.NewGame || mode == LoadMode.NewGameFromScenario)
     {
         LoadResources();
         if (SetUpToolbars(mode))
         {
             if (OptionsWrapper<Options>.Options.waterTool)
             {
                 SetUpWaterTool(extraTools);
             }
             SetupBrushOptionsPanel(OptionsWrapper<Options>.Options.treeBrush);
             var optionsPanel = Object.FindObjectOfType<BrushOptionPanel>();
             if (optionsPanel != null)
             {
                 optionsPanel.m_BuiltinBrushes = toolController.m_brushes;
                 if (OptionsWrapper<Options>.Options.resourcesTool || OptionsWrapper<Options>.Options.terrainTool)
                 {
                     SetUpNaturalResourcesTool(extraTools);
                 }
                 if (OptionsWrapper<Options>.Options.terrainTool)
                 {
                     SetUpTerrainToolExtensionss();
                 }
             }
         }
     }
     try
     {
         var pluginTools = Plugins.SetupTools(mode);
         extraTools.AddRange(pluginTools);
     }
     catch (Exception e)
     {
         UnityEngine.Debug.LogException(e);
     }
     return extraTools;
 }
Exemple #34
0
 void Start()
 {
     GameObject scripts = GameObject.Find("Scripts");
      toolController = (ToolController)scripts.GetComponent("ToolController");
 }