TODO # General • TODO: Use Faithful 32x for buttons, backgrounds and font (or use Minecraftia for the latter) • TODO: Add a texture pack system ◦ TODO: It should be able to accept any type of texture resolution • TODO: Add fullscreen, resolution options and handle window resize • TODO: Include server code in the client for singleplayer games # Issues • DONE: Crafting doesn’t always work • DONE: A mix of pickaxe + axe recipes gives a pickaxe?! • DONE: Lighting doesn’t propagate between chunks • DONE: Pressing `Esc` key in `SettingsMenuState` should just quit the category, not the state • TODO: Sunlight doesn’t propagate correctly • TODO: Trees should block light • TODO: When loading chunks with smooth lighting enabled, they have black borders • TODO: Shapeless recipe code isn’t working • TODO: GUI scale issues ◦ TODO: `HUD` doesn’t update when GUI scale is changed ◦ TODO: `SettingsMenuState` should update scaling when the setting is changed ◦ TODO: `Workbench` and `Furnace` are not scaled correctly with lower GUI scale settings ◦ TODO: Send client screen size and GUI scale to server • TODO: Blocks can be accessed from outside the world (will need a refactoring) • TODO: Collisions are fucked up with blocks placed at `x = -1` from `x = 0` • TODO: Blocks can be placed inside the player (check for AABB?) • TODO: Sometimes it’s possible to aim between two blocks and right-clicking will replace one # Code improvements • DONE: Pass `ClientCommandHandler` instead of `Client` in the game (for example in `BlockCursor`) → DONE: This will allow to send network commands via a single function → DONE: The code won’t be replicated anymore → DONE: Packages musn’t be send from another place than `ClientCommandHandler` • TODO: Use `ServerCommandHandler` instead of `Server` (cf. above) • TODO: If possible, `Cube` should inherit from `ItemWidget` or `Widget` • TODO: Rename `Cube` to either `InventoryCube`, `CubeItemWidget` or `CubeWidget` • TODO: Unify cube coords in `BlockCursor`, `Cube`, `Chunk` • TODO: License headers # Refactorings • DONE: In `SettingsMenuState`, the “Done” button shouldn’t be part of the `Menu` • TODO: Remove the ability of `Chunk` and `ChunkLightmap` to access surrounding chunk blocks • TODO: `Chunk::setBlock` does way too much things, fix this • TODO: Add a mesh system, either here or in `GameKit` → Maybe this is the way to add custom vertex attributes while having default ones? Check 3dee → Or maybe it would be better to use a VAO in `GameKit` # Lua API • TODO: New texture system to make things easier for Lua ◦ TODO: Use a separate texture for each block ◦ TODO: Since this may lower the perfs, optimize it ◦ TODO: Load textures from Lua ◦ TODO: Use names instead of ids in Lua # GUI • DONE: Add a LuaGUI class to handle GUI from Lua • DONE: Add more GUI elements ◦ DONE: `InventoryWidget` ◦ DONE: `CraftingWidget` ◦ DONE: `Image` • WIP: Implement GUI elements requested by `Furnace` ◦ DONE: `FurnaceWidget` first ◦ TODO: Then its components • TODO: Handle custom size crafting table (try with 5x5 for example) # Menus • DONE: Main menu • TODO: World loading/saving • TODO: World selection menu # World • TODO: Block metadata • TODO: Day/night cycle # Chunk generation • TODO: Use the seed • TODO: Biomes # Graphics • TODO: Add nodebox-like draw type > vim:ft=notes