Comments (8)
This functionality would be incredibly useful. Even just one ring button on controller would make this a viable solution.
This mostly looks like it's written in C#, maybe I'll take a look at it over the weekend and see if I can figure it out.
from tpie.
I got a first pass implementation of controllers working with some caveats. Since I can't submit to this repo I've forked and put them in the gh10-controller-support branch here : https://github.com/TomNCatz/TPie
I've not set up packages yet, but I can look into that if people really want it and Tischel does not express interest in pulling it in at some point(the work I've done is rather small compared to the original plugin and it doesn't really feel right to publish an alternative version of their work without talking to them)
If you pull this down and load it up I recommend exporting your ring settings and backing them up somewhere. The conversion from the main plugin to this branch has been tested and should be fine, but I have not tested conversion back.
As for the state of the work I did it:
- adds two fields to the keybind window for setting a controller binding and if the controller binding is a toggle
- makes it so the controller binding field will detect L2 and R2 as if they were modifier keys
- supports L1, L3, R1, R3, Start, Select, and all of the D-pad and action buttons as keys that can be set, plus their held modifiers(note, action keys are denoted as cardinal directions, so triangle on a PS controller is 'North')
- gamepad controls set for a ring will open that ring and nested rings as the keyboard binds do
- Right analog stick input can be used to control selection in a ring(it prioritizes gamepad input if there is any, but otherwise uses the mouse input like before)
- old ring settings data should import correctly and update to include support for gamepads.
Known Issues:
- Mouse and gamepad input both want to be in control, so if you don't have the mouse set in the center of the ring it will try to make selections until you move the right stick. There are various settings already in TPie that can mange this, just be aware of it
- Dalamud does not currently give plugins access to gamepad input blocking, so any buttons you press or movement of the analog stick is still detected by the game(it can be a bit nauseating) I have spoken with the Dalamud devs and this seems to partially be a result of a core game issue, and partially be intentional. I'm working with them for a long term solution, but there is a short term work around. If you press L1 and L3 at the same time it blocks all controller input to the game, pressing it again will unlock it. If you do this and then use your TPie gestures they will not affect the gameplay, but it is slower then just doing the action.
from tpie.
Very unlikely that this will ever happen.
from tpie.
I know owner said no but I would also love for this to be implemented.
I'm thinking that there can be a combination of controller buttons/triggers not yet used by the game
Following up on the button combo, most controllers nowadays have a home, select, and start button, plus the touchpad for Playstation controllers, but the game leaves at least one unused (share button and home on DS4 for me). A Select + R-stick combo isn't too uncomfortable for me not to get used to. Can't hurt to dream amirite...
from tpie.
I got a first pass implementation of controllers working with some caveats. Since I can't submit to this repo I've forked and put them in the gh10-controller-support branch here : https://github.com/TomNCatz/TPie
That's great! I don't see a pull request from you yet on this repo. Does it not let you even pull request?
I've not set up packages yet, but I can look into that if people really want it and Tischel does not express interest in pulling it in at some point(the work I've done is rather small compared to the original plugin and it doesn't really feel right to publish an alternative version of their work without talking to them)
It's an open-source project under the AGPL-3.0 license, so you can do what you want, as long as your derivative work is also under the AGPL-3.0 license even if a pull request is not accepted.
Anyway, this motivates me to get back into the game and build your project for myself to test out.
from tpie.
- Dalamud does not currently give plugins access to gamepad input blocking, so any buttons you press or movement of the analog stick is still detected by the game(it can be a bit nauseating) I have spoken with the Dalamud devs and this seems to partially be a result of a core game issue, and partially be intentional. I'm working with them for a long term solution, but there is a short term work around. If you press L1 and L3 at the same time it blocks all controller input to the game, pressing it again will unlock it. If you do this and then use your TPie gestures they will not affect the gameplay, but it is slower then just doing the action.
This is the main reason why I never even bothered with controller support. To me this defeats the entire purpose.
That being said I'm not against adding the functionality behind some kind of warning message to the user describing the known issues of using a controller with the plugin.
Feel free to open a PR and I'll take a look when I have the time.
The PR could be merged as is or I could also use it as the foundation to build the feature myself if there's stuff I don't like about it.
I'm not gonna make any promises on timing because all of this is a lot of work so it can take a while.
You could also make your own version of the plugin with a more hacky approach for controller support and distribute it as 3rd party. I would personally prefer to ultimately have the feature added to TPie but for that to happen I need to be happy with it.
from tpie.
Oh I must have read about that issue too quickly to notice. Perhaps there's a way to emulate the L1+L3 gamepad controls so it triggers to gamepad blocking feature of Dalamud while the ring is showing and gamepad support is active in the TPie settings? Then, when the ring is dismissed, another L1+L3 could be triggered again? It's a shot in the dark, and I don't know if that is feasible or not or if I'm even using the right terminology with the word 'emulate'.
from tpie.
Pull request submitted.
This is just a first pass, so I would not expect you to pull it in 'as is' anyway. one big code callout I will make is that right now the gamepad bindings just copy all of the keybind info about jobs. This is unfavorable in several ways, but all of the solutions I could think of would have stood a large chance of disrupting the way keybinds currently work.
from tpie.
Related Issues (20)
- "Quick Action" does not follow its target when list is reordered HOT 1
- [Suggestion] Give ability to reorganize ring list HOT 1
- No Job icons on the Ring menu HOT 2
- Suggestion: Click on nested icon HOT 4
- [BUG] Quick Action does not follow "Selection Background" setting HOT 1
- [Bug]: When the only items are nested rings, it forces one to be a quick action (which can't be opened). HOT 4
- [BUG] is not a valid gear set number. HOT 1
- Suggestion : Add emote as quick action type HOT 1
- Bug / Suggestion : Material UI not showing Job Icons HOT 2
- Suggestion: Binding Pie Wheels to Jobs HOT 1
- Suggestion: Multiple keybinds for single ring HOT 1
- Allow toggleable rings to be closed without selection an option HOT 1
- Bug (feature?): Triggering a macro through a tpie wheel makes using other macros through tpie impossible for the duration the macro is running.
- Suggestion: Quick Action is last used
- Enhanced RDM Melee Actions
- Rings are no longer displayed HOT 1
- How do I make nested rings? HOT 1
- Allow for rings to be triggered through commands HOT 2
- TPie kinks related to set names? HOT 1
- Does not work at all any more HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tpie.