Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
068dcec
Refactor pt.1
uptudev Jul 13, 2025
3525f8c
Refactor part 2 Electric Boogaloo
uptudev Jul 13, 2025
7617da5
Refactor part 3
uptudev Jul 13, 2025
53536ba
Merge pull request #1 from uptudev/refactor
uptudev Jul 13, 2025
b8df891
Replace old links in README to forked version
uptudev Jul 13, 2025
30709ec
Clarify installation instructions
uptudev Jul 13, 2025
d3e3015
Update README.md
uptudev Jul 13, 2025
3745b72
Update en-us.lua
uptudev Jul 14, 2025
6e5297f
`sed` fucked me again
uptudev Jul 14, 2025
7e2f235
Merge branch 'main' of github.com:uptudev/bmag
uptudev Jul 14, 2025
0a7229a
Update issue templates
uptudev Jul 18, 2025
d925157
Merge pull request #2 from uptudev/add-github-issue-templates
uptudev Jul 18, 2025
327cafc
Merge pull request #6 from Kooluve/main
uptudev Jul 18, 2025
fd6bc2e
Update issue templates
uptudev Jul 18, 2025
12a2ffe
Merge pull request #8 from uptudev/add-gh-issue-headers
uptudev Jul 18, 2025
e4d6d02
feat(git): add COC violations to GH issues templates
uptudev Jul 19, 2025
864874a
Implement queues properly
uptudev Jul 16, 2025
127646c
Remove notes and legacy code
uptudev Jul 18, 2025
65e9bf8
chore(legal): delete all GPL-restricted code and add MIT/X11 license
uptudev Jul 19, 2025
eeb66a0
refactor(main): move main entrypoint to `./src/main.lua`
uptudev Jul 19, 2025
a704ea2
feat(docs): add CHANGELOG
uptudev Jul 19, 2025
b40cad1
refactor(libs): add Queue and Timer objects to `./src/libs/`
uptudev Jul 19, 2025
fb73876
chore(git): add git hooks to VCS
uptudev Jul 19, 2025
f914e81
chore(git): add default commit template
uptudev Jul 19, 2025
4911ad2
fix(git): fix mistake in git hook
uptudev Jul 19, 2025
0b8d6b5
chore(git): add bootstrapping script
uptudev Jul 19, 2025
f7ab0e3
chore(git): patch bootstrapping script
uptudev Jul 19, 2025
45cdab6
docs: add contribution guidelines
uptudev Jul 19, 2025
4881d41
chore(git): fix bootstrapping script again
uptudev Jul 19, 2025
d3a704c
docs: add Code of Conduct
uptudev Jul 19, 2025
079a11c
docs: fill in `CONTRIBUTING.md` template
uptudev Jul 20, 2025
6769aa2
docs: make `CONTRIBUTING.md` compliant with RedHat style guide
uptudev Jul 20, 2025
eef7e70
docs: add script execution warning to `CONTRIBUTING.md`
uptudev Jul 20, 2025
4a60bc4
docs: change list to ordered in `CONTRIBUTING.md`
uptudev Jul 20, 2025
9aeefdd
docs: add IRC channel to potential CoC violation report channels
uptudev Jul 20, 2025
46a24cc
feat(input): add InputMap class for holding keybinds
uptudev Jul 20, 2025
b1c1cd9
fix(metadata): replace legacy metadata definition with new standard
uptudev Jul 20, 2025
8d04870
refactor(input): move `input_map.lua` to `input.lua`
uptudev Jul 20, 2025
b275737
feat(localization): scaffold localization
uptudev Jul 20, 2025
b2112b1
refactor(input): change `InputMap:get_feature()` to `InputMap:get()`
uptudev Jul 20, 2025
50fb051
feat(input): implement Love2D event hooks
uptudev Jul 20, 2025
e8bee31
docs(coc): remove top level header
uptudev Jul 20, 2025
b91f4b4
docs(coc): make CoC compliant with RedHat SSG
uptudev Jul 20, 2025
e3587f1
docs(git): add GitHub PR template
uptudev Jul 20, 2025
7e28392
fix(metadata): fix broken `version` and import paths
uptudev Jul 21, 2025
d9c2de8
refactor(input): change names of `input.lua` and `l2d.lua`
uptudev Jul 21, 2025
35989ea
fix(input): rename `input_map` to `bind_map`
uptudev Jul 21, 2025
90f1cbd
feat(input): add `Binding` object for storing press/release functions
uptudev Jul 21, 2025
6f422a5
docs(lua): replace all code documentation with `ldoc` compliant format
uptudev Jul 21, 2025
6233600
fix(input): changed input system to go straight to timers from Love2D
uptudev Jul 21, 2025
b049e39
fix(input): change `touch` to `istouch`
uptudev Jul 21, 2025
0a76979
feat(input): add `src/libs/bindings.lua` to imports
uptudev Jul 21, 2025
76ccf5f
chore(git): remove gitignore
uptudev Jul 21, 2025
2f03fd2
docs(contrib): add project flowchart
uptudev Jul 22, 2025
ca9acf4
docs(contrib): add configuration menu to Mermaid graph
uptudev Jul 22, 2025
12d37d5
refactor(input): remove arguments in `Binding` constructor
uptudev Jul 26, 2025
157475d
feat(input): add `is_bound` method to `BindMap`
uptudev Jul 27, 2025
10e1525
refacator(input): add `hold_start` and `hold_end` functions
uptudev Jul 27, 2025
1e182e8
feat(input): add hook into update loop
uptudev Jul 27, 2025
52fbd91
refactor(core): remove queues (no longer planned to be necessary)
uptudev Jul 28, 2025
4bfde75
feat(core): added most of the main features/endpoints
uptudev Jul 28, 2025
deca75d
feat(core): import feature functions in main file
uptudev Jul 28, 2025
e9f61a7
refactor(core): utilize delta time provided in update loop
uptudev Jul 28, 2025
06e84f6
feat(input): add binding names/ids for proper indexing
uptudev Jul 28, 2025
5c87bee
refactor(core): add config menu
uptudev Jul 29, 2025
f137d80
refactor(core): add input binding menu
uptudev Jul 30, 2025
9327376
fix(core): remove unnecessary state variable
uptudev Jul 30, 2025
8540a0b
fix(feat): fix multiselect bug where first card would deselect itself
uptudev Jul 30, 2025
e6f6fe2
feat(input): add ability to overwrite already-bound keys
uptudev Jul 30, 2025
d631d4e
feat(input): make bindings persistent
uptudev Jul 31, 2025
83ce225
docs(localization): add `en-us` localization documentation
uptudev Jul 31, 2025
6f96e96
docs(core): update source documentation
uptudev Jul 31, 2025
b40827f
docs(readme): update to v2 specs
uptudev Jul 31, 2025
e38ccd9
fix(release): remove `alpha` tag from metadata SemVer
uptudev Jul 31, 2025
9274b24
docs(changelog): update changelog for v2 release
uptudev Jul 31, 2025
a85ecdd
fix(feats): fix play/discard allowing discards at 0 left
uptudev Jul 31, 2025
4a442d3
docs(changelog): update changelog to v2.0.1
uptudev Jul 31, 2025
1cc1da7
chore(metadata): update mod version to v2.0.1
uptudev Jul 31, 2025
d05ca37
chore(release): add release script
uptudev Aug 1, 2025
4fb49c9
fix(multiselect): fix minor bug causing accidental card click
uptudev Aug 1, 2025
cb385b7
docs(changelog): update changelog with new bugfixes
uptudev Aug 1, 2025
da5db3f
fix(play/discard): remove `print()` call left in while debugging
uptudev Aug 4, 2025
9f30ece
chore(docs): add video to `README.md`; reformat `CHANGELOG.md`
uptudev Aug 5, 2025
7cdbc27
chore(docs): replace video link with GH embed
uptudev Aug 5, 2025
4469aa4
fix(multiselect): fix multiselect working on more than just `Card`s
uptudev Sep 15, 2025
1e45fbe
fix(meta): increment version number to v2.0.2
uptudev Sep 15, 2025
0a7434d
fix(feat): fix crash when attempting to multiselect over a UI element
uptudev Sep 20, 2025
3e85587
fix(feat): remove the ability to select non-hand cards with multiselect
uptudev Sep 20, 2025
f558f39
fix(feat): only multiselect after user has moved mouse
uptudev Sep 20, 2025
bbe3a84
fix(meta): increment version number and update CHANGELOG
uptudev Sep 20, 2025
342fcd4
fix(feat): fix error caused by the game overwriting `prev_target`
uptudev Sep 20, 2025
abaf06c
fix(meta): increment version number
uptudev Sep 20, 2025
1a519a6
fix(input): fix inconsistent coding style
uptudev Sep 22, 2025
1aa142e
feat(config): add config reset button and fix visual bugs
uptudev Sep 22, 2025
e1fa7a4
fix(meta): increment version number
uptudev Sep 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions .dev/bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#!/bin/sh

# Ensure the `install_hooks` subshell return codes cascade upwards
set -e

# If no arguments provided with script call...
if
[ $# -eq 0 ]
then
# ...then current directory is target directory...
DIR="$(pwd)/.dev"
else
# ...else set argument as target directory and cd into it.
DIR="$(cd "$(dirname $0)" && pwd)"
fi
cd "$DIR/.." || exit 1
DIR="$(pwd)"

# Default info logging function
log() {
printf "[\x1b[0;1;34m*\x1b[0m] %s: \x1b[0;34m%s\x1b[0m\n" "$(basename $0)" "$*"
}

# Default error logging function
e_log() {
printf "[\x1b[0;1;31m!\x1b[0m] %s: \x1b[0;1;31m%s\x1b[0m\n" "$(basename $0)" "$*"
}

# Default success logging function
s_log() {
printf "[\x1b[0;1;32m+\x1b[0m] %s: \x1b[0;1;32m%s\x1b[0m\n" "$(basename $0)" "$*"
}

setup_git() {
# Set up `Signed-off-by` git trailer
git config set trailer.sign.key "Signed-off-by: "
git config set trailer.sign.ifmissing add
git config set trailer.sign.ifexists doNothing
git config set trailer.sign.cmd 'echo "$(git config user.name) <$(git config user.email)>"'

# Set up default commit template
git config set commit.template "$DIR/.dev/commit-template"
}

# Installs the git hooks via checking for differences between `./dev/hooks` and `./.git/hooks`
# If there are differences, the script nukes pre-existing hooks and inserts its own custom ones
install_hooks() (
hook_src_dir="$DIR/.dev/hooks"
hook_dest_dir="$DIR/.git/hooks"

# If the source dir doesn't exist, the repo is missing stuff
if
! test -d "$hook_src_dir"
then
e_log "Git hook source directory not found; re-clone this repo!"
return 1
fi

if
[ $# -eq 0 ]
then
git diff --quiet "$hook_src_dir" "$hook_dest_dir" 2> /dev/null || {
log 'Configuring git hooks...'

# World's longest `printf` call I swear
printf \
"[\x1b[0;1;34m*\x1b[0m] %s: \x1b[0;34m%s\n\tfrom \x1b[0m\`%s\`\n\t\x1b[0;34minto \x1b[0m\`%s\`\x1b[0;34m...\x1b[0m\n" \
"$(basename $0)" \
"Installing git hooks for repository" \
"$hook_src_dir" \
"$hook_dest_dir"

rm -rf "$hook_dest_dir"
cp -r "$hook_src_dir" "$hook_dest_dir"

s_log 'Git hooks configured successfully!'
}
else
# Check for differences between the directories; copy repo files if discrepancies exist
git diff --quiet "$1" "$2" "$hook_src_dir" 2> /dev/null || {
log 'Configuring git hooks...'

# World's longest `printf` call I swear
printf \
"[\x1b[0;1;34m*\x1b[0m] %s: \x1b[0;34m%s\n\tfrom \x1b[0m\`%s\`\n\t\x1b[0;34minto \x1b[0m\`%s\`\x1b[0;34m...\x1b[0m\n" \
"$(basename $0)" \
"Installing git hooks for repository" \
"$hook_src_dir" \
"$hook_dest_dir"

rm -rf "$hook_dest_dir"
cp -r "$hook_src_dir" "$hook_dest_dir"

s_log 'Git hooks configured successfully!'
}
fi
)

setup_git "$@"
install_hooks "$@"
13 changes: 13 additions & 0 deletions .dev/commit-template
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<type>(scope): <description>

# See Conventional Commits for more info on commit header formatting
# https://www.conventionalcommits.org/

create:
+ `./foo`: add a file that does something

modify:
* `./bar`: change the contents of the file

delete:
- `./baz`: remove the file
9 changes: 9 additions & 0 deletions .dev/hooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/sh
# This script adds a `Signed-off-by` trailer to the end of the proposed commit message.
git interpret-trailers --trailer sign --in-place "$1"

test "" = "$(grep '^Signed-off-by: ' "$1" |
sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
echo >&2 Duplicate Signed-off-by lines.
exit 1
}
3 changes: 3 additions & 0 deletions .dev/hooks/post-checkout
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
# This script sets up the `Signed-off-by` git trailer and runs `../contributor.sh`
$(git rev-parse --show-toplevel)/.dev/bootstrap.sh $@
15 changes: 15 additions & 0 deletions .dev/release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/sh
rm -rf ./.releases
mkdir .releases

bmag_release_tag=$(git tag --points-at HEAD | tail -n 1)
if [ -n "$release_tag" ]; then
exit 1
fi
bmag_prefix="bmag_${bmag_release_tag}"
bmag_tar_name="${bmag_prefix}.tar.gz"
bmag_zip_name="${bmag_prefix}.zip"

cd ./.releases || exit
tar -cvf "$bmag_tar_name" ../localization ../src ../bmag.json ../LICENSE ../README.md
zip -r "$bmag_zip_name" ../localization ../src ../bmag.json ../LICENSE ../README.md
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug report
about: Create a report regarding erroneous behaviour.
title: "[BUG] "
labels: bug
assignees: uptudev

---

## Description

A clear and concise description of what the bug is.

## Procedure

Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

## Expected behavior

A clear and concise description of what you expected to happen.

## Screenshots

If applicable, add screenshots to help explain your problem.

## Platform

- OS: [e.g. iOS]
- Version [e.g. 22]
- Hardware: [e.g. Intel i7 4770k, 16GB DDR3, GTX 780Ti]

## Context/Misc Info
Add any other context about the problem here.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/code-of-conduct-violation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Code of Conduct violation
about: Report a violation of our community Code of Conduct
title: "[COC] "
labels: coc_violation
assignees: ''

---

## Description

**Link to the violating communication and summarize it.**
Include the following:
- who sent the offending communication,
- how the communication was sent (Discord, IRC, etc.),
- when the communication was sent, and
- what the communication said

## Violated clause

**Refer to the clause in `CODE_OF_CONDUCT.md` which the above violates.**
If `CODE_OF_CONDUCT.md` is missing, refer to [the Contributor Covenant v2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).

## Screenshots

Where possible, add screenshots for documentation.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest an idea for an unimplemented feature.
title: "[REQUEST] "
labels: enhancement
assignees: uptudev

---

## Overview

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]. If problem has to do with unexpected behaviour, open a bug report instead.

## Suggestion
**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

## Context/Misc Info
Add any other context or screenshots about the feature request here.
9 changes: 9 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
## Describe your changes

## Issue ticket number and link (if applicable)

## Checklist before requesting a review
- [ ] I have performed a self-review of my code.
- [ ] If it is a core feature, I have added thorough tests.
- [ ] Will this be part of a product update? If yes, please write one phrase
about this update below.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# holds the balatro source code for reverse engineering
exe_dump/
.releases/
Loading