Exemplo n.º 1
0
    private bool createTile(int x, int y, int tileID, bool check = false, DeviceData device = null)
    {
        TilePoint key = new TilePoint(x, y);

        if (tileSet.ContainsKey(key.index))
        {
            Debug.Log("Existing index " + key.index);
            return(false);
        }
        key.ship = this;

        Vector2 hexpos = ShipData.HexOffset(x, y);

        GameObject obj = Instantiate(ShipData.tileResource, new Vector3(hexpos.x + transform.position.x, hexpos.y + transform.position.y), Quaternion.identity) as GameObject;

        obj.transform.parent = this.transform;
        obj.tag = type;
        HexaTile src = obj.GetComponent <HexaTile>();

        src.tileID = tileID;
        src.key    = key;
        src.createDevice(tileID);

        if (device != null)
        {
            src.device.UpdateData(device);
        }

        tileSet.Add(key.index, src);
        if (tileID == 1)
        {
            zero = src.key;
        }

        if (!check)
        {
            return(true);
        }

        RecalcShip();

        if (src.connected)
        {
            RecalcEnergy();
            return(true);
        }

        tileSet.Remove(src.key.index);
        Destroy(obj);

        RecalcShip();
        RecalcEnergy();

        return(false);
    }