Configure complete beat wave on gameplay debug UI

This commit is contained in:
Diego Marcos
2018-11-08 16:52:57 -08:00
parent cf011c4267
commit 8c8c2ab56c

View File

@@ -15,6 +15,8 @@ AFRAME.registerComponent('debug-beat-loader', {
orientation: 'up'
};
this.beats = {};
this.onKeyDown = this.onKeyDown.bind(this);
if (this.data.stageEnabled || AFRAME.utils.getUrlParameter('debugstage')) {
@@ -28,6 +30,31 @@ AFRAME.registerComponent('debug-beat-loader', {
}
},
spawn: function () {
var self = this;
Object.keys(this.beats).forEach(function (key) {
self.generateBeat(self.beats[key]);
});
},
generateBeat: function (beatInfo) {
var type;
if (beatInfo.type === 'mine') {
type = 3;
} else {
type = beatInfo.color === 'red' ? 0 : 1;
}
debugger;
this.beatLoader.generateBeat({
_lineIndex: this.beatLoader.positionHumanized[beatInfo.position].index,
_lineLayer: this.beatLoader.positionHumanized[beatInfo.position].layer,
_cutDirection: beatInfo.type === 'dot'
? 8
: this.beatLoader.orientationsHumanized.indexOf(beatInfo.orientation),
_type: type
});
},
/**
* Debug generate beats.
*/
@@ -35,13 +62,7 @@ AFRAME.registerComponent('debug-beat-loader', {
const keyCode = event.keyCode;
switch (keyCode) {
case 32: { // Space bar.
this.beatLoader.generateBeat({
_lineIndex: this.beatLoader.positionHumanized[this.selectedBeat.position].index,
_lineLayer: this.beatLoader.positionHumanized[this.selectedBeat.position].layer,
_cutDirection: this.selectedBeat.type === 'dot'
? 8
: this.beatLoader.orientationsHumanized.indexOf(this.selectedBeat.orientation),
_type: type });
this.spawn();
break;
}
}
@@ -62,7 +83,10 @@ AFRAME.registerComponent('debug-beat-loader', {
addTypeBeatMenu();
addColorBeatMenu();
addOrientationMenu();
setBeatButton();
addBeatPositionMenu();
addGenerateButton();
function addOrientationMenu () {
@@ -123,10 +147,11 @@ AFRAME.registerComponent('debug-beat-loader', {
const buttons = div.parentElement.querySelectorAll('.button');
for (let i = 0; i < buttons.length; i++) { buttons[i].style.background = '#000'; }
div.style.background = '#66f';
self.selectedBeat[div.parentElement.id] = div.innerHTML;
self.selectedBeat[div.parentElement.id] = this.id;
self['selected' + div.parentElement.id.charAt(0).toUpperCase() + div.parentElement.id.slice(1) + 'El'] = this;
};
div.classList.add('button');
div.id = 'button' + text;
div.id = text;
div.style.width = '100px';
div.style.height = '30px';
div.style.background = '#000';
@@ -146,24 +171,34 @@ AFRAME.registerComponent('debug-beat-loader', {
};
function addGenerateButton (text, containerEl) {
const buttonEl = addButton('Spawn Beat (Space Bar)', parentDiv, () => {
var type;
if (self.selectedBeat.type === 'mine') {
type = 3;
} else {
type = self.selectedBeat.color === 'red' ? 0 : 1;
}
self.beatLoader.generateBeat({
_lineIndex: self.beatLoader.positionHumanized[self.selectedBeat.position].index,
_lineLayer: self.beatLoader.positionHumanized[self.selectedBeat.position].layer,
_cutDirection: self.selectedBeat.type === 'dot'
? 8
: self.beatLoader.orientationsHumanized.indexOf(self.selectedBeat.orientation),
_type: type
});
});
buttonEl.style.width = '440px';
const buttonEl = addButton('Spawn (Space Bar)', parentDiv, () => { self.spawn(); });
buttonEl.style.width = '460px';
buttonEl.style.bottomMargin = '10px'
}
function setBeatButton(text, containerEl) {
var buttonEl = addButton('Set Beat', parentDiv, function () {
var color = self.selectedBeat.type !== 'mine' ? ' ' + self.selectedBeat.color : '';
var orientation = self.selectedBeat.type !== 'arrow' ? '' : ' ' + self.selectedBeat.orientation;
self.selectedBeat = {
position: self.selectedBeat.position,
type: self.selectedBeat.type,
orientation: self.selectedBeat.orientation,
color: self.selectedBeat.color
};
if (!self.selectedPositionEl) { return; }
debugger;
self.selectedPositionEl.innerHTML = self.selectedBeat.type + color + orientation;
self.beats[self.selectedPositionEl.id] = {
position: self.selectedBeat.position,
type: self.selectedBeat.type,
orientation: self.selectedBeat.orientation,
color: self.selectedBeat.color
};
});
buttonEl.style.width = '460px';
buttonEl.style.bottomMargin = '10px'
};
},
addDebugStageControls: function () {