public override int GetHashCode() { //unchecked { int hashCode = DropPieceSimple.GetHashCode(); hashCode = (hashCode * 397) ^ (Positions?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (PositionLerp?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (int)CurrentState; hashCode = (hashCode * 397) ^ HoldTimer.GetHashCode(); return(hashCode); } }
public void TransferTo(DropPiecePreview target) { for (var c = 0; c < NumColumns; c++) { for (var r = 0; r < NumRows; r++) { target._tiles[c, r] = _tiles[c, r]; _tiles[c, r] = null; } } target.DropPiece = DropPiece; DropPiece = null; }
public DropPiece(DropPieceSimple simple = null) { Positions = new PlayfieldPoint[NumColumns]; PositionLerp = new float[NumColumns]; // create player block: for (var x = 0; x < NumColumns; x++) { Positions[x] = new PlayfieldPoint(); } CurrentState = State.Whole; DropPieceSimple = simple; }
public void Reset(PlayfieldPoint pos, DropPieceSimple simple) { DropPieceSimple = simple; for (var x = 0; x < NumColumns; x++) { Positions[x].Column = pos.Column + x; Positions[x].Row = pos.Row; } CurrentState = State.Whole; HoldTimer = HoldTime; FastDrop = false; }
public void GenerateTiles(GetPrefabsDelegate getPrefabs, TileAnimParams animParams) { DropPiece = new DropPieceSimple(); DropPiece.Reset(true, DropPieceSimple.RandomCell); var pfTransform = GameObject.Find("Playfield").transform; for (var c = 0; c < NumColumns; c++) { for (var r = 0; r < NumRows; r++) { var cell = DropPiece.Cells[c][r]; GameObject prefab = null, adornment = null; Transform transform = null; getPrefabs(cell, out prefab, out adornment, out transform); var tile = new Tile(); tile.Instantiate(prefab, adornment, Vector3.zero, transform, animParams); _tiles[c, r] = tile; } } }
public void Reset(PlayfieldPoint pos, bool allowJewel, DropPieceSimple.GetCellState del = null) { DropPieceSimple = new DropPieceSimple(); if (del == null) { del = DropPieceSimple.RandomCell; } for (var x = 0; x < NumColumns; x++) { Positions[x].Column = pos.Column + x; Positions[x].Row = pos.Row; } DropPieceSimple.Reset(allowJewel, del); CurrentState = State.Whole; HoldTimer = HoldTime; FastDrop = false; }