Beta 0.7.1 released. Public server listing added, support for custom server login handlers and server information icons, arc matter system expansion, arc teleporters and dimensional pockets, client-integrated image <-> terrain conversion utilities, server audit log API, an official Lugdunon github, and bug fixes.
Public Server Listing and Server List Redesign
A public server list has been added to the server selection screen. This screen now contains two tabbed panels, one which contains the older server list (now repurposed as a favorites lists) and the other displays all public servers that are currently online and accessible.
Several new features were added to facilitate this listing, including:
- 'list.publicly' server config property. This property is a boolean (true/false) property that if set to true will 'flag' the server as public.
- 'external.host.address' server config property. This property should contain the server's externally accessible IP address or host name (if different from the 'host' server config property). This can also be set in the standalone client by clicking on 'External Address' field in the 'Standalone Client' settings section.
- 'server.connect.password' Server config property. This property, if set, will contain the password needed by a player to connect to the server in order to play.
- Server information icons (which are covered in the next section).
- Custom login handlers (which are covered in the next section).
The server list has been redesigned as well to provide a better presentation of each server's information and to accommodate the new server information icons.
Login Handlers and Server Information Icons
The new login handler mod API allows modders to create custom login verification checks. The source for an example mod containing a simple REST account check verification service is available at the new Lugdunon github repo here.
Server information icons are intended to provide an overview of the features supported by the server. Each icon represents a feature and serves as an indicator of the feature's state as well. In addition a mod API has been added to allow modders to create custom server information icons. The above github source link also contains an example of a custom server information icon.
Arc Matter System Expansion
The arc matter system received some attention this release. Specifically, support for three new matter transport mechanisms that allow matter to be split or filtered between multiple outputs, and condensed from multiple sources.
Also, two new information providers were added that supply either a specific inventory item or an item type. These can both be hooked up to the matter filter's information input conduits to control the flow of items to various outputs.
Arc Teleporters and Dimensional Pockets
Arc power has now been leveraged to allow players to teleport from one location to another. Expanding upon the paired item mechanism used in 0.7.0 to make arc conduits possible, the paired property can now be tied to placed items (and make the transition between inventory and placed items or vice versa).
Teleporters can be used across instances however, they must be powered to operate and can have their player access customized using the familiar key-based access restriction system.
Dimensional pockets also make their debut in this release. Dimensional pockets are a small pocket dimension that exists as a tear in the fabric of space, held open by an active arc power source. They are small instances that are geared towards allowing players to compartmentalize their arc power circuits, and come with water and magma reservoirs suitable for harnessing hydro and geothermal energy.
Both of these items are craftable using the highest tier in the Tinkering profession.
Image <-> Terrain Conversion Utilities
For a long while, importing and exporting terrain data using images was accomplished via a couple of command-line utilities. With 0.7.1 this functionality has now been rolled into the client, complete with UI, and with some focus on expandability. Look for this feature to grow in the future once biomes and further terrain enhancements are added.
Server Audit Log API
Tracking auditable actions now has proper support, logging to ~/logs/auditXX.log. The intent is to use these logs to provide an audit trail of all state change actions that occur in game, allowing server admins to track player actions for a myriad of reasons such as: item / currency restoration in the case of a server crash or bug, hacking detection, griefing, deeper metrics gathering etc. Simply calling net.lugdunon.util.logging.AuditLog.log() methods will enable modders to add custom audit logging to their code.
In coming releases, this feature will be leveraged by more and more of the core code base, eventually bringing it all inline.
Lugdunon Goes Github
This release also sees the first two Lugdunon-related github repositories go live.
The first provides access to several ant tasks designed to make the creating and packaging of mods as simple as running a single command and an example build script designed to illustrate the various options available for configuring a mod build.
The second contains a complete mod example, with build script that illustrates implementing a custom login handler and server information icon.
Look for more examples here in the future, as well as the eventual migration of all of the core mods to their own github repositories. Hopefully this will provide enough examples and information to allow modders to hit the ground running with developing custom mods for Lugdunon.
- Fixed an issue with inventory dialog subpanel background not displaying correctly when configuring conduits on containers.
- Fixed an issue with net.lugdunon.command.core.ErrorCommand not cleaning up the alert dialog.
- Fixed a few terrain mappings.
- Fixed an issue with net.lugdunon.ui.table.cell.content.InlineEditorContentCellRenderer not correctly validating against the columnDef.editorInputFilter.
- Fixed an issue that was causing the standalone client's window in Win 8 to be too small for the minimum required game resolution.
- Fixed an issue with the ArtifactUpdater that was causing mods to not properly install when updated. Stupid me forgetting to that JarFile had a close() API.
- Fixed an issue that was causing some instances to not work in the downloaded servers/clients.
- Fixed an issue that was causing the plagued citizen / zombie kill quest to not register progress as far as the zombie kills were concerned.
- Fixed an issue with net.lugdunon.command.core.inventory.MoveInventoryItemCommand not properly moving items between placeables in some cases.
- Fixed several shortcomings with the ContainerMatterArcHandler.
- Fixed an item instance indexing problem in the MatterPumpArcHandler.
- Fixed a concurrency issue in ArcPulse.
Other Changes of Note
If you are playing on a computer that has both keyboard / mouse and touchscreen inputs, a dialog will now prompt you to choose your desired input method:
- Added color property to terrain preset layers.
- Public server registration is accomplished at server launch time if the "list.publicly" server configuration property is set to "true", and a keep-alive is sent every minute thereafter.
- Added "external.host.address" to the server configuration properties.
- Added "server.connect.password" to the server configuration properties.
- Added "list.publicly" to the server configuration properties.
- Added a justify property to the offset argument of game.showLabel() in the client-side API. Valid values are "left","right", and "center" with the default being "center".
- Clicking on the External Address field of the Standalone Client Settings dialog will auto assign its value to the 'external.host.address' server configuration property.
- Added net.lugdunon.states.LargeDialogState.setHeaderText(text) to the client-side API.
- Public server listings have a button that allows for quick saving to / removing from the player's favorites list.
- The layout of the server listings has been refactored to better present the necessary information, including the addition of connection property icons.
- Server listing dialog is now comprised of two tabs: the player's favorites, and publicly listed servers.
- Added simple argument to the net.lugdunon.states.list.LargeListState.updateListItems() function in the client-side API. 'simple' is a boolean value that if set to true, the content container will not be regenerated.
- Added cleanup argument to the net.lugdunon.states.list.LargeListState.createContentRow() function in the client-side API. 'cleanup' is a function that will be called when the row is removed.
- Added labelText and icon arguments to the net.lugdunon.states.list.LargeListState.makeEditable() function in the client-side API. Both properties allow the appearance of the edit button to be customized.
- Added net.lugdunon.command.Client.serverConnectionFailed() to the client-side API.
- Added code to net.lugdunon.state.World to convert pre 0.7.1 world data to the newer version (where paired items are concerned).
- net.lugdunon.state.World.getWorldConfigProperty() now only reports on the first access of a given property.
- net.lugdunon.Server.getServerProperty() now only reports on the first access of a given property.
- Added support for a game mode change event.
- net.lugdunon.ui.Modifiers now subscribes to the game mode change event.
- net.lugdunon.states.tiledGame.TiledGame now subscribes to the game mode change event.
- Default renderer now handles the rendering of paired item information in the item's tooltip. Paired sibling id can now reference an inventory item or a placeable item (formatted as itemInstanceId:instanceId).
- Added an audit log API, used to provide an accounting of actions performed in the game. This will slowly be implemented in the next few updates to includes all actions.
net.lugdunon.world.placeables.PlaceableItemInstance. findInventoryItem(itemInstanceId) to the client-side API.
- Added net.lugdunon.character.Character.findInventoryItem(itemInstanceId) to the client-side API.
- Added support for a content dropped event handler on the client. This event fires when a file is dropped into the client window.
- Added game.input.onContentDropped(e) to the client-side API.
- Added contentDropped(e) for event handlers on the client-side API.
- Interaction hover-over on placeable items will only display if the player has an item equipped that can affect the placeable item. Tooltips and labels will still display.
- Paired items now made a generic item property instead of being solely conduit focused. Paired items can also span inventory and placeable items.
- Placeable state changes and damage updates should now be pushed to all placeables that a client has knowledge of, not just those currently on screen.
- The modifiers UI is no longer displayed in edit mode.
- net.lugdunon.world.defaults.compendium.instantiatedPlayerItems. CodexRESTHandler now reports on item types, subtypes, spelltypes, and spellschools.
- Increased durability of all tools and weapons.
- Doubled durability of all armor.
- Added small change to Namespace.js to allow for breakpoint debugging in chrome.
- .ldn files no longer require an artifact property. If omitted, update checks are not performed.
- Added API to allow mods to provide custom server status items (icons).
- Added API to allow mods to provide custom server login handlers.
As always, the full change log for 0.7.1 is available here.