Alpha 0.4.9 released. Important features include keybinding, movement via keyboard, baby animals, milkable cows, shearable sheep, and more!
Players are now free to apply custom keybinding to Lugdunon's actions by using the new Keybinding UI.
Players can also finally control their character's movement via the keyboard. The default keys for movement are the arrow keys, but can be remapped with the new keybinding feature. This feature is very new and does make some changes to the way character placement is handled. With that said, a few bugs are likely to be lurking somewhere in the code and should be summarily squashed in the days to come.
NPCs are now capable of 'evolving' or growing into other NPCs, and is the basis for how chicks become chickens, or a shorn sheep regrows its wool.
Cows, sheep, and dogs have finally arrived in Lugdunon. Cows are milkable by clicking on them with an empty bucket. Sheep are shearable with the new shears tool (provided in the four standard tool grades).
All of the farm animal types now have a baby and adult stage, and sheep have an additional stage for when they have been shorn.
A wider array of materials is now gained through farming including: mutton, beef, horn, leather, and wool.
Horns and leather are used to craft the new horned leather helmet with more leather based recipes to follow soon.
Two new crafting professions (arcane research and alchemy) have been added in preparation for the upcoming spell casting system. Brewing was also added as well.
Also of importance are some memory management work, and the ability to call certain commands (only form the machine that is actually hosting the server) by calling a URL.
The full changelog is listed below:
- Added shears in the 4 standard tool grades.
- Added calves.
- Added lambs.
- Added shorn sheep.
- Added cow horn and leather inventory items. Cows drop both.
- Added the 4 shears, and horned leather helm crafting recipes.
- Modified net.lugdunon.command.core.play.FillBucketCommand.FillBucketCommand and net.lugdunon.state.item.action.BucketActionHandler to allow the player to use buckets on mature cows in order to milk them. In other words, clicking on an adult cow with an empty bucket will replace your empty bucket with one filled with milk.
- Added net.lugdunon.command.core.play.UseShearsCommand and net.lugdunon.state.item.action.ShearsActionHandler to allow player to shear mature sheep in order to obtain wool.
- Added net.lugdunon.state.character.behavior.core.EvolveBehavior to the server side API to allow for NPCs to ‘evolve' or grow into other NPCs.
- This is the basis for how chicks become chickens, or a shorn sheep regrows its wool.
- Thrown eggs now have a small chance of spawning a chick instead of a chicken.
- Fixed an issue that was causing some items in the loot table to never drop.
- Keybind settings panel implemented. Yep, that means you are free to rebind keys!
- Added net.lugdunon.input.keybind.Keybinding.setBoundKey() to client side API.
- Added cows.
- Added chicks.
- Added piglets.
- Cows drop steak.
- Sheep drop wool and mutton.
- Added roast mutton crafting recipe.
- Added cooked steak crafting recipe.
- Crafting disciplines are now configurable.
- Removed PlayerOrientationKeybinding.
- Added net.lugdunon.input.keybind.Keybinding.getLabel() to client side API.
- Added net.lugdunon.input.keybind.Keybinding.getBoundKeyString() to client side API.
- Added net.lugdunon.input.keybind.Keybinding.getBoundKeyCode() to client side API.
- Changed the parameters for net.lugdunon.states.ActionBarGameState.registerKeybinding() in client side API.
- Added net.lugdunon.states.ActionBarGameState.listKeybinds() to client side API.
- Added net.lugdunon.states.ActionBarGameState.getKeybind() to client side API.
- Added net.lugdunon.ui.settingsMenu.settings.KeybindSetting class to client side API.
- Fleshed out keybind settings.
- Added Array.addAll() to client side API.
- Added Number.keyCodeToString() to client side API.
- Added brewing, arcane research, and alchemy crafting disciplines, and associated advancements.
- Added ability to specify new crafting disciplines in mod manifests.
- Dialogue, item, quest, and crafting definitions now announce how many of entries came from mods on startup.
- WebsiteRecipeManifestGenerator now publishes the server's crafting disciplines.
- Added raw and roast mutton, raw and cooked beef steak, wooden bridge, railed wooden bridge, bucket of milk, raw wool, and wool cloth inventory items.
- Added net.lugdunon.command.core.IManagementInvokedCommand to server side API.
- Added net.lugdunon.command.ex.IsNotManagementInvokedCommand to server side API.
- Added net.lugdunon.addIncomingRequest(String commandId, Map params) to server side API.
- Added net.lugdunon.command.CommandRequest(String commandId, Map parameters) constructor to server side API.
- Added net.lugdunon.state.State.ofLocalOrigin(String remoteAddress) to server side API.
- Added ability to call certain command from the machine that is running the server.
- Modified net.lugdunon.command.core.console.gm.SaveCommand to implement IManagementInvokedCommand.
- Modified net.lugdunon.command.core.console.gm.ShutdownCommand to implement IManagementInvokedCommand.
- On save, the server now attempts to purge orphaned composited images to preserve memory.
- Added dog art assets, sprite definition and brown dog NPC definition.
- Added sheep art assets, sprite definition and white sheep NPC definition.
- Fixed weird hair, mail and cloth chest pieces for female.
- Moved hair layer in render order to match Meagan's original layering plan.
- Added net.lugdunon.character.Character.isFreeMoving() to client and server side API.
- Added net.lugdunon.character.Character.isPathing() to server side API.
- Added checks while pathing to prevent free movement.
- Added checks while free moving to prevent pathing.
- Character movement via the keyboard implemented.
- Arrow keys are default keybind for character movement.
- Characters locations are now referenced on a sub-tile resolution. the subtile coordinate range is from -1 to 1 with 0 being tile center and -1 and 1 referencing the left and right extremes of the tile respectively.
- Added net.lugdunon.input.keybind.movement.PlayerFreeMoveKeybinding client side class.
- net.lugdunon.input.keybind.Keybinding.handle() now provides an inputMode parameter.
- Client side character y sorting now take the sub-tile precision into account when sorting.
- Added a PlayerFreeMoveCommand for initiating and ceasing free movement of a character.
- Added a net.lugdunon.math.SubTileLocation class to the server side for storing and manipulating a location on the sub tile resolution.
- Added a net.lugdunon.world.instance.Instance.isTileImpassable(Point loc) method to the server side API for easy tile passability flag checks.
- Added a net.lugdunon.world.terrain.Tileset.getTileSize() method to the server side API.