Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
4d7f434
Render inventory items (except for items in the armor, offhand, and c…
stackotter Dec 15, 2023
f0900ca
Fix rotation of block items in inventory and hotbar
stackotter Dec 15, 2023
30d89c7
Create GUIInventorySlot GUI element to reduce boilerplate in inventor…
stackotter Dec 17, 2023
4abf4bf
Render remaining inventory slots (armor, off-hand, and crafting)
stackotter Dec 20, 2023
d78bdb8
Get absolute mouse position in InputView (coordinate systems are anno…
stackotter Dec 20, 2023
5801b3f
Introduce GUIFixedSizeElement protocol to workaround some annoying co…
stackotter Jan 14, 2024
612d880
Fix KeymapEditorView layout by making InputView's internal GeometryRe…
stackotter Apr 13, 2024
f92533f
Add tvOS support (and tweak most UI and nav code to support tvOS navi…
stackotter Apr 14, 2024
fb9eec6
Fix focusing of in-game menu buttons for tvOS and implement basics of…
stackotter Apr 14, 2024
9d6de3e
Change app identifier back to dev.stackotter.delta-client (whoops)
stackotter Apr 15, 2024
706e71a
Fix macOS compilation errors (related to SwiftUI focus code which is …
stackotter Apr 15, 2024
8acd39b
Fix in-game menu button styles (accidentally restricted the styles to…
stackotter May 23, 2024
fcf597f
Fix horizontal flight speed (#191, #193)
FloofyPlasma May 24, 2024
018ce0c
Update Xcode version in Contributing.md
stackotter May 23, 2024
52d5c5d
Fix vertical flying speed (now matches Vanilla)
stackotter May 24, 2024
25b0b3e
Fix typo in Microsoft auth implementation (somehow still worked anyway?)
stackotter May 25, 2024
13555c7
Release inputs when chat or inventory gets opened, and reset accelera…
stackotter May 25, 2024
872f992
Release cursor and inputs when chat is opened via '/' key
stackotter May 25, 2024
7a86a9e
Update InputView to convert mouse position to true pixels before hand…
stackotter May 25, 2024
17c1b35
Initial GUI system reimplementation (in anticipation of adding mouse …
stackotter May 25, 2024
5d39ec5
Move InGameGUI instance into property of Game, get mouse interactions…
stackotter May 26, 2024
12e0fd8
Update mouse interaction handling to use correct scaling factor inste…
stackotter May 26, 2024
0edb9a2
Fix deadlock in compileGUI (bad lock nesting order) and implement hor…
stackotter May 26, 2024
d42a307
Reimplement hotbar area rendering in new GUI system (excluding item r…
stackotter May 26, 2024
b396613
Add support for item models to the new GUI system and render hot bar …
stackotter May 26, 2024
f61fcde
Reimplement chat rendering in new GUI system (pixel perfect except fo…
stackotter May 26, 2024
dc13c79
Reimplement debug screen rendering in new GUI system (seems like a pi…
stackotter May 27, 2024
24e2f56
Implement inventory GUI with basic mouse interaction, item stacks can…
stackotter May 27, 2024
dc55449
Send ClickWindowPacket when player moves items in inventory, and Clos…
stackotter May 27, 2024
6590d40
Implement dropping items from the inventory (and sending relevant pac…
stackotter May 27, 2024
0810256
Implement inventory slot right clicking (for taking half, putting one…
stackotter May 28, 2024
a1d7087
Implement hotbar slot key shortcuts for swapping inventory items
stackotter May 28, 2024
ff18fba
Implement input handling for dropping hotbar items while not in inven…
stackotter May 28, 2024
53d7115
Update inventory GUI code to be generic enough to handle other sorts …
stackotter May 28, 2024
37bfb62
Support non-inventory windows with accompanying packets; just craftin…
stackotter May 28, 2024
a41a3c2
Move window interaction handling code into Window type to streamline …
stackotter May 28, 2024
d4591f8
Revert accidental usage of if expressions feature to fix GitHub Actio…
stackotter May 28, 2024
9b6bf31
Fix Linux builds (hopefully...)
stackotter May 28, 2024
a4bb7cb
Load armor and tool properties from pixlyzer item registry
stackotter May 29, 2024
2654bd1
Fix entity rendering (broken by skybox-related camera uniforms refact…
stackotter May 29, 2024
bc67f7d
Implement survival mode block breaking (have to reimplement creative …
stackotter May 30, 2024
7117b24
Fix entity velocity (entity spawn packets without velocity should sti…
stackotter May 30, 2024
85545e8
Fix non-survival block breaking/interaction and fix mining speed of t…
stackotter May 30, 2024
bd8a02c
Implement entity attacking and interaction (can right click villagers…
stackotter May 30, 2024
177c4b3
Switch to swift-async-dns-resolver for DNS resolution (#197)
FloofyPlasma May 31, 2024
ab8a3d4
Update block breaking overlay to match vanilla better and render bloc…
stackotter May 31, 2024
9989c96
Redo entity movement packet handling and entity movement system, much…
stackotter May 31, 2024
1f513f7
Handle mouse slot when handling SetSlotPacket, and fix packets sent b…
stackotter May 31, 2024
109dc6a
Implement boss bar packet handling and GUI
stackotter May 31, 2024
0863253
Implement player tab list GUI overlay
stackotter Jun 1, 2024
68fb39f
Migrate to Swift Bundler v2 (#200)
furby-tm Jun 2, 2024
d127fa9
Implement entity model downloading, loading and rendering (no texture…
stackotter Jun 4, 2024
3da9161
Migrate to Swift Bundler v2 and fix compilation errors on linux (#201)
furby-tm Jun 5, 2024
6ed0941
Clean up DeltaClientGtk and update to newer SwiftCrossUI version (the…
stackotter Jun 5, 2024
ac6fc4b
Implement interfaces of various GUI windows (double chests, anvil, et…
FloofyPlasma Jun 5, 2024
58ad0fb
Implement entity model part rotation (fixes rendering of pigs, villag…
stackotter Jun 5, 2024
b3c49f7
Don't drop item if user is pressing cmd+q, and show targeted entity i…
stackotter Jun 5, 2024
c61c74a
Add texture support to entity renderer
stackotter Jun 5, 2024
e2b178f
Support entity rotation in EntityMeshBuilder
stackotter Jun 5, 2024
1f907d5
Fix EntityMovementSystem (accidentally early exited loop whenever a l…
stackotter Jun 5, 2024
4419946
Render entity hitbox when model is missing (at the moment: items, dra…
stackotter Jun 6, 2024
a7e5faf
Remove all entities (except for the player) when switching dimensions…
stackotter Jun 6, 2024
7e5d7af
Add 'kind' property to window areas to give certain areas meaning (e.…
stackotter Jun 6, 2024
dc62c99
Parse whole EntityMetadataPacket and use metadata to avoid applying v…
stackotter Jun 7, 2024
61885c4
Implement dragon subhitboxes (kind of working, kind of not, will need…
stackotter Jun 7, 2024
92764c7
Fix entity hitbox intersection (could target entities behind the play…
stackotter Jun 8, 2024
fc64383
Render entity item entities (e.g. chest item entities), and restructu…
stackotter Jun 8, 2024
849d407
Render block item entities and fix item entity bobbing to match vanil…
stackotter Jun 8, 2024
25ecc65
Implement translucent block item rendering for inventory/hotbar (prev…
stackotter Jun 8, 2024
1a99af5
Implement block entity item rendering for inventory (chests etc)
stackotter Jun 8, 2024
93060cd
Implement block entity rotation
stackotter Jun 8, 2024
cea734f
Implement entity lighting (just simple flat lighting that respects sk…
stackotter Jun 8, 2024
1652ea5
Update delta-core dependency path to start with ./ (hopefully fixes a…
stackotter Aug 21, 2024
160c749
Bump SwiftCrossUI version
stackotter Apr 15, 2026
38d088b
CI: Bump workflows to newer software (fixes Linux error + macOS infin…
stackotter Apr 15, 2026
fe32d6f
CI: Fix workflows more (bump more action versions)
stackotter Apr 15, 2026
4f531c4
CI: Switch away from universal builds for macOS (broken) and switch L…
stackotter Apr 15, 2026
62a36b7
CI: Bump weichsel/ZipFoundation version to fix Linux compilation
stackotter Apr 15, 2026
65d562f
Bump sushichop/Puppy version to fix Linux compilation
stackotter Apr 15, 2026
4029ce3
CI: Bump swift-bundler version and Swift tools versions to fix compil…
stackotter Apr 15, 2026
e8f1696
CI: Bump test.yml Swift version to match package Swift version
stackotter Apr 15, 2026
82ddcd6
CI: Bump Linux workflow jobs to Swift 6.0 (work around 5.9 break rela…
stackotter Apr 15, 2026
4edcf28
CI: Bump Linux workflow jobs to Swift 6.3 (6.0 wasn't enough)
stackotter Apr 15, 2026
83ff6c3
CI: Run 'swift package update' in hopes to fix remaining Linux errors
stackotter Apr 15, 2026
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
62 changes: 42 additions & 20 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,41 +7,63 @@ on:

jobs:
build-macos:
runs-on: macOS-12
runs-on: macOS-15
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
- name: List Xcodes
run: ls /Applications
- name: Force Xcode 14.2
run: sudo xcode-select -switch /Applications/Xcode_14.2.app
- name: Force Xcode 16.4
run: sudo xcode-select -switch /Applications/Xcode_16.4.app
- name: Version
run: swift --version
- name: Download swift-bundler

- name: Cache swift-bundler
id: cache-swift-bundler
uses: actions/cache@v5
with:
path: sbun
key: ${{ runner.os }}-swift-bundler
- name: Build swift-bundler
if: steps.cache-swift-bundler.outputs.cache-hit != 'true'
run: |
curl -o swift-bundler -L https://github.com/stackotter/swift-bundler/releases/download/v2.0.4/swift-bundler
chmod +x ./swift-bundler
cp ./swift-bundler /usr/local/bin
- name: Build
git clone https://github.com/moreSwift/swift-bundler
cd swift-bundler
git checkout 6d72c4f442cc2c57c2559f3df21b3777b1d0a917
swift build --product swift-bundler
cp .build/debug/swift-bundler ../sbun

- name: Build arm64
run: |
./sbun bundle -c release --arch arm64
mv "$(./sbun bundle --show-bundle-path)" DeltaClient-arm64.app
- name: Build x86
run: |
./swift-bundler bundle -c release -o . -u
plutil -insert MetalCaptureEnabled -bool YES DeltaClient.app/Contents/Info.plist
- name: Zip .app
run: zip -r DeltaClient.zip DeltaClient.app
- name: Upload artifact
uses: actions/upload-artifact@v2
./sbun bundle -c release --arch x86_64
mv "$(./sbun bundle --show-bundle-path)" DeltaClient-x86_64.app
- name: Zip .app (arm64)
run: zip -r DeltaClient-arm64.zip DeltaClient-arm64.app
- name: Zip .app (x86_64)
run: zip -r DeltaClient-x86_64.zip DeltaClient-x86_64.app
- name: Upload artifact (arm64)
uses: actions/upload-artifact@v7
with:
name: DeltaClient-arm64
path: ./DeltaClient-arm64.zip
- name: Upload artifact (x86_64)
uses: actions/upload-artifact@v7
with:
name: DeltaClient
path: ./DeltaClient.zip
name: DeltaClient-x86_64
path: ./DeltaClient-x86_64.zip
build-linux:
runs-on: ubuntu-latest
steps:
- name: Setup Swift
uses: swift-actions/setup-swift@v1
uses: SwiftyLab/setup-swift@latest
with:
swift-version: 5.7
swift-version: "5.9"
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
- name: Build
run: |
cd Sources/Core
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v1
uses: actions/checkout@v6
- name: Lint
run: |
URL="https://github.com/realm/SwiftLint/releases/download/0.50.3/portable_swiftlint.zip"
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ on:

jobs:
test-macos:
runs-on: macOS-12
runs-on: macOS-15
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Force Xcode 14.2
run: sudo xcode-select -switch /Applications/Xcode_14.2.app
uses: actions/checkout@v6
- name: Force Xcode 16.4
run: sudo xcode-select -switch /Applications/Xcode_16.4.app
- name: Version
run: swift --version
- name: Test
Expand All @@ -23,11 +23,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Setup Swift
uses: swift-actions/setup-swift@v1
uses: SwiftyLab/setup-swift@latest
with:
swift-version: 5.7
swift-version: "5.9"
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v6
- name: Test
run: |
cd Sources/Core
Expand Down
7 changes: 7 additions & 0 deletions .swift-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"version": 1,
"indentation": {
"spaces": 2
},
"indentSwitchCaseLabels": true
}
10 changes: 6 additions & 4 deletions Bundler.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
format_version = 2

[apps.DeltaClient]
product = 'DeltaClient'
version = 'v0.1.0-alpha.1'
bundle_identifier = 'dev.stackotter.delta-client'
identifier = 'dev.stackotter.delta-client'
category = 'public.app-category.games'
minimum_macos_version = '11.0'
icon = 'AppIcon.icns'

[apps.DeltaClient.extra_plist_entries]
[apps.DeltaClient.plist]
# Append the current commit hash to the user-facing version string
CFBundleShortVersionString = "{VERSION}, commit: {COMMIT_HASH}"
CFBundleShortVersionString = "$(VERSION), commit: $(COMMIT_HASH)"
GCSupportsControllerUserInteraction = "True"
MetalCaptureEnabled = true
4 changes: 2 additions & 2 deletions Contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ If your contributions follow these guidelines, they'll be much more likely to ge

### Delta Client

**Important**: Only Xcode 14 is supported, Xcode 12 builds don't work because Delta Client uses new
**Important**: Only Xcode 14+ is supported, Xcode 12 builds don't work because Delta Client uses new
automatic `Codable` conformance and there are some weird discrepancies between Xcode 12's swift
compiler and Xcode 14's swift compiler. Xcode 13 isn't supported because it causes some weird memory
compiler and Xcode 14+'s swift compiler. Xcode 13 isn't supported because it causes some weird memory
corruption issues.

[Delta Client](https://github.com/stackotter/delta-client) uses the
Expand Down
2 changes: 1 addition & 1 deletion Notes/GUIRendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ relatively consistent.

This improvement gave a 2.36x reduction in encode time which is pretty great.

This improvement isn't foolproof, it should be conservative to always retain ordering when required,
This improvement isn't foolproof, it should be conservative enough to always retain ordering when required,
but it doesn't seem to always combine meshes when they can be combined. This can be worked around by
refactoring mesh generation to group by array texture when possible. I had to do this with
`GUIList`'s row background generation (by putting all the backgrounds first) and it worked a charm.
Expand Down
Loading
Loading