Exemplo n.º 1
0
    public void InstantiateSwitchTile(SwitchTileData switchTileData)
    {
        GameObject switchTileClone = Instantiate(switchTilePrefab, switchTileData.position, Quaternion.identity);

        switchTileClone.transform.parent = transform;
        switchTileClone.name             = ComputeTileName(switchTileClone, switchTileData);
        SwitchTileController switchTileScript = switchTileClone.GetComponent <SwitchTileController>();

        switchTileScript.levelManager = this;
        switchTileScript.tileData     = switchTileData;
        currentLevelTileList.Add(switchTileClone);
    }
Exemplo n.º 2
0
    public SwitchTileData Copy()
    {
        SwitchTileData clone = new SwitchTileData();

        clone.position          = position;
        clone.actionType        = actionType;
        clone.color             = color;
        clone.targetLevelIndex  = targetLevelIndex;
        clone.textSprite        = textSprite;
        clone.levelDigitSprites = new Sprite[levelDigitSprites.Length];
        Array.Copy(levelDigitSprites, clone.levelDigitSprites, levelDigitSprites.Length);

        return(clone);
    }
 private void CheckForLevelEditing()
 {
     //If the tile has been updated in the level scriptable object, reinit the spawner
     if (!tileData.Equals(previousData))
     {
         previousData = tileData.Copy();
         Init();
     }
     else     //if the tile has been updated in the scene, update the level scriptable object
     {
         if ((Vector2)transform.position != tileData.position)
         {
             tileData.position = transform.position;
             previousData      = tileData.Copy();
         }
     }
 }
Exemplo n.º 4
0
    private string ComputeTileName(GameObject tile, SwitchTileData data)
    {
        string name = "Tile " + (currentLevelTileList.Count + 1) + " " + data.actionType.ToString();

        switch (data.actionType)
        {
        case AbstractSwitchTileActionSO.ActionType.QUIT:
            break;

        case AbstractSwitchTileActionSO.ActionType.LEVEL_SELECTOR:
            name += " " + data.targetLevelIndex;
            break;

        default:
            break;
        }
        return(name);
    }
Exemplo n.º 5
0
    public bool Equals(SwitchTileData other)
    {
        bool equals = true;

        equals &= other.position == position;
        equals &= other.actionType == actionType;
        equals &= other.color == color;
        equals &= other.targetLevelIndex == targetLevelIndex;
        equals &= other.textSprite == textSprite;
        if (levelDigitSprites == null)
        {
            equals &= other.levelDigitSprites == null;
        }
        else
        {
            equals &= other.levelDigitSprites.SequenceEqual(levelDigitSprites);
        }
        return(equals);
    }
 private void Start()
 {
     spriteRenderer = GetComponent <SpriteRenderer>();
     previousData   = tileData.Copy();
     Init();
 }