Mo'Controls

Mo'Controls v1.3.0.7

Login or Register an account to download this content
Fixed issues with keybinds not working.
# refactored debug related stuff.
# refactored GuiNav and XboxControllerScroll.
# implemented anyInput method for keyboard emulator. returns true if any key was pressed that frame.
# refactored mouseEmulator.
# implemented new native method, PeekMessage.
# improved performance of monitorControllerConnections.
- mod now performs much better.
# implemented bool: anyInput for xboxController. anyInput is updated when the controller state is updated.
# changed how scrollFunction is started. now started when xbox controller connects.
# refactored xbox extentions.
# implemented new method of moving the player with a controller.
# implemented new method of player looking with a controller.
# refactored input
# refactored control manager.
# overhaul of control manager.
# implemented keyboard/mouse - controller switch logic.
# mod now auto detects if player is using a controller or keyboard/mouse.
- can be overriden by "device detection" setting.
# under foot controls => setting "playerMove" option is available instead of use of standard cinput assignment. (list of controls). new setting allows user to select left stick or right stick or dpad to control the movement of the player. this is now direct. (xbox controller => player move )instead of standard cinput implementation (xbox controller => cInput => unity input system => player move). which was causing deadzone issues that i couldn't control as the input data was going through so many other unknown logic.
# Fixed player movement always wanting to drift sideways/forwards etc.
# implemented new player look logic. player look is now also direct (xbox controller => player look) instead of always emulating the mouse for the xbox controller to be able to look. (xbox controller => mouse emulator => move cursor).
- now mouse emulator is only on in the menus (playerInMenu). otherwise mod uses new controllerLook logic to move the player camera, much like the game initially does it.
as both standard look and new controller look conflicted with eachother when both enabled. i had to implement new controller/mouse switch logic to switch between using controller look/move logic and default cInput look/move logic by enabling/disabling said behaviours.
# fixed bug where if user exits game while looking at a scrollable function, trigger assignments weren't reset.
# modified wheel slip ffb setting logic
# reworked mod GUI.


3,319 additions and 2,669 deletions
Mo'Controls v1.1.155.35 - 06.06.2022
# [detectScrollable] now works in driving mode!!
# Split [GuiNav] logic into [XboxControllerScroll] and [GuiNav]. [XboxControllerScroll] can only scroll the mouse wheel. While guiNav can do both, scroll and change gui menu as [GuiNav] is derived from [XboxController].
# Refactored [guiNav]/[xboxControllerScroll] code.
# Implemented auto versioning and auto latest version date. so i dont have too anymore. (one less thing to have to think about.
# Refactored gui logic code.
# Modified access modifiers.
# Refactored xbox controller code.
# Modified how detectScrollable detects if player is looking at a mouse-scroll-action-enabled-object
# Implemented logic to change trigger inputs to none while detecting a scrollable. When [detectScrollable]'s state changes from detecting to not (player stops looking at a scrollable item) trigger inputs are set back to the input prior to scrollable interaction.
# Modified how [ControlManager] handles FFB on an xbox controller.
# Modifed how [ControlManager] resets Rumble on an xbox controller.
# implemented Mod.Description.

Full changelog:

https://github.com/tommojphillips/Mo_Controls/compare/v1.1.7.1...v1.1.155.35
# fix bug where control mode is not set on first game load. (no controls set)
# Fixed not being able to select right stick in mouse emulation settings.
# removed unused mod keybind related fields.
# updated feature list.
# renamed settings menu type, Display to Axis.
# updated supported modloader ver to 1.2.6
# Implemented detect scrollable logic =>
now if the players hand is empty and in hand mode, ControlManager now auto enables mousescroll on the xbox controller triggers if the player is looking at something that has scroll logic, eg. Oil Filter, Window winders.
# amended default save data.

Full Changelog: https://github.com/tommojphillips/Mo_Controls/compare/v1.1.6...v1.1.7
Mo'Controls v1.1.6

* Removed Mod Keybinds logic from mod completely as mscmodloader has changed and now does not expose needed data.
* Fixed not being able to rotate picked up items.
* Modified Axis.Gravity default values from 3 to 100 | player controls are now 107% more responsive. NOTE: to gain these chances you must deleted the mo controls save data file.

please report any errors/bugs!
Code amendment and bug fixes
# fixed crash when user first starts the mod and ModSettings/Mo_Controls folder doesn't currently exist.
An update out for Mo'Controls. v1.1.3

changelog:
# Fixed indexoutofrange exception caused by screen width >= the max items per row calculated in 'MoControlsGUI.drawControllerInputContent()'.
# Fixed camera locking up if player is holding item and tries to enter toolmode via the holdInputMono.
# Added mocontrols gui close on excape key down.
# Fixed issue with gui sliders changing size when adjusting property by instead of a slider, using a text field and button to assign the value of the field to the property. => pHorz, pVert, (gravity, sensitivity, deadzone), vert, horz, mouseX, mouseY, eg.
# Axis movement settings (above list) temp lives under the 'isplay' tab.
# Implemented ability to skip over loading deadzones, gravity and sensitivity settings on load by hold left control throughout mo'controls second pass load.
# Amended some default controls: Zoom, Range, ffb.rpmLimiter=>false, gravity, sensitivity, deadzone.
# Implemented ability to load a new or old save rather than just overriding to default save when detected.
# Updated to v1.1.3
Mo'Controls v1.1.2

# To toggle tool mode on/off, hold down the select/menu button for 3seconds on the controller.
# Mouse wheel scroll is simulated on the tigger axises IF:
- the player is holding an item (in handmode when holding an item.)
- while player is in TOOL MODE.
- is disabled when on onFoot, eg. in a car.
# now you are able to change tool mode and screw in them lose bolts all with an xbox controller!!
# FFb for xbox controllers has been implemented! go to settings and toggle FFB on xbox controller.
ffb is on:
-Satsuma
-Gifu
-Jonnez
-Hayosiko
-Kekmet


xbox controller ffb and inputview tabpage mocontrols 1.1.2.png

Change log:
+ Implemented setting, combine trigger axis to treat xbox triggers and assign game controls as a shared-axis (Joy Axis 3-, Joy Axis 3+) or independently (Joy Axis 9+, Joy Axis 10+). Setting is on mocontrols gui page =>Settings=> Xbox Controller => "Combine trigger axis"; located at the bottom of the page.
+ Amended player movement default deadzone values from, '0.05f' to '0.005f'
+ Fixed bug on xbox controller input viewer gui when screen width is large enough would allow a indexOutOfRangeException to occur.
+ Modified Default save to add xbox controller scheme.
+ Implemented player movement deadzone (playerHorz, playerVert) settings and set default deadzone to 0.05f.
+ Fixed mod keybinds not saving and not showing up in mod keybinds.
+ Modified how mono:XboxControllerManager handles controllers.
+ XController is now a mono that attaches to XboxControllerManager.
+ Modified and amended performance and bug fixes with xbox controller rumble eg. (vibrations).
+ IMPLEMENTED Force Feedback (ffb) for and TESTED: Satsuma, Jonnez, Kekmet, but also implemented vehicles, Gifu and Hayosiko but have not tested these specific vehicles.
+ Implemented new FFB setting, GearChange, applies ffb to controller when changing gear; rpm >rumble power.
+ Modified rpmLimiter ffb setting algorithm.
+ Modified wheelSlip ffb setting algorithm to now get the max longitudeSlip of all poweredWheels.
+ Ffb gearChange, neg longitudeSlip values are produced on the Ymotor (right) of the xbox controller. ffb pos wheelslip, rpmlimiter is producted on the Xmotor (left).
+ Removed debug settting, unityRuntimeUpdateScheme
+ Modified some values for default settings
+ Modifed both ffbOverlay and drivetrainOverlay (gui).
+Implemented constraints: LATEST_RELEASE_DATE, IS_DEBUG_CONFIG, IS_X64, VERSION.
+ Property:releaseVersionName{ get; } now appends target platform, (x64, x86)
+Amended loadSettings execution timing
+Implemented use of Mod.SecondPassOnLoad();
+ Fixed control scheme setting to driving mode controls sometimes when gameloaded. (usaully second load in one instance)
+ Impemented basic FFB on xboxcontroller for rpmLimiter, wheelslip, or default (toplessgun)
+ Amended controller assets not loading if xbox controller is not connect on start.
+ mouse deadzone type now set correctly.
+ implemented drivetrain overlay for debugging.
+ Amended features in about page on gui
+ update scheme now also correctly updates on xboxControllerManager
+ Amended null reference exception in some cases when some gameobjects aren't initialized first.
+ Reworked how mo'controls saved and issued its' data around the program.
+ Removed hard coded inputs in guiNav
+ Implemented ability to change guiNav inputs, both axis (float) and button (bool) are supported.
+ Reworked controller scroll method on guiNav.
+ Implemented hasInputFromAxisOrButton to guiNav
+ Controller menu change now checks if xbox controller is connected.
+ set guiNav controls by calling method, GuiNav.setControls() and passing axis or button infomation for all controls, (menu up, down, scroll up, down)
+ Implemented ability to change deadzones for, 1)-player movement, 2)-car steering, and 3)-mouse input. Currently on display settings tab.
+ Implemented xbox controller force feedback (rumble) gui section for toggling on/off and changing update scheme.
+ Implemented ffb overlay gui for debugging xbox controller force feedback (rumble)
+ Cleaned up code
+ Removed unused statements.
+ Amended IEnumerator Coroutine suffix
+ Implemented mouse scroll constraint in MouseEmulator.cs
+ Implemented use of Unity's Coroutines in MouseEmulation.cs, KeyboardEmulation.cs, Xbox Controller Monitoring, Xbox Controller Rumble, Xbox Controller Input Map Update/Refresh.
+ Simplified some changeInput.cs
+ Implemented a him(HoldInputMono) for toggling Tool-Hand mode, not-changable-by-user -default xbox button is "Start" and the hold time is 0.3seconds (3milliseconds)
+ Implemented mouse scroll emulation binded to xbox triggers when either the player is holding an item OR in tool mode. NOTE, scroll is inactive when not "onFoot"
+ Implemented "ScaleForceFeedbackRange()" to controlManager to scale the forcefeedback clamp value to a -1 - 1 scale.
+ Encapsulated objects correctly.
+ Amended some naming voliations.
+ Fixed bug where guiNav-gui would enable scroll when not in mocontrolsGUI.
+ Updated assembly infomation. updated mod to release version, 1.1.2
+ Modified how GuiNav MonoB Update method works.
+ Modified display overlay to show what mode the player is in (hand or tool mode.
+ Implemented new him (hold input monoB) for changing tool mode with an xbox controller. default key is (XboxButtons.Start) but is hard coded as of now, will probably change in the future.
+ Implemented new method, toggleToolMode(), action is as it sounds.
+ Implemented new method, isPlayerHandEmpty(), again action is as it sounds.
+ Implemented new command, changetoolmode, "mctool". toggles tool mode.
+ Modified how MouseEmulation simulates mouse clicks, left/right mouse clicks now function like it should!!
+ Implemented keyboard emulation- used for simulating key 1 or key 2 (for tool mode change).
+ Modified how mouse scroll, mouse move, left and right mouse buttons call native functions.
+ removed unused mouse_event native call as this is now called by sendInput native method.
+ Updated version to 1.1.2 pre-release and amended mctool command
+ Implemented command "mctool" to simulate changing tool mode.
+ Implemented Keyboard emulation
+ Reworked mouse emulation
+ Removed modapi code and references.
+Major GUI update.
+Fixed and changed a lot of things.
+xbox controller gui navigation. eg. bumpers changes the menu and triggers emulate scroll +while mo control gui is open,
+Changed how xbox input viewer displays data.
+Implemented 'Simulate Scroll Wheel' Method to MouseEmulator.
+Fixed hid input initialization message typo.
+Implemented partial gui navigation with xbox controller, 'GUI.GuiNav'.
+Implemented debug stat command for mod to get debug stats (Debug Config, Debug mode, Release). Implemented Check/test to test invaid debug config (dev message).
+Implemented a console command to list all loaded assemblies.
+Modified debugging tools. Changed Assembly info, eg. file, version to 1.1.1.0.
+Modified how messages are printed to the console. added, "listloadedassembliesCommand" + "WriteCInputExternInputsCommand".
+Implemented check to see if end-user is running mod api.
+Implemented timer to display how long the settings loading process took.
+Changed how xbox input viewer displays inputs.
+Implemented GUI Sensitivity gui input.
+Moved GuiNav creation to "MoControlsGO.Start()". GuiNav Mono now disables when end-user is resigning keys/control inputs. Modified XML Comments
+Organized code. Added alias for "Watch".
+Implemented ability to see only relevant Controls in either, foot or driving.
+Removed unused method, Foreach. Changed how controls are logetized.
+Amended Foot control relevance to Finger control.
+Fixed Not saving bool for warning message. Was missing simple call to "MoControlsMod.saveSettings(MoControlsGO:);"
+Implemented correct encapsulation for the Object, "MoControls.Input".
+Updated GUI - Xbox and mouse emulation pages.
MoControlsSettingsMouseEmulation.png
MoControlsSettingsXboxInputViewer.png

Attachments

  • MoControlsAbout.png
    MoControlsAbout.png
    564 KB · Views: 163
  • Like
Reactions: Jodi
updated mod to work correctly with Modloader version 1.1.7
# Fixed issue when handbrake mod v1.4 is not installed.
# Fixed issue with thumbstick icons displaying incorrectly.
# You can now open/close The Mo'Controls Gui by holding the Back/Window button on an Xbox Controller.
NOTE: If you are updating from an older version of the mod, please delete the Mo'Controls Configuration folder located in your mods folder, "Mods/Config/Mo_Controls" to avoid game and/or mod crash due to changed config. Since assets are now stored differently, you can delete all loose .png xbox icons from the "Assets/Mo_Controls" folder.

Changelog:

# Modified how assets are stored/loaded; Mod now uses a .unity3d asset file.
# Updated gui algorithms.
# Implemented debug mode. and debug command. "mcdebug". Implemented print method to prefix all messages to console. sorted usings. implemented basic alt mode & norm mode xbox controller config.
# Gui changes to color & partially implemented color sk.
# Implemented alias for when user has Handbrake mod installed. # Changed how assets are stored and loaded.
# MSC version error now only shows once and resets when the user updates to version/mod updates to version.
Mo'Controls v1.0.6

# Improved performance.
# Bug fixes

Attachments

  • moc0.png
    moc0.png
    955.9 KB · Views: 583
  • moc1.png
    moc1.png
    362.2 KB · Views: 546
  • moc2.png
    moc2.png
    361.9 KB · Views: 533
  • moc3.png
    moc3.png
    436.8 KB · Views: 553
  • moc4.png
    moc4.png
    373.7 KB · Views: 575
# Fixed issues with mouse emulation when an xbox controller is not connected on load.
# Fixed GUI Bugs
# Added ability to use the d-pad to emulate mouse movement!
# Moved GUI components around.
Back
Top