mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 16:18:05 +02:00
work with clements branch
This commit is contained in:
parent
2c8cab9360
commit
2fb318cc53
1 changed files with 149 additions and 12 deletions
|
@ -251,9 +251,10 @@ function MyController(hand) {
|
||||||
this.triggerValue = 0; // rolling average of trigger value
|
this.triggerValue = 0; // rolling average of trigger value
|
||||||
this.rawTriggerValue = 0;
|
this.rawTriggerValue = 0;
|
||||||
this.rawBumperValue = 0;
|
this.rawBumperValue = 0;
|
||||||
|
|
||||||
this.overlayLine = null;
|
this.overlayLine = null;
|
||||||
|
this.particleBeam = null;
|
||||||
|
|
||||||
this.offsetPosition = Vec3.ZERO;
|
this.offsetPosition = Vec3.ZERO;
|
||||||
this.offsetRotation = Quat.IDENTITY;
|
this.offsetRotation = Quat.IDENTITY;
|
||||||
|
|
||||||
|
@ -398,6 +399,119 @@ function MyController(hand) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//test particles instead of overlays
|
||||||
|
|
||||||
|
|
||||||
|
this.handleParticleBeam = function(position, orientation) {
|
||||||
|
|
||||||
|
var rotation = Quat.angleAxis(0, {
|
||||||
|
x: 1,
|
||||||
|
y: 0,
|
||||||
|
z: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
var finalRotation = Quat.multiply(orientation, rotation);
|
||||||
|
|
||||||
|
|
||||||
|
if (this.particleBeam === null) {
|
||||||
|
print('create beam')
|
||||||
|
this.createParticleBeam(position, finalRotation)
|
||||||
|
} else {
|
||||||
|
print('update beam')
|
||||||
|
this.updateParticleBeam(position, finalRotation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.createParticleBeam = function(position, orientation) {
|
||||||
|
var particleBeamProperties = {
|
||||||
|
type: "ParticleEffect",
|
||||||
|
isEmitting: true,
|
||||||
|
position: position,
|
||||||
|
//rotation:Quat.fromPitchYawRollDegrees(-90.0, 0.0, 0.0),
|
||||||
|
"name": "Particle Beam",
|
||||||
|
"color": {
|
||||||
|
"red": 110,
|
||||||
|
"green": 118.52941176470593,
|
||||||
|
"blue": 255
|
||||||
|
},
|
||||||
|
"maxParticles": 1000,
|
||||||
|
"lifespan": 3,
|
||||||
|
"emitRate": 20,
|
||||||
|
"emitSpeed": 10,
|
||||||
|
"speedSpread": 0,
|
||||||
|
"emitOrientation": {
|
||||||
|
"x": -0.7000000000000001,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0,
|
||||||
|
"w": 0.7071068286895752
|
||||||
|
},
|
||||||
|
"emitDimensions": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"emitRadiusStart": 0.5,
|
||||||
|
"polarStart": 0,
|
||||||
|
"polarFinish": 0,
|
||||||
|
"azimuthStart": -3.1415927410125732,
|
||||||
|
"azimuthFinish": 3.1415927410125732,
|
||||||
|
"emitAcceleration": {
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
z: 0
|
||||||
|
},
|
||||||
|
"accelerationSpread": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"particleRadius": 0.02,
|
||||||
|
"radiusSpread": 0,
|
||||||
|
"radiusStart": 0.01,
|
||||||
|
"radiusFinish": 0.01,
|
||||||
|
"colorSpread": {
|
||||||
|
"red": 0,
|
||||||
|
"green": 0,
|
||||||
|
"blue": 0
|
||||||
|
},
|
||||||
|
"colorStart": {
|
||||||
|
"red": 110,
|
||||||
|
"green": 118.52941176470593,
|
||||||
|
"blue": 255
|
||||||
|
},
|
||||||
|
"colorFinish": {
|
||||||
|
"red": 110,
|
||||||
|
"green": 118.52941176470593,
|
||||||
|
"blue": 255
|
||||||
|
},
|
||||||
|
"alpha": 1,
|
||||||
|
"alphaSpread": 0,
|
||||||
|
"alphaStart": 1,
|
||||||
|
"alphaFinish": 1,
|
||||||
|
"additiveBlending": 0,
|
||||||
|
"textures": "https://hifi-public.s3.amazonaws.com/alan/Particles/Particle-Sprite-Smoke-1.png"
|
||||||
|
}
|
||||||
|
|
||||||
|
this.particleBeam = Entities.addEntity(particleBeamProperties);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.updateParticleBeam = function(position, orientation, acceleration) {
|
||||||
|
print('O IN UPDATE:::' + JSON.stringify(orientation))
|
||||||
|
|
||||||
|
// var beamProps = Entities.getEntityProperties(this.particleBeam);
|
||||||
|
|
||||||
|
Entities.editEntity(this.particleBeam, {
|
||||||
|
//rotation:rotation,
|
||||||
|
rotation: orientation,
|
||||||
|
position: position,
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
// var emitO = Entities.getEntityProperties(this.particleBeam, "emitOrientation").emitOrientation;
|
||||||
|
// print('EMIT o :::' + JSON.stringify(emitO));
|
||||||
|
}
|
||||||
|
|
||||||
this.lineOff = function() {
|
this.lineOff = function() {
|
||||||
if (this.pointer !== null) {
|
if (this.pointer !== null) {
|
||||||
Entities.deleteEntity(this.pointer);
|
Entities.deleteEntity(this.pointer);
|
||||||
|
@ -412,6 +526,14 @@ function MyController(hand) {
|
||||||
this.overlayLine = null;
|
this.overlayLine = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.particleBeamOff = function() {
|
||||||
|
if (this.particleBeam !== null) {
|
||||||
|
Entities.deleteEntity(this.particleBeam)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.particleBeam = null;
|
||||||
|
}
|
||||||
|
|
||||||
this.triggerPress = function(value) {
|
this.triggerPress = function(value) {
|
||||||
_this.rawTriggerValue = value;
|
_this.rawTriggerValue = value;
|
||||||
};
|
};
|
||||||
|
@ -662,6 +784,9 @@ function MyController(hand) {
|
||||||
|
|
||||||
//this.lineOn(distantPickRay.origin, Vec3.multiply(distantPickRay.direction, LINE_LENGTH), NO_INTERSECT_COLOR);
|
//this.lineOn(distantPickRay.origin, Vec3.multiply(distantPickRay.direction, LINE_LENGTH), NO_INTERSECT_COLOR);
|
||||||
this.overlayLineOn(distantPickRay.origin, Vec3.sum(distantPickRay.origin, Vec3.multiply(distantPickRay.direction, LINE_LENGTH)), NO_INTERSECT_COLOR);
|
this.overlayLineOn(distantPickRay.origin, Vec3.sum(distantPickRay.origin, Vec3.multiply(distantPickRay.direction, LINE_LENGTH)), NO_INTERSECT_COLOR);
|
||||||
|
this.handleParticleBeam(distantPickRay.origin, this.getHandRotation());
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.distanceHolding = function() {
|
this.distanceHolding = function() {
|
||||||
|
@ -715,6 +840,7 @@ function MyController(hand) {
|
||||||
this.currentAvatarOrientation = MyAvatar.orientation;
|
this.currentAvatarOrientation = MyAvatar.orientation;
|
||||||
|
|
||||||
this.overlayLineOff();
|
this.overlayLineOff();
|
||||||
|
this.particleBeamOff();
|
||||||
};
|
};
|
||||||
|
|
||||||
this.continueDistanceHolding = function() {
|
this.continueDistanceHolding = function() {
|
||||||
|
@ -808,8 +934,16 @@ function MyController(hand) {
|
||||||
// mix in head motion
|
// mix in head motion
|
||||||
if (MOVE_WITH_HEAD) {
|
if (MOVE_WITH_HEAD) {
|
||||||
var objDistance = Vec3.length(objectToAvatar);
|
var objDistance = Vec3.length(objectToAvatar);
|
||||||
var before = Vec3.multiplyQbyV(this.currentCameraOrientation, { x: 0.0, y: 0.0, z: objDistance });
|
var before = Vec3.multiplyQbyV(this.currentCameraOrientation, {
|
||||||
var after = Vec3.multiplyQbyV(Camera.orientation, { x: 0.0, y: 0.0, z: objDistance });
|
x: 0.0,
|
||||||
|
y: 0.0,
|
||||||
|
z: objDistance
|
||||||
|
});
|
||||||
|
var after = Vec3.multiplyQbyV(Camera.orientation, {
|
||||||
|
x: 0.0,
|
||||||
|
y: 0.0,
|
||||||
|
z: objDistance
|
||||||
|
});
|
||||||
var change = Vec3.subtract(before, after);
|
var change = Vec3.subtract(before, after);
|
||||||
this.currentCameraOrientation = Camera.orientation;
|
this.currentCameraOrientation = Camera.orientation;
|
||||||
this.currentObjectPosition = Vec3.sum(this.currentObjectPosition, change);
|
this.currentObjectPosition = Vec3.sum(this.currentObjectPosition, change);
|
||||||
|
@ -837,6 +971,7 @@ function MyController(hand) {
|
||||||
|
|
||||||
this.lineOff();
|
this.lineOff();
|
||||||
this.overlayLineOff();
|
this.overlayLineOff();
|
||||||
|
this.particleBeamOff();
|
||||||
|
|
||||||
var grabbedProperties = Entities.getEntityProperties(this.grabbedEntity, GRABBABLE_PROPERTIES);
|
var grabbedProperties = Entities.getEntityProperties(this.grabbedEntity, GRABBABLE_PROPERTIES);
|
||||||
this.activateEntity(this.grabbedEntity, grabbedProperties);
|
this.activateEntity(this.grabbedEntity, grabbedProperties);
|
||||||
|
@ -975,6 +1110,7 @@ function MyController(hand) {
|
||||||
this.pullTowardEquipPosition = function() {
|
this.pullTowardEquipPosition = function() {
|
||||||
this.lineOff();
|
this.lineOff();
|
||||||
this.overlayLineOff();
|
this.overlayLineOff();
|
||||||
|
this.particleBeamOff();
|
||||||
|
|
||||||
var grabbedProperties = Entities.getEntityProperties(this.grabbedEntity, GRABBABLE_PROPERTIES);
|
var grabbedProperties = Entities.getEntityProperties(this.grabbedEntity, GRABBABLE_PROPERTIES);
|
||||||
var grabbableData = getEntityCustomData(GRABBABLE_DATA_KEY, this.grabbedEntity, DEFAULT_GRABBABLE_DATA);
|
var grabbableData = getEntityCustomData(GRABBABLE_DATA_KEY, this.grabbedEntity, DEFAULT_GRABBABLE_DATA);
|
||||||
|
@ -1164,6 +1300,7 @@ function MyController(hand) {
|
||||||
|
|
||||||
this.lineOff();
|
this.lineOff();
|
||||||
this.overlayLineOff();
|
this.overlayLineOff();
|
||||||
|
this.particleBeamOff();
|
||||||
if (this.grabbedEntity !== null) {
|
if (this.grabbedEntity !== null) {
|
||||||
if (this.actionID !== null) {
|
if (this.actionID !== null) {
|
||||||
Entities.deleteAction(this.grabbedEntity, this.actionID);
|
Entities.deleteAction(this.grabbedEntity, this.actionID);
|
||||||
|
@ -1285,10 +1422,10 @@ Controller.enableMapping(MAPPING_NAME);
|
||||||
var handToDisable = 'none';
|
var handToDisable = 'none';
|
||||||
|
|
||||||
function update() {
|
function update() {
|
||||||
if (handToDisable !== LEFT_HAND && handToDisable!=='both') {
|
if (handToDisable !== LEFT_HAND && handToDisable !== 'both') {
|
||||||
leftController.update();
|
leftController.update();
|
||||||
}
|
}
|
||||||
if (handToDisable !== RIGHT_HAND && handToDisable!=='both') {
|
if (handToDisable !== RIGHT_HAND && handToDisable !== 'both') {
|
||||||
rightController.update();
|
rightController.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1296,7 +1433,7 @@ function update() {
|
||||||
Messages.subscribe('Hifi-Hand-Disabler');
|
Messages.subscribe('Hifi-Hand-Disabler');
|
||||||
|
|
||||||
handleHandDisablerMessages = function(channel, message, sender) {
|
handleHandDisablerMessages = function(channel, message, sender) {
|
||||||
|
|
||||||
if (sender === MyAvatar.sessionUUID) {
|
if (sender === MyAvatar.sessionUUID) {
|
||||||
if (message === 'left') {
|
if (message === 'left') {
|
||||||
handToDisable = LEFT_HAND;
|
handToDisable = LEFT_HAND;
|
||||||
|
@ -1304,11 +1441,11 @@ handleHandDisablerMessages = function(channel, message, sender) {
|
||||||
if (message === 'right') {
|
if (message === 'right') {
|
||||||
handToDisable = RIGHT_HAND;
|
handToDisable = RIGHT_HAND;
|
||||||
}
|
}
|
||||||
if(message==='both'){
|
if (message === 'both') {
|
||||||
handToDisable='both';
|
handToDisable = 'both';
|
||||||
}
|
}
|
||||||
if(message==='none'){
|
if (message === 'none') {
|
||||||
handToDisable='none';
|
handToDisable = 'none';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1323,4 +1460,4 @@ function cleanup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Script.scriptEnding.connect(cleanup);
|
Script.scriptEnding.connect(cleanup);
|
||||||
Script.update.connect(update);
|
Script.update.connect(update);
|
Loading…
Reference in a new issue