Example #1
0
        }   // end of BaseMouseEditTool Update()

        /// <summary>
        /// Override this to provide a place to initialize
        /// anything that needs to be done on a per-use basis.
        /// </summary>
        public virtual void OnActivate()
        {
            // Get references.  We can't do this in the
            // c'tor since not all of these exist yet.
            inGame = Boku.InGame.inGame;
            shared = inGame.shared;

            materialPicker = inGame.mouseEditUpdateObj.ToolBox.MaterialPicker;
            waterPicker    = inGame.mouseEditUpdateObj.ToolBox.WaterPicker;
            brushPicker    = inGame.mouseEditUpdateObj.ToolBox.BrushPicker;

            starting     = true;
            StretchPhase = Phase.Open;

            shared.editBrushIndex = prevBrushIndex;
            shared.editBrushStart = shared.editBrushPosition;

            //HelpOverlay.Push(helpOverlayID);
            inGame.Cursor3D.Rep          = Cursor3D.Visual.Pointy;
            inGame.Cursor3D.DiffuseColor = Vector4.One;

            terrainSpeed = Common.Xml.XmlOptionsData.TerrainSpeed; // just cache this.

            isInAction = false;
        }
Example #2
0
        public override void Activate()
        {
            if (state != States.Active)
            {
                pendingState             = States.Active;
                BokuGame.objectListDirty = true;

                Editor editor = InGame.inGame.Editor;
                if (editor.Active)
                {
                    HelpOverlay.Push(@"PieSelectorProgrammingNoSelection");
                }
                else
                {
                    HelpOverlay.Push(@"PieSelectorAddItemNoSelection");
                }

                if (SelectWater || SetWater)
                {
                    WaterPicker waterPicker = InGame.inGame.shared.ToolBox.WaterPicker;

                    holdOnGet  = waterPicker.OnGetType;
                    holdOnSet  = waterPicker.OnSetType;
                    holdOnPick = waterPicker.OnPickType;

                    waterPicker.OnGetType  = OnGetWater;
                    waterPicker.OnSetType  = OnSetWater;
                    waterPicker.OnPickType = OnPickWater;

                    typePicker = waterPicker;
                    if (SetWater)
                    {
                        lastWaterIndex = RootData.SetWaterTypeIndex;
                    }
                    else
                    {
                        lastWaterIndex = RootData.WaterType;
                    }

                    if (lastWaterIndex < 0)
                    {
                        lastWaterIndex = Water.CurrentType;
                    }
                }
                else
                {
                    MaterialPicker matPicker = InGame.inGame.shared.ToolBox.MaterialPicker;

                    holdOnGet  = matPicker.OnGetType;
                    holdOnSet  = matPicker.OnSetType;
                    holdOnPick = matPicker.OnPickType;

                    matPicker.OnGetType     = OnGetTerrain;
                    matPicker.OnSetType     = OnSetTerrain;
                    matPicker.OnPickType    = OnPickTerrain;
                    matPicker.UseAltOverlay = true;

                    typePicker = matPicker;

                    ushort rootDataMatIdx = (ushort)RootData.MaterialType;
                    if (TerrainMaterial.IsValid(rootDataMatIdx, false, false))
                    {
                        lastTerrainIndex = rootDataMatIdx;
                    }
                    else if (!TerrainMaterial.IsValid(lastTerrainIndex, false, false))
                    {
                        lastTerrainIndex = Terrain.CurrentMaterialIndex;
                    }
                }
                typePicker.Active = true;
                typePicker.Hidden = false;
            }
        }