public void OnBeginDrag(PointerEventData eventData) { GameShape gameShape = GetSlotShape(); ShapeData shapeData = gameShape?.GetShapeData(); if (canInteract && canSelect && shapeData != null) { if (!selected) { GameSlot selectedSlot = GameManager.manager.GetSelectedSlot(); if (selectedSlot != null && selectedSlot != this) { GameManager.manager.DeselectSlot(); } GameManager.manager.SelectSlot(this); themeElement.SetElementToHighlighted(); } Color baseColor = gameShape.GetComponent <Image>().color; gameShape.GetComponent <Image>().color = new Color(baseColor.r, baseColor.g, baseColor.b, baseColor.a / 2f); DragInputManager.dragInputManager.BeginDrag(shapeData, this, gameShape?.GetComponent <Transform>().localScale ?? Vector3.one); beganDrag = true; } }
public static void EditSlotShape(Transform slot, GameShape.ShapeType shapeType, GameShape.ColorType shapeColor, float shapeSize) { GameShape newShape = slot.GetComponent <GameSlot>().GetSlotShapeTransform().GetComponent <GameShape>(); newShape.transform.localScale = new Vector3(shapeSize, shapeSize); GameShape shapeRef = newShape.GetComponent <GameShape>(); shapeRef.SetShapeColor(shapeColor); shapeRef.SetShapeType(shapeType); EditorUtility.SetDirty(shapeRef); EditorUtility.SetDirty(shapeRef.GetComponent <Image>()); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); }
public void TransformSurroundingShapes() { Transform gameBoardParent = gameManager.gameBoardParent; List <int> surroundingShapes = boardManager.CheckForSurroundingShapes(transform.GetSiblingIndex(), gameBoardParent); if (surroundingShapes != null && surroundingShapes.Count > 0) { undoManager.PushBoardData(new BoardData(gameBoardParent, new Vector2Int(boardManager.GetBoardWidth(), boardManager.GetBoardHeight()))); shapesToTransform = new List <GameShape>(); foreach (int shapeIndex in surroundingShapes) { GameShape gameShape = boardManager.GetGameSlot(shapeIndex, gameBoardParent)?.GetSlotShape(); ShapeData shapeData = boardManager.GetBoardShapeData(shapeIndex, gameBoardParent); Image shapeImage = gameShape?.GetComponent <Image>(); if (gameShape != null && shapeData != null && shapeImage != null) { shapesToTransform.Add(gameShape); GameShape.ShapeType shapeType = shapeData.shapeType; int newShapeTypeIndex = (int)shapeType + 1; if (newShapeTypeIndex > Enum.GetNames(typeof(GameShape.ShapeType)).Length - 1) { newShapeTypeIndex = 1; } GameShape.ShapeType newShapeType = (GameShape.ShapeType)newShapeTypeIndex; gameShape.TriggerShapeTransform(newShapeType, gameShape.GetShapeColor()); } } transformerData.transformerCounter--; UpdateCounterText(); gameManager.CheckForVictory(gameManager.gameBoardParent, gameManager.solutionBoardParent); } transforming = false; }