backglow, fog and tunnel neon colors (events 0 & 1)

This commit is contained in:
Diego F. Goberna
2018-12-03 23:24:18 +01:00
committed by Diego Marcos
parent 39d36ccc3e
commit 54c22691c6
11 changed files with 124 additions and 118 deletions

View File

@@ -281,38 +281,36 @@ AFRAME.registerComponent('beat-loader', {
generateEvent: function (event) {
switch(event._type) {
case 0:
this.stageColors.setColor('fog', event._value);
this.stageColors.setColor('sky', event._value);
this.stageColors.setColor('backglow', event._value);
this.stageColors.setColor('bg', event._value);
break;
case 1:
this.stageColors.setColor('tunnelNeon', event._value);
this.stageColors.setColor('tunnel', event._value);
break;
case 2:
case 200:
this.stageColors.setColor('leftStageLaser0', event._value);
this.stageColors.setColor('leftStageLaser1', event._value);
this.stageColors.setColor('leftStageLaser2', event._value);
break;
case 3:
case 300:
this.stageColors.setColor('rightStageLaser0', event._value);
this.stageColors.setColor('rightStageLaser1', event._value);
this.stageColors.setColor('rightStageLaser2', event._value);
break;
case 4:
case 400:
this.stageColors.setColor('floor', event._value);
this.stageColors.setColor('stageNeon', event._value);
break;
case 8:
case 800:
this.twister.components.twister.pulse(event._value);
break;
case 9:
case 900:
// zoom was a bit disturbing
this.twister.components.twister.pulse(event._value);
break;
case 12:
case 1200:
this.leftStageLasers.components['stage-lasers'].pulse(event._value);
break;
case 13:
case 1300:
this.rightStageLasers.components['stage-lasers'].pulse(event._value);
break;
}

View File

@@ -9,9 +9,7 @@ AFRAME.registerSystem('materials', {
this.stageNormal = new THREE.ShaderMaterial({
uniforms: {
redColor: {value: new THREE.Vector3(1, 0, 0) },
blueColor: {value: new THREE.Vector3(0, 0, 1) },
fogColor: {value: new THREE.Vector3(0, 0.48, 0.72) },
color: {value: new THREE.Vector3(0, 0.48, 0.72) },
src: {value: new THREE.TextureLoader().load(document.getElementById('atlasImg').src)},
},
vertexShader: stageNormalShaders.vertexShader,
@@ -22,14 +20,13 @@ AFRAME.registerSystem('materials', {
this.stageAdditive = new THREE.ShaderMaterial({
uniforms: {
redColor: {value: new THREE.Vector3(1, 0, 0) },
blueColor: {value: new THREE.Vector3(0, 0, 1) },
tunnelNeon: {value: new THREE.Vector3(0, 0, 1) },
src: {value: new THREE.TextureLoader().load(document.getElementById('atlasImg').src)},
},
vertexShader: stageAdditiveShaders.vertexShader,
fragmentShader: stageAdditiveShaders.fragmentShader,
fog: false,
blending: THREE.AdditiveBlending,
fog: false,
transparent: true
});
}
@@ -51,7 +48,6 @@ AFRAME.registerComponent('materials', {
}
mesh = this.el.getObject3D('mesh');
if (!mesh) {
console.log('not loaded yet');
this.el.addEventListener('model-loaded', this.applyMaterial.bind(this));
} else {
this.applyMaterial(mesh);

View File

@@ -1,14 +1,35 @@
function $ (id) { return document.getElementById(id); };
AFRAME.registerComponent('stage-colors', {
dependencies: ['background', 'fog'],
dependencies: ['background'],
schema: {
color: {default: 'blue', oneOf: ['blue', 'red']}
},
init: function () {
/*
this.colorCodes = ['off', 'blue', 'blue', 'bluefade', '', 'red', 'red', 'redfade'];
this.el.addEventListener('cleargame', this.resetColors.bind(this));
},
update: function (oldData) {
this.updateColors(this.data.color);
},
setColor: function (target, code) {
this.el.emit(`${target}color${this.colorCodes[code]}`, null, false);
},
resetColors: function () {
this.updateColors('blue');
this.el.emit('bgcolorblue', null, false);
},
updateColors: function (color) {
}
/*
init: function () {
this.neonRed = new THREE.Color(0xff9999);
this.neonBlue = new THREE.Color(0x9999ff);
this.defaultRed = new THREE.Color(0xff0000);
@@ -31,13 +52,10 @@ AFRAME.registerComponent('stage-colors', {
envMap: this.mineEnvMap[this.data.color]
});
this.sky = document.getElementById('sky');
this.backglow = document.getElementById('backglow');
this.auxColor = new THREE.Color();
this.targets = {};
['fog',
'sky',
'backglow',
['stageNormal',
'tunnelNeon',
'leftStageLaser0',
'leftStageLaser1',
@@ -47,48 +65,34 @@ AFRAME.registerComponent('stage-colors', {
'rightStageLaser2',
'floor',
'stageNeon'].forEach(id => {
this.targets[id] = id == 'fog' ? this.el.sceneEl : document.getElementById(id);
this.targets[id] = document.getElementById(id);
});
this.colorCodes = ['off', 'blue', 'blue', 'bluefade', '', 'red', 'red', 'redfade'];
this.el.addEventListener('cleargame', this.resetColors.bind(this));
*/
},
update: function (oldData) {
// this.updateColors(this.data.color);
this.updateColors(this.data.color);
},
setColor: function (target, code) {
/* const mesh = this.targets[target].getObject3D('mesh');
const mesh = this.targets[target].getObject3D('mesh');
if (mesh) { mesh.material.opacity = 1; }
this.targets[target].emit('color' + this.colorCodes[code], null, false);
*/
},
resetColors: function () {
/*
this.updateColors('blue');
for (let target in this.targets) {
this.targets[target].emit('colorblue', null, false);
}
*/
},
updateColors: function (color) {
/*
const red = color === 'red';
// Init or reset.
try {
this.backglow.getObject3D('mesh').material.color.set(red ? '#f10' : '#00acfc');
} catch (e) {
this.backglow.addEventListener('object3dset', () => {
this.backglow.getObject3D('mesh').material.color.set(red ? '#f10' : '#00acfc');
});
}
this.sky.getObject3D('mesh').material.color.set(red ? '#f10' : '#00acfc');
this.el.sceneEl.object3D.background.set(red ? '#770100' : '#15252d');
this.el.sceneEl.object3D.fog.color.set(red ? '#a00' : '#007cb9');
@@ -100,6 +104,7 @@ AFRAME.registerComponent('stage-colors', {
this.mineMaterial.emissive = this.mineEmission[red ? 'red' : 'blue'];
this.mineMaterial.envMap = this.mineEnvMap[red ? 'red' : 'blue'];
this.mineMaterial.needsUpdate = true;
*/
}
*/
});