fullaunch
fullaunch
A minimalist, simple fullscreen (or windowed) menu/launcher in CrSFML with controller/joystick support
Prerequisites
- Crystal 1.17
- SFML
Installation
Development
shards install
shards build
Release
shards build --production
sudo cp bin/fullaunch /usr/local/bin
sudo cp bin/fullaunch-windowed /usr/local/bin
sudo cp bin/fullaunch-eventviewer /usr/local/bin
Usage
Create a configuration in ~/.fullaunch/config.yml
, use config.yml.example
as template. Then use fullaunch
(or bin/fullaunch
without installation) to run the fullscreen launcher or fullaunch-windowed
(or bin/fullaunch-windowed
without installation) to run the windowed launcher. Use fullaunch-eventviewer
(or bin/fullaunch-eventviewer
without installation) to inspect SFML events for joystick bindings configuration.
Development
- Clone the repository
shards install
- Make changes
- Test manually (I do not plan to add specs, because I don't know how to test a graphical program like this, but I'm open to suggestions)
- Run
bin/ameba
and make sure it passes - Follow the Git workflow from here
Code style
The main design principle is SOLID and service object pattern defined as such:
- The name of each class should reflect what it does e.g.
Runner
,Renderer
etc. - The classes are grouped into modules/directories representing the domain e.g.
MainWindow
,Config
etc. - Parameters for the operation are passed in the class initializer and saved as instance variables
- The instance method
call
is where the main logic lives - You can use helper methods, but try not to adhere to the single responsibility rule where possible
Contributing
- Fork it (https://gitlab.com/Phitherek_/fullaunch/-/forks/new)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Merge Request
Contributors
- Phitherek_ - creator and maintainer
Repository
fullaunch
Owner
Statistic
- 0
- 0
- 0
- 0
- 2
- almost 1 year ago
- February 10, 2023
License
MIT License
Links
Synced at
Mon, 18 Nov 2024 07:16:53 GMT
Languages