Release 0.6.2

From LugdunonWiki
Revision as of 19:40, 15 February 2015 by SuperHawksman (Talk | contribs)

Jump to: navigation, search
Engine Content: This information applies to the engine and therefore to all servers.

0.6.2


06/04/2014


/etc files altered in this update:

  • compendium.json
  • items.json
  • manifest.json
  • mods.json
  • quests.json
  • restHandlers.json
  • subsystems.json

Release Notes:

  • Fixed several issues with scroll bars in the new standalone client UIs.
  • Added a downloads page (http://lugdunon.net/downloads.html) to the main website.
  • Removed the need to supply a super user account password when running a server (su.password in the server.cfg). 'su.account' is still required however.
  • Fixed a height issue with the login dialog that was causing unnecessary scroll bars.
  • Fixed several items that were not properly marked as npcOnly.
  • Fixed an issue that was causing the item class to not serialize the name and description properties to JSON.
  • Local server.mod and mod repository directories are now located in the ./lib directory.
  • Server / standalone client code base updates will now warn that an restart is required before updates take effect.
  • BaseWorldGen now checks for missing mods on startup and installs them from the local mod repository.
  • Added a standalone client link to the browser client.
  • All characters are capable of storing arbitrary persistent values in a properties object. This was previously only available to NonPlayerCharacters.
  • Removed the PROPS_FLAG from net.lugdunon.character.CharacterSerializer.
  • Added net.lugdunon.character.Character.getProperty(propertyKey) to the client-side API.
  • Added net.lugdunon.character.Character.setProperty(propertyKey,propertyValue) to the client-side API. Note that setting a property in this fashion will not carry to the server state, nor will it be persisted after this session is complete. Setting a character property in a manner that will be available to all clients, server and persisted must be accomplished using the server-side property API.
  • Added net.lugdunon.command.core.console.parameters.getHRMatch() to the server-side API. This method should return the human readable version of the matching parameter.
  • Added support for net.lugdunon.state.recipe.Recipe objects in net.lugdunon.command.CommandProperties to the server-side API.
  • Added a new feature: The Compendium Lugus. This feature exposes various aspects of the server data to players, and modders via a set of codices. Each codex features a UI element and REST service to provide access to the codex's data. 7 codices are provided by default: server version / configuration information, console commands, console parameter filters, crafting recipes, instanced player items, spells, and modifiers. There is also a REST service for the compendium itself, which lists all compiled codices.
  • Added net.lugdunon.state.compendium.Codex to the client-side code base.
  • Added net.lugdunon.state.compendium.CodexDetailsTooltipRenderer to the client-side
  • Added net.lugdunon.state.compendium.Compendium to the client-side code base. code base.
  • Added net.lugdunon.state.compendium.Codex to the server-side code base.
  • Added net.lugdunon.state.compendium.Compendium to the server-side code base.
  • Added net.lugdunon.state.compendium.rest.BaseCodexRESTHandler to the server-side code base.
  • Added net.lugdunon.state.compendium.rest.CompendiumRESTHandler to the server-side code base.
  • Added a net.lugdunon.world.defaults.compendium world mod. This mod provides the default codices used in Lugdunon.
  • Added several new console parameter filters to allow players to link crafting recipes, items, spells, and modifiers in the chat console.
  • The default crafting recipe codex supports 'drill down' of recipe ingredients. In other words, a player can click on an item in a recipe (in the codex) to show that item's recipe. A history of the item progression is tracked in the frame to the left of the recipe area.
  • The default crafting recipe codex requires that a player first 'learn' a recipe by crafting the item before they can directly view the recipe in the compendium. Linked recipes and 'drill down' recipes will still be visible however.
  • The default crafting recipe codex also allows linking of a given recipe by clicking the recipe's link icon.
  • The default crafting recipe codex will also place 'console link', and 'view in compendium' buttons in the default crafting UI.
  • The default instanced player item codex allows players to link items by clicking on them via the primary mouse button. Additionally GMs can auto-assign an item (or stack thereof) to their current target (or themselves if no valid target specified) via the secondary mouse button. Also, a GM can focus the chat console with the relevant /give command via the middle mouse button.
  • Updated recipe links on several quests to show the recipe in the compendium.
  • Added net.lugdunon.command.core.EventProducerCommand to the client-side code base.
  • Added a rendering hook API to the client-side code base. This API will allow for mods to extend existing UIs in an unintrusive way.
  • Added game.registerRenderingHook(hookId,renderDelegate) to the client-side API.
  • Added game.unregisterRenderingHook(hookId,renderDelegate) to the client-side API.
  • Added game.getRenderingHooks(hookId) to the client-side API.
  • Added game.restUrlBase to the client-side API.
  • Added game.client.standaloneClientVersion to the client-side API.
  • Added game.client.getServerRESTRequest(request,props,callback,context) to the client-side API.
  • Added game.client.postServerRESTRequest(request,props,callback,context) to the client-side API.
  • Added net.lugdunon.ui.inventory.sub.CraftingGrid.getCraftingResult() to the client-side API.
  • Added net.lugdunon.ui.inventory.sub.CraftingGrid.getCraftingResultSlot() to the client-side API.
  • Added net.lugdunon.ui.inventory.InventoryDialog.getSubpanel() to the client-side API.
  • net.lugdunon.ui.icon.IconSelectorDialog.createIconDOM(delegate,iconText,iconImage,x,y,w,h,data,tooltip) functionality greatly expanded, to include tooltips, icon generation from item, recipe, and modifier definitions, and primary, secondary, and tertiary mouse click action, and meta key support for delegate.setData().
  • net.lugdunon.states.ActionBarGameState.craftingResultUpdated(character,recipeId,craftedItemId,craftedItemCount,craftedStamina) now contains the recipeId.
  • net.lugdunon.ui.inventory.sub.CraftingGrid.craftingResultUpdated(character,recipeId,craftedItemId,craftedItemCount,craftedStamina) now contains the recipeId.
  • CraftItemCommand now returns the recipeId.
  • Added net.lugdunon.command.core.console.ConsoleFiredCommand.getConsoleCommandParameters() to the server-side API.
  • Added net.lugdunon.command.core.console.ConsoleFiredCommand.getConsoleOpCodeAlias() to the server-side API.
  • Added net.lugdunon.command.core.console.ConsoleFiredCommand.getConsoleOpCodeAliases() to the server-side API.
  • Added net.lugdunon.command.core.console.ConsoleFiredCommand.ConsoleCommandParameter to the server-side API.
  • Added net.lugdunon.server.merging.BaseMergeStrategy to the server-side API.
  • Mods now support codices, and restHandlers, and consoleParameterFilters.
  • ServerMods now support codices, commands, restHandlers, and consoleParameterFilters.
  • Added support for etcPath,mergeEtc,overwriteEtc to net.lugdunon.server.mod.ServerMod. These values determine how to process certain etc files provided in this mod in the event of an update.
  • Added net.lugdunon.state.State.IAccountConnectionListener to the server-side API.
  • Added net.lugdunon.state.State.IPlayerCharacterConnectionListener to the server-side API.
  • Added net.lugdunon.state.State.addAccountConnectionListener(IAccountConnectionListener acl) to the server-side API.
  • Added net.lugdunon.state.State.removeAccountConnectionListener(IAccountConnectionListener acl) to the server-side API.
  • Added net.lugdunon.state.State.addPlayerCharacterConnectionListener(IPlayerCharacterConnectionListener pcl) to the server-side API.
  • Added net.lugdunon.state.State.removePlayerCharacterConnectionListener(IPlayerCharacterConnectionListener pcl) to the server-side API.
  • Added net.lugdunon.state.State. to the server-side API.
  • Added net.lugdunon.state.World.getWorldConfigProperty(String propertyKey) to the server-side API.
  • Default seed changed to LUGDUNON.
  • ArtifactUpdater now supports merging of certain /etc assets.
  • Added net.lugdunon.util.FileUtils.getNamespacedProperty(String p, JSONObject o) to the server-side API.
  • Added net.lugdunon.util.FileUtils.setNamespacedProperty(String[] p, Object v) to the server-side API.
  • Added net.lugdunon.util.FileUtils.setNamespacedProperty(String[] p, Object v, JSONObject o) to the server-side API.
  • Added net.lugdunon.Server.getVersion() to the server-side API.
  • Added net.lugdunon.Server.getServerProperty(String propertyKey) to the server-side API.
  • Standalone client and server processes now attempt to update their artifacts / assets on startup.
  • Added an auto.overwrite.mods world.cfg property. This property (false by default) instructs the update process whether or not to overwrite any /etc files that server or world mods list for overwriting.
  • Added an auto.merge.mods world.cfg property. This property (false by default) instructs the update process whether or not to merge any /etc files that server or world mods list for merging.
  • /etc file merging and overwriting support added for server mods with worldGens defined.
  • The update process now logs what it did to a timestamped file.
  • Standalone client now reports the location of the update process log file, as well as reporting its contents.
  • Added support for worldGen.json to provide a "static"."merge.etc" array containing all /etc files that need merging in an update.
  • Added support for worldGen.json to provide a "static"."overwrite.etc" array containing all /etc files that need overwriting in an update.
  • Added a merge strategy API to the server-side code base. This API is used to determine how a merge should occur for a given /etc file.
  • Added net.lugdunon.server.merging.IEtcFileMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.SimpleStringMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.SimpleIdMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.DialogueIdMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.ItemIdMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.NameMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.QuestIdMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.RecipeIdMergeStrategy to the server-side code base.
  • Added net.lugdunon.server.merging.VendorIdMergeStrategy to the server-side code base.
  • Added support for specifying custom merge strategies in net.lugdunon.server.mod.ServerMod.
  • Added support for specifying custom merge strategies in net.lugdunon.state.mod.Mod.
  • Added net.lugdunon.util.FileUtils.writeFile(String filePath,byte[] contents,boolean absolute) to the server-side API.
  • Added net.lugdunon.util.FileUtils.writeJSON(String file, Object json, boolean writeReadable, boolean absolute) to the server-side API.
  • Widened the settings UI from 700 to 900 pixels.
  • Initial support for gamepads is in (discovery, polling, mapping). Integration with actual input system still to come.
  • Expanded the keybinding system to add support for a primary and secondary keybinding for each action.
  • Added net.lugdunon.input.GamePad to the client-side code base.
  • Added support for artifact / asset updating on server and standalone client startup.
  • Added net.lugdunon.util.ArtifactUpdater to the server-side code base.
  • Added net.lugdunon.client.util.ClientArtifactUpdater to the standalone client code base.
  • Added net.lugdunon.client.ClientUpdaterRunner to the standalone client code base.
  • Added net.lugdunon.util.FileUtils.getTmpDir() to the server-side API.
  • Fixed an issue with the auth server not sending the welcome email on account registration.
  • Fixed a small issue with the table styling.
  • Completed the outstanding client UIs for the standalone client. This includes the ability to create, edit, and launch single player and multi player server instances, and configure the standalone server's startup configuration.
  • Custom server.cfg and world.cfg properties can now be registered for discover by server and world mods.
  • Added net.lugdunon.states.worldGen.WorldGenState to the client-side code base.
  • Added net.lugdunon.states.list.AvailableWorldGensList to the client-side code base.
  • net.lugdunon.states.LargeDialogState now supports the use of a closeDelegate.
  • net.lugdunon.ui.settingsMenu.settings.standalone.StandaloneClientSetting now allows for the selection of a local server address (for multiplayer instances), and also supplies the necessary information for port forwarding and for disseminating to players.
  • net.lugdunon.ui.settingsMenu.SettingsDialog now support the inclusion of a setting index when calling show(), which will determine the setting initially shown to the user.
  • net.lugdunon.ui.SimpleKeyValuePropertyEditor now supports the inclusion of a data set upon initialization.
  • Namespace will now attempt to frontload all css assets supplied by a manifest for a given searchpath.
  • Support for CSS supplied via server and standalone client has been finally added. CSS urls now support an ${ASSETS_PREFIX} wildcard for assets served up by a server, or the standalone client. This prefix will be replaced with the asset search path used to load the CSS.
  • game.loadGameState() now support the re-initialization of a game state if the initData property is not null.
  • Added support for versioning of assets through the use of a server-hosted .ldn file, and the mod.json, server.mod.json, or artifact.ldn file. This file, named the same as the asset, and terminated with an ".ldn" extension, consists of a version and an MD5 checksum. The mod.json, server.mod.json, and artifact.ldn all contain the artifact / asset's version and artifactory url. Support will soon be added to allow a server or standalone client to query an artifactory for any updated artifacts / assets on startup and update accordingly.
  • Added net.lugdunon.task.LDNTask to the build code base.
  • Added win/unix server builds to the build process.
  • Added .ldn generation to the build process.
  • The standalone client can now serve up assets deemed to be 'standalone exports'. These assets are listed in a standaloneExports.json file placed in the default package of an artifact / asset .jar. An asset listed therein will appear in the client's, and not the server's manifest.
  • Added net.lugdunon.client.manifest.ManifestGenerator to the standalone client code base.
  • Standalone client now enumerate's local addresses in a separate thread upon startup.
  • Added net.lugdunon.client.WorldGeneratorRunner to the standalone client code base.
  • World generation is accomplished by spawning a separate process.
  • Added standaloneExports.json to the standalone client code base.
  • Added standaloneExports.json to the server side code base.
  • Added standaloneExports.json to the default world gen server mod code base.
  • Added net.lugdunon.client.artifact.ldn to the standalone client code base.
  • Added net.lugdunon.server.artifact.ldn to the server side code base.
  • Added net.lugdunon.server.mod.ServerMod.getArtifact() to the server side API.
  • Added net.lugdunon.server.mod.ServerMod.listRegisteredServerProperties() to the server side API.
  • Added net.lugdunon.server.mod.ServerMod.listRegisteredWorldProperties() to the server side API.
  • Added net.lugdunon.state.mod.Mod.getArtifact() to the server side API.
  • Added net.lugdunon.state.mod.Mod.listRegisteredServerProperties() to the server side API.
  • Added net.lugdunon.state.mod.Mod.listRegisteredWorldProperties() to the server side API.
  • Moved Buttons.png to the net.lugdunon.world.defaults.tui mod.
  • Moved LunarPhases.png to the net.lugdunon.world.defaults.tui mod.
  • Added Game.css to the net.lugdunon.world.defaults.tui mod.
  • Added net.lugdunon.rest.core.RESTServiceEnumeratorHandler to the server-side code base.
  • Added net.lugdunon.rest.core.system.RegisteredServerPropertiesHandler to the server-side code base.
  • Added net.lugdunon.rest.core.system.RegisteredWorldPropertiesHandler to the server-side code base.
  • Added net.lugdunon.server.worldgen.ex.WorldIdNotSetException to the server-side code base.
  • Added net.lugdunon.server.worldgen.WorldGenerator to the server-side code base.
  • Added net.lugdunon.server.PropertyDefinition to the server-side code base.
  • Added net.lugdunon.util.FileUtils.JSONArrayToSimpleMap(String key, String value, JSONArray a, Map<String, String> m) to the server-side API.
  • Added net.lugdunon.util.FileUtils.JSONArrayToSimpleList(JSONArray a) to the server-side API.
  • Added net.lugdunon.util.FileUtils.JSONArrayToSimpleList(JSONArray a, List<String> l) to the server-side API.
  • Added net.lugdunon.util.FileUtils.loadJar(String jarPath) to the server-side API.
  • Added net.lugdunon.util.FileUtils.getVersion(String pathToArtifact) to the server-side API.
  • Added net.lugdunon.util.FileUtils.getArtifactURL(String pathToArtifact) to the server-side API.
  • Fixed an issue on the client-side that was causing placeable range checks to now wrap. This should fix the issues reported with being unable to access certain workstations in Aunt Peru's house.
  • Added a standalone client (in three flavors: MacOS, Linux, and Windows)! The client is written using JCEF (https://code.google.com/p/javachromiumembedded). The standalone client (and server now) require a 64-bit java 7. This client currently support the playing of Lugdunon in a native environment, free from the need of an html5 complient web browser. Also supported currently is the ability to run a game campaign in standalone, single-player mode, and a multi-player server option for LAN and WAN play is coming soon!
  • Added jquery base64 encoding / decoding lib to client code base.
  • Added support for acquiring the current machine's public IP address (game.client.getPublicIp()).
  • Addition of a standalone mode for both client and server code bases. Checking this on the server can be accomplished by calling Server.isStandalone() and on the client with game.isStandalone().
  • net.lugdunon.states.list.LargeListState.populateListItems() now returns a boolean to indicate the inclusion of an 'add new row' list item.
  • Added net.lugdunon.ui.settingsMenu.settings.standalone.StandaloneClientSetting to the client-side code base. Players will be able to modify certain settings that pertain to standalone mode. Currently supported is the ability to change properties pertaining to the standalone server configuration.
  • Added net.lugdunon.states.list.StandaloneClientOptionsList to the client-side code base. This will appear in lieu of of the server listing when a player logs into the standalone client. The server list will be shown instead in the case of a guest login.
  • Added net.lugdunon.states.list.SinglePlayerOptionsList to the client-side code base. This appears when a player selected 'Singleplayer' from the standalone client options. Here, a player will be able to create new and edit existing single player campaigns.
  • The progress dialog now has its id set using .data() upon creation.
  • The client in standalone mode now features a black background.
  • Added a net.lugdunon.ui.table.Table UI control to the client-side code base. This control supports the use of column models to dictate rendering, filtering, and sorting of data.
  • Added net.lugdunon.ui.SimpleKeyValuePropertyEditor to the client-side code base. This editor leverages the new table control to allow for simple key / value property editing.
  • Added game.getQSParams() to the client-side API. This allows easy access to any query parameters that exist in the query string of the URL used to load the client.
  • Full screen functionality now takes advantage of the system's native full-screen exclusive mode for rendering at full screen when the client is run in standalone mode.
  • Added game.getStandaloneRequest(request,props,callback,context) to the client-side API. This is used for calling any standalone client bridging REST services as a GET request. Calling this on a client that is not currently in standalone mode will have no result.
  • Added game.postStandaloneRequest(request,props,callback,context) to the client-side API. This is used for calling any standalone client bridging REST services as a POST request. Calling this on a client that is not currently in standalone mode will have no result.
  • Added the standalone client java code to the LugdunonServer project. The client code base leverages the server's code as well as including the ability to launch a server instance in a separate process. Also, for means of IPC communication between the standalone client and the chrome (HTML5) client process, and also between the standalone client and the server process, the standalone client maintains two small collections of REST services (one for each bridge). These services reside on the loopback interface on ports 41972, and 41973.
  • The chrome (HTML5) client process is open for remote debugging on the loop interface at 41971.
  • The lugdunon-server.jar is no longer monilithic. All supporting libs are now distributed alongside the server.jar. In addition, all mods are now self contained in their respective jars as well.
  • Added a net.lugdunon.world.defaults.audio mod for containing all of the default sound effects used in Lugdunon.
  • Added a net.lugdunon.world.defaults.audio.music mod for containing the default musical score used in Lugdunon.
  • Moved net.lugdunon.world.environment.calendar.BaseCalendar from the net.lugdunon.world.defaults.environment mod to the main server code where it belongs.
  • net.lugdunon.asset.manager.FileSystemAssetManager is now the default asset manager.
  • net.lugdunon.asset.manager.FileSystemAssetManager has been optimized heavily to leverage the existing cache. This results in a server loading time of < 20 seconds.
  • Mods are now loaded from a jar file at runtime, and placed in the world's ~/mods/ directory. They can be enabled via inclusion in the ~/etc/mods.json file. The mods and jar files are named according to the package that the mod.json manifest file is located.
  • net.lugdunon.manifest.ManifestGenerator now examines the contents of all loaded mod jars in the discovery of client-side assets.
  • Added an id field to net.lugdunon.state.mod.Mod in the server-side API.
  • Added a version field to net.lugdunon.state.mod.Mod in the server-side API.
  • Added net.lugdunon.state.mod.Mod.getModFilePath() to the server-side API.
  • Added net.lugdunon.state.subsystem.Subsystem to the server-side code base.
  • Added net.lugdunon.state.subsystem.Subsystems to the server-side code base.
  • Modified the start() procedure for net.lugdunon.Server to facilitate standalone server mode.
  • Modified the init() procedure for net.lugdunon.state.State to facilitate standalone server mode.
  • Added ~/times.cfg for holding campaign creation, and last accessed times.
  • Added net.lugdunon.state.World.getCreated() to the server-side API.
  • Added net.lugdunon.state.World.getLastAccessed() to the server-side API.
  • Added net.lugdunon.state.World.getLastAccessed(boolean update) to the server-side API.
  • Added net.lugdunon.state.World.getModPath() to the server-side API.
  • Added net.lugdunon.state.World.createDefaultWorldStructure(String worldBase) to the server-side API.
  • Added net.lugdunon.state.World.getSubsystems() to the server-side API.
  • Removed net.lugdunon.state.World.getEnvironment() from the server-side API.
  • Removed net.lugdunon.state.World.getCharacterStatsSystem() from the server-side API.
  • Added net.lugdunon.util.CallService to the server-side code base to facilitate the calling of REST services.
  • Added net.lugdunon.util.IFatalErrorHandler to the server-side code base. Any error that requires the cessation of the server process should call State.instance().getFatalErrorHandler().handleFatalError() from now on.
  • Added net.lugdunon.util.ExitFatalErrorHandler to the server-side code base.
  • Added net.lugdunon.util.FileUtils.setBaseFilePath(String baseFilePath) to the server-side API.
  • Most of net.lugdunon.util.FileUtils' file access methods now support an absolute path mode.
  • Added net.lugdunon.util.LocalNetworkAddressEnumerator to server-side API.
  • Added ~/etc/subsystems.json.
  • Added support for 'server' mods. These mods are slightly different than the existing 'world' mods in that they are loaded before everything else, and can alter the behavior of the server at large, as opposed to being confined to the scope of a particular world.
  • Added support for a world generator system. This system handles the creation, deployment, and configuration of a game world.
  • Added -Dlugdunon.server.mod.path JVM argument to indicate the location of the default server mods.
  • Added -Dlugdunon.mod.path JVM argument to indicate the location of the default world mods.
  • Added default.world.gen server.cfg property.
  • Added net.lugdunon.world.defaults.tui mod. This mod contains the default tileset and UI assets.
  • Added net.lugdunon.server.worldgen.defaults server mod. This mod contains the default world gen + all related ~/etc/ assets.
  • All State.instance().getServerProperty() methods moved to Server.getServerProperty().
  • Added Server.getServerModCache() to the server-side API.
  • Added net.lugdunon.server.mod.ServerMod to the server-side code base.
  • Added net.lugdunon.server.mod.ServerModCache to the server-side code base.
  • Added net.lugdunon.server.mod.ServerModCache to the server-side code base.
  • Added net.lugdunon.server.worldgen.defaults.IWorldGen.
  • Added net.lugdunon.server.worldgen.defaults.BaseWorldGen.
  • Added net.lugdunon.server.worldgen.defaults.DefaultWorldGen.
  • Added net.lugdunon.server.worldgen.ex.WorldConfigurationException to the server-side code base.
  • Added net.lugdunon.server.worldgen.ex.WorldGenerationException to the server-side code base.
  • Added net.lugdunon.server.worldgen.ex.WorldInitializationException to the server-side code base.
  • Added net.lugdunon.util.FileUtils.JSONObjectToSimpleMap(JSONObject o) to the server-side API.
  • Added net.lugdunon.util.FileUtils.JSONObjectToSimpleMap(JSONObject o, Map<String, String> m) to the server-side API.