mirror of
https://github.com/lubosz/overte.git
synced 2025-08-08 03:08:00 +02:00
Merge branch 'wall_targets_2' into invert_solids
This commit is contained in:
commit
0f2ad8dd49
3 changed files with 1255 additions and 1230 deletions
|
@ -16,8 +16,9 @@ var scriptURL = Script.resolvePath('wallTarget.js');
|
||||||
|
|
||||||
var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx';
|
var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx';
|
||||||
var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj';
|
var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj';
|
||||||
|
var MINIMUM_MOVE_LENGTH = 0.05;
|
||||||
|
var RESET_DISTANCE = 0.5;
|
||||||
|
|
||||||
var RESET_DISTANCE = 1;
|
|
||||||
var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target';
|
var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target';
|
||||||
var NUMBER_OF_TARGETS = 6;
|
var NUMBER_OF_TARGETS = 6;
|
||||||
var TARGETS_PER_ROW = 3;
|
var TARGETS_PER_ROW = 3;
|
||||||
|
@ -60,6 +61,8 @@ var targets = [];
|
||||||
|
|
||||||
var originalPositions = [];
|
var originalPositions = [];
|
||||||
|
|
||||||
|
var lastPositions = [];
|
||||||
|
|
||||||
function addTargets() {
|
function addTargets() {
|
||||||
var i;
|
var i;
|
||||||
var row = -1;
|
var row = -1;
|
||||||
|
@ -77,6 +80,7 @@ function addTargets() {
|
||||||
position.y = startPosition.y - (row * VERTICAL_SPACING);
|
position.y = startPosition.y - (row * VERTICAL_SPACING);
|
||||||
|
|
||||||
originalPositions.push(position);
|
originalPositions.push(position);
|
||||||
|
lastPositions.push(position);
|
||||||
|
|
||||||
var targetProperties = {
|
var targetProperties = {
|
||||||
name: 'Target',
|
name: 'Target',
|
||||||
|
@ -103,7 +107,11 @@ function testTargetDistanceFromStart() {
|
||||||
var distance = Vec3.subtract(originalPosition, currentPosition);
|
var distance = Vec3.subtract(originalPosition, currentPosition);
|
||||||
var length = Vec3.length(distance);
|
var length = Vec3.length(distance);
|
||||||
|
|
||||||
if (length > RESET_DISTANCE) {
|
var moving = Vec3.length(Vec3.subtract(currentPosition, lastPositions[index]));
|
||||||
|
|
||||||
|
lastPositions[index] = currentPosition;
|
||||||
|
|
||||||
|
if (length > RESET_DISTANCE && moving < MINIMUM_MOVE_LENGTH) {
|
||||||
|
|
||||||
Entities.deleteEntity(target);
|
Entities.deleteEntity(target);
|
||||||
|
|
||||||
|
@ -117,10 +125,16 @@ function testTargetDistanceFromStart() {
|
||||||
compoundShapeURL: COLLISION_HULL_URL,
|
compoundShapeURL: COLLISION_HULL_URL,
|
||||||
position: originalPositions[index],
|
position: originalPositions[index],
|
||||||
rotation: rotation,
|
rotation: rotation,
|
||||||
script: scriptURL
|
script: scriptURL,
|
||||||
|
userData: JSON.stringify({
|
||||||
|
grabbableKey: {
|
||||||
|
grabbable: false
|
||||||
|
}
|
||||||
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
targets[index] = Entities.addEntity(targetProperties);
|
targets[index] = Entities.addEntity(targetProperties);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -142,7 +156,7 @@ function deleteTargets() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Entities.deletingEntity.connect(deleteEntity);
|
Entities.deletingEntity.connect(deleteEntity);
|
||||||
var distanceCheckInterval = Script.setInterval(testTargetDistanceFromStart, 1000);
|
var distanceCheckInterval = Script.setInterval(testTargetDistanceFromStart, 500);
|
||||||
|
|
||||||
addTargets();
|
addTargets();
|
||||||
|
|
||||||
|
|
|
@ -378,7 +378,8 @@
|
||||||
var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx';
|
var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx';
|
||||||
var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj';
|
var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj';
|
||||||
|
|
||||||
var RESET_DISTANCE = 1;
|
var MINIMUM_MOVE_LENGTH = 0.05;
|
||||||
|
var RESET_DISTANCE = 0.5;
|
||||||
var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target';
|
var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target';
|
||||||
var NUMBER_OF_TARGETS = 6;
|
var NUMBER_OF_TARGETS = 6;
|
||||||
var TARGETS_PER_ROW = 3;
|
var TARGETS_PER_ROW = 3;
|
||||||
|
@ -392,7 +393,6 @@
|
||||||
var VERTICAL_SPACING = TARGET_DIMENSIONS.y + 0.5;
|
var VERTICAL_SPACING = TARGET_DIMENSIONS.y + 0.5;
|
||||||
var HORIZONTAL_SPACING = TARGET_DIMENSIONS.z + 0.5;
|
var HORIZONTAL_SPACING = TARGET_DIMENSIONS.z + 0.5;
|
||||||
|
|
||||||
|
|
||||||
var startPosition = {
|
var startPosition = {
|
||||||
x: 548.68,
|
x: 548.68,
|
||||||
y: 497.30,
|
y: 497.30,
|
||||||
|
@ -413,6 +413,9 @@
|
||||||
userData: JSON.stringify({
|
userData: JSON.stringify({
|
||||||
resetMe: {
|
resetMe: {
|
||||||
resetMe: true
|
resetMe: true
|
||||||
|
},
|
||||||
|
grabbableKey: {
|
||||||
|
grabbable: false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
@ -421,6 +424,8 @@
|
||||||
|
|
||||||
var originalPositions = [];
|
var originalPositions = [];
|
||||||
|
|
||||||
|
var lastPositions = [];
|
||||||
|
|
||||||
function addTargets() {
|
function addTargets() {
|
||||||
var i;
|
var i;
|
||||||
var row = -1;
|
var row = -1;
|
||||||
|
@ -437,6 +442,7 @@
|
||||||
position.y = startPosition.y - (row * VERTICAL_SPACING);
|
position.y = startPosition.y - (row * VERTICAL_SPACING);
|
||||||
|
|
||||||
originalPositions.push(position);
|
originalPositions.push(position);
|
||||||
|
lastPositions.push(position);
|
||||||
|
|
||||||
var targetProperties = {
|
var targetProperties = {
|
||||||
name: 'Target',
|
name: 'Target',
|
||||||
|
@ -452,7 +458,7 @@
|
||||||
userData: JSON.stringify({
|
userData: JSON.stringify({
|
||||||
resetMe: {
|
resetMe: {
|
||||||
resetMe: true
|
resetMe: true
|
||||||
}
|
},
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
var target = Entities.addEntity(targetProperties);
|
var target = Entities.addEntity(targetProperties);
|
||||||
|
@ -468,7 +474,11 @@
|
||||||
var distance = Vec3.subtract(originalPosition, currentPosition);
|
var distance = Vec3.subtract(originalPosition, currentPosition);
|
||||||
var length = Vec3.length(distance);
|
var length = Vec3.length(distance);
|
||||||
|
|
||||||
if (length > RESET_DISTANCE) {
|
var moving = Vec3.length(Vec3.subtract(currentPosition, lastPositions[index]));
|
||||||
|
|
||||||
|
lastPositions[index] = currentPosition;
|
||||||
|
|
||||||
|
if (length > RESET_DISTANCE && moving < MINIMUM_MOVE_LENGTH) {
|
||||||
|
|
||||||
Entities.deleteEntity(target);
|
Entities.deleteEntity(target);
|
||||||
|
|
||||||
|
@ -482,15 +492,10 @@
|
||||||
compoundShapeURL: COLLISION_HULL_URL,
|
compoundShapeURL: COLLISION_HULL_URL,
|
||||||
position: originalPositions[index],
|
position: originalPositions[index],
|
||||||
rotation: rotation,
|
rotation: rotation,
|
||||||
script: targetsScriptURL,
|
script: scriptURL
|
||||||
userData: JSON.stringify({
|
|
||||||
resetMe: {
|
|
||||||
resetMe: true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
};
|
||||||
var target = Entities.addEntity(targetProperties);
|
|
||||||
targets[index] = target;
|
targets[index] = Entities.addEntity(targetProperties);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue