diff --git a/ml_amt/resources/menu.js b/ml_amt/resources/menu.js
deleted file mode 100644
index 6df4b72..0000000
--- a/ml_amt/resources/menu.js
+++ /dev/null
@@ -1,245 +0,0 @@
-// Add settings
-var g_modSettingsAMT = [];
-
-engine.on('updateModSettingAMT', function (_name, _value) {
- for (var i = 0; i < g_modSettingsAMT.length; i++) {
- if (g_modSettingsAMT[i].name == _name) {
- g_modSettingsAMT[i].updateValue(_value);
- break;
- }
- }
-});
-
-// Modified from original `inp` types, because I have no js knowledge to hook stuff
-function inp_slider_mod_amt(_obj, _callbackName) {
- this.obj = _obj;
- this.callbackName = _callbackName;
- this.minValue = parseFloat(_obj.getAttribute('data-min'));
- this.maxValue = parseFloat(_obj.getAttribute('data-max'));
- this.percent = 0;
- this.value = parseFloat(_obj.getAttribute('data-current'));
- this.dragActive = false;
- this.name = _obj.id;
- this.type = _obj.getAttribute('data-type');
- this.stepSize = _obj.getAttribute('data-stepSize') || 0;
- this.format = _obj.getAttribute('data-format') || '{value}';
-
- var self = this;
-
- if (this.stepSize != 0)
- this.value = Math.round(this.value / this.stepSize) * this.stepSize;
- else
- this.value = Math.round(this.value);
-
- this.valueLabelBackground = document.createElement('div');
- this.valueLabelBackground.className = 'valueLabel background';
- this.valueLabelBackground.innerHTML = this.format.replace('{value}', this.value);
- this.obj.appendChild(this.valueLabelBackground);
-
- this.valueBar = document.createElement('div');
- this.valueBar.className = 'valueBar';
- this.valueBar.setAttribute('style', 'width: ' + (((this.value - this.minValue) / (this.maxValue - this.minValue)) * 100) + '%;');
- this.obj.appendChild(this.valueBar);
-
- this.valueLabelForeground = document.createElement('div');
- this.valueLabelForeground.className = 'valueLabel foreground';
- this.valueLabelForeground.innerHTML = this.format.replace('{value}', this.value);
- this.valueLabelForeground.setAttribute('style', 'width: ' + (1.0 / ((this.value - this.minValue) / (this.maxValue - this.minValue)) * 100) + '%;');
- this.valueBar.appendChild(this.valueLabelForeground);
-
- this.mouseDown = function (_e) {
- self.dragActive = true;
- self.mouseMove(_e, false);
- }
-
- this.mouseMove = function (_e, _write) {
- if (self.dragActive) {
- var rect = _obj.getBoundingClientRect();
- var start = rect.left;
- var end = rect.right;
- self.percent = Math.min(Math.max((_e.clientX - start) / rect.width, 0), 1);
- var value = self.percent;
- value *= (self.maxValue - self.minValue);
- value += self.minValue;
- if (self.stepSize != 0) {
- value = Math.round(value / self.stepSize);
- self.value = value * self.stepSize;
- self.percent = (self.value - self.minValue) / (self.maxValue - self.minValue);
- }
- else
- self.value = Math.round(value);
-
- self.valueBar.setAttribute('style', 'width: ' + (self.percent * 100) + '%;');
- self.valueLabelForeground.setAttribute('style', 'width: ' + (1.0 / self.percent * 100) + '%;');
- self.valueLabelBackground.innerHTML = self.valueLabelForeground.innerHTML = self.format.replace('{value}', self.value);
-
- engine.call(self.callbackName, self.name, "" + self.value);
- self.displayImperial();
- }
- }
-
- this.mouseUp = function (_e) {
- self.mouseMove(_e, true);
- self.dragActive = false;
- }
-
- _obj.addEventListener('mousedown', this.mouseDown);
- document.addEventListener('mousemove', this.mouseMove);
- document.addEventListener('mouseup', this.mouseUp);
-
- this.getValue = function () {
- return self.value;
- }
-
- this.updateValue = function (value) {
- if (self.stepSize != 0)
- self.value = Math.round(value * self.stepSize) / self.stepSize;
- else
- self.value = Math.round(value);
- self.percent = (self.value - self.minValue) / (self.maxValue - self.minValue);
- self.valueBar.setAttribute('style', 'width: ' + (self.percent * 100) + '%;');
- self.valueLabelForeground.setAttribute('style', 'width: ' + (1.0 / self.percent * 100) + '%;');
- self.valueLabelBackground.innerHTML = self.valueLabelForeground.innerHTML = self.format.replace('{value}', self.value);
- self.displayImperial();
- }
-
- this.displayImperial = function () {
- var displays = document.querySelectorAll('.imperialDisplay');
- for (var i = 0; i < displays.length; i++) {
- var binding = displays[i].getAttribute('data-binding');
- if (binding == self.name) {
- var realFeet = ((self.value * 0.393700) / 12);
- var feet = Math.floor(realFeet);
- var inches = Math.floor((realFeet - feet) * 12);
- displays[i].innerHTML = feet + "'" + inches + '''';
- }
- }
- }
-
- return {
- name: this.name,
- value: this.getValue,
- updateValue: this.updateValue
- }
-}
-
-// Modified from original `inp` types, because I have no js knowledge to hook stuff
-function inp_toggle_mod_amt(_obj, _callbackName) {
- this.obj = _obj;
- this.callbackName = _callbackName;
- this.value = _obj.getAttribute('data-current');
- this.name = _obj.id;
- this.type = _obj.getAttribute('data-type');
-
- var self = this;
-
- this.mouseDown = function (_e) {
- self.value = self.value == "True" ? "False" : "True";
- self.updateState();
- }
-
- this.updateState = function () {
- self.obj.classList.remove("checked");
- if (self.value == "True") {
- self.obj.classList.add("checked");
- }
-
- engine.call(self.callbackName, self.name, self.value);
- }
-
- _obj.addEventListener('mousedown', this.mouseDown);
-
- this.getValue = function () {
- return self.value;
- }
-
- this.updateValue = function (value) {
- self.value = value;
-
- self.obj.classList.remove("checked");
- if (self.value == "True") {
- self.obj.classList.add("checked");
- }
- }
-
- this.updateValue(this.value);
-
- return {
- name: this.name,
- value: this.getValue,
- updateValue: this.updateValue
- }
-}
-
-// Add own menu
-{
- let l_block = document.createElement('div');
- l_block.innerHTML = `
-
-
Avatar Motion Tweaker
-
-
-
-
-
-
-
-
-
IK override while flying:
-
-
-
-
-
IK override while jumping:
-
-
-
-
-
Follow hips on IK override:
-
-
-
-
-
Detect animations emote tag:
-
-
-
-
-
Adjusted locomotion mass center:
-
-
- `;
- document.getElementById('settings-ik').appendChild(l_block);
-
- // Update sliders in new menu block
- let l_sliders = l_block.querySelectorAll('.inp_slider');
- for (var i = 0; i < l_sliders.length; i++) {
- g_modSettingsAMT[g_modSettingsAMT.length] = new inp_slider_mod_amt(l_sliders[i], 'MelonMod_AMT_Call_InpSlider');
- }
-
- // Update toggles in new menu block
- let l_toggles = l_block.querySelectorAll('.inp_toggle');
- for (var i = 0; i < l_toggles.length; i++) {
- g_modSettingsAMT[g_modSettingsAMT.length] = new inp_toggle_mod_amt(l_toggles[i], 'MelonMod_AMT_Call_InpToggle');
- }
-}
diff --git a/ml_amt/resources/ui_menu.js b/ml_amt/resources/ui_menu.js
new file mode 100644
index 0000000..c31bac4
--- /dev/null
+++ b/ml_amt/resources/ui_menu.js
@@ -0,0 +1,84 @@
+// Add settings
+var g_modSettingsAMT = [];
+
+engine.on('updateModSettingAMT', function (_name, _value) {
+ for (var i = 0; i < g_modSettingsAMT.length; i++) {
+ if (g_modSettingsAMT[i].name == _name) {
+ g_modSettingsAMT[i].updateValue(_value);
+ break;
+ }
+ }
+});
+
+// Add own menu
+{
+ let l_block = document.createElement('div');
+ l_block.innerHTML = `
+
+
Avatar Motion Tweaker
+
+
+
+
+
+
+
+
+
IK override while flying:
+
+
+
+
+
IK override while jumping:
+
+
+
+
+
Follow hips on IK override:
+
+
+
+
+
Detect animations emote tag:
+
+
+
+
+
Adjusted locomotion mass center:
+
+
+ `;
+ document.getElementById('settings-ik').appendChild(l_block);
+
+ // Update sliders in new menu block
+ let l_sliders = l_block.querySelectorAll('.inp_slider');
+ for (var i = 0; i < l_sliders.length; i++) {
+ g_modSettingsAMT[g_modSettingsAMT.length] = new inp_slider_mod(l_sliders[i], 'MelonMod_AMT_Call_InpSlider');
+ }
+
+ // Update toggles in new menu block
+ let l_toggles = l_block.querySelectorAll('.inp_toggle');
+ for (var i = 0; i < l_toggles.length; i++) {
+ g_modSettingsAMT[g_modSettingsAMT.length] = new inp_toggle_mod(l_toggles[i], 'MelonMod_AMT_Call_InpToggle');
+ }
+}
diff --git a/ml_lme/Properties/AssemblyInfo.cs b/ml_lme/Properties/AssemblyInfo.cs
index 06beec0..b7c503d 100644
--- a/ml_lme/Properties/AssemblyInfo.cs
+++ b/ml_lme/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-[assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.4.2", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
+[assembly: MelonLoader.MelonInfo(typeof(ml_lme.LeapMotionExtension), "LeapMotionExtension", "1.4.3", "SDraw", "https://github.com/SDraw/ml_mods_cvr")]
[assembly: MelonLoader.MelonGame(null, "ChilloutVR")]
[assembly: MelonLoader.MelonOptionalDependencies("ml_pmc")]
[assembly: MelonLoader.MelonPlatform(MelonLoader.MelonPlatformAttribute.CompatiblePlatforms.WINDOWS_X64)]
diff --git a/ml_lme/Settings.cs b/ml_lme/Settings.cs
index a37e087..facb477 100644
--- a/ml_lme/Settings.cs
+++ b/ml_lme/Settings.cs
@@ -1,5 +1,4 @@
using ABI_RC.Core.InteractionSystem;
-using cohtml;
using System;
using System.Collections.Generic;
using UnityEngine;
@@ -122,7 +121,8 @@ static System.Collections.IEnumerator WaitMainMenuUi()
};
ViewManager.Instance.gameMenuView.Listener.FinishLoad += (_) =>
{
- ViewManager.Instance.gameMenuView.View.ExecuteScript(Scripts.GetEmbeddedScript("menu.js"));
+ ViewManager.Instance.gameMenuView.View.ExecuteScript(Scripts.GetEmbeddedScript("ui_elements.js"));
+ ViewManager.Instance.gameMenuView.View.ExecuteScript(Scripts.GetEmbeddedScript("ui_menu.js"));
foreach(var l_entry in ms_entries)
ViewManager.Instance.gameMenuView.View.TriggerEvent("updateModSettingLME", l_entry.DisplayName, l_entry.GetValueAsString());
};
diff --git a/ml_lme/ml_lme.csproj b/ml_lme/ml_lme.csproj
index 5f94567..d7e99a8 100644
--- a/ml_lme/ml_lme.csproj
+++ b/ml_lme/ml_lme.csproj
@@ -4,7 +4,7 @@
netstandard2.1
x64
LeapMotionExtension
- 1.4.2
+ 1.4.3
SDraw
None
LeapMotionExtension
@@ -25,13 +25,13 @@
-
+