– Fix drawing of the “lower” state of wall meshes that have portals – Change the path finding so that it also considers walls with doors
Until now there were some, to say the least, odd things happening visually when showing the wall pieces that included doors/windows in the “lowered” state. Luckily, that has been fixed now! A lot easier to fix, but equally nice is that finally the path finding treats walls with doors in them as navigable, check out the video to see this in action! 🙂
– Change the way walls are drawn when there is a door/window at a given coordinate – Make the brick texture tile tile better
Now, finally, the wall geometry actually reflects the fact that doors/windows have been placed. As can be seen, the models are not yet being drawn into these gaps – what cannot be seen here is that the “lowered” state of the walls looks more than a little wonky right now, but nevertheless it is pretty encouraging to see this start taking shape. 🙂
Add door/window placement preview and calculate the model positions properly
Similar to object model previews, now the outlines of new doors/windows are previewed using the proper model when placing them. As a nice side-effect this also adds the model placement code to the model manager which will be used to position the models after they have been placed.
– Add door model – Add window model – Update icons of existing door/window definitions with properly rendered ones – Add support for alpha transparency in textures to the model shader – Reduce the thickness of the walls by 75%
Mainly asset updates/additions this time, the wall thickness had to be changed in order to also make the doors/windows fit in corner positions. To demonstrate what the models look like they were quickly added as a dummy object type, check them out 🙂
– add portal (door/window) information to the wall manager class – add a set of getters/setters for the wall manager and the proxy (world) class – extend the wall type manipulation functions in the game state class to allow manipulating the portal values – connect the door/window placement/removal modes with these new states and thus completely the logic
Since the commit message is quite extensive it is probably better to simply describe what it is accomplishing: Fully storing and enabling door and window information for any wall piece. While it has no visual (or gameplay) effect yet, the setting (buying) and removal (not getting any money back) is already fully functional. 🙂
– extend the wall manager, world, game state and mainapp classes to fully support loading window and door defintions – list the real door and window types in the UI – simplify the way new wall types, door types and window types are added to UI lists – change the file structure for icon textures
Now the newly added configuration files (and classes) are properly used and the UI can show all the defined door and window types, it does not do much yet besides showing them though. 🙂 In order to make this happen some dummy icons were added to test the new code.
– add new configuration types for doors/windows – add two (as of yet) dummy types for both doors and windows – refactor the wall position/side enums into their own class and out of the WallType class – change the wall position/side enums into enum classes and deal with the consequences thereof
This adds some boilerplate configuration information for doors and windows which is as of yet completely unused. To make it slightly more usable when the times comes some semi-dummy types were added for both doors and windows. The more substantial change here is moving the position and side enums into a different, neutral, spot so that the upcoming door/window data can more easily use it. While doing so the “raw” enums were also converted into more modern enum classes, which meant some operators had to be implemented as well a fair amount of casting added in the right places. Good times!
– add boilerplate to game state, bottom bar and main app to support door/window placement and removal – add new menu icons
This is the first commit towards door and window support. This commit does not do much yet, except adding new sub-menus that enable the new build modes. While those build modes *do* exist and are active already, they do not do anything yet. Be that as it may, check out the fancy new icons below:
– Fix selected objects nor showing in simulation mode – Visually indicate on the model itself when placing/moving objects if they are in a valid position – Fix some clang warnings on the renderer
This finishes off the preview model topic, as now we not only get the model itself drawn, but also have it give off a visual indication if the current tile coordinates are a valid placement spot. Check it out in the video below: