public void Render(Position pos, Dungeon map)
 {
     GameObject doorPortal = (GameObject)Object.Instantiate(clonableRoomPortal);
     // walls
     if (!map.HasContent(pos + new Position (-1, 0, 0))) {
         doorPortal.transform.Rotate(0,180,0);
         doorPortal.transform.position = map.Scaled(pos.Vector3 + new Vector3 (-0.5f, 0, 0));
     }
     else if (!map.HasContent(pos + new Position (1, 0, 0))) {
         doorPortal.transform.Rotate(0,0,0);
         doorPortal.transform.position = map.Scaled(pos.Vector3 + new Vector3 (0.5f, 0, 0));
     }
     else if (!map.HasContent(pos + new Position (0, 0, -1))) {
         doorPortal.transform.Rotate(0,90,0);
         doorPortal.transform.position = map.Scaled(pos.Vector3 + new Vector3 (0, 0, -0.5f));
     }
     else if (!map.HasContent(pos + new Position (0, 0, 1))) {
         doorPortal.transform.Rotate(0,270,0);
         doorPortal.transform.position = map.Scaled(pos.Vector3 + new Vector3 (0, 0, 0.5f));
     }
 }
 public void Render(Position pos, Dungeon map)
 {
     torch = (GameObject)Object.Instantiate(clonableTorch);
     // walls
     if (!map.HasContent(pos + new Position (-1, 0, 0))) {
         torch.transform.Rotate(0,180,0);
         torch.transform.position = map.Scaled(pos.Vector3 + new Vector3 (-0.5f, 0, 0));
     }
     else if (!map.HasContent(pos + new Position (1, 0, 0))) {
         torch.transform.Rotate(0,0,0);
         torch.transform.position = map.Scaled(pos.Vector3 + new Vector3 (0.5f, 0, 0));
     }
     else if (!map.HasContent(pos + new Position (0, 0, -1))) {
         torch.transform.Rotate(0,90,0);
         torch.transform.position = map.Scaled(pos.Vector3 + new Vector3 (0, 0, -0.5f));
     }
     else if (!map.HasContent(pos + new Position (0, 0, 1))) {
         torch.transform.Rotate(0,270,0);
         torch.transform.position = map.Scaled(pos.Vector3 + new Vector3 (0, 0, 0.5f));
     }
     else {
         Object.Destroy(torch.gameObject);
     }
 }
        public void Render(Position pos, Dungeon map)
        {
            GameObject wall;

            // floor
            if (!map.HasContent(pos + new Position (0, -1, 0))) {
            wall = GameObject.CreatePrimitive (PrimitiveType.Quad);
            wall.renderer.material = floorMaterial;
            map.AddChild(wall);
            wall.transform.Rotate(90,0,0);
            wall.transform.position = pos.Vector3 + new Vector3 (0, -0.5f, 0);
            }

            // ceiling
            if (!map.HasContent(pos + new Position (0, 1, 0))) {
            wall = GameObject.CreatePrimitive (PrimitiveType.Quad);
            wall.renderer.material = ceilingMaterial;
            map.AddChild(wall);
            wall.transform.Rotate(-90,0,0);
            wall.transform.position = pos.Vector3 + new Vector3 (0, 0.5f, 0);
            }

            // walls
            if (!map.HasContent(pos + new Position (-1, 0, 0))) {
            wall = GameObject.CreatePrimitive (PrimitiveType.Quad);
            wall.renderer.material = wallMaterial;
            map.AddChild(wall);
            wall.transform.Rotate(0,-90,0);
            wall.transform.position = pos.Vector3 + new Vector3 (-0.5f, 0, 0);
            }
            if (!map.HasContent(pos + new Position (1, 0, 0))) {
            wall = GameObject.CreatePrimitive (PrimitiveType.Quad);
            wall.renderer.material = wallMaterial;
            map.AddChild(wall);
            wall.transform.Rotate(0,90,0);
            wall.transform.position = pos.Vector3 + new Vector3 (0.5f, 0, 0);
            }
            if (!map.HasContent(pos + new Position (0, 0, -1))) {
            wall = GameObject.CreatePrimitive (PrimitiveType.Quad);
            wall.renderer.material = wallMaterial;
            map.AddChild(wall);
            wall.transform.Rotate(0,180,0);
            wall.transform.position = pos.Vector3 + new Vector3 (0, 0, -0.5f);
            }
            if (!map.HasContent(pos + new Position (0, 0, 1))) {
            wall = GameObject.CreatePrimitive (PrimitiveType.Quad);
            wall.renderer.material = wallMaterial;
            map.AddChild(wall);
            wall.transform.Rotate(0,0,0);
            wall.transform.position = pos.Vector3 + new Vector3 (0, 0, 0.5f);
            }
        }