예제 #1
0
    // Update is called once per frame
    void Update()
    {
        if (prevselect)
        {
            prevselect.SpriteDeSelect();
        }
        RaycastHit hit;
        int        x, y;

        x = 0;
        y = 0;
        Ray             ray            = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit2D    hitInformation = Physics2D.GetRayIntersection(ray, 10);
        SpriteSelection select         = null;

        if (hitInformation)
        {
            x = System.Convert.ToInt32(hitInformation.transform.position.x);
            y = System.Convert.ToInt32(hitInformation.transform.position.y);
            if (hitInformation.transform.tag == "Tile")
            {
                select = boardScript.CurrentMapTiled[x][y].prefab.GetComponent <SpriteSelection>();
                select.SpriteSelect();
            }
        }

        prevselect = select;
    }
예제 #2
0
 public void SetObjectData(BuildManager bm, Transform worldHolder, GameObject hoverBlock, SpriteRenderer hoverSprite,
                           SpriteSelection spriteSelection, Block selected, Inventory inv, Camera cam)
 {
     BuildData.bm              = bm;
     BuildData.worldHolder     = worldHolder;
     BuildData.hoverBlock      = hoverBlock;
     BuildData.hoverSprite     = hoverSprite;
     BuildData.spriteSelection = spriteSelection;
     BuildData.selected        = selected;
     BuildData.inv             = inv;
     BuildData.cam             = cam;
 }
    // Update is called once per frame
    void Update()
    {
        if (!rootObj)
        {
            rootObj = transform.root.gameObject;
            return;
        }

        switch (mSpriteSelType)
        {
        case SelectionType.eSelectionAim:
        {
            PlayerAimController playerAimControl = rootObj.GetComponent <PlayerAimController>();
            if (playerAimControl)
            {
                currentDirection = playerAimControl.GetAimDirection();
            }
            break;
        }

        case SelectionType.eSelectionMove:
        {
            PlayerMoveController playerMove = rootObj.GetComponent <PlayerMoveController>();
            if (playerMove)
            {
                currentDirection = playerMove.GetAimDirection();
            }
            break;
        }
        }
        if (m_directionalSprites.ContainsKey(currentDirection))
        {
            SpriteRenderer spriteRender = GetComponent <SpriteRenderer>();
            if (spriteRender)
            {
                SpriteSelection chosen = m_directionalSprites[currentDirection];
                spriteRender.sprite = chosen.spriteSelection;
            }
        }

        if (bVerboseLogging)
        {
            Debug.Log("Current direction :" + currentDirection.ToString());
        }
    }
예제 #4
0
    IEnumerator Start()
    {
        height = (buildSettings.maxBuildHeight + buildSettings.minBuildHeight) / 2;
        width  = (buildSettings.maxBuildWidth + buildSettings.minBuildWidth) / 2;

        InitializeWorld();

        inv    = GetComponent <Inventory>();
        cam    = FindObjectOfType <Camera>();
        canvas = FindObjectOfType <MapBuilderCanvas>();
        timer  = FindObjectOfType <Timer>();

        timer.Initialize(buildSettings.buildTime);
        timer.StartCountdown();

        FindObjectOfType <GridGenerator>().GenerateLines(buildSettings.maxBuildWidth, buildSettings.maxBuildHeight);

        spriteSelection = FindObjectOfType <SpriteSelection>();
        spriteSelection.gameObject.SetActive(false);

        hoverBlock                    = Instantiate(BlockData.Instance.prefabs[BlockType.empty], transform);
        hoverSprite                   = hoverBlock.GetComponent <SpriteRenderer>();
        hoverSprite.color             = emptyPlace;
        hoverBlock.transform.position = new Vector3(hoverBlock.transform.position.x, hoverBlock.transform.position.y, hoverOffset);

        UpdateSelectKeys();
        InputManager.Instance.ControlsChanged += UpdateSelectKeys;

        buildData.SetDimensions(height, width);
        buildData.SetMapState(blockData, blockView);
        buildData.SetObjectData(this, worldHolder, hoverBlock, hoverSprite, spriteSelection, selected, inv, cam);
        buildData.Start();

        yield return(new WaitForEndOfFrame());

        onDimensionsChanged?.Invoke(width, height);
    }
예제 #5
0
 void InitGame()
 {
     boardScript.ReadFromMap(map);
     prevselect = boardScript.CurrentMapTiled[0][0].prefab.GetComponent <SpriteSelection>();
 }
예제 #6
0
    protected void MapAvailibleTiles(int x, int y, int move, int moved, bool color)
    {
        SpriteSelection select = navigator.CurrentMapTiled[x][y].prefab.GetComponent <SpriteSelection>();

        if (color)
        {
            select.SpriteSelect();
        }
        else
        {
            select.SpriteDeSelect();
        }

        if (moved < move)
        {
            for (int i = 0; i <= 3; i++)
            {
                switch (i)
                {
                case 0:    //вверх
                    if (y != 0)
                    {
                        if (navigator.CurrentMapTiled[x][y - 1].ifTaken != 1 && !(navigator.CurrentMapTiled[x][y - 1] is ObjectTile))
                        {
                            MapAvailibleTiles(x, y - 1, move, moved + 1, color);
                        }
                    }

                    break;

                case 1:    //вправо
                    if (x != navigator.CurrentMapTiled[x].Length)
                    {
                        if (navigator.CurrentMapTiled[x + 1][y].ifTaken != 1 && !(navigator.CurrentMapTiled[x + 1][y] is ObjectTile))
                        {
                            MapAvailibleTiles(x + 1, y, move, moved + 1, color);
                        }
                    }
                    break;

                case 2:    //вниз
                    if (y != navigator.CurrentMapTiled.Length)
                    {
                        if (navigator.CurrentMapTiled[x][y + 1].ifTaken != 1 && !(navigator.CurrentMapTiled[x][y + 1] is ObjectTile))
                        {
                            MapAvailibleTiles(x, y + 1, move, moved + 1, color);
                        }
                    }
                    break;

                case 3:    //влево
                    if (x != 0)
                    {
                        if (navigator.CurrentMapTiled[x - 1][y].ifTaken != 1 && !(navigator.CurrentMapTiled[x - 1][y] is ObjectTile))
                        {
                            MapAvailibleTiles(x - 1, y, move, moved + 1, color);
                        }
                    }
                    break;
                }
            }
        }
    }