From b2f16570967c72d243ebc8680eb5c220ba628f5a Mon Sep 17 00:00:00 2001
From: Thijs Wenker <me@thoys.nl>
Date: Wed, 23 Jan 2019 19:28:34 +0100
Subject: [PATCH] grid pattern

---
 .../materials/boxgridpatterncreatezonew.png   | Bin 0 -> 8623 bytes
 .../system/modules/entityShapeVisualizer.js   |  49 ++++++++----------
 2 files changed, 22 insertions(+), 27 deletions(-)
 create mode 100644 scripts/system/assets/images/materials/boxgridpatterncreatezonew.png

diff --git a/scripts/system/assets/images/materials/boxgridpatterncreatezonew.png b/scripts/system/assets/images/materials/boxgridpatterncreatezonew.png
new file mode 100644
index 0000000000000000000000000000000000000000..2ecc7f85704c735794e8881b8cd3116422096874
GIT binary patch
literal 8623
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
K^_Fw!v3~+z)}_J#

literal 0
HcmV?d00001

diff --git a/scripts/system/modules/entityShapeVisualizer.js b/scripts/system/modules/entityShapeVisualizer.js
index 5c91b1311c..d1136c513c 100644
--- a/scripts/system/modules/entityShapeVisualizer.js
+++ b/scripts/system/modules/entityShapeVisualizer.js
@@ -11,7 +11,6 @@
 //
 
 var SHAPETYPE_TO_SHAPE = {
-    "sphere": "Sphere",
     "box": "Cube",
     "ellipsoid": "Sphere",
     "cylinder-y": "Cylinder",
@@ -23,13 +22,23 @@ function getEntityShapePropertiesForType(properties) {
             if (SHAPETYPE_TO_SHAPE[properties.shapeType]) {
                 return {
                     type: "Shape",
-                    shape: SHAPETYPE_TO_SHAPE[properties.shapeType]
-                }
+                    shape: SHAPETYPE_TO_SHAPE[properties.shapeType],
+                    localDimensions: properties.localDimensions
+                };
             } else if (properties.shapeType === "compound") {
                 return {
                     type: "Model",
-                    modelURL: properties.compoundShapeURL
-                }
+                    modelURL: properties.compoundShapeURL,
+                    localDimensions: properties.localDimensions
+                };
+            } else if (properties.shapeType === "sphere") {
+                var sphereDiameter = Math.max(properties.localDimensions.x, properties.localDimensions.y,
+                    properties.localDimensions.z);
+                return {
+                    type: "Sphere",
+                    modelURL: properties.compoundShapeURL,
+                    localDimensions: {x: sphereDiameter, y: sphereDiameter, z: sphereDiameter}
+                };
             }
             break;
     }
@@ -37,8 +46,9 @@ function getEntityShapePropertiesForType(properties) {
     // Default properties
     return {
         type: "Shape",
-        shape: "Cube"
-    }
+        shape: "Cube",
+        localDimensions: properties.localDimensions
+    };
 }
 
 function getStringifiedEntityShapePropertiesForType(properties) {
@@ -65,17 +75,11 @@ EntityShape.prototype = {
 
         overlayProperties.localPosition = Vec3.ZERO;
         overlayProperties.localRotation = Quat.IDENTITY;
-        overlayProperties.localDimensions = properties.localDimensions;
         overlayProperties.canCastShadows = false;
         overlayProperties.parentID = this.entityID;
         overlayProperties.collisionless = true;
         this.entity = Entities.addEntity(overlayProperties, "local");
-
-        console.warn("created " + this.entity);
-        console.warn("SHAPETYPE = " + properties.shapeType);
-        console.warn("SHAPE = " + Entities.getEntityProperties(this.entity, "shape").shape);
-
-
+        var PROJECTED_MATERIALS = false;
         this.materialEntity = Entities.addEntity({
             type: "Material",
             localPosition: Vec3.ZERO,
@@ -83,39 +87,31 @@ EntityShape.prototype = {
             localDimensions: properties.localDimensions,
             parentID: this.entity,
             priority: 1,
+            materialMappingMode: PROJECTED_MATERIALS ? "projected" : "uv",
             materialURL: "materialData",
             materialData: JSON.stringify({
                 materialVersion: 1,
                 materials: {
                     albedo: [0.0, 0.0, 7.0],
                     unlit: true,
-                    opacity: 0.4
+                    opacity: 0.4,
+                    albedoMap: Script.resolvePath("../assets/images/materials/boxgridpatterncreatezonew.png")
                 }
             }),
         }, "local");
-
     },
-
     update: function() {
         var properties = Entities.getEntityProperties(this.entityID, REQUESTED_ENTITY_SHAPE_PROPERTIES);
         var propertiesForTypeStringified = getStringifiedEntityShapePropertiesForType(properties);
         if (propertiesForTypeStringified !== this.previousPropertiesForTypeStringified) {
             this.previousPropertiesForTypeStringified = propertiesForTypeStringified;
-            console.warn("Clearing old properties");
             this.clear();
             this.initialize(properties, propertiesForTypeStringified);
         } else {
             Entities.editEntity(this.entity, {
-                localDimensions: properties.localDimensions,
+                localDimensions: JSON.parse(propertiesForTypeStringified).localDimensions,
             });
         }
-
-
-
-        //this.previousProperties = Entities.getEntityProperties(this.entityID, REQUESTED_ENTITY_SHAPE_PROPERTIES);
-
-
-        console.warn(JSON.stringify(this.previousProperties));
     },
     clear: function() {
         Entities.deleteEntity(this.materialEntity);
@@ -192,7 +188,6 @@ EntityShapeVisualizer.prototype = {
         });
 
         deleteEntries.forEach(function(entityID) {
-            console.warn("removing " + entityID);
             this.removeEntity(entityID);
         }, this);