Esempio n. 1
0
        private static void ProcessAlterColor(int index, bool random)
        {
            CASCompositorController ths = CASCompositorController.sController;

            if (ths == null)
            {
                return;
            }

            int selection = ths.MaterialSkewerSelectedPattern;

            if (selection >= 0x0)
            {
                Color[] colors = new Color[4];

                for (int i = 0; i < 4; i++)
                {
                    colors[i] = ths.mMultiColorsThumb[i].ShadeColor;
                }

                colors[index] = AlterColor(colors[index], random);

                ths.ApplyMaterial(colors, selection, true, true);

                ths.RepopulateColors(true);
            }
        }
Esempio n. 2
0
        public static void OnMaterialsColorDragMouseDown(WindowBase sender, UIMouseEventArgs eventArgs)
        {
            try
            {
                CASCompositorController ths = CASCompositorController.sController;

                if ((ths.mCurrentDesignObject != null) && (ths.mMaterialSkewerSelectedPattern != -1))
                {
                    if (eventArgs.MouseKey == MouseKeys.kMouseRight)
                    {
                        bool random = ((eventArgs.Modifiers & (Modifiers.kModifierMaskShift | Modifiers.kModifierMaskControl)) != Modifiers.kModifierMaskNone);

                        ProcessAlterColor(random);

                        if (sender.Enabled)
                        {
                            eventArgs.Handled = true;
                        }
                        return;
                    }
                }

                ths.OnMaterialsColorDragMouseDown(sender, eventArgs);
            }
            catch (Exception e)
            {
                Common.Exception("OnMaterialsColorDragMouseDown", e);
            }
        }
Esempio n. 3
0
        private static void OnProcessRandomizeMaterial()
        {
            CASCompositorController ths = CASCompositorController.sController;

            if (ths == null)
            {
                return;
            }

            int selection = ths.MaterialSkewerSelectedPattern;

            if (selection >= 0x0)
            {
                List <Complate> choices = new List <Complate>();

                foreach (ItemGridCellItem item in ths.mMaterialsWindowGrid.Items)
                {
                    Complate choice = item.mTag as Complate;
                    if (choice == null)
                    {
                        continue;
                    }

                    choices.Add(choice);
                }

                if (choices.Count > 0)
                {
                    ths.ApplyMaterial(RandomUtil.GetRandomObjectFromList(choices).Clone() as Complate, selection, false, false);

                    ProcessAlterColor(true);
                }
            }
        }
Esempio n. 4
0
        private static void OnProcessRandomizeCategory()
        {
            CASCompositorController ths = CASCompositorController.sController;

            if (ths == null)
            {
                return;
            }

            List <string> materials = new List <string>();

            for (int i = 0; i < ths.mMaterialComboBox.ValueList.Count; i++)
            {
                materials.Add(ths.mMaterialComboBox.EntryTags[i] as string);
            }

            if (materials.Count > 0)
            {
                ths.SetFilter(RandomUtil.GetRandomObjectFromList(materials));

                ths.mMaterialsWindowGrid.Clear();
                ths.PopulateMaterialsBinGrid();

                while (!ths.Enabled)
                {
                    SpeedTrap.Sleep();
                }
            }

            OnProcessRandomizeMaterial();
        }
Esempio n. 5
0
        public static void OnMaterialsColorGridMouseUp(WindowBase sender, UIMouseEventArgs eventArgs)
        {
            try
            {
                CASCompositorController ths = CASCompositorController.sController;

                // Custom
                if ((eventArgs.MouseKey == MouseKeys.kMouseLeft) || (eventArgs.MouseKey == MouseKeys.kMouseRight))
                {
                    UIManager.ReleaseCapture(InputContext.kICMouse, sender);
                    ths.ClearClickEvent();
                }
                else if (sender.Enabled)
                {
                    eventArgs.Handled = true;
                }
            }
            catch (Exception e)
            {
                Common.Exception("OnMaterialsColorGridMouseUp", e);
            }
        }
Esempio n. 6
0
        public static void OnMaterialsSkewerGridMouseDown(WindowBase sender, UIMouseEventArgs eventArgs)
        {
            Common.StringBuilder msg = new Common.StringBuilder("OnMaterialsSkewerGridMouseDown");

            try
            {
                CASCompositorController ths = CASCompositorController.sController;
                if (ths == null)
                {
                    return;
                }

                if ((ths.mCurrentDesignObject == null) || (ths.mMaterialSkewerSelectedPattern == -1))
                {
                    msg += "A";

                    if (sender.Enabled)
                    {
                        eventArgs.Handled = true;
                    }
                }
                else if (ths.mCurrentDesignObject.Processing)
                {
                    msg += "B";

                    ths.mMaterialToSelect = ((int)sender.ID) - 0x1300a;
                    Audio.StartSound("ui_tertiary_button");
                    if (sender.Enabled)
                    {
                        eventArgs.Handled = true;
                    }
                }
                else if ((sender as Button).Enabled)
                {
                    msg += "C";

                    ths.mClickedWin    = sender;
                    ths.mMouseClickPos = sender.WindowToScreen(eventArgs.MousePosition);

                    // Must be after mClickedWin is set above
                    int selection = ((int)ths.mClickedWin.ID) - 0x1300a;

                    bool selected = (selection == ths.MaterialSkewerSelectedPattern);

                    ths.MaterialSelect(selection, true);

                    if (eventArgs.MouseKey == MouseKeys.kMouseLeft)
                    {
                        msg += "D";

                        ths.mPickupScript = Simulator.AddObject(new Sims3.Gameplay.OneShotFunctionTask(ths.StartMaterialDrag, StopWatch.TickStyles.Seconds, CASCompositorController.kPickupDelay));
                        UIManager.SetCaptureTarget(InputContext.kICMouse, sender);

                        if ((eventArgs.Modifiers & (Modifiers.kModifierMaskShift | Modifiers.kModifierMaskControl)) != Modifiers.kModifierMaskNone)
                        {
                            Common.FunctionTask.Perform(OnProcessRandomizeColor);
                        }
                    }
                    else if (eventArgs.MouseKey == MouseKeys.kMouseRight)
                    {
                        msg += "E";

                        if ((selected) && ((eventArgs.Modifiers & (Modifiers.kModifierMaskShift | Modifiers.kModifierMaskControl)) != Modifiers.kModifierMaskNone))
                        {
                            Common.FunctionTask.Perform(OnProcessRandomizeCategory);
                        }
                        else
                        {
                            Common.FunctionTask.Perform(OnProcessRandomizeMaterial);
                        }
                    }

                    msg += "E";

                    eventArgs.Handled = true;
                }
            }
            catch (Exception e)
            {
                Common.Exception(msg, e);
            }
        }
Esempio n. 7
0
            protected override bool OnPerform()
            {
                Common.StringBuilder msg = new Common.StringBuilder("EditTownCASTask" + Common.NewLine);

                try
                {
                    {
                        EditTownLibraryPanel panel = EditTownLibraryPanel.Instance;
                        if ((panel != null) && (panel.mCASButton != null))
                        {
                            panel.mCASButton.Click -= panel.OnCASClick;

                            panel.mCASButton.Click -= EditTownLibraryPanelEx.OnCASClick;
                            panel.mCASButton.Click += EditTownLibraryPanelEx.OnCASClick;
                        }
                    }

                    msg += "A";

                    {
                        PlayFlowMenuPanel playFlow = PlayFlowMenuPanel.gSingleton;
                        if ((playFlow != null) && (playFlow.mCASButton != null))
                        {
                            playFlow.mCASButton.Click -= playFlow.OnMenuButtonClick;

                            playFlow.mCASButton.Click -= PlayFlowMenuPanelEx.OnMenuButtonClick;
                            playFlow.mCASButton.Click += PlayFlowMenuPanelEx.OnMenuButtonClick;
                        }
                    }

                    msg += "C";

                    {
                        CASClothingCategory category = CASClothingCategory.gSingleton;
                        if (category != null)
                        {
                            category.mTopsButton.Click         -= category.OnCategoryButtonClick;
                            category.mBottomsButton.Click      -= category.OnCategoryButtonClick;
                            category.mShoesButton.Click        -= category.OnCategoryButtonClick;
                            category.mOutfitsButton.Click      -= category.OnCategoryButtonClick;
                            category.mAccessoriesButton.Click  -= category.OnCategoryButtonClick;
                            category.mHorseBridlesButton.Click -= category.OnCategoryButtonClick;
                            category.mHorseSaddleButton.Click  -= category.OnCategoryButtonClick;

                            category.mTopsButton.MouseDown         -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mTopsButton.MouseDown         += CASClothingCategoryEx.OnButtonMouseDown;
                            category.mBottomsButton.MouseDown      -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mBottomsButton.MouseDown      += CASClothingCategoryEx.OnButtonMouseDown;
                            category.mShoesButton.MouseDown        -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mShoesButton.MouseDown        += CASClothingCategoryEx.OnButtonMouseDown;
                            category.mOutfitsButton.MouseDown      -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mOutfitsButton.MouseDown      += CASClothingCategoryEx.OnButtonMouseDown;
                            category.mAccessoriesButton.MouseDown  -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mAccessoriesButton.MouseDown  += CASClothingCategoryEx.OnButtonMouseDown;
                            category.mHorseBridlesButton.MouseDown -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mHorseBridlesButton.MouseDown += CASClothingCategoryEx.OnButtonMouseDown;
                            category.mHorseSaddleButton.MouseDown  -= CASClothingCategoryEx.OnButtonMouseDown;
                            category.mHorseSaddleButton.MouseDown  += CASClothingCategoryEx.OnButtonMouseDown;
                        }
                    }

                    msg += "D";

                    CASPuck puck = CASPuck.gSingleton;
                    if (puck != null)
                    {
                        CASFamilyScreen familyScreen = CASFamilyScreen.gSingleton;
                        if (familyScreen != null)
                        {
                            Window topLevel = familyScreen.mFamilyTopLevelWin;

                            uint       index = 0;
                            WindowBase child = topLevel.GetChildByIndex(index);
                            while (child != null)
                            {
                                CAFThumb thumb = child as CAFThumb;
                                if (thumb != null)
                                {
                                    thumb.DragDrop -= familyScreen.OnCAFThumbDragDrop;
                                    thumb.DragDrop -= CASFamilyScreenEx.OnCAFThumbDragDrop;
                                    thumb.DragDrop += CASFamilyScreenEx.OnCAFThumbDragDrop;
                                }

                                index++;
                                child = topLevel.GetChildByIndex(index);
                            }
                        }

                        if (puck.mGeneticsButton != null)
                        {
                            puck.mGeneticsButton.Enabled = CASPuckEx.CanCreateChild();
                        }

                        ICASModel cASModel = Responder.Instance.CASModel;
                        if (cASModel != null)
                        {
                            if ((MasterController.Settings.mAllowOverStuffed) && (cASModel.NumInHousehold < CASPuck.kMaxPerHousehold))
                            {
                                if (puck.mCreateHorseButton != null)
                                {
                                    puck.mCreateHorseButton.Enabled = true;

                                    puck.mCreateHorseButton.Click -= puck.OnCreateSimClick;
                                    puck.mCreateHorseButton.Click -= CASPuckEx.OnCreateSimClick;
                                    puck.mCreateHorseButton.Click += CASPuckEx.OnCreateSimClick;
                                }

                                if (puck.mCreateDogButton != null)
                                {
                                    puck.mCreateDogButton.Enabled = true;

                                    puck.mCreateDogButton.Click -= puck.OnCreateSimClick;
                                    puck.mCreateDogButton.Click -= CASPuckEx.OnCreateSimClick;
                                    puck.mCreateDogButton.Click += CASPuckEx.OnCreateSimClick;
                                }

                                if (puck.mCreateCatButton != null)
                                {
                                    puck.mCreateCatButton.Enabled = true;

                                    puck.mCreateCatButton.Click -= puck.OnCreateSimClick;
                                    puck.mCreateCatButton.Click -= CASPuckEx.OnCreateSimClick;
                                    puck.mCreateCatButton.Click += CASPuckEx.OnCreateSimClick;
                                }

                                if (puck.mCreateSimButton != null)
                                {
                                    puck.mCreateSimButton.Enabled = true;

                                    puck.mCreateSimButton.Click -= puck.OnCreateSimClick;
                                    puck.mCreateSimButton.Click -= CASPuckEx.OnCreateSimClick;
                                    puck.mCreateSimButton.Click += CASPuckEx.OnCreateSimClick;
                                }
                            }

                            cASModel.OnSimUpdated -= puck.OnSimUpdated;
                            cASModel.OnSimUpdated -= CASPuckEx.OnSimUpdated;
                            cASModel.OnSimUpdated += CASPuckEx.OnSimUpdated;

                            cASModel.OnSimPreviewChange -= puck.OnSimPreviewChange;
                            cASModel.OnSimPreviewChange -= CASPuckEx.OnSimPreviewChange;
                            cASModel.OnSimPreviewChange += CASPuckEx.OnSimPreviewChange;
                        }
                    }

                    msg += "E";

                    CASCompositorController controller = CASCompositorController.sController;
                    if (controller != null)
                    {
                        if (controller.mColorsDragButton != null)
                        {
                            controller.mColorsDragButton.MouseDown -= controller.OnMaterialsColorDragMouseDown;
                            controller.mColorsDragButton.MouseDown -= CASCompositorControllerEx.OnMaterialsColorDragMouseDown;
                            controller.mColorsDragButton.MouseDown += CASCompositorControllerEx.OnMaterialsColorDragMouseDown;

                            controller.mColorsDragButton.MouseUp -= controller.OnMaterialsColorDragMouseUp;
                            controller.mColorsDragButton.MouseUp -= CASCompositorControllerEx.OnMaterialsColorDragMouseUp;
                            controller.mColorsDragButton.MouseUp += CASCompositorControllerEx.OnMaterialsColorDragMouseUp;

                            for (uint j = 0x0; j < 0x4; j++)
                            {
                                controller.mColorsPopupButton[j].MouseDown -= controller.OnMaterialsColorGridMouseDown;
                                controller.mColorsPopupButton[j].MouseDown -= CASCompositorControllerEx.OnMaterialsColorGridMouseDown;
                                controller.mColorsPopupButton[j].MouseDown += CASCompositorControllerEx.OnMaterialsColorGridMouseDown;

                                controller.mColorsPopupButton[j].MouseUp -= controller.OnMaterialsColorGridMouseUp;
                                controller.mColorsPopupButton[j].MouseUp -= CASCompositorControllerEx.OnMaterialsColorGridMouseUp;
                                controller.mColorsPopupButton[j].MouseUp += CASCompositorControllerEx.OnMaterialsColorGridMouseUp;
                            }
                        }

                        if (controller.mMaterialsSkewerPatternButton.Length == 4)
                        {
                            for (int i = 0; i < 4; i++)
                            {
                                if (controller.mMaterialsSkewerPatternButton[i] == null)
                                {
                                    continue;
                                }

                                controller.mMaterialsSkewerPatternButton[i].MouseDown -= controller.OnMaterialsSkewerGridMouseDown;

                                controller.mMaterialsSkewerPatternButton[i].MouseDown -= CASCompositorControllerEx.OnMaterialsSkewerGridMouseDown;
                                controller.mMaterialsSkewerPatternButton[i].MouseDown += CASCompositorControllerEx.OnMaterialsSkewerGridMouseDown;

                                controller.mMaterialsSkewerPatternButton[i].MouseUp -= controller.OnMaterialsSkewerGridMouseUp;

                                controller.mMaterialsSkewerPatternButton[i].MouseUp -= CASCompositorControllerEx.OnMaterialsSkewerGridMouseUp;
                                controller.mMaterialsSkewerPatternButton[i].MouseUp += CASCompositorControllerEx.OnMaterialsSkewerGridMouseUp;
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Common.Exception(msg, e);
                }
                return(true);
            }