Exemplo n.º 1
0
 public TileData this[Point2 point]
 {
     get
     {
         return tiles[point.X + point.Y * LayerWidth];
     }
     set { tiles[point.X + point.Y * LayerWidth] = value; }
 }
        public void CanAddTileTypeWithoutPrefab()
        {
            LayerData ld = new LayerData(null, "SuperLayer", 1, 1);
            TileType type = new TileType(1);
            Point2 position = new Point2(0, 0);

            bool result = ld.AddTile(position, type);

            Assert.IsTrue(result);
            Assert.IsNotNull(ld[position]);
        }
Exemplo n.º 3
0
 public bool AddTile(Point2 tilePoint, TileData prefab)
 {
     if (this[tilePoint.X, tilePoint.Y] == null) return false;
     if (AddTile(tilePoint, prefab.TileType))
     {
         this[tilePoint.X, tilePoint.Y].Transform.localScale = prefab.Transform.localScale;
         this[tilePoint.X, tilePoint.Y].Transform.rotation = prefab.Transform.rotation;
         return true;
     }
     else
         return false;
 }
        public void CanAddTileTypeWithPrefab()
        {
            LayerData ld = new LayerData(null, "SuperLayer", 1, 1);
            GameObject go = new GameObject("TestGo");
            TileType type = new TileType(1,go);
            Point2 position = new Point2(0, 0);

            bool result = ld.AddTile(position, type);

            Assert.IsTrue(result);
            Assert.IsNotNull(ld[position]);
            Assert.IsNotNull(ld[position].GameObject);
        }
 public ArchitectTilePositionGetter(Vector3 position, LayerData selectedLayer)
 {
     layer = selectedLayer;
     if (selectedLayer == null)
     {
         Clear();
         Valid = false;
     }
     else
     {
         Vector3 TileP = position.Div(new Vector3(selectedLayer.TileWidth, selectedLayer.TileHeight, 1)).Round().SetValues(0, Axes.Z);
         tilePosition = new Point2((int)TileP.x, (int)TileP.y);
         tileWorlPosition = TileP.Mult(new Vector3(selectedLayer.TileWidth, selectedLayer.TileHeight, 1));
         Valid = layer.IsInLayerBound(tilePosition.X, tilePosition.Y);
     }
 }
Exemplo n.º 6
0
 public void AddTile(Point2 tilePoint, TileType tileType, ArchitectRotationFlip rotationFlip)
 {
     if (this[tilePoint.X, tilePoint.Y] == null) return;
     AddTile(tilePoint, tileType);
     rotationFlip.ApplyTo(this[tilePoint.X, tilePoint.Y].Transform);
 }
Exemplo n.º 7
0
 public void AddTile(Point2 tilePoint, TileType tileType, int rotationFlags)
 {
     if (this[tilePoint.X, tilePoint.Y] == null) return;
     AddTile(tilePoint, tileType);
     ArchitectRotationHandler.ApplyFlipFlags(this[tilePoint.X, tilePoint.Y].Transform, rotationFlags);
 }
Exemplo n.º 8
0
 public void EmptyTile(Point2 tilePoint)
 {
     this[tilePoint.X, tilePoint.Y].GameObject.Destroy();
     this[tilePoint.X, tilePoint.Y] = TileData.Empty;
 }
Exemplo n.º 9
0
 public void Open(string path)
 {
     OpenFileBrowser.gameObject.SetActive(false);
     clearAllLayer();
     var layers = WorldOpener.OpenFile(Linker, path, MapParent);
     mapDimension = new Point2(layers[0].LayerWidth, layers[0].LayerHeight);
     Layers.AddRange(layers);
     SelectedLayer = layers[0];
     //LayerPanel.RefreshUI();
     ResetGridSize();
 }
Exemplo n.º 10
0
 public void New(string text, int width, int height)
 {
     FileName = text;
     mapDimension = new Point2(width, height);
     New();
 }
Exemplo n.º 11
0
 public bool IsTileEmpty(Point2 tilePoint)
 {
     TileData tileData = this[tilePoint.X, tilePoint.Y];
     return (tileData == null || tileData.TileType.IsNullOrIdZero());
 }
Exemplo n.º 12
0
 private bool InRange(Point2 tilePoint)
 {
     return getTile(tilePoint.X, tilePoint.Y) != null;
 }
 private void Clear()
 {
     tilePosition = Point2.Zero;
     tileWorlPosition = Vector3.zero;
 }
Exemplo n.º 14
0
        public bool IsTileEmpty(Point2 tilePoint)
        {
            TileData tileData = this[tilePoint.X, tilePoint.Y];

            return(tileData == null || tileData.TileType.IsNullOrIdZero());
        }
Exemplo n.º 15
0
        public MazeChunk CreateChunk(Point2 position, Orientations orientation, GameObject maze, MazeChunk[,] map)
        {
            position += ToDirection(orientation);

            var chunk = Instantiate(Chunks.GetRandom());
            chunk.name = string.Format("{0}_{1}", position.X, position.Y);
            chunk.Position = position;
            chunk.Orientation = orientation;
            chunk.CachedTransform.parent = maze.transform;
            chunk.CachedTransform.localPosition = position;
            map[position.X, position.Y] = chunk;

            CreateWalls(chunk, map);

            return chunk;
        }
Exemplo n.º 16
0
        public bool HasValidOrientation(Point2 position, MazeChunk[,] map)
        {
            for (int i = 0; i < orientations.Length; i++)
            {
                var orientation = orientations[i];
                var adjustedPoint = position + ToDirection(orientation);

                if (map.ContainsPoint(adjustedPoint) && map.Get(adjustedPoint) == null)
                    return true;
            }

            return false;
        }
Exemplo n.º 17
0
 public static bool ContainsPoint <T>(this T[,] array, Point2 point)
 {
     return(point.X >= array.GetLowerBound(0) && point.X < array.GetUpperBound(0) && point.Y >= array.GetLowerBound(1) && point.Y < array.GetUpperBound(1));
 }
Exemplo n.º 18
0
 public static void Set <T>(this T[,] array, Point2 point, T value)
 {
     array[point.X, point.Y] = value;
 }
Exemplo n.º 19
0
 public static T Get <T>(this T[,] array, Point2 point)
 {
     return(array[point.X, point.Y]);
 }
Exemplo n.º 20
0
        /*public void setSelectedTile(int id)
        {
            SelectedTileType = Linker.Tilesets[0].Tiles[id - 1];
        }

        public void AddSelectedTileType(LayerData layer, Vector3 worldP, Point2 tilePoint)
        {
            layer.AddTile(tilePoint, toolControler.SelectedTileType, toolControler.RotationFlip);
        }*/
        /*public void AddTile(LayerData layer, Vector3 worldP, Point2 tilePoint, TileType tileType)
        {
            layer.AddTile(tilePoint, tileType, toolControler.RotationFlip);
        }*/
        public void AddTile(LayerData layer, Vector3 worldP, Point2 tilePoint, TileType tileType, ArchitectRotationFlip RotationFlip)
        {
            layer.AddTile(tilePoint, tileType, RotationFlip);
        }
Exemplo n.º 21
0
 public void RemoveTile(Point2 tilePoint)
 {
     SelectedLayer.EmptyTile(tilePoint);
 }
Exemplo n.º 22
0
        public Orientations GetRandomValidOrientation(Point2 position, MazeChunk[,] map)
        {
            orientations.Shuffle();

            for (int i = 0; i < orientations.Length; i++)
            {
                var orientation = orientations[i];
                var adjustedPoint = position + ToDirection(orientation);

                if (map.ContainsPoint(adjustedPoint) && map.Get(adjustedPoint) == null)
                    return orientation;
            }

            return Orientations.Right;
        }
Exemplo n.º 23
0
 public void AddTile(Point2 tilePoint, TileType tileType, float angle, bool horizontal, bool vertical)
 {
     if (this[tilePoint.X, tilePoint.Y] == null) return;
     AddTile(tilePoint, tileType);
     ArchitectRotationHandler.ApplyRotationFlip(this[tilePoint.X, tilePoint.Y].Transform, angle, horizontal, vertical);
 }
Exemplo n.º 24
0
        public bool AddTile(Point2 tilePoint, TileType tileType)
        {
            if (!InRange(tilePoint)) return false;
            if (tileType == null) return false;

            if (tileType.Prefab != null)
            {
                GameObject newTile = UnityEngine.Object.Instantiate(tileType.Prefab);

                newTile.transform.SetPosition(new Vector3(tilePoint.X, tilePoint.Y, 0));
                newTile.transform.parent = LayerTransform;
                newTile.name = tileType.Prefab.name;
                TileData tileData = new TileData(tileType, newTile);
                this[tilePoint.X, tilePoint.Y] = tileData;
            }
            else
            {
                TileData tileData = new TileData(tileType, null);
                this[tilePoint.X, tilePoint.Y] = tileData;
            }
            return true;
        }
Exemplo n.º 25
0
 public void EmptyTile(Point2 tilePoint)
 {
     this[tilePoint.X, tilePoint.Y].GameObject.Destroy();
     this[tilePoint.X, tilePoint.Y] = TileData.Empty;
 }
Exemplo n.º 26
0
        private void readLayerLine(LayerData layer, int y, int lineWidth)
        {
            for (int x = 0; x < lineWidth; x++)
            {
                int value = readNextInt();
                int id = ArchitectRotationHandler.RemoveRotationFlags(value);
                int rotationFlags = ArchitectRotationHandler.GetRotationFlags(value);
                Point2 position = new Point2(x, y);
                TileType tileType = null;
                if (id == 0)
                    continue;
                tileType = linker.Tilesets[0][id - 1];
                layer.AddTile(position, tileType, rotationFlags);

            }
        }
Exemplo n.º 27
0
 private bool InRange(Point2 tilePoint)
 {
     return(getTile(tilePoint.X, tilePoint.Y) != null);
 }