0.90.0
Pre-release
Pre-release
Added
- Added room connection descriptions (Connection descriptions feature #72 ), a more flexible way to generate room descriptions that can be updated dynamically when those connections change. This new feature shouldn't have any impact on older projects.
- Wrote two new Lua methods, Being:insertIntoInventory() and Being:removeFromInventory() to replace functionality previously served by the now removed method Thing:setLocation.
- Implemented Lua function Resource.new() to create new Resources from within Lua
- Implemented Lua methods Game::getEntity(), Game:start(), Game:stop(), and Game::inProgress()
- Added LuaState::getLuaVersion(), which returns the version of Lua the core library was built against
- Added LuaEntity::err() to allow writing to an Entity's error stream
- Started writing unit tests for the LuaState class
- Unit tests are now built and run against Lua 5.1, 5.2, and 5.3
- Trogdord can now listen on IPv6 as well as IPv4, and can also be configured to listen for requests only from certain IP addresses
Changed
- Reimplemented the items in a Being's inventory using std::weak_ptr. Any code that calls Being::getInventoryObjects() or Being::getInventoryObjectsByName() will have to be adjusted to take this change into account.
- Game::removeEntity() now enforces a more complete set of rules and no longer returns a boolean value (instead, it throws an exception if anything goes wrong.)
- Object::setOwner() is now protected and an Object can only be inserted into a Being's inventory by calling Being::insertIntoInventory().
- Thing::setLocation() is now protected and a Thing can only be inserted into a Place by calling Place::insertThing().
- Removed Lua method Thing:setLocation().
- Many formerly private members and methods in trogdor::LuaState are now protected to make unit testing easier
Fixed
- It turns out that the Tangible and Resource types weren't being registered with Lua. This was uncovered by my new unit tests and has been fixed.
- Fixed a bug that affected the way the Lua Resource type was registered
- Did some minor refactoring and code cleanup