Commit Graph
211 Commits
Author SHA1 Message Date
khanhduytran0 4c075f6941 [WIP] Add modpack installation
Added Modrinth, Fabric/Quilt automated installation
2024-02-14 10:16:13 +07:00
khanhduytran0 d7302326b9 Feat+Refactor[MCDL]: rewrite to allow download libraries in parallel 2024-02-10 18:20:07 +07:00
khanhduytran0 8264aac911 Refactor[gl_bridge]: split wrapper to separate files
- Cleanup virgl backend code

Additionally, exit will now have animation
2023-11-26 05:15:13 +07:00
khanhduytran0 1f67b22f09 Fix[input]: 2-finger scrolling is too fast 2023-09-15 17:29:05 +07:00
Eva Luna 62a7caa2c4 Feat[SurfaceViewController] Add two-finger long press to show and hide keyboard
Since the entire GUI is set to automatically hide when a controller is connected, this should allow users to be able to show the keyboard without needing to rebind keys. Can also lead to removal of the keyboard button itself since that is no longer needed. More gesture recognizers for other buttons (Debug, Fullscreen, etc) may come in the future.
2023-09-14 20:27:29 -04:00
khanhduytran0 79919baa02 Feat[input]: support extra mouse buttons 2023-09-09 05:10:16 +07:00
Duy Tran Khanh 36c3e312f3 Feat[controls]: v3: joystick & conditonal visibility
- Finish joystick view
+ Finish forward lock
+ When in menu, oystick can be used to move the virtual mouse
- Finish conditonal visibility
- Replace Make Default with Load
2023-08-11 20:58:14 +07:00
khanhduytran0 a8b137323c Fix UI/input for Mac Catalyst 2023-07-30 12:06:27 +01:00
Duy Tran Khanh 13899b7513 Fix[gamepad]: keymap uninited if connected before playing 2023-07-25 14:48:37 +07:00
Eva Luna 6cb039dc1b [UX] Fix: Whoops, I was outdated for the last commit 2023-07-15 01:54:31 -04:00
Eva Luna 49aee0a2e9 [UX] Fix haptics not being completely disabled 2023-07-15 01:51:03 -04:00
Duy Tran Khanh c6e21b4f88 Fixes for LabyMod 4 (except the shader part) 2023-07-13 11:19:18 +07:00
khanhduytran0 6cf61e62c0 Feats: preference isolation & profile management
- Rewrote LauncherPreferences -> PLPreferences
 + Now the file layout is the same as UI layout
 + (get/set)Preference are replaced with corresponding get/set types + Getting/setting is now done through keyPath instead of manually iterating over subdictionaries.
 + Implemented an isolation layer, allowing an instance to have its own settings. This is off by default

- Implemented launcher_profiles
 + Added Profile manager that can be accessed from the sidebar
 + Moved "Game directory (instances)" to this screen
 + Replaced version selector with profile selector. Version selector is moved into profile editor.

- Other changes
 + Cleanup code by using NSPredicate instead of huge for loops
 + Titles in settings are made multilined
 + Controller config: replaced bar button items with localized ones

Due to how large the changes are, this is committed directly to the mainline branch. Bugs are expected to be found (although I did enough tests for this locally)
2023-07-06 13:59:07 +07:00
Duy Tran Khanh 9fdfcf96e3 Fix: only reload controls when needed 2023-05-21 19:00:49 +07:00
Eilionoir Tunnicliff dc22673b06 Remove iOS 12/13 supporting code + Alderis
PojavLauncher 3.0 will require heavy modifications in order to work on those two iOS versions now.
2023-05-08 11:15:52 -04:00
Eilionoir Tunnicliff 0426c4ef32 Add option to disable on-screen haptics 2023-05-08 10:31:11 -04:00
Duy Tran Khanh bcfc13a4f1 Major cleanup for the controller config vc
- Cleanup unused parts
- Cleanup complicated dictionary constructions
- Fix lag spikes during scrolling in this screen

Allow audio settings to be changed ingame
2023-04-19 19:12:32 +07:00
Eilionoir TunnicliffandDuy Tran Khanh 57ecfbf096 Use native input for controls (#524)
* WIP feature: native input

* Fixes: 1.13+, jar installer input
What's left: fix hotbar position

* Fix broken hotbar

---------

Co-authored-by: Duy Tran Khanh <[email protected]>
2023-04-09 13:33:30 +07:00
Duy Tran Khanh 31906e33b7 Fix: control safe area breaks in portrait mode
Rewrite the control safe area system:
- Use UIEdgeInsets instead of CGRect (breaking change!)
- Auto change depending on orientation (not really consistent yet)
The safe area is reset to reflect this breaking change.
2023-04-08 22:11:53 +07:00
Duy Tran Khanh 5c40cf8aa3 Apply the scroll workaround for both axes 2023-04-06 11:15:34 +07:00
Duy Tran Khanh b808f03b80 Workaround(scroll input) send both x and y as y
More proper workaround for https://bugs.mojang.com/browse/MC-121772
2023-04-04 18:18:52 +07:00
Eilionoir Tunnicliff 7611c71bfe Forgot the haptics in that commit 2023-03-16 20:26:40 -04:00
Eilionoir Tunnicliff eef107e5fd Huh, I apparently never commit this 2023-03-16 18:23:35 -04:00
Eilionoir Tunnicliff e96111c572 Feature: option to disable control overlay when a mouse or game controller is connected
To be paired with incoming game controller configuration, as right now the keyboard cannot be opened with this enabled and a controller connected.
2023-03-13 10:07:34 -04:00
Duy Tran Khanh e83b3a3bb3 Feature: mouse/hotbar gesture switches
Closes #519
2023-03-05 22:13:23 +07:00
Duy Tran Khanh d2986295ba Feature(custom controls): menu button
When added to custom control, it will replace the traditional swipe
gesture, while also show the menu in place (aka context menu)
2023-02-23 18:13:14 +07:00
Duy Tran Khanh 78e84807e6 Fix #507: multipleTouchEnabled is not set 2023-02-17 06:20:49 +07:00
Duy Tran Khanh ac0687ca8f Workaround(Input): treat horizontal scroll as vertical
The direction is unchecked: it may need to be inverted
2023-02-10 17:45:39 +07:00
Duy Tran Khanh 35802571f4 FIx(GyroInput): camera jumps + (WIP)orientation
Use DeviceMotion (gyroscope + accelerometer) instead of Gyro for less
jittering
FIXME: camera jumps upon rotating screen while gyro is active
2023-02-05 17:47:06 +07:00
Duy Tran Khanh 54c2564c2f Feature: gyroscope controls 2023-02-05 12:16:46 +07:00
khanhduytran0 b0203d6fc7 Text input for jar launcher, update lib, fixes
News
- Added text input support for jar launcher.
- Updated MoltenVK to https://github.com/KhronosGroup/MoltenVK/commit/d880f4c

Internal changes
- Added more handling cases to avoid missing call to pojav_initOpenGL()
- Moved custom control’s global functions and properties to ControlLayout.
- Moved dylib framework outside its folder, as it’s not necessary to be bundled in framework.
- Reusing custom controls to produce flexible buttons in jar launcher, which might be extended in the future.

Fixes
- Multistage text input (Japanese, Chinese, etc) should now work again.
- Pointer lock should now function properly again.

- Updated README.md to reflect current stuff
2023-01-19 09:54:55 +07:00
Duy Tran Khanh 652316e8f6 Various fixes and enhancements
- Change setNeedsUpdateOfPrefersPointerLocked logic to hopefully fix
issues with mouse not recognizing on iPhones
- Change reloadVersionList logic to load Installed version list
instantly at startup
- Enable game's CALayer opaque and drawsAsynchronously to improve
rendering performance
- Handle natives_directory variable for legacy modded versions
- Set LD_LIBRARY_PATH to silent Caciocavallo NPE error in locating
Android-only code
- Tapping Play when no version selected will now bring up the version
picker instead of doing nothing
2023-01-13 20:11:50 +07:00
Duy Tran Khanh 63c2fe0f30 Added option to control AirPlay mode
Closes #450

Internal change to debug: cache to debugBoundsEnabled instead of
getting preference every time
2022-12-17 21:25:23 +07:00
Duy Tran Khanh d0279af8aa Internal changes
- First changes for tvOS (very WIP) this will be a challenge to use
remote storage as ATV doesn't allow persistent storage (at least
without jailbreak). Low priority for now.
- Change regLog, debugLog to NSLog, NSDebugLog
- Rewrite most of JavaLauncher.m to ObjC
- Update README.md
2022-12-17 21:25:23 +07:00
Duy Tran Khanh 27924ca870 Changes to custom controls
Allow saving to default.json
Put custom controls editor to in-game menu
Localization
2022-12-06 18:27:11 +07:00
Duy Tran Khanh b46cfcfc82 New debug option: auto correction
Sometimes autocorrection can be annoying, so there's now a toggle,
enabled by default to preserve behavior.
2022-12-06 18:21:31 +07:00
Duy Tran Khanh f1da61ef26 New debug option: hide home indicator
This allows home indicator to be hidden again, usually useful for users
who play with external controlling device without having to use Guided
Access.

Changed icon of some settings.
Home indicator, status bar and screen edge lock is now based on side
menu visibility.
2022-11-29 19:17:10 +07:00
Duy Tran Khanh 83a5994881 Fix: duplicate init line in d01d616
Duplicated init caused views to be messed up when safe area is set. This commit removes the duplicated line as a part of the undo commit d01d616.

Also fix some spacing issues
2022-11-26 06:24:13 +07:00
Eilionoir Tunnicliff c5d5ed0bfa Swap LNC + SVC home bar hiding 2022-11-25 11:14:57 -05:00
Eilionoir Tunnicliff d01d616c06 Undo WIP SVC code + fix text in LPVC 2022-11-25 10:31:52 -05:00
Eilionoir Tunnicliff 8fe44a1aea Add alternate Dark icon
Feature request from a whiiiiiiiiiile ago
2022-11-25 10:22:27 -05:00
Duy Tran Khanh 54fd01a7f2 Fix: lost updateSavedResolution in viewWillTransitionToSize
This caused game not to update resolution on window resize.
2022-11-19 11:15:23 +07:00
Duy Tran Khanh 1af09ca02d Tweak NSLocalizedString; Keep split display mode
Tweak NSLocalizedString to return English if not yet localized.
Keep Split display mode between rotations.
New debug option: skip JIT wait, for #423
2022-11-17 21:46:38 +07:00
Duy Tran Khanh 80132a5964 Fix: did not prefer ext pointer lock on hotplug 2022-11-15 21:37:41 +07:00
Duy Tran Khanh 973568eaea Tweak pointer lock, fix inverted scrolling
Fixed these following issues: #420, #421
Replaced commit 3e2d3c9 because it was not complete.
2022-11-14 20:24:46 +07:00
Duy Tran Khanh 838f99af1b Support external display resolution
TODO: add checks to not confuse with Stage Manager + external display

README.md: Added missing credits
2022-11-13 22:01:57 +07:00
Eilionoir Tunnicliff ab5bd8469e Changes
- Removed FAQ, About Launcher, and Update History buttons
- Moved *.png to Assets.xcassets
- Moved LPVC2 to LPVC
2022-11-10 00:03:37 -05:00
Duy Tran Khanh b5af92d0f5 JVM crash dump: now shown, disable some Cr4shed handler
When Cr4shed crash handler is on, chaining to it will eventually crash
instead of returning so that JVM can continue perform dump. For now,
signal handlers are reset to default.

abort() is now caught and shown in the launcher.

Temporarily disabled safe area when windowed, until I can properly set
it up, in order to workaround buttons going out of bounds.
2022-11-03 21:12:55 +07:00
Duy Tran Khanh 8ca77a1b73 Support resizable for iPadOS Stage Manager
On iPadOS, PojavLauncher can be launched in portrait mode
Declare controller support in Info.plist
Sync LWJGL changes from Android repo
2022-10-31 11:13:03 +07:00
Duy Tran Khanh 8218a28e4d For 503aa82: it turns out iOS has stolen inputView
This commit should fix its core issue, so the workaround is removed.
For a while, UITextField variable was named `inputView`, which is same
as the name UIKit used to query custom input view. It was not until
recently that the crash started occurring on my device.
Other fixes (for LogView):
- Line indentation in SurfaceViewController+LogView.m:214
- Navigation bar size: now call sizeToFit
2022-10-19 17:59:18 +07:00