PIXI Controls: Update parameters with ConfigManager

This commit is contained in:
OleSTEEP 2024-02-01 20:00:22 +03:00
parent 043164ec38
commit 2a7101bd19

View file

@ -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();
}