Initial commit. Kinda late, but at this point I could get the Tick (every 1 second interval) working.
Refactored BlockColor information and SpawnPoint information into TetrominoType.
Renamed TetrominoType -> TetrominoInfo. Not entirely sure if permanent.
Implemented the space for the Next Tetromino.
Fixed memory leak in TetrominoInfo.
Wrote precomputed table for rotation points.
Next-Tetromino panel finally shows its face.
Started writing the grid for the Block[][]
Implemented move down, move left, and move right. No exception or collision checking yet.
Move down, move left, and move right are now checked against boundary walls.
Now move down/left/right are checked against other pre-existing Blocks.
Implemented the 7-bag system with ArrayDeque.
Separated actual TetrominoType from actual TetrominoInfo. Now they are in two different classes.
Trying to implement clearing rows. Rows are properly deleted but are not dropping down.
Implemented Hard Drop (that doesn't force tick). Clearing multiple rows works fine now.
Added ScoreKeeper and TetrominoType into the index.
Separated offsets data into its own class. Implemented leveling up for bonus score.
Tested leveling up and scoring. Implemented rotating but without collision checking.
Now hard drop forces thud() to trigger. Allows KEY_UP to also trigger rotateRight().
Implemented background music and mute/unmute button. Slight tweak with level text.