From 3ad2d1aa9bf3d3571cfd27345e7440a57d586368 Mon Sep 17 00:00:00 2001 From: ericrius1 Date: Fri, 4 Mar 2016 17:32:29 -0800 Subject: [PATCH] flowers spawning and growing correctly --- .../plant/growingPlantEntityScript.js | 36 ++++++++++++++----- .../homeContent/plant/growingPlantSpawner.js | 1 + .../homeContent/plant/waterCanEntityScript.js | 2 +- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/examples/homeContent/plant/growingPlantEntityScript.js b/examples/homeContent/plant/growingPlantEntityScript.js index 63bd60023b..0849a3931b 100644 --- a/examples/homeContent/plant/growingPlantEntityScript.js +++ b/examples/homeContent/plant/growingPlantEntityScript.js @@ -19,7 +19,11 @@ _this = this; _this.flowers = []; // _this.STARTING_FLOWER_DIMENSIONS = {x: 0.1, y: 0.001, z: 0.1} - _this.STARTING_FLOWER_DIMENSIONS = {x: 0.2, y: 0.01, z: 0.2} + _this.STARTING_FLOWER_DIMENSIONS = { + x: 0.1, + y: 0.01, + z: 0.1 + } }; @@ -30,13 +34,13 @@ // we're being watered- every now and then spawn a new flower to add to our growing list // If we don't have any flowers yet, immediately grow one var data = JSON.parse(data[0]); - if (_this.flowers.length < 1000) { + if (_this.flowers.length < 1000) { _this.createFlower(data.position, data.surfaceNormal); } - _this.flowers.forEach( function(flower) { - flower.grow(); + _this.flowers.forEach(function(flower) { + flower.grow(); }); @@ -44,23 +48,37 @@ createFlower: function(position, surfaceNormal) { var flowerRotation = Quat.rotationBetween(Vec3.UNIT_Y, surfaceNormal); - print("flower rotation " + flowerRotation.x) var flowerEntityID = Entities.addEntity({ type: "Sphere", name: "flower", position: position, + collisionless: true, rotation: flowerRotation, dimensions: _this.STARTING_FLOWER_DIMENSIONS, userData: JSON.stringify(_this.flowerUserData) }); - var flower = {id: flowerEntityID, dimensions: _this.STARTING_FLOWER_DIMENSIONS, startingPosition: position, rotation: flowerRotation}; + var flower = { + id: flowerEntityID, + dimensions: {x: _this.STARTING_FLOWER_DIMENSIONS.x, y: _this.STARTING_FLOWER_DIMENSIONS.y, z: _this.STARTING_FLOWER_DIMENSIONS.z}, + startingPosition: position, + rotation: flowerRotation, + maxYDimension: randFloat(0.2, 1.5), + growthRate: randFloat(0.0001, 0.001) + }; + print(_this.STARTING_FLOWER_DIMENSIONS.y) flower.grow = function() { // grow flower a bit - flower.dimensions.y += 0.001; - flower.position = Vec3.sum(flower.startingPosition, Vec3.multiply(Quat.getUp(flower.rotation), flower.dimensions.y/2)); + if (flower.dimensions.y > flower.maxYDimension) { + return; + } + flower.dimensions.y += flower.growthRate; + flower.position = Vec3.sum(flower.startingPosition, Vec3.multiply(Quat.getUp(flower.rotation), flower.dimensions.y / 2)); //As we grow we must also move ourselves in direction we grow! - Entities.editEntity(flower.id, {dimensions: flower.dimensions, position: flower.position}); + Entities.editEntity(flower.id, { + dimensions: flower.dimensions, + position: flower.position + }); } _this.flowers.push(flower); }, diff --git a/examples/homeContent/plant/growingPlantSpawner.js b/examples/homeContent/plant/growingPlantSpawner.js index 37339e1bcb..f62ffdc8fe 100644 --- a/examples/homeContent/plant/growingPlantSpawner.js +++ b/examples/homeContent/plant/growingPlantSpawner.js @@ -49,6 +49,7 @@ var waterCanRotation = orientation; var waterCan = Entities.addEntity({ type: "Model", shapeType: 'box', + name: "hifi-water-can", modelURL: WATER_CAN_MODEL_URL, script: WATER_CAN_SCRIPT_URL, dimensions: {x: 0.1859, y: 0.2762, z: 0.4115}, diff --git a/examples/homeContent/plant/waterCanEntityScript.js b/examples/homeContent/plant/waterCanEntityScript.js index 5c89010386..63841d08d4 100644 --- a/examples/homeContent/plant/waterCanEntityScript.js +++ b/examples/homeContent/plant/waterCanEntityScript.js @@ -165,7 +165,7 @@ green: 10, blue: 200 }, - lineWidth: 1, + lineWidth: 2, alpha: 1, visible: true, ignoreRayIntersection: true