private WWObject PlaceObject(Vector3 position)
        {
            int          tileIndex   = Mathf.Abs(curTile) % possibleTiles.Count;
            Coordinate   coordinate  = CoordinateHelper.UnityCoordToWWCoord(position);
            var          wwTransform = new WWTransform(coordinate, curRotation);
            WWObjectData objData     = WWObjectFactory.CreateNew(wwTransform, possibleTiles[tileIndex]);
            WWObject     go          = WWObjectFactory.Instantiate(objData);

            return(go);
        }
Example #2
0
        private WWObject ForceRotateAndPlaceObject(Vector3 position)
        {
            int          theRot       = curRotation;
            Coordinate   coordRotated = CoordinateHelper.UnityCoordToWWCoord(position);
            var          wwTransform  = new WWTransform(coordRotated, theRot);
            WWObjectData objData      = WWObjectFactory.CreateNew(wwTransform, GetResourceTag());
            WWObject     go           = WWObjectFactory.Instantiate(objData);

            return(go);
        }
        public static void AddObjectToSceneGraph()
        {
            Assert.AreEqual(0, ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().SceneSize());
            var          coordinate   = new Coordinate(0, 0, 0);
            var          wwTransform  = new WWTransform(coordinate);
            WWObjectData wwObjectData = WWObjectFactory.CreateNew(wwTransform, "white");
            WWObject     wwObject     = WWObjectFactory.Instantiate(wwObjectData);

            ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(wwObject);
            Assert.AreEqual(1, ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().SceneSize());
        }
Example #4
0
        private void CreateCube(Vector3 controllerPos)
        {
            Coordinate cubePosition = CoordinateHelper.UnityCoordToWWCoord(controllerPos);

            Debug.Log("Cube Position: " + cubePosition.Index.x + ", " + cubePosition.Index.y + ", " +
                      cubePosition.Index.z);

            var          wwTransform = new WWTransform(cubePosition);
            WWObjectData data        = WWObjectFactory.CreateNew(wwTransform, "white");
            WWObject     obj         = WWObjectFactory.Instantiate(data);

            ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(obj);
        }
Example #5
0
        /// <summary>
        /// Instantiates the WwObject wall belonging to the resource and adds the wall to the active
        /// Scene Graph.
        /// </summary>
        /// <param name="coordIndex">The coordinate index for this perimeter wall.</param>
        /// <param name="rotation">The valid rotation for this perimeter.</param>
        /// <param name="resourceTag">The resourceTag from which to load the WWObject from.</param>
        private static void PlaceWallObject(IntVector3 coordIndex, int rotation, string resourceTag)
        {
            var          coordinate  = new Coordinate(coordIndex);
            var          wwTransform = new WWTransform(coordinate, rotation);
            WWObjectData objData     = WWObjectFactory.CreateNew(wwTransform, resourceTag);
            WWObject     go          = WWObjectFactory.Instantiate(objData);

            if (!ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(go))
            {
                // this error should never happen as TryToPlaceWall checks for collision before calling this function
                Debug.LogError("Could not place wall because of collision, deleting temp");
                UnityEngine.Object.Destroy(go.gameObject);
            }
        }
Example #6
0
        private readonly string assetName       = "tile_wallbrick";  // the exact name of the tile inside of the Asset Bundle

        private void Start()
        {
            // create a coordinate to place the tile
            var coordinate  = new Coordinate(0, 0, 0);
            var wwTransform = new WWTransform(coordinate, 0);
            // create the data needed to instantiate this tile
            WWObjectData tileData =
                WWObjectFactory.CreateNew(wwTransform, string.Format("{0}_{1}", assetBundleName, assetName));
            // instantiate the tile in the world
            WWObject tile = WWObjectFactory.Instantiate(tileData);

            // add the newly created tile to the SceneGraph
            ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(tile);
        }
        private void CreateObject(Vector3 position)
        {
            if (curObject != null)
            {
                Destroy(curObject.gameObject);
            }

            Coordinate coordinate  = CoordinateHelper.UnityCoordToWWCoord(position);
            var        wwTransform = new WWTransform(coordinate, curRotation);

            if (ManagerRegistry.Instance.GetAnInstance <WWObjectGunManager>().GetPossibleObjectKeys().Count > 0)
            {
                WWObjectData objData = WWObjectFactory.CreateNew(wwTransform,
                                                                 ManagerRegistry.Instance.GetAnInstance <WWObjectGunManager>().GetPossibleObjectKeys()[curTileIndex]);
                curObject = WWObjectFactory.Instantiate(objData);
            }
        }
        public static List <Coordinate> CreateTerrainFromImage(Texture2D heightmap)
        {
            var coordinates = new List <Coordinate>();
            var maxHeight   = 10;

            for (var x = 0; x < heightmap.width; x++)
            {
                for (var y = 0; y < heightmap.height; y++)
                {
                    var height = (int)(heightmap.GetPixel(x, y).r *maxHeight);
                    var c      = new Coordinate(x, height, y);
                    coordinates.Add(c);

                    var wwTransform = new WWTransform(c, 0);

                    WWObjectData parentData = WWObjectFactory.CreateNew(wwTransform, "white");
                    WWObject     parentObj  = WWObjectFactory.Instantiate(parentData);
                    ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(parentObj);


                    while (height > 0)
                    {
                        height--;
                        c = new Coordinate(x, height, y);
                        coordinates.Add(c);
                        wwTransform = new WWTransform(c, 0);

                        WWObjectData childData = WWObjectFactory.CreateNew(wwTransform, "white");

                        WWObject childObj = WWObjectFactory.Instantiate(childData);
                        ManagerRegistry.Instance.GetAnInstance <SceneGraphManager>().Add(childObj);

                        var children = new List <WWObject>();
                        children.Add(childObj);
                        parentObj.AddChildren(children);
                        parentObj = childObj;
                    }
                }
            }
            return(coordinates);
        }
Example #9
0
        private WWObject PlaceObject(Vector3 position)
        {
            List <int> possibleConfigurations =
                BuilderAlgorithms.GetPossibleRotations(position, GetResourceTag());

            if (possibleConfigurations.Count == 0)
            {
                return(null);
            }
            int theRot = possibleConfigurations[0];

            if (possibleConfigurations.Contains(curRotation))
            {
                theRot = curRotation;
            }
            Coordinate   coordRotated = CoordinateHelper.UnityCoordToWWCoord(position);
            var          wwTransform  = new WWTransform(coordRotated, theRot);
            WWObjectData objData      = WWObjectFactory.CreateNew(wwTransform, GetResourceTag());
            WWObject     go           = WWObjectFactory.Instantiate(objData);

            return(go);
        }
Example #10
0
 public WWTransformJSONBlob(WWTransform wwTransform)
 {
     coordinateJSONBlob = new CoordinateJSONBlob(wwTransform.coordinate);
     rotation           = wwTransform.rotation;
 }
 public static WWObjectData Create(Guid id, WWTransform wwTransform, string resourceTag)
 {
     return(new WWObjectData(id, wwTransform, null, new List <WWObjectData>(), resourceTag));
 }
 public static WWObjectData CreateNew(WWTransform wwTransform, string resourceTag)
 {
     return(Create(Guid.NewGuid(), wwTransform, resourceTag));
 }