Example #1
0
    public void PlaceTile(GameTile tile, Vector2Int pos, Quaternion rotation)
    {
        //Check if it already exists
        if (placedTiles.Contains(pos))
        {
            return;
        }
        if (tilemap.HasTile((Vector3Int)pos))
        {
            return;
        }
        if (GetTilesLeft() <= 0)
        {
            return;
        }

        //Add
        tilemap.SetTile((Vector3Int)pos, tile);
        placedTiles.Add(pos);

        //Rotate
        var instance = tilemap.GetInstantiatedObject((Vector3Int)pos);

        instance.transform.rotation = rotation;
    }
Example #2
0
        // End Remove potentially



        public void doSim(int numR)
        {
            clearMap(false);

            width  = tmapSize.x;
            height = tmapSize.y;

            if (terrainMap == null)
            {
                terrainMap = new int[width, height];
                initPos();
            }

            for (int i = 0; i < numR; i++)
            {
                terrainMap = genTilePos(terrainMap);
            }

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    if (terrainMap[x, y] == 1)
                    {
                        topMap.SetTile(new Vector3Int(-x + width / 2, -y + height / 2, 0), topTile);
                        topMap.SetTile(new Vector3Int(-x + width / 2, -y + height / 2, 0), botTile);
                    }
                }
            }
        }
Example #3
0
 HighlightTile(Vector3Int ClickedCoordinate)
 {
     // Erases last highlighted tile
     m_UILayer.SetTile(m_LastTileCoordinate, null);
     // Sets new tile
     m_UILayer.SetTile(ClickedCoordinate, m_HighlightTile);
     // Updates last coordinate
     m_LastTileCoordinate = ClickedCoordinate;
 }
Example #4
0
    protected bool Move(Vector3 rel)
    {
        if (transform.position == pos)                                  // if entity has finished its previous move
        {
            if (tm.GetTile(Vector3Int.FloorToInt(pos + rel)) != mytile) // if entity is not attempting to move to a tile of its own color
            {
                tm.SetTile(Vector3Int.FloorToInt(pos), mytile);         // place the entity's tile in its current position
                pos += rel;                                             // set destination

                nextFadeTime = Time.time + 3f;
                return(true);
            }
        }

        return(false);
    }
Example #5
0
            public void UpdateTile(Vec2I v)
            {
                Vec3I gridPos   = (v * 2).Vec3();
                var   vtilePrev = tilemap.GetTile(gridPos) as T;
                var   vtile     = vtilePrev == vtileA ? vtileB : vtileA;

                for (int i = 0; i < 4; ++i)
                {
                    tilemap.SetTile(gridPos + new Vec3I(i % 2, i >> 1, 0), vtile);
                }
            }
Example #6
0
    /// <summary>
    /// 国战创建一个地图层
    /// </summary>
    /// <param name="parent">父Transform节点</param>
    /// <param name="lJMapLayer">层的数据对象</param>
    /// <param name="baseTileConfig">图块对象</param>
    /// <param name="mapDefaultTilemapMat">地图所用的材质球</param>
    /// <param name="renderMode">0 Chunk 1 Individual </param>
    /// <returns>返回一个tilemap</returns>
    public static UnityEngine.Tilemaps.Tilemap CreateLayerByNation(Transform parent, LJTilemaps.LJMapLayer lJMapLayer,
                                                                   LJTilemaps.LJBaseTileConfig baseTileConfig, Material mapDefaultTilemapMat, int renderMode)
    {
        GameObject layerGameObj = new GameObject(lJMapLayer.layerName);

        UnityEngine.Tilemaps.Tilemap         tilemap         = layerGameObj.AddComponent <UnityEngine.Tilemaps.Tilemap>();
        UnityEngine.Tilemaps.TilemapRenderer tilemapRenderer = layerGameObj.AddComponent <UnityEngine.Tilemaps.TilemapRenderer>();
        Transform layerTran = layerGameObj.transform;

        layerTran.SetParent(parent);
        layerTran.position   = lJMapLayer.worldPosition;
        tilemapRenderer.mode = (UnityEngine.Tilemaps.TilemapRenderer.Mode)renderMode;
        //tilemapRenderer.mode = UnityEngine.Tilemaps.TilemapRenderer.Mode.Chunk;//合并DC模式 0
        //tilemapRenderer.mode = UnityEngine.Tilemaps.TilemapRenderer.Mode.Individual;// 测试模式 1
        tilemapRenderer.sortingOrder   = lJMapLayer.orderInLayer;
        tilemapRenderer.sortingLayerID = lJMapLayer.sortingLayer;
        tilemap.origin            = lJMapLayer.origin;
        tilemap.size              = lJMapLayer.size;
        tilemap.orientation       = lJMapLayer.orientation;
        tilemap.orientationMatrix = lJMapLayer.orientationMatrix;

        if (mapDefaultTilemapMat != null)
        {
            tilemapRenderer.sharedMaterial = mapDefaultTilemapMat;
        }
        if (baseTileConfig == null)
        {
            return(tilemap);
        }
        List <LJTilemaps.LJTileData> tileDatas = lJMapLayer.tileDatas;

        for (int i = 0, imax = tileDatas.Count; i < imax; i++)
        {
            LJTilemaps.LJTileData v = tileDatas[i];
            if (v.tileId < 0)
            {
            }
            else
            {
                UnityEngine.Tilemaps.TileBase tileBase = baseTileConfig.GetTileBaseById(v.tileId);
                if (tileBase != null)
                {
                    tilemap.SetTile(v.position, tileBase);
                }
            }
        }
        tilemap.CompressBounds();
        return(tilemap);
    }
Example #7
0
    static int SetTile(IntPtr L)
    {
        try
        {
            ToLua.CheckArgsCount(L, 3);
            UnityEngine.Tilemaps.Tilemap obj  = (UnityEngine.Tilemaps.Tilemap)ToLua.CheckObject(L, 1, typeof(UnityEngine.Tilemaps.Tilemap));
            UnityEngine.Vector3Int       arg0 = StackTraits <UnityEngine.Vector3Int> .Check(L, 2);

            UnityEngine.Tilemaps.TileBase arg1 = (UnityEngine.Tilemaps.TileBase)ToLua.CheckObject <UnityEngine.Tilemaps.TileBase>(L, 3);
            obj.SetTile(arg0, arg1);
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }