undo optimisation as it makes the click input feel sluggish
Whooosh.
Ramblings about hobbyist game development
undo optimisation as it makes the click input feel sluggish
Whooosh.
fix mutexes to protect us from threading related corruption
Once again, fewer crashes through fewer race conditions.
make tiles editable (change tile type and reset it)
Now users cannot only place and remove objects, but also tiles.
do not try to use vertex buffers that have not been created yet (due to race conditions)
Fewer crashes for everyone!
move code from the renderer to the modelpipeline where it belongs. add more comments.
That is.. that is what it does. Make the renderer just a bit smaller, bit by bit.
add support for deleting static objects
One could argue it makes sense to enable the user to also remove objects, now that they can also create them.
This also means that the renderer needs to stop making some assumptions about its data structures.
Furthermore, this refactors some part of the code a bit, for instance when resetting the current selection after deselection or a deletion happened.
always initialise the selection state so that we can properly create objects before selecting/unselecting an existing one
It is probably a good move not to expect the user to first move something before allowing them to place something.
add dynamic object creation
Adds the code necessary to allow the user to add new objects during runtime. While most of the code can be re-used later, for now it is entered by using the temporary hotkey “O” when in shop mode.
After pressing it a new object (the table) can be placed wherever there is space for it, the same logic (working with the SelectionState) as when moving existing objects is used.
add an ObjectType class that makes object creation more abstract
This adds the concept of ObjectTypes. This means when adding (“creating”) a new object, one simply has to pass the type id, as well as instance specific data such as position and angle.
Furthermore, this adds quite a bit of temporary code that loads these object types. This is hardcoded for now and will be replaced by JSON object definition files later.
fix typo
Typing is hard.