From 2a7101bd19907c2287f083e4f93d0d2f4c500168 Mon Sep 17 00:00:00 2001 From: OleSTEEP Date: Thu, 1 Feb 2024 20:00:22 +0300 Subject: [PATCH] PIXI Controls: Update parameters with ConfigManager --- www.rus/js/plugins/VND_ONSControls.js | 149 ++++++++++++++++++-------- 1 file changed, 106 insertions(+), 43 deletions(-) diff --git a/www.rus/js/plugins/VND_ONSControls.js b/www.rus/js/plugins/VND_ONSControls.js index 695799c..d0ad796 100644 --- a/www.rus/js/plugins/VND_ONSControls.js +++ b/www.rus/js/plugins/VND_ONSControls.js @@ -56,22 +56,10 @@ ONSControls.createButtons = function() { .on("pointerup", (event) => {this.sendEvent(event, "BUTTON_B")}); buttons[3].on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_Y")}) .on("pointerup", (event) => {this.sendEvent(event, "BUTTON_Y")}); - var buttonsSize = ConfigManager.ONSConfig.buttonsSize; for (btn of buttons) { btn.anchor.set(0.5); - btn.width = buttonsSize; - btn.height = buttonsSize; - btn.interactive = true; container.addChild(btn); } - buttons[0].y = buttonsSize / 2 + buttonsSize / 4; - buttons[1].x = -(buttonsSize / 2 + buttonsSize / 4); - buttons[2].x = buttonsSize / 2 + buttonsSize / 4; - buttons[3].y = -(buttonsSize / 2 + buttonsSize / 4); - container.width = buttonsSize * 2; - container.height = buttonsSize * 2; - container.x = ConfigManager.ONSConfig.buttonsX; - container.y = ConfigManager.ONSConfig.buttonsY; this.controlsCanvas.stage.addChild(container); this.ButtonsContainer = container; } @@ -84,23 +72,11 @@ ONSControls.createDPad = function() { new PIXI.Sprite(), new PIXI.Sprite(), new PIXI.Sprite(), new PIXI.Sprite() ] - var dPadSize = ConfigManager.ONSConfig.dPadSize; - container.width = dPadSize; - container.height = dPadSize; container.anchor.set(0.5); - container.x = ConfigManager.ONSConfig.dPadX; - container.y = ConfigManager.ONSConfig.dPadY; for (elem of directions) { container.addChild(elem); elem.anchor.set(0.5); - elem.width = dPadSize / 5.5; - elem.height = dPadSize / 5.5; - elem.interactive = true; } - directions[0].x = directions[0].width; - directions[1].y = directions[1].height; - directions[2].y = -directions[2].height; - directions[3].x = -directions[3].width; directions[0].on("pointerdown", (event) => {this.sendEvent(event, "DPAD_RIGHT")}) .on("pointerup", (event) => {this.sendEvent(event, "DPAD_RIGHT")}); directions[1].on("pointerdown", (event) => {this.sendEvent(event, "DPAD_DOWN")}) @@ -118,18 +94,10 @@ ONSControls.createDPad = function() { ONSControls.createBumpers = function() { const LBsprite = new PIXI.Sprite.fromImage("js/porting/assets/omori_lb_button.png"); const RBsprite = new PIXI.Sprite.fromImage("js/porting/assets/omori_rb_button.png"); - LBsprite.x = ConfigManager.ONSConfig.LBX; - LBsprite.y = ConfigManager.ONSConfig.LBY; - LBsprite.width = ConfigManager.ONSConfig.bumpersWidth; - LBsprite.height = ConfigManager.ONSConfig.bumpersHeight; LBsprite.anchor.set(0.5); LBsprite.interactive = true; LBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_LB")}) .on("pointerup", (event) => {this.sendEvent(event, "BUTTON_LB")}) - RBsprite.x = ConfigManager.ONSConfig.RBX; - RBsprite.y = ConfigManager.ONSConfig.RBY; - RBsprite.width = ConfigManager.ONSConfig.bumpersWidth; - RBsprite.height = ConfigManager.ONSConfig.bumpersHeight; RBsprite.anchor.set(0.5); RBsprite.interactive = true; RBsprite.on("pointerdown", (event) => {this.sendEvent(event, "BUTTON_RB")}) @@ -145,17 +113,9 @@ ONSControls.createBumpers = function() { ONSControls.createAdditionalButtons = function() { const showButton = new PIXI.Sprite.fromImage("js/porting/assets/omori_show_button.png"); //const switchButton = new PIXI.Sprite.fromImage("js/porting/assets/omori_switch_button.png"); - showButton.x = ConfigManager.ONSConfig.showX; - showButton.y = ConfigManager.ONSConfig.showY; - showButton.width = ConfigManager.ONSConfig.additonalSize; - showButton.height = ConfigManager.ONSConfig.additonalSize; showButton.anchor.set(0.5); showButton.interactive = true; showButton.on("pointerdown", this.toggle) - // switchButton.x = ConfigManager.ONSConfig.switchX; - // switchButton.y = ConfigManager.ONSConfig.switchY; - // switchButton.width = ConfigManager.ONSConfig.additonalSize; - // switchButton.height = ConfigManager.ONSConfig.additonalSize; // switchButton.anchor.set(0.5); this.controlsCanvas.stage.addChild(showButton); // this.controlsCanvas.stage.addChild(switchButton); @@ -202,6 +162,72 @@ ONSControls.toggle = function() { } } //============================================================================= +// * Update controls parameters +//============================================================================= +ONSControls.updateButtons = function() { + + // Update A/B/X/Y + const buttonsSize = ConfigManager.ONSConfig.buttonsSize; + const container = this.ButtonsContainer; + const buttons = container.children; + for (btn of buttons) { + btn.width = buttonsSize; + btn.height = buttonsSize; + btn.interactive = true; + } + buttons[0].y = buttonsSize / 2 + buttonsSize / 4; + buttons[1].x = -(buttonsSize / 2 + buttonsSize / 4); + buttons[2].x = buttonsSize / 2 + buttonsSize / 4; + buttons[3].y = -(buttonsSize / 2 + buttonsSize / 4); + container.width = buttonsSize * 2; + container.height = buttonsSize * 2; + container.x = ConfigManager.ONSConfig.buttonsX; + container.y = ConfigManager.ONSConfig.buttonsY; + + // Update DPAD + const dPadSize = ConfigManager.ONSConfig.dPadSize; + const dpadContainer = this.DPadContainer; + const directions = dpadContainer.children; + dpadContainer.width = dPadSize; + dpadContainer.height = dPadSize; + dpadContainer.x = ConfigManager.ONSConfig.dPadX; + dpadContainer.y = ConfigManager.ONSConfig.dPadY; + for (elem of directions) { + elem.width = dPadSize / 5.5; + elem.height = dPadSize / 5.5; + elem.interactive = true; + } + directions[0].x = directions[0].width; + directions[1].y = directions[1].height; + directions[2].y = -directions[2].height; + directions[3].x = -directions[3].width; + + // Update LB/RB + const LBsprite = this.LBsprite + const RBsprite = this.RBsprite + LBsprite.x = ConfigManager.ONSConfig.LBX; + LBsprite.y = ConfigManager.ONSConfig.LBY; + LBsprite.width = ConfigManager.ONSConfig.bumpersWidth; + LBsprite.height = ConfigManager.ONSConfig.bumpersHeight; + RBsprite.x = ConfigManager.ONSConfig.RBX; + RBsprite.y = ConfigManager.ONSConfig.RBY; + RBsprite.width = ConfigManager.ONSConfig.bumpersWidth; + RBsprite.height = ConfigManager.ONSConfig.bumpersHeight; + + // Update additional + const showButton = this.ShowButton; + // const switchButton = this.switchButton; + showButton.x = ConfigManager.ONSConfig.showX; + showButton.y = ConfigManager.ONSConfig.showY; + showButton.width = ConfigManager.ONSConfig.additonalSize; + showButton.height = ConfigManager.ONSConfig.additonalSize; + // switchButton.x = ConfigManager.ONSConfig.switchX; + // switchButton.y = ConfigManager.ONSConfig.switchY; + // switchButton.width = ConfigManager.ONSConfig.additonalSize; + // switchButton.height = ConfigManager.ONSConfig.additonalSize; + console.log("ONSControls: Controls updated"); +} +//============================================================================= // * Fix controls size on empty screen //============================================================================= document.addEventListener("deviceready", onCordovaDeviceReady, false); @@ -348,8 +374,9 @@ var ConfigManager_restoreDefaultConfig = ConfigManager.restoreDefaultConfig; //============================================================================= // * Make Data //============================================================================= +var _ConfigManager_makeData = ConfigManager.makeData; ConfigManager.makeData = function () { - var config = ConfigManager_makeData.call(this); + var config = _ConfigManager_makeData.apply(this, arguments); config.ONSConfig = {}; config.ONSConfig.controlsOffsetX = this.ONSConfig.controlsOffsetX; config.ONSConfig.controlsOffsetY = this.ONSConfig.controlsOffsetY; @@ -383,13 +410,14 @@ ConfigManager.makeData = function () { //============================================================================= // * Apply Data //============================================================================= +var _ConfigManager_applyData = ConfigManager.applyData; ConfigManager.applyData = function (config) { - ConfigManager_applyData.call(this, config); + _ConfigManager_applyData.apply(this, arguments); this.ONSConfig.controlsOffsetX = config.ONSConfig.controlsOffsetX; this.ONSConfig.controlsOffsetY = config.ONSConfig.controlsOffsetY; this.ONSConfig.buttonsScale = config.ONSConfig.buttonsScale; this.ONSConfig.dPadScale = config.ONSConfig.dPadScale; - this.OSConfig.bumpersScale = config.ONSConfig.bumpersScale; + this.ONSConfig.bumpersScale = config.ONSConfig.bumpersScale; this.ONSConfig.additionalOffset = config.ONSConfig.additionalOffset; this.ONSConfig.buttonsSize = config.ONSConfig.buttonsSize; this.ONSConfig.buttonsX = config.ONSConfig.buttonsX; @@ -416,7 +444,9 @@ ConfigManager.applyData = function (config) { //============================================================================= // * Restore defaults //============================================================================= +var _ConfigManager_restoreDefaultConfig = ConfigManager.restoreDefaultConfig; ConfigManager.restoreDefaultConfig = function () { + _ConfigManager_restoreDefaultConfig.apply(this, arguments); const fs = require("fs"); const path = require('path'); var base = path.dirname(process.mainModule.filename); @@ -452,6 +482,38 @@ ConfigManager.restoreDefaultConfig = function () { let needsRestore = confirm(LanguageManager.languageData().text.System.plugins.optionsMenu.alertMessages["restoreGeneral"]); if (!!needsRestore) { DataManager._restoreGlobalInfo(); } } +//============================================================================= +// * Update all controls data +//============================================================================= +ConfigManager.ONSConfig.updateData = function() { + ConfigManager.ONSConfig.buttonsScale = ConfigManager.ONSConfig.buttonsScale; + ConfigManager.ONSConfig.controlsOffsetX = ConfigManager.ONSConfig.controlsOffsetX; + ConfigManager.ONSConfig.controlsOffsetY = ConfigManager.ONSConfig.controlsOffsetY; + ConfigManager.ONSConfig.buttonsSize = ONSControls.controlsCanvas.vh(0.18) * ConfigManager.ONSConfig.buttonsScale; + ConfigManager.ONSConfig.buttonsX = ONSControls.controlsCanvas.screen.width - (ConfigManager.ONSConfig.buttonsSize + ConfigManager.ONSConfig.controlsOffsetX);; + ConfigManager.ONSConfig.buttonsY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.buttonsSize + ConfigManager.ONSConfig.controlsOffsetY); + ConfigManager.ONSConfig.dPadScale = ConfigManager.ONSConfig.dPadScale; + ConfigManager.ONSConfig.dPadSize = ONSControls.controlsCanvas.vh(0.36) * ConfigManager.ONSConfig.dPadScale; + ConfigManager.ONSConfig.dPadX = ConfigManager.ONSConfig.dPadSize / 2 + ConfigManager.ONSConfig.controlsOffsetX; + ConfigManager.ONSConfig.dPadY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.dPadSize / 2 + ConfigManager.ONSConfig.controlsOffsetY); + ConfigManager.ONSConfig.bumpersScale = ConfigManager.ONSConfig.bumpersScale; + ConfigManager.ONSConfig.bumpersOffsetX = ConfigManager.ONSConfig.bumpersOffsetX; + ConfigManager.ONSConfig.bumpersWidth = ONSControls.controlsCanvas.vh(0.188) * ConfigManager.ONSConfig.bumpersScale; + ConfigManager.ONSConfig.bumpersHeight = ONSControls.controlsCanvas.vh(0.12) * ConfigManager.ONSConfig.bumpersScale; + ConfigManager.ONSConfig.bumpersOffsetY = ONSControls.controlsCanvas.vh(0.56); + ConfigManager.ONSConfig.LBX = ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2; + ConfigManager.ONSConfig.LBY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2); + ConfigManager.ONSConfig.RBX = ONSControls.controlsCanvas.screen.width - (ConfigManager.ONSConfig.bumpersOffsetX + ConfigManager.ONSConfig.bumpersWidth / 2); + ConfigManager.ONSConfig.RBY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.bumpersOffsetY + ConfigManager.ONSConfig.bumpersHeight / 2); + ConfigManager.ONSConfig.additionalScale = ConfigManager.ONSConfig.additionalScale; + ConfigManager.ONSConfig.additionalOffset = ONSControls.controlsCanvas.vh(0.03); + ConfigManager.ONSConfig.additonalSize = ONSControls.controlsCanvas.vh(0.06) * ConfigManager.ONSConfig.additionalScale; + ConfigManager.ONSConfig.showX = ONSControls.controlsCanvas.screen.width - (ConfigManager.ONSConfig.additonalSize / 2 + ConfigManager.ONSConfig.additionalOffset); + ConfigManager.ONSConfig.showY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.additonalSize / 2 + ConfigManager.ONSConfig.additionalOffset); + ConfigManager.ONSConfig.switchX = ConfigManager.ONSConfig.additonalSize / 2 + ConfigManager.ONSConfig.additionalOffset; + ConfigManager.ONSConfig.switchY = ONSControls.controlsCanvas.screen.height - (ConfigManager.ONSConfig.additonalSize / 2 + ConfigManager.ONSConfig.additionalOffset); + ONSControls.updateButtons(); +} } @@ -468,6 +530,7 @@ ONSControls.initialize = function() { this.createDPad(); this.createBumpers(); this.createAdditionalButtons(); + this.updateButtons(); //this.playIdleAnimation(); VirtualGamepad.connect(); } \ No newline at end of file