* added `d2common/d2input`, copied input vector logic from hellspawner
* added an `InteractiveComponent` which contains input vector, enable
flag, and callback function
* Added an InputSystem which handles input logic and iterates over
entities with interactive components
* added a mouse cursor scene for rendering the mouse cursor
* made the trademark sprite disappear when left mouse is clicked
* various other small bugfixes in scene systems
* removed d2common/d2scene, was not the right way to go.
* added components for animation, scale, main viewport, viewport filter
* added interface for scenes, which are extensions of akara.System
* BootStrap is now AppBootstrap, common to game clients and headless
server
* added generic BasicScene struct for common scene functionality
* added game object factory as a system, with single sprite factory
* added update counter system, shows how many times the world updates
per second
* integration test is now the game client test
- adding components to handle font tables
- handle loading font tables in asset loader
- handle file type for font tables
- file handle resolver system now caches file handles
- asset loader system now caches loaded assets
* character select screen's hero descriptions & hero stat panel
* cinematics names
* buttons on character select screen and "resistances" labels on hero stats panel
Co-authored-by: M. Sz <mszeptuch@protonmail.com>
* Feat(KeyBindingMenu): Adds dynamic box system with scrollbar
* Feat(Hotkeys): WIP Adds a lot of things
* Feat(KeyBindingMenu): WIP Adds logic to binding
* Feat(KeyBindingMenu): Fixes assignment logic
* Feat(KeyBindingMenu): Adds buttons logic
* Feat(KeyBindingMenu): Fixes sprites positions+add padding to Box
* Feat(KeyBindingMenu): Adds label blinking cap
* Feat(KeyBindingMenu): Removes commented func
* Feat(KeyBindingMenu): Fixes lint errors and refactors a bit
* Feat(KeyBindingMenu): Corrects few minor things from Grave
* Feat(KeyBindingMenu): removes forgotten key to string mapping
* Remove d2config.Config singleton
* refactored config file bootstrap
* `d2loader.Loader` adds the config directories during init
* `d2asset.AssetManager` loads the config file during init
* mpq verification logic removed from d2config; this is done by d2loader
* added `errorMessage` to `d2app.App` for setting the error message for the error screen.
* fixed loader test
* refactored logging in d2config, d2record, and d2asset
* asset manager, record manager, and file loader now utilitize d2util.Logger
* added colored logging to d2util.Logger (excluding windows platforms)
* removed mpq file verification from d2config; d2loader handles this
* record loaders now use the record manager's logger for printing info
* added command line argument for setting log level (`--loglevel 4`, `-l4`, or `-l 4`
* added `LogLevel` parameter to config file
* default log level will show errors, warnings, and info log messages
* specifying log level as an argument overrides setting from config file
* fixed log level tests
* Move engine initialization to d2app
* adding debug print of error returned from `App.Run`
* adding ClampInt utility function to d2math
* cleaned up argument parsing in app.go, dedicated server no longer starts a renderer
Co-authored-by: gravestench <dknuth0101@gmail.com>
* d2player/inventory.go: fixed gocyclo error, broke up render method to smaller methods
* d2client/game_client.go: suppressing gocyclo error for OnPacketReceived, doesnt make sense to split
* d2remoteclient/remote_client_connection.go: suppressing gocyclo error for decodeToPacket, doesnt make sense to split
* d2dcc/dcc_direction.go: suppressing gocyclo error in generateFrames