mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 07:17:43 +02:00
fix merge conflics
This commit is contained in:
commit
16baeb9955
6 changed files with 157 additions and 199 deletions
|
@ -17,7 +17,7 @@
|
||||||
_this.TIME_CHECK_REFRACTORY_PERIOD = 5000;
|
_this.TIME_CHECK_REFRACTORY_PERIOD = 5000;
|
||||||
_this.checkTime = true;
|
_this.checkTime = true;
|
||||||
_this.cuckooSound = SoundCache.getSound(CUCKOO_SOUND_URL);
|
_this.cuckooSound = SoundCache.getSound(CUCKOO_SOUND_URL);
|
||||||
_this.CUCKOO_SOUND_VOLUME = 0.7;
|
_this.CUCKOO_SOUND_VOLUME = 0.0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ MyCuckooClock = function(spawnPosition, spawnRotation) {
|
||||||
var clockBody, clockFace, clockMinuteHand, clockHourHand, clockSecondHand;
|
var clockBody, clockFace, clockMinuteHand, clockHourHand, clockSecondHand;
|
||||||
|
|
||||||
function createClock() {
|
function createClock() {
|
||||||
|
var clockRotation = Quat.fromPitchYawRollDegrees(spawnRotation.x, spawnRotation.y, spawnRotation.z);
|
||||||
clockBody = Entities.addEntity({
|
clockBody = Entities.addEntity({
|
||||||
type: "Model",
|
type: "Model",
|
||||||
modelURL: CLOCK_BODY_URL,
|
modelURL: CLOCK_BODY_URL,
|
||||||
|
@ -33,6 +33,7 @@ MyCuckooClock = function(spawnPosition, spawnRotation) {
|
||||||
loop: false
|
loop: false
|
||||||
},
|
},
|
||||||
position: spawnPosition,
|
position: spawnPosition,
|
||||||
|
rotation: clockRotation,
|
||||||
dimensions: {
|
dimensions: {
|
||||||
x: 0.8181,
|
x: 0.8181,
|
||||||
y: 1.3662,
|
y: 1.3662,
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
Script.include('../utils.js');
|
|
||||||
Script.include('../../../../examples/libraries/virtualBaton.js');
|
Script.include('../../../../examples/libraries/virtualBaton.js');
|
||||||
|
|
||||||
//only one person should simulate the tank at a time -- we pass around a virtual baton
|
//only one person should simulate the tank at a time -- we pass around a virtual baton
|
||||||
|
@ -32,30 +32,11 @@
|
||||||
blue: 255
|
blue: 255
|
||||||
}
|
}
|
||||||
|
|
||||||
var TANK_DIMENSIONS = {
|
|
||||||
x: 0.8212,
|
|
||||||
y: 0.8116,
|
|
||||||
z: 2.1404
|
|
||||||
};
|
|
||||||
|
|
||||||
var LOWER_CORNER_VERTICAL_OFFSET = -TANK_DIMENSIONS.y / 2;
|
|
||||||
var LOWER_CORNER_FORWARD_OFFSET = TANK_DIMENSIONS.x;
|
|
||||||
var LOWER_CORNER_LATERAL_OFFSET = -TANK_DIMENSIONS.z / 8;
|
|
||||||
|
|
||||||
var UPPER_CORNER_VERTICAL_OFFSET = TANK_DIMENSIONS.y / 2;;
|
|
||||||
var UPPER_CORNER_FORWARD_OFFSET = -TANK_DIMENSIONS.x;
|
|
||||||
var UPPER_CORNER_LATERAL_OFFSET = TANK_DIMENSIONS.z / 8;
|
|
||||||
|
|
||||||
var upperCorner, lowerCorner;
|
|
||||||
|
|
||||||
function FishTank() {
|
function FishTank() {
|
||||||
_this = this;
|
_this = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
function startUpdate() {
|
function startUpdate() {
|
||||||
upperCorner = getOffsetFromTankCenter(LOWER_CORNER_VERTICAL_OFFSET, LOWER_CORNER_FORWARD_OFFSET, LOWER_CORNER_LATERAL_OFFSET);
|
|
||||||
lowerCorner = getOffsetFromTankCenter(UPPER_CORNER_VERTICAL_OFFSET, UPPER_CORNER_FORWARD_OFFSET, UPPER_CORNER_LATERAL_OFFSET);
|
|
||||||
|
|
||||||
//when the baton is claimed;
|
//when the baton is claimed;
|
||||||
// print('trying to claim the object' + _entityID)
|
// print('trying to claim the object' + _entityID)
|
||||||
iOwn = true;
|
iOwn = true;
|
||||||
|
@ -77,6 +58,25 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getOffsetFromTankCenter(VERTICAL_OFFSET, FORWARD_OFFSET, LATERAL_OFFSET) {
|
||||||
|
|
||||||
|
var tankProperties = Entities.getEntityProperties(_this.entityID);
|
||||||
|
|
||||||
|
var upVector = Quat.getUp(tankProperties.rotation);
|
||||||
|
var frontVector = Quat.getFront(tankProperties.rotation);
|
||||||
|
var rightVector = Quat.getRight(tankProperties.rotation);
|
||||||
|
|
||||||
|
var upOffset = Vec3.multiply(upVector, VERTICAL_OFFSET);
|
||||||
|
var frontOffset = Vec3.multiply(frontVector, FORWARD_OFFSET);
|
||||||
|
var rightOffset = Vec3.multiply(rightVector, LATERAL_OFFSET);
|
||||||
|
|
||||||
|
var finalOffset = Vec3.sum(tankProperties.position, upOffset);
|
||||||
|
finalOffset = Vec3.sum(finalOffset, frontOffset);
|
||||||
|
finalOffset = Vec3.sum(finalOffset, rightOffset);
|
||||||
|
return finalOffset
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FishTank.prototype = {
|
FishTank.prototype = {
|
||||||
fish: null,
|
fish: null,
|
||||||
tankLocked: false,
|
tankLocked: false,
|
||||||
|
@ -140,7 +140,6 @@
|
||||||
|
|
||||||
preload: function(entityID) {
|
preload: function(entityID) {
|
||||||
// print("preload");
|
// print("preload");
|
||||||
|
|
||||||
this.entityID = entityID;
|
this.entityID = entityID;
|
||||||
_entityID = entityID;
|
_entityID = entityID;
|
||||||
this.initialize(entityID);
|
this.initialize(entityID);
|
||||||
|
@ -192,12 +191,7 @@
|
||||||
},
|
},
|
||||||
color: INTERSECT_COLOR,
|
color: INTERSECT_COLOR,
|
||||||
position: position,
|
position: position,
|
||||||
collisionless: true,
|
collisionless: true
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
_this.debugSphere = Entities.addEntity(sphereProperties);
|
_this.debugSphere = Entities.addEntity(sphereProperties);
|
||||||
},
|
},
|
||||||
|
@ -263,7 +257,8 @@
|
||||||
_this.overlayLineOn(pickRay.origin, Vec3.sum(pickRay.origin, Vec3.multiply(front, _this.overlayLineDistance)), INTERSECT_COLOR);
|
_this.overlayLineOn(pickRay.origin, Vec3.sum(pickRay.origin, Vec3.multiply(front, _this.overlayLineDistance)), INTERSECT_COLOR);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// var brn = _this.userData['hifi-home-fishtank']['corners'].brn;
|
||||||
|
// var tfl = _this.userData['hifi-home-fishtank']['corners'].tfl;
|
||||||
var innerContainer = _this.userData['hifi-home-fishtank'].innerContainer;
|
var innerContainer = _this.userData['hifi-home-fishtank'].innerContainer;
|
||||||
|
|
||||||
var intersection = Entities.findRayIntersection(pickRay, true, [innerContainer], [_this.entityID]);
|
var intersection = Entities.findRayIntersection(pickRay, true, [innerContainer], [_this.entityID]);
|
||||||
|
@ -346,9 +341,9 @@
|
||||||
var LIFETIME = 300; // Fish live for 5 minutes
|
var LIFETIME = 300; // Fish live for 5 minutes
|
||||||
var NUM_FISH = 8;
|
var NUM_FISH = 8;
|
||||||
var TANK_DIMENSIONS = {
|
var TANK_DIMENSIONS = {
|
||||||
x: 1.3393,
|
x: 0.8212,
|
||||||
y: 1.3515,
|
y: 0.8116,
|
||||||
z: 3.5914
|
z: 2.1404
|
||||||
};
|
};
|
||||||
|
|
||||||
var TANK_WIDTH = TANK_DIMENSIONS.z / 2;
|
var TANK_WIDTH = TANK_DIMENSIONS.z / 2;
|
||||||
|
@ -376,6 +371,16 @@
|
||||||
var THROTTLE_RATE = 100;
|
var THROTTLE_RATE = 100;
|
||||||
var sinceLastUpdate = 0;
|
var sinceLastUpdate = 0;
|
||||||
|
|
||||||
|
|
||||||
|
var LOWER_CORNER_VERTICAL_OFFSET = (-TANK_DIMENSIONS.y / 2) + 0.3;
|
||||||
|
var LOWER_CORNER_FORWARD_OFFSET = TANK_DIMENSIONS.x;
|
||||||
|
var LOWER_CORNER_LATERAL_OFFSET = -TANK_DIMENSIONS.z / 8;
|
||||||
|
|
||||||
|
var UPPER_CORNER_VERTICAL_OFFSET = (TANK_DIMENSIONS.y / 2)-0.3;
|
||||||
|
var UPPER_CORNER_FORWARD_OFFSET = -TANK_DIMENSIONS.x;
|
||||||
|
var UPPER_CORNER_LATERAL_OFFSET = TANK_DIMENSIONS.z / 8;
|
||||||
|
|
||||||
|
|
||||||
// var FISH_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-1.fbx";
|
// var FISH_MODEL_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-1.fbx";
|
||||||
|
|
||||||
// var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-2.fbx";
|
// var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Fish-2.fbx";
|
||||||
|
@ -383,8 +388,6 @@
|
||||||
var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/goodfish5.fbx";
|
var FISH_MODEL_TWO_URL = "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/goodfish5.fbx";
|
||||||
var fishLoaded = false;
|
var fishLoaded = false;
|
||||||
|
|
||||||
var lowerCorner, upperCorner;
|
|
||||||
|
|
||||||
function randomVector(scale) {
|
function randomVector(scale) {
|
||||||
return {
|
return {
|
||||||
x: Math.random() * scale - scale / 2.0,
|
x: Math.random() * scale - scale / 2.0,
|
||||||
|
@ -403,6 +406,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (THROTTLE === true) {
|
if (THROTTLE === true) {
|
||||||
sinceLastUpdate = sinceLastUpdate + deltaTime * 100;
|
sinceLastUpdate = sinceLastUpdate + deltaTime * 100;
|
||||||
if (sinceLastUpdate > THROTTLE_RATE) {
|
if (sinceLastUpdate > THROTTLE_RATE) {
|
||||||
|
@ -413,6 +417,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// print('has userdata fish??' + _this.userData['hifi-home-fishtank'].fishLoaded)
|
||||||
|
|
||||||
if (_this.userData['hifi-home-fishtank'].fishLoaded === false) {
|
if (_this.userData['hifi-home-fishtank'].fishLoaded === false) {
|
||||||
//no fish in the user data
|
//no fish in the user data
|
||||||
_this.tankLocked = true;
|
_this.tankLocked = true;
|
||||||
|
@ -421,7 +427,13 @@
|
||||||
var data = {
|
var data = {
|
||||||
fishLoaded: true,
|
fishLoaded: true,
|
||||||
bubbleSystem: _this.userData['hifi-home-fishtank'].bubbleSystem,
|
bubbleSystem: _this.userData['hifi-home-fishtank'].bubbleSystem,
|
||||||
|
// bubbleSound: _this.userData['hifi-home-fishtank'].bubbleSound,
|
||||||
|
// corners: {
|
||||||
|
// brn: _this.userData['hifi-home-fishtank'].lowerCorner,
|
||||||
|
// tfl: _this.userData['hifi-home-fishtank'].upperCorner
|
||||||
|
// },
|
||||||
innerContainer: _this.userData['hifi-home-fishtank'].innerContainer,
|
innerContainer: _this.userData['hifi-home-fishtank'].innerContainer,
|
||||||
|
|
||||||
}
|
}
|
||||||
setEntityCustomData(FISHTANK_USERDATA_KEY, _this.entityID, data);
|
setEntityCustomData(FISHTANK_USERDATA_KEY, _this.entityID, data);
|
||||||
_this.userData['hifi-home-fishtank'].fishLoaded = true;
|
_this.userData['hifi-home-fishtank'].fishLoaded = true;
|
||||||
|
@ -438,6 +450,7 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var fish = _this.fish;
|
var fish = _this.fish;
|
||||||
// print('how many fish do i find?' + fish.length)
|
// print('how many fish do i find?' + fish.length)
|
||||||
|
|
||||||
|
@ -458,6 +471,14 @@
|
||||||
z: 0
|
z: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var userData = JSON.parse(_this.currentProperties.userData);
|
||||||
|
var innerContainer = userData['hifi-home-fishtank']['innerContainer'];
|
||||||
|
// var bounds = Entities.getEntityProperties(innerContainer, "boundingBox").boundingBox;
|
||||||
|
|
||||||
|
lowerCorner = getOffsetFromTankCenter(LOWER_CORNER_VERTICAL_OFFSET, LOWER_CORNER_FORWARD_OFFSET, LOWER_CORNER_LATERAL_OFFSET);
|
||||||
|
upperCorner = getOffsetFromTankCenter(UPPER_CORNER_VERTICAL_OFFSET, UPPER_CORNER_FORWARD_OFFSET, UPPER_CORNER_LATERAL_OFFSET);
|
||||||
|
|
||||||
// First pre-load an array with properties on all the other fish so our per-fish loop
|
// First pre-load an array with properties on all the other fish so our per-fish loop
|
||||||
// isn't doing it.
|
// isn't doing it.
|
||||||
var flockProperties = [];
|
var flockProperties = [];
|
||||||
|
@ -498,7 +519,6 @@
|
||||||
z: 0
|
z: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var othersCounted = 0;
|
var othersCounted = 0;
|
||||||
for (var j = 0; j < fish.length; j++) {
|
for (var j = 0; j < fish.length; j++) {
|
||||||
if (i != j) {
|
if (i != j) {
|
||||||
|
@ -529,6 +549,8 @@
|
||||||
//attractors
|
//attractors
|
||||||
//[position, radius, force]
|
//[position, radius, force]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_this.hasLookAttractor === true) {
|
if (_this.hasLookAttractor === true) {
|
||||||
|
@ -602,22 +624,21 @@
|
||||||
var STARTING_FRACTION = 0.25;
|
var STARTING_FRACTION = 0.25;
|
||||||
|
|
||||||
function loadFish(howMany) {
|
function loadFish(howMany) {
|
||||||
print('LOADING FISH: ' + howMany)
|
// print('LOADING FISH: ' + howMany)
|
||||||
|
|
||||||
var center = _this.currentProperties.position;
|
var center = _this.currentProperties.position;
|
||||||
|
|
||||||
var lowerCorner = {
|
lowerCorner = {
|
||||||
x: center.x - (_this.currentProperties.dimensions.z / 2),
|
x: center.x - (_this.currentProperties.dimensions.z / 2),
|
||||||
y: center.y,
|
y: center.y,
|
||||||
z: center.z - (_this.currentProperties.dimensions.z / 2)
|
z: center.z - (_this.currentProperties.dimensions.z / 2)
|
||||||
};
|
};
|
||||||
var upperCorner = {
|
upperCorner = {
|
||||||
x: center.x + (_this.currentProperties.dimensions.z / 2),
|
x: center.x + (_this.currentProperties.dimensions.z / 2),
|
||||||
y: center.y + _this.currentProperties.dimensions.y,
|
y: center.y + _this.currentProperties.dimensions.y,
|
||||||
z: center.z + (_this.currentProperties.dimensions.z / 2)
|
z: center.z + (_this.currentProperties.dimensions.z / 2)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var fish = [];
|
var fish = [];
|
||||||
|
|
||||||
for (var i = 0; i < howMany; i++) {
|
for (var i = 0; i < howMany; i++) {
|
||||||
|
@ -656,12 +677,7 @@
|
||||||
red: 0,
|
red: 0,
|
||||||
green: 255,
|
green: 255,
|
||||||
blue: 255
|
blue: 255
|
||||||
},
|
}
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -676,24 +692,6 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
function getOffsetFromTankCenter(VERTICAL_OFFSET, FORWARD_OFFSET, LATERAL_OFFSET) {
|
|
||||||
|
|
||||||
var tankProperties = Entities.getEntityProperties(_this.entityID);
|
|
||||||
|
|
||||||
var upVector = Quat.getUp(tankProperties.rotation);
|
|
||||||
var frontVector = Quat.getFront(tankProperties.rotation);
|
|
||||||
var rightVector = Quat.getRight(tankProperties.rotation);
|
|
||||||
|
|
||||||
var upOffset = Vec3.multiply(upVector, VERTICAL_OFFSET);
|
|
||||||
var frontOffset = Vec3.multiply(frontVector, FORWARD_OFFSET);
|
|
||||||
var rightOffset = Vec3.multiply(rightVector, LATERAL_OFFSET);
|
|
||||||
|
|
||||||
var finalOffset = Vec3.sum(tankProperties.position, upOffset);
|
|
||||||
finalOffset = Vec3.sum(finalOffset, frontOffset);
|
|
||||||
finalOffset = Vec3.sum(finalOffset, rightOffset);
|
|
||||||
return finalOffset
|
|
||||||
}
|
|
||||||
|
|
||||||
function setEntityUserData(id, data) {
|
function setEntityUserData(id, data) {
|
||||||
var json = JSON.stringify(data)
|
var json = JSON.stringify(data)
|
||||||
Entities.editEntity(id, {
|
Entities.editEntity(id, {
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
//
|
//
|
||||||
// createTank.js
|
// createTank.js
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// created by James b. Pollack @imgntn on 3/9/2016
|
// created by James b. Pollack @imgntn on 3/9/2016
|
||||||
// Copyright 2016 High Fidelity, Inc.
|
// Copyright 2016 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// Adds a fish tank and base, decorations, particle bubble systems, and a bubble sound. Attaches a script that does fish swimming.
|
// Adds a fish tank and base, decorations, particle bubble systems, and a bubble sound. Attaches a script that does fish swimming.
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var TANK_SCRIPT = Script.resolvePath('tank.js?' + Math.random());
|
var TANK_SCRIPT = Script.resolvePath('tank.js?' + Math.random());
|
||||||
|
|
||||||
FishTank = function(spawnPosition, spawnRotation) {
|
FishTank = function(spawnPosition, spawnRotation) {
|
||||||
var fishTank, tankBase, bubbleSystem, secondBubbleSystem, thirdBubbleSystem, innerContainer, bubbleInjector, lowerCorner, upperCorner, urchin, treasure, rocks;
|
var fishTank, tankBase, bubbleSystem, secondBubbleSystem, thirdBubbleSystem, innerContainer, bubbleInjector, lowerCorner, upperCorner, anemone, treasure, rocks;
|
||||||
var CLEANUP = true;
|
var CLEANUP = true;
|
||||||
|
|
||||||
var TANK_DIMENSIONS = {
|
var TANK_DIMENSIONS = {
|
||||||
|
@ -52,7 +49,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
z: 2.1936
|
z: 2.1936
|
||||||
};
|
};
|
||||||
|
|
||||||
var BASE_VERTICAL_OFFSET = 0.42;
|
var BASE_VERTICAL_OFFSET = 0.47;
|
||||||
|
|
||||||
var BUBBLE_SYSTEM_FORWARD_OFFSET = TANK_DIMENSIONS.x + 0.06;
|
var BUBBLE_SYSTEM_FORWARD_OFFSET = TANK_DIMENSIONS.x + 0.06;
|
||||||
var BUBBLE_SYSTEM_LATERAL_OFFSET = 0.025;
|
var BUBBLE_SYSTEM_LATERAL_OFFSET = 0.025;
|
||||||
|
@ -68,14 +65,14 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
var bubbleSound = SoundCache.getSound(BUBBLE_SOUND_URL);
|
var bubbleSound = SoundCache.getSound(BUBBLE_SOUND_URL);
|
||||||
|
|
||||||
|
|
||||||
var URCHIN_FORWARD_OFFSET = TANK_DIMENSIONS.x - 0.35;
|
var ANEMONE_FORWARD_OFFSET = TANK_DIMENSIONS.x - 0.35;
|
||||||
var URCHIN_LATERAL_OFFSET = -0.05;
|
var ANEMONE_LATERAL_OFFSET = -0.05;
|
||||||
var URCHIN_VERTICAL_OFFSET = -0.12;
|
var ANEMONE_VERTICAL_OFFSET = -0.12;
|
||||||
|
|
||||||
|
|
||||||
var URCHIN_MODEL_URL = 'http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/Urchin.fbx';
|
var ANEMONE_MODEL_URL = 'http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/anemone.fbx';
|
||||||
|
var ANEMONE_ANIMATION_URL = 'http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/anemone.fbx';
|
||||||
var URCHIN_DIMENSIONS = {
|
var ANEMONE_DIMENSIONS = {
|
||||||
x: 0.4,
|
x: 0.4,
|
||||||
y: 0.4,
|
y: 0.4,
|
||||||
z: 0.4
|
z: 0.4
|
||||||
|
@ -105,11 +102,11 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
z: 0.1020
|
z: 0.1020
|
||||||
}
|
}
|
||||||
|
|
||||||
var LOWER_CORNER_VERTICAL_OFFSET = -TANK_DIMENSIONS.y / 2;
|
var LOWER_CORNER_VERTICAL_OFFSET = (-TANK_DIMENSIONS.y / 2) + 0.3;
|
||||||
var LOWER_CORNER_FORWARD_OFFSET = TANK_DIMENSIONS.x;
|
var LOWER_CORNER_FORWARD_OFFSET = TANK_DIMENSIONS.x;
|
||||||
var LOWER_CORNER_LATERAL_OFFSET = -TANK_DIMENSIONS.z / 8;
|
var LOWER_CORNER_LATERAL_OFFSET = -TANK_DIMENSIONS.z / 8;
|
||||||
|
|
||||||
var UPPER_CORNER_VERTICAL_OFFSET = TANK_DIMENSIONS.y / 2;;
|
var UPPER_CORNER_VERTICAL_OFFSET = (TANK_DIMENSIONS.y / 2) - 0.3;
|
||||||
var UPPER_CORNER_FORWARD_OFFSET = -TANK_DIMENSIONS.x;
|
var UPPER_CORNER_FORWARD_OFFSET = -TANK_DIMENSIONS.x;
|
||||||
var UPPER_CORNER_LATERAL_OFFSET = TANK_DIMENSIONS.z / 8;
|
var UPPER_CORNER_LATERAL_OFFSET = TANK_DIMENSIONS.z / 8;
|
||||||
|
|
||||||
|
@ -120,17 +117,13 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
modelURL: TANK_MODEL_URL,
|
modelURL: TANK_MODEL_URL,
|
||||||
dimensions: TANK_DIMENSIONS,
|
dimensions: TANK_DIMENSIONS,
|
||||||
position: TANK_POSITION,
|
position: TANK_POSITION,
|
||||||
rotation: spawnRotation,
|
rotation: Quat.fromPitchYawRollDegrees(spawnRotation.x,spawnRotation.y,spawnRotation.z),
|
||||||
color: DEBUG_COLOR,
|
color: DEBUG_COLOR,
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
script: TANK_SCRIPT,
|
script: TANK_SCRIPT,
|
||||||
visible: true
|
visible: true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (spawnRotation !== undefined) {
|
|
||||||
tankProperties.rotation = Quat.fromPitchYawRollDegrees(spawnRotation.x, spawnRotation.y, spawnRotation.z)
|
|
||||||
}
|
|
||||||
|
|
||||||
fishTank = Entities.addEntity(tankProperties);
|
fishTank = Entities.addEntity(tankProperties);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,20 +172,13 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
"alphaStart": 0.3,
|
"alphaStart": 0.3,
|
||||||
"alphaFinish": 0,
|
"alphaFinish": 0,
|
||||||
"emitterShouldTrail": 0,
|
"emitterShouldTrail": 0,
|
||||||
"textures": "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/bubble-white.png",
|
"textures": "http://hifi-content.s3.amazonaws.com/DomainContent/Home/fishTank/bubble-white.png"
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bubbleProperties.type = "ParticleEffect";
|
bubbleProperties.type = "ParticleEffect";
|
||||||
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);
|
var finalOffset = getOffsetFromTankCenter(BUBBLE_SYSTEM_VERTICAL_OFFSET, BUBBLE_SYSTEM_FORWARD_OFFSET, BUBBLE_SYSTEM_LATERAL_OFFSET);
|
||||||
|
|
||||||
bubbleProperties.position = finalOffset;
|
bubbleProperties.position = finalOffset;
|
||||||
|
@ -253,12 +239,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
position: tankProperties.position,
|
position: tankProperties.position,
|
||||||
visible: false,
|
visible: false,
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
dynamic: false,
|
dynamic: false
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
innerContainer = Entities.addEntity(containerProps);
|
innerContainer = Entities.addEntity(containerProps);
|
||||||
|
@ -266,6 +247,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
|
|
||||||
function createEntitiesAtCorners() {
|
function createEntitiesAtCorners() {
|
||||||
|
|
||||||
|
var bounds = Entities.getEntityProperties(innerContainer, "boundingBox").boundingBox;
|
||||||
|
|
||||||
var lowerProps = {
|
var lowerProps = {
|
||||||
name: 'hifi-home-fishtank-lower-corner',
|
name: 'hifi-home-fishtank-lower-corner',
|
||||||
|
@ -283,12 +265,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
},
|
},
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
position: getOffsetFromTankCenter(LOWER_CORNER_VERTICAL_OFFSET, LOWER_CORNER_FORWARD_OFFSET, LOWER_CORNER_LATERAL_OFFSET),
|
position: getOffsetFromTankCenter(LOWER_CORNER_VERTICAL_OFFSET, LOWER_CORNER_FORWARD_OFFSET, LOWER_CORNER_LATERAL_OFFSET),
|
||||||
visible: true,
|
visible: true
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var upperProps = {
|
var upperProps = {
|
||||||
|
@ -307,12 +284,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
},
|
},
|
||||||
collisionless: true,
|
collisionless: true,
|
||||||
position: getOffsetFromTankCenter(UPPER_CORNER_VERTICAL_OFFSET, UPPER_CORNER_FORWARD_OFFSET, UPPER_CORNER_LATERAL_OFFSET),
|
position: getOffsetFromTankCenter(UPPER_CORNER_VERTICAL_OFFSET, UPPER_CORNER_FORWARD_OFFSET, UPPER_CORNER_LATERAL_OFFSET),
|
||||||
visible: true,
|
visible: true
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lowerCorner = Entities.addEntity(lowerProps);
|
lowerCorner = Entities.addEntity(lowerProps);
|
||||||
|
@ -329,36 +301,36 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
parentID: fishTank,
|
parentID: fishTank,
|
||||||
modelURL: ROCK_MODEL_URL,
|
modelURL: ROCK_MODEL_URL,
|
||||||
position: finalPosition,
|
position: finalPosition,
|
||||||
dimensions: ROCK_DIMENSIONS,
|
dimensions: ROCK_DIMENSIONS
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rocks = Entities.addEntity(properties);
|
rocks = Entities.addEntity(properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createUrchin() {
|
function createAnenome() {
|
||||||
var finalPosition = getOffsetFromTankCenter(URCHIN_VERTICAL_OFFSET, URCHIN_FORWARD_OFFSET, URCHIN_LATERAL_OFFSET);
|
var finalPosition = getOffsetFromTankCenter(ANEMONE_VERTICAL_OFFSET, ANEMONE_FORWARD_OFFSET, ANEMONE_LATERAL_OFFSET);
|
||||||
|
|
||||||
var properties = {
|
var properties = {
|
||||||
name: 'hifi-home-fishtank-urchin',
|
name: 'hifi-home-fishtank-anemone',
|
||||||
type: 'Model',
|
type: 'Model',
|
||||||
|
animationURL: ANEMONE_ANIMATION_URL,
|
||||||
|
animationIsPlaying: true,
|
||||||
|
animationFPS: 15,
|
||||||
|
animationSettings: JSON.stringify({
|
||||||
|
hold: false,
|
||||||
|
loop: true,
|
||||||
|
running: true,
|
||||||
|
startAutomatically: true
|
||||||
|
}),
|
||||||
parentID: fishTank,
|
parentID: fishTank,
|
||||||
modelURL: URCHIN_MODEL_URL,
|
modelURL: ANEMONE_MODEL_URL,
|
||||||
position: finalPosition,
|
position: finalPosition,
|
||||||
shapeType: 'Sphere',
|
shapeType: 'Sphere',
|
||||||
dimensions: URCHIN_DIMENSIONS,
|
rotation: Quat.fromPitchYawRollDegrees(0, 90, 0),
|
||||||
userData: JSON.stringify({
|
dimensions: ANEMONE_DIMENSIONS
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
urchin = Entities.addEntity(properties);
|
anemone = Entities.addEntity(properties);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -372,12 +344,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
modelURL: TREASURE_MODEL_URL,
|
modelURL: TREASURE_MODEL_URL,
|
||||||
position: finalPosition,
|
position: finalPosition,
|
||||||
dimensions: TREASURE_DIMENSIONS,
|
dimensions: TREASURE_DIMENSIONS,
|
||||||
rotation: Quat.fromPitchYawRollDegrees(10, -45, 10),
|
rotation: Quat.fromPitchYawRollDegrees(10, -45, 10)
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
treasure = Entities.addEntity(properties);
|
treasure = Entities.addEntity(properties);
|
||||||
|
@ -396,12 +363,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
y: TANK_POSITION.y - BASE_VERTICAL_OFFSET,
|
y: TANK_POSITION.y - BASE_VERTICAL_OFFSET,
|
||||||
z: TANK_POSITION.z
|
z: TANK_POSITION.z
|
||||||
},
|
},
|
||||||
dimensions: TANK_BASE_DIMENSIONS,
|
dimensions: TANK_BASE_DIMENSIONS
|
||||||
userData: JSON.stringify({
|
|
||||||
'hifiHomeKey': {
|
|
||||||
'reset': true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tankBase = Entities.addEntity(properties);
|
tankBase = Entities.addEntity(properties);
|
||||||
|
@ -415,7 +377,7 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
|
|
||||||
createEntitiesAtCorners();
|
createEntitiesAtCorners();
|
||||||
|
|
||||||
createUrchin();
|
createAnenome();
|
||||||
|
|
||||||
createRocks();
|
createRocks();
|
||||||
|
|
||||||
|
@ -430,13 +392,13 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
bubbleSystem: bubbleSystem,
|
bubbleSystem: bubbleSystem,
|
||||||
innerContainer: innerContainer,
|
innerContainer: innerContainer,
|
||||||
}
|
}
|
||||||
|
|
||||||
var resetKey = 'hifiHomeKey';
|
var resetKey = 'hifiHomeKey';
|
||||||
var resetData = {
|
var resetData = {
|
||||||
'reset': true
|
'reset': true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Script.setTimeout(function() {
|
Script.setTimeout(function() {
|
||||||
setEntityCustomData(customKey, fishTank, data);
|
setEntityCustomData(customKey, fishTank, data);
|
||||||
setEntityCustomData(resetKey, fishTank, resetData);
|
setEntityCustomData(resetKey, fishTank, resetData);
|
||||||
|
@ -444,7 +406,6 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
|
|
||||||
|
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
print('TANK CLEANUP!')
|
|
||||||
Entities.deleteEntity(fishTank);
|
Entities.deleteEntity(fishTank);
|
||||||
Entities.deleteEntity(tankBase);
|
Entities.deleteEntity(tankBase);
|
||||||
Entities.deleteEntity(bubbleSystem);
|
Entities.deleteEntity(bubbleSystem);
|
||||||
|
@ -453,14 +414,10 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
Entities.deleteEntity(innerContainer);
|
Entities.deleteEntity(innerContainer);
|
||||||
Entities.deleteEntity(lowerCorner);
|
Entities.deleteEntity(lowerCorner);
|
||||||
Entities.deleteEntity(upperCorner);
|
Entities.deleteEntity(upperCorner);
|
||||||
Entities.deleteEntity(urchin);
|
Entities.deleteEntity(anemone);
|
||||||
Entities.deleteEntity(rocks);
|
Entities.deleteEntity(rocks);
|
||||||
// bubbleInjector.stop();
|
|
||||||
// bubbleInjector = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function setEntityUserData(id, data) {
|
function setEntityUserData(id, data) {
|
||||||
var json = JSON.stringify(data)
|
var json = JSON.stringify(data)
|
||||||
Entities.editEntity(id, {
|
Entities.editEntity(id, {
|
||||||
|
@ -502,7 +459,4 @@ FishTank = function(spawnPosition, spawnRotation) {
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cleanup = cleanup;
|
|
||||||
print('CREATED FISH!');
|
|
||||||
}
|
}
|
|
@ -109,7 +109,7 @@
|
||||||
flower.userData = {
|
flower.userData = {
|
||||||
'hifiHomeKey': {
|
'hifiHomeKey': {
|
||||||
'reset': true
|
'reset': true
|
||||||
}
|
},
|
||||||
ProceduralEntity: {
|
ProceduralEntity: {
|
||||||
shaderUrl: _this.SHADER_URL,
|
shaderUrl: _this.SHADER_URL,
|
||||||
uniforms: {
|
uniforms: {
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
Script.include(whiteboardPath);
|
Script.include(whiteboardPath);
|
||||||
Script.include(plantPath);
|
Script.include(plantPath);
|
||||||
Script.include(cuckooClockPath);
|
Script.include(cuckooClockPath);
|
||||||
|
|
||||||
Script.include(pingPongGunPath);
|
Script.include(pingPongGunPath);
|
||||||
|
|
||||||
var center = Vec3.sum(Vec3.sum(MyAvatar.position, {
|
var center = Vec3.sum(Vec3.sum(MyAvatar.position, {
|
||||||
|
@ -119,59 +119,64 @@
|
||||||
createDynamicEntities: function() {
|
createDynamicEntities: function() {
|
||||||
|
|
||||||
|
|
||||||
// var fishTank = new FishTank({
|
var fishTank = new FishTank({
|
||||||
// x: 1098.9254,
|
x: 1098.9254,
|
||||||
// y: 460.5814,
|
y: 460.5814,
|
||||||
// z: -79.1103
|
z: -79.1103
|
||||||
// }, {
|
}, {
|
||||||
// x: 0,
|
x: 0,
|
||||||
// y: 152,
|
y: 152,
|
||||||
// z: 0
|
z: 0
|
||||||
// });
|
});
|
||||||
|
|
||||||
|
var tiltMaze = new TiltMaze({
|
||||||
|
x: 1105.5768,
|
||||||
|
y: 460.3298,
|
||||||
|
z: -80.4891
|
||||||
|
});
|
||||||
|
|
||||||
|
var whiteboard = new Whiteboard({
|
||||||
|
x: 1104,
|
||||||
|
y: 460.5,
|
||||||
|
z: -77
|
||||||
|
}, {
|
||||||
|
x: 0,
|
||||||
|
y: -133,
|
||||||
|
z: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
var myPlant = new Plant({
|
||||||
|
x: 1099.8785,
|
||||||
|
y: 460.3115,
|
||||||
|
z: -84.7736
|
||||||
|
});
|
||||||
|
|
||||||
// var tiltMaze = new TiltMaze({
|
var pingPongGun = new _PingPongGun({
|
||||||
// x: 1105.5768,
|
x: 1101.2123,
|
||||||
// y: 460.3298,
|
y: 460.2328,
|
||||||
// z: -80.4891
|
z: -65.8513
|
||||||
// });
|
}, {
|
||||||
|
x: 97.3683,
|
||||||
// var whiteboard = new Whiteboard({
|
y: 179.0293,
|
||||||
// x: 1104,
|
z: 89.9698
|
||||||
// y: 460.5,
|
});
|
||||||
// z: -77
|
|
||||||
// }, {
|
|
||||||
// x: 0,
|
|
||||||
// y: -133,
|
|
||||||
// z: 0
|
|
||||||
// });
|
|
||||||
|
|
||||||
// var myPlant = new Plant({
|
|
||||||
// x: 1099.8785,
|
|
||||||
// y: 460.3115,
|
|
||||||
// z: -84.7736
|
|
||||||
// });
|
|
||||||
|
|
||||||
// var pingPongGun = new _PingPongGun({
|
|
||||||
// x: 1101.2123,
|
|
||||||
// y: 460.2328,
|
|
||||||
// z: -65.8513
|
|
||||||
// }, {
|
|
||||||
// x: 97.3683,
|
|
||||||
// y: 179.0293,
|
|
||||||
// z: 89.9698
|
|
||||||
// });
|
|
||||||
|
|
||||||
//v2.0
|
//v2.0
|
||||||
// var musicBox = new MusicBox();
|
// var musicBox = new MusicBox();
|
||||||
var cuckooClock = new MyCuckooClock(center);
|
//var cuckooClock = new MyCuckooClock(center);
|
||||||
|
var cuckooClock = new MyCuckooClock({
|
||||||
|
x: 1104.6,
|
||||||
|
y: 461.3,
|
||||||
|
z: -82.6
|
||||||
|
}, {
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
z: 0
|
||||||
|
});
|
||||||
// var doppelganger = new Doppelganger();
|
// var doppelganger = new Doppelganger();
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
createKineticEntities: function() {
|
createKineticEntities: function() {
|
||||||
|
|
||||||
var fruitBowl = new FruitBowl({
|
var fruitBowl = new FruitBowl({
|
||||||
|
|
Loading…
Reference in a new issue