This release is focused mainly on mod support, extension of scripting and internal cleanup of our code.
We were also working on replacing some of the sample graphics.
The graphics is still not final version, as our graphic is now going to concentrate on overall graphics design now.
Features:
- Added walls. (Walls are made from stone bricks, these are created from stone in the furnace.)
- Game updates are using timer event. The program keeps 60 game updates even with FPS < 60 or FPS > 60. The "catchup rate" is configurable. When the FPS drops very low this stops having the effect.
- Storing console history in the player data.
- New tree graphics (8 dry trees 12 big trees)
- New inserter graphics
- New laser turret and gun turret graphics
- Bullet particles for gun turret
- New solar panel graphics
- Lighter stone furnace graphics
- New logistic robot graphics
- Fixed crash when restarting the game with technology gui opened.
- Fixed crafting queue properties when saved during crafting.
- Fixed laser turret not consuming energy in idle state.
- Splitter has maximum memory of 5 items when forced to send items on one side because the other one is blocked. This means that when left is block for a long time, and then both are free, the right will get mostly 5 items before it is splitted 1:1 again.
- Fixed that the electric pole has the same orientation all the time (regardless connections)
- Removed the text length limit from the input console.
- Wrapping of the console text in the game.
- Mods are self sustainable folders now. They contain the prototype definitions, graphics, sounds, locale, scenarios or campaigns.
- Mods Gui in the game to enable / disable mods and change their ordering.
- The default game contents is treated as a mod (called base).
- Prototype definitions are generated by Lua scripts (no json anymore). Mods can manipulate the definitions from previous mods.
- Mods can have control.lua script that supplements / changes the behavior of the default scenario script.
- Multiple running scripts (from the mods) can communicate with each other using interfaces.
- General furnace energy source specification in json (so it can be electric)
- Started to use the name of the recipe, this allows different recipes for the same product. Having different recipes for the same product for player crafting is not tested (regarding the auto crafting)
- Translation files are merged properly.
- Default english fallback for translations.
- Simple way to add gui elements using script.
- Divided the player and its character, some functions that are not directly connected with the charater (goal description, printing etc) are accessible from the player object, the rest from the charater. The access to character is game.player.character
- The migration script runs before the control.lua is loaded and can be used to reload scripts from the original scenario this is used to solve the issue of incompatibile scripts in the save game.
- Merged onunitdied and onplayerdied to onentitydied
- Check for positive addition in the LuaInventory::insert method
- Added LuaInventory::remove method
- Added LuaInventory::getcontents method
- Simplier access to player from game object (game.player instead of game.getplayer())
- Added LuaRecipe::reload method
- Added force parameter in createentity so player can specify the owner of the created entity (was always enemy now)
- Added way to change force of entity and damage entity (damaging is different then sethealth).
- Position doesn't need to be in format {x = 34, y = 7}, the format {34 ,7} works as well, the same with bounding box.
- Added simple interface for the Freeplay that allows manipulating the attacks from mod scripts.
- Scripts receive only events they have subscribed to.
- Scripts can emit their own events (for instance Freeplay emits an event whenever it starts the attack).