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); }
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(); } } }
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); }
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(); }