mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 11:37:58 +02:00
added fists to toybox
This commit is contained in:
parent
23fea1f221
commit
b77de1b598
1 changed files with 35 additions and 2 deletions
|
@ -63,7 +63,7 @@ var cleanupButton = toolBar.addOverlay("image", {
|
||||||
alpha: 1
|
alpha: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
var overlays = true;
|
var overlays = false;
|
||||||
var leftHandOverlay;
|
var leftHandOverlay;
|
||||||
var rightHandOverlay;
|
var rightHandOverlay;
|
||||||
if (overlays) {
|
if (overlays) {
|
||||||
|
@ -136,6 +136,27 @@ var COLLISION_SOUNDS = Array(
|
||||||
var RESIZE_TIMER = 0.0;
|
var RESIZE_TIMER = 0.0;
|
||||||
var RESIZE_WAIT = 0.05; // 50 milliseconds
|
var RESIZE_WAIT = 0.05; // 50 milliseconds
|
||||||
|
|
||||||
|
var leftFist = Entities.addEntity( {
|
||||||
|
type: "Sphere",
|
||||||
|
shapeType: 'sphere',
|
||||||
|
position: MyAvatar.getLeftPalmPosition(),
|
||||||
|
dimensions: { x: GRAB_RADIUS, y: GRAB_RADIUS, z: GRAB_RADIUS },
|
||||||
|
rotation: MyAvatar.getLeftPalmRotation(),
|
||||||
|
visible: false,
|
||||||
|
collisionsWillMove: false,
|
||||||
|
ignoreForCollisions: true
|
||||||
|
});
|
||||||
|
var rightFist = Entities.addEntity( {
|
||||||
|
type: "Sphere",
|
||||||
|
shapeType: 'sphere',
|
||||||
|
position: MyAvatar.getRightPalmPosition(),
|
||||||
|
dimensions: { x: GRAB_RADIUS, y: GRAB_RADIUS, z: GRAB_RADIUS },
|
||||||
|
rotation: MyAvatar.getRightPalmRotation(),
|
||||||
|
visible: false,
|
||||||
|
collisionsWillMove: false,
|
||||||
|
ignoreForCollisions: true
|
||||||
|
});
|
||||||
|
|
||||||
function letGo(hand) {
|
function letGo(hand) {
|
||||||
var actionIDToRemove = (hand == LEFT) ? leftHandActionID : rightHandActionID;
|
var actionIDToRemove = (hand == LEFT) ? leftHandActionID : rightHandActionID;
|
||||||
var entityIDToEdit = (hand == LEFT) ? leftHandObjectID : rightHandObjectID;
|
var entityIDToEdit = (hand == LEFT) ? leftHandObjectID : rightHandObjectID;
|
||||||
|
@ -161,8 +182,11 @@ function setGrabbedObject(hand) {
|
||||||
var objectID = null;
|
var objectID = null;
|
||||||
var minDistance = GRAB_RADIUS;
|
var minDistance = GRAB_RADIUS;
|
||||||
for (var i = 0; i < entities.length; i++) {
|
for (var i = 0; i < entities.length; i++) {
|
||||||
|
// Don't grab the object in your other hands, your fists, or the table
|
||||||
if ((hand == LEFT && entities[i] == rightHandObjectID) ||
|
if ((hand == LEFT && entities[i] == rightHandObjectID) ||
|
||||||
(hand == RIGHT && entities[i] == leftHandObjectID)) {
|
(hand == RIGHT && entities[i] == leftHandObjectID) ||
|
||||||
|
entities[i] == leftFist || entities[i] == rightFist ||
|
||||||
|
(tableCreated && entities[i] == tableEntities[0])) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
var distance = Vec3.distance(Entities.getEntityProperties(entities[i]).position, handPosition);
|
var distance = Vec3.distance(Entities.getEntityProperties(entities[i]).position, handPosition);
|
||||||
|
@ -185,6 +209,8 @@ function setGrabbedObject(hand) {
|
||||||
|
|
||||||
function grab(hand) {
|
function grab(hand) {
|
||||||
if (!setGrabbedObject(hand)) {
|
if (!setGrabbedObject(hand)) {
|
||||||
|
// If you don't grab an object, make a fist
|
||||||
|
Entities.editEntity((hand == LEFT) ? leftFist : rightFist, { ignoreForCollisions: false } );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var objectID = (hand == LEFT) ? leftHandObjectID : rightHandObjectID;
|
var objectID = (hand == LEFT) ? leftHandObjectID : rightHandObjectID;
|
||||||
|
@ -254,6 +280,9 @@ function update(deltaTime) {
|
||||||
rightHandGrabValue = Controller.getActionValue(rightHandGrabAction);
|
rightHandGrabValue = Controller.getActionValue(rightHandGrabAction);
|
||||||
leftHandGrabValue = Controller.getActionValue(leftHandGrabAction);
|
leftHandGrabValue = Controller.getActionValue(leftHandGrabAction);
|
||||||
|
|
||||||
|
Entities.editEntity(leftFist, { position: MyAvatar.getLeftPalmPosition() });
|
||||||
|
Entities.editEntity(rightFist, { position: MyAvatar.getRightPalmPosition() });
|
||||||
|
|
||||||
if (rightHandGrabValue > TRIGGER_THRESHOLD &&
|
if (rightHandGrabValue > TRIGGER_THRESHOLD &&
|
||||||
prevRightHandGrabValue < TRIGGER_THRESHOLD) {
|
prevRightHandGrabValue < TRIGGER_THRESHOLD) {
|
||||||
if (overlays) {
|
if (overlays) {
|
||||||
|
@ -262,6 +291,7 @@ function update(deltaTime) {
|
||||||
grab(RIGHT);
|
grab(RIGHT);
|
||||||
} else if (rightHandGrabValue < TRIGGER_THRESHOLD &&
|
} else if (rightHandGrabValue < TRIGGER_THRESHOLD &&
|
||||||
prevRightHandGrabValue > TRIGGER_THRESHOLD) {
|
prevRightHandGrabValue > TRIGGER_THRESHOLD) {
|
||||||
|
Entities.editEntity(rightFist, { ignoreForCollisions: true } );
|
||||||
if (overlays) {
|
if (overlays) {
|
||||||
Overlays.editOverlay(rightHandOverlay, { color: releaseColor });
|
Overlays.editOverlay(rightHandOverlay, { color: releaseColor });
|
||||||
}
|
}
|
||||||
|
@ -276,6 +306,7 @@ function update(deltaTime) {
|
||||||
grab(LEFT);
|
grab(LEFT);
|
||||||
} else if (leftHandGrabValue < TRIGGER_THRESHOLD &&
|
} else if (leftHandGrabValue < TRIGGER_THRESHOLD &&
|
||||||
prevLeftHandGrabValue > TRIGGER_THRESHOLD) {
|
prevLeftHandGrabValue > TRIGGER_THRESHOLD) {
|
||||||
|
Entities.editEntity(leftFist, { ignoreForCollisions: true } );
|
||||||
if (overlays) {
|
if (overlays) {
|
||||||
Overlays.editOverlay(leftHandOverlay, { color: releaseColor });
|
Overlays.editOverlay(leftHandOverlay, { color: releaseColor });
|
||||||
}
|
}
|
||||||
|
@ -293,6 +324,8 @@ function cleanUp() {
|
||||||
Overlays.deleteOverlay(leftHandOverlay);
|
Overlays.deleteOverlay(leftHandOverlay);
|
||||||
Overlays.deleteOverlay(rightHandOverlay);
|
Overlays.deleteOverlay(rightHandOverlay);
|
||||||
}
|
}
|
||||||
|
Entities.deleteEntity(leftFist);
|
||||||
|
Entities.deleteEntity(rightFist);
|
||||||
removeTable();
|
removeTable();
|
||||||
toolBar.cleanup();
|
toolBar.cleanup();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue