void SetCursor(Piece piece) { if (cursorPiece == null) { cursorPiece = pieceGenerator.NewStandardPiece(piece, true); cursorPiece.transform.parent = controller.piecesParent; cursorPiece.name = "EditorCursor"; } else { cursorPiece.piece = piece; pieceGenerator.ReapplyMaterial(cursorPiece); } cursorPiece.gameObject.SetActive(editing); }
public void DestroyPiece(PieceController pc, float delay = 0f) { StartCoroutine(WaitAndDestroy(pc, delay)); }
IEnumerator WaitAndDestroy(PieceController pc, float delay) { yield return(new WaitForSeconds(delay)); objectSource.Return(pc.gameObject); }
// FIXME: Ghost piece loses material alpha when reapplied public void ReapplyMaterial(PieceController pc) { materialGenerator.ApplyMaterial(pc, new MaterialDef(pc.piece)); }
void PositionPiece(PieceController pc, int index) { pc.transform.parent = piecesParent.transform; pc.transform.localPosition = IncomingSeparation * (float)((index == -1) ? incoming.LookAheadSize() : index); }
Coord RotatedCoord(PieceController pc, Coord coord, RotationDir dir) { return((dir == RotationDir.Left) ? board.AdjustForRotateLeft(board.RotateCoordLeft(coord), pc.piece) : board.AdjustForRotateRight(board.RotateCoordRight(coord), pc.piece)); }
void AnimateFallTo(PieceController pc, Coord coord) { layout.AnimateIntoPosition(pc, coord, pieceFallTime); }
void MapTextureCoordinates(PieceController pc, Vector2 uv, float len) { var mesh = pc.GetComponent <MeshFilter>().mesh; mesh.uv = TextureCoords.Select(tc => (tc * len) + uv).ToArray(); }
public void ApplyMaterial(PieceController pc, MaterialDef materialDef) { var mr = pc.GetComponentInChildren <MeshRenderer>(); mr.material = matPool.GetMaterial(materialDef); }
public void PositionPieceAboveBoard(PieceController pc, Coord coord) { var aboveCoord = new Coord(coord.col, size); PositionPieceInBoard(pc, aboveCoord); }
public void AnimateIntoPosition(PieceController pc, Coord coord, float delay) { pc.transform.parent = piecesParent.transform; pc.AnimateMove(CoordToPosition(coord, pc.piece.size), delay / 2); pc.ScaleToSize(unitWidth, delay / 2); }