mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 12:37:51 +02:00
add urchin and rocks
This commit is contained in:
parent
3f146a734b
commit
e3d44c4e27
1 changed files with 99 additions and 25 deletions
|
@ -1,4 +1,4 @@
|
||||||
var fishTank, bubbleSystem, innerContainer, bubbleInjector, lowerCorner, upperCorner;
|
var fishTank, bubbleSystem, innerContainer, bubbleInjector, lowerCorner, upperCorner, urchin, rocks;
|
||||||
|
|
||||||
var CLEANUP = true;
|
var CLEANUP = true;
|
||||||
var TANK_DIMENSIONS = {
|
var TANK_DIMENSIONS = {
|
||||||
|
@ -9,7 +9,7 @@ var TANK_DIMENSIONS = {
|
||||||
|
|
||||||
var INNER_TANK_SCALE = 0.7;
|
var INNER_TANK_SCALE = 0.7;
|
||||||
var INNER_TANK_DIMENSIONS = Vec3.multiply(INNER_TANK_SCALE, TANK_DIMENSIONS);
|
var INNER_TANK_DIMENSIONS = Vec3.multiply(INNER_TANK_SCALE, TANK_DIMENSIONS);
|
||||||
INNER_TANK_DIMENSIONS.y = INNER_TANK_DIMENSIONS.y -0.4;
|
INNER_TANK_DIMENSIONS.y = INNER_TANK_DIMENSIONS.y - 0.4;
|
||||||
var TANK_WIDTH = TANK_DIMENSIONS.z;
|
var TANK_WIDTH = TANK_DIMENSIONS.z;
|
||||||
var TANK_HEIGHT = TANK_DIMENSIONS.y;
|
var TANK_HEIGHT = TANK_DIMENSIONS.y;
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ var TANK_SCRIPT = Script.resolvePath('tank.js?' + Math.random())
|
||||||
|
|
||||||
var TANK_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/aquarium-6.fbx";
|
var TANK_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/aquarium-6.fbx";
|
||||||
|
|
||||||
var BUBBLE_SYSTEM_FORWARD_OFFSET = TANK_DIMENSIONS.x - 0.05;
|
var BUBBLE_SYSTEM_FORWARD_OFFSET = TANK_DIMENSIONS.x ;
|
||||||
//depth of tank
|
//depth of tank
|
||||||
var BUBBLE_SYSTEM_LATERAL_OFFSET = 0.15;
|
var BUBBLE_SYSTEM_LATERAL_OFFSET = 0.15;
|
||||||
var BUBBLE_SYSTEM_VERTICAL_OFFSET = -0.5;
|
var BUBBLE_SYSTEM_VERTICAL_OFFSET = -0.5;
|
||||||
|
@ -41,6 +41,31 @@ var BUBBLE_SYSTEM_DIMENSIONS = {
|
||||||
var BUBBLE_SOUND_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/Sounds/aquarium_small.L.wav";
|
var BUBBLE_SOUND_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/Sounds/aquarium_small.L.wav";
|
||||||
var bubbleSound = SoundCache.getSound(BUBBLE_SOUND_URL);
|
var bubbleSound = SoundCache.getSound(BUBBLE_SOUND_URL);
|
||||||
|
|
||||||
|
var URCHIN_FORWARD_OFFSET =-TANK_DIMENSIONS.x;
|
||||||
|
//depth of tank
|
||||||
|
var URCHIN_LATERAL_OFFSET = 0.15;
|
||||||
|
var URCHIN_VERTICAL_OFFSET = -0.4;
|
||||||
|
|
||||||
|
var URCHIN_MODEL_URL = 'http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Urchin.fbx';
|
||||||
|
|
||||||
|
var URCHIN_DIMENSIONS = {
|
||||||
|
x: 0.35,
|
||||||
|
y: 0.35,
|
||||||
|
z: 0.35
|
||||||
|
}
|
||||||
|
|
||||||
|
var ROCKS_FORWARD_OFFSET = (TANK_DIMENSIONS.x/2)-0.75;
|
||||||
|
//depth of tank
|
||||||
|
var ROCKS_LATERAL_OFFSET = 0.05;
|
||||||
|
var ROCKS_VERTICAL_OFFSET = -0.45;
|
||||||
|
|
||||||
|
var ROCK_MODEL_URL = 'http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Aquarium-Rocks-2.fbx';
|
||||||
|
|
||||||
|
var ROCK_DIMENSIONS = {
|
||||||
|
x: 0.88,
|
||||||
|
y: 0.33,
|
||||||
|
z: 2.9
|
||||||
|
}
|
||||||
|
|
||||||
function createFishTank() {
|
function createFishTank() {
|
||||||
var tankProperties = {
|
var tankProperties = {
|
||||||
|
@ -114,23 +139,32 @@ function createBubbleSystem() {
|
||||||
bubbleProperties.parentID = fishTank;
|
bubbleProperties.parentID = fishTank;
|
||||||
bubbleProperties.dimensions = BUBBLE_SYSTEM_DIMENSIONS;
|
bubbleProperties.dimensions = BUBBLE_SYSTEM_DIMENSIONS;
|
||||||
|
|
||||||
|
var finalOffset = getOffsetFromTankCenter(BUBBLE_SYSTEM_VERTICAL_OFFSET, BUBBLE_SYSTEM_FORWARD_OFFSET, BUBBLE_SYSTEM_LATERAL_OFFSET);
|
||||||
|
|
||||||
|
bubbleProperties.position = finalOffset;
|
||||||
|
|
||||||
|
bubbleSystem = Entities.addEntity(bubbleProperties);
|
||||||
|
createBubbleSound(finalOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getOffsetFromTankCenter(VERTICAL_OFFSET, FORWARD_OFFSET, LATERAL_OFFSET) {
|
||||||
|
|
||||||
|
var tankProperties = Entities.getEntityProperties(fishTank);
|
||||||
|
|
||||||
var upVector = Quat.getUp(tankProperties.rotation);
|
var upVector = Quat.getUp(tankProperties.rotation);
|
||||||
var frontVector = Quat.getFront(tankProperties.rotation);
|
var frontVector = Quat.getFront(tankProperties.rotation);
|
||||||
var rightVector = Quat.getRight(tankProperties.rotation);
|
var rightVector = Quat.getRight(tankProperties.rotation);
|
||||||
|
|
||||||
var upOffset = Vec3.multiply(upVector, BUBBLE_SYSTEM_VERTICAL_OFFSET);
|
var upOffset = Vec3.multiply(upVector, VERTICAL_OFFSET);
|
||||||
var frontOffset = Vec3.multiply(frontVector, BUBBLE_SYSTEM_FORWARD_OFFSET);
|
var frontOffset = Vec3.multiply(frontVector, FORWARD_OFFSET);
|
||||||
var rightOffset = Vec3.multiply(rightVector, BUBBLE_SYSTEM_LATERAL_OFFSET);
|
var rightOffset = Vec3.multiply(rightVector, LATERAL_OFFSET);
|
||||||
|
|
||||||
var finalOffset = Vec3.sum(tankProperties.position, upOffset);
|
var finalOffset = Vec3.sum(tankProperties.position, upOffset);
|
||||||
finalOffset = Vec3.sum(finalOffset, frontOffset);
|
finalOffset = Vec3.sum(finalOffset, frontOffset);
|
||||||
finalOffset = Vec3.sum(finalOffset, rightOffset);
|
finalOffset = Vec3.sum(finalOffset, rightOffset);
|
||||||
|
print('final offset is: ' + finalOffset)
|
||||||
print('final bubble offset:: ' + JSON.stringify(finalOffset));
|
return finalOffset
|
||||||
bubbleProperties.position = finalOffset;
|
|
||||||
|
|
||||||
bubbleSystem = Entities.addEntity(bubbleProperties);
|
|
||||||
// createBubbleSound(finalOffset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function createBubbleSound(position) {
|
function createBubbleSound(position) {
|
||||||
|
@ -161,7 +195,7 @@ function createInnerContainer(position) {
|
||||||
position: tankProperties.position,
|
position: tankProperties.position,
|
||||||
visible: false,
|
visible: false,
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
dynamic:false
|
dynamic: false
|
||||||
};
|
};
|
||||||
|
|
||||||
innerContainer = Entities.addEntity(containerProps);
|
innerContainer = Entities.addEntity(containerProps);
|
||||||
|
@ -186,7 +220,8 @@ function createEntitiesAtCorners() {
|
||||||
blue: 0
|
blue: 0
|
||||||
},
|
},
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
position: bounds.brn
|
position: bounds.brn,
|
||||||
|
visible:false
|
||||||
}
|
}
|
||||||
|
|
||||||
var upperProps = {
|
var upperProps = {
|
||||||
|
@ -204,7 +239,8 @@ function createEntitiesAtCorners() {
|
||||||
blue: 0
|
blue: 0
|
||||||
},
|
},
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
position: bounds.tfl
|
position: bounds.tfl,
|
||||||
|
visible:false
|
||||||
}
|
}
|
||||||
|
|
||||||
lowerCorner = Entities.addEntity(lowerProps);
|
lowerCorner = Entities.addEntity(lowerProps);
|
||||||
|
@ -213,6 +249,38 @@ function createEntitiesAtCorners() {
|
||||||
print('CORNERS :::' + JSON.stringify(lowerCorner))
|
print('CORNERS :::' + JSON.stringify(lowerCorner))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createRocks() {
|
||||||
|
var finalPosition = getOffsetFromTankCenter(ROCKS_VERTICAL_OFFSET, ROCKS_FORWARD_OFFSET, ROCKS_LATERAL_OFFSET);
|
||||||
|
|
||||||
|
var properties = {
|
||||||
|
name: 'hifi-home-fishtank-rock',
|
||||||
|
type: 'Model',
|
||||||
|
parentID: fishTank,
|
||||||
|
modelURL: ROCK_MODEL_URL,
|
||||||
|
position: finalPosition,
|
||||||
|
dimensions: ROCK_DIMENSIONS
|
||||||
|
}
|
||||||
|
|
||||||
|
rocks = Entities.addEntity(properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createUrchin() {
|
||||||
|
var finalPosition = getOffsetFromTankCenter(URCHIN_VERTICAL_OFFSET, URCHIN_FORWARD_OFFSET, URCHIN_LATERAL_OFFSET);
|
||||||
|
|
||||||
|
var properties = {
|
||||||
|
name: 'hifi-home-fishtank-urchin',
|
||||||
|
type: 'Model',
|
||||||
|
parentID: fishTank,
|
||||||
|
modelURL: URCHIN_MODEL_URL,
|
||||||
|
position: finalPosition,
|
||||||
|
shapeType: 'Sphere',
|
||||||
|
dimensions: URCHIN_DIMENSIONS
|
||||||
|
}
|
||||||
|
|
||||||
|
urchin = Entities.addEntity(properties);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
createFishTank();
|
createFishTank();
|
||||||
|
|
||||||
|
@ -224,20 +292,24 @@ createEntitiesAtCorners();
|
||||||
|
|
||||||
createBubbleSound();
|
createBubbleSound();
|
||||||
|
|
||||||
|
createUrchin();
|
||||||
|
|
||||||
|
createRocks();
|
||||||
|
|
||||||
var customKey = 'hifi-home-fishtank';
|
var customKey = 'hifi-home-fishtank';
|
||||||
var id = fishTank;
|
var id = fishTank;
|
||||||
print('FISH TANK ID AT START:: '+id)
|
print('FISH TANK ID AT START:: ' + id)
|
||||||
var data = {
|
var data = {
|
||||||
fishLoaded: false,
|
fishLoaded: false,
|
||||||
bubbleSystem: bubbleSystem,
|
bubbleSystem: bubbleSystem,
|
||||||
bubbleSound: bubbleSound,
|
bubbleSound: bubbleSound,
|
||||||
corners: {
|
corners: {
|
||||||
brn: lowerCorner,
|
brn: lowerCorner,
|
||||||
tfl: upperCorner
|
tfl: upperCorner
|
||||||
},
|
},
|
||||||
innerContainer: innerContainer,
|
innerContainer: innerContainer,
|
||||||
|
|
||||||
}
|
}
|
||||||
print('DATA AT CREATE IS:::' + JSON.stringify(data));
|
print('DATA AT CREATE IS:::' + JSON.stringify(data));
|
||||||
setEntityCustomData(customKey, id, data);
|
setEntityCustomData(customKey, id, data);
|
||||||
setEntityCustomData('grabbableKey', id, {
|
setEntityCustomData('grabbableKey', id, {
|
||||||
|
@ -250,6 +322,8 @@ function cleanup() {
|
||||||
Entities.deleteEntity(innerContainer);
|
Entities.deleteEntity(innerContainer);
|
||||||
Entities.deleteEntity(lowerCorner);
|
Entities.deleteEntity(lowerCorner);
|
||||||
Entities.deleteEntity(upperCorner);
|
Entities.deleteEntity(upperCorner);
|
||||||
|
Entities.deleteEntity(urchin);
|
||||||
|
Entities.deleteEntity(rocks);
|
||||||
bubbleInjector.stop();
|
bubbleInjector.stop();
|
||||||
bubbleInjector = null;
|
bubbleInjector = null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue