It’s been a very productive week. I tried out Hack’n’Plan, and have been finding it a good fit to organize my thoughts. A lot of things are slotting into place nicely, now:

  • Added hotkeys for mining (M), architecture (A) and stockpile (S) management to the design mode.
  • Ported over the architecture, stockpile and mining UIs from the previous version.
  • Created cursors for the things one can do in mining mode – dig, channel, ramp, stairs (up/down/both).
  • Created cursors for architectural blueprints (wall, floor, ramp, stairs, bridge).
  • Fixed the job registration system to catch all of the missing jobs.
  • Got the Architecture working! Architecture is intended for rapid build jobs, where you don’t care too much about material (I’ll add options later) but want to sketch out a design without laboriously building each wall/floor one at a time. You can select a block size (x by y), hollow or solid, and what to add – and clicking makes it appear. A counter keeps track of material requirements; it lets you “overspend” (materials you don’t have yet), on the assumption that you’ll build them – and they will be used when ready. This provides for a nice, quick and easy way to put together basic structures in the game. (I have all sorts of ideas for a blueprint sharing social system at some point in the future!)
  • Added textures for wooden walls.
  • Added a whole bunch of glInvalidateBuffer calls to stop things from crashing when I replaced buffer content.
  • Fixed chunk invalidation; it never gives a blank terrain chunk anymore. Yay!
  • Fixed the color on log messages, so you aren’t presented with a wall of black on grey text.
  • Added hotkeys for (C) Civilizations, and (U) Units displays.
  • Fixed a stupid bug that made sandstone render as a glass window.
  • Fixed several crashes in WorldGen.
  • Fixed a silly bug that forgot to set the “world is ready” flag after world-gen completes, allowing you to actually use the world you just created without restarting.
  • Fixed a bug that prevented you from actually building staircases.
  • Fixed several small bugs relating to how mining targets were mapped; I’d forgotten to initialize the variable.
  • Fixed several code paths that can result in the map changing, and ensured they go through a common path to invalidate the appropriate map chunk.
  • Added a voxel graphic for pickaxes.
  • Fixed a funny bug that left trees casting shadows long after you chopped them down.
  • Expanded material definitions to include a description (I learned a lot from Wikipedia in the process!), as well as separating the textures used for floors and walls to make it easier to see what’s going on.
  • Fixed holes in the ship appearing where windows were meant to be.
  • Fixed up some crashes in the Stockpile Management UI. I’m still not happy with it.
  • Started getting the mining UI going, but there’s a lot left to do… you can designate areas to mine, and the settlers will perform the mining. That part works well. I need to change the display to a) only render a single layer while mining (so you can dig down and up without worrying about trying to click through things), and b) render unrevealed tiles since you should be able to PLAN on mining them before you reach them. Otherwise, mining is a tedium of “click, wait, click, wait”.

Screenshot