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); } }
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); } }
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); } } }
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(); }
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); } }
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); } }
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); }