protected override void Execute() { if (!GenerateableTileLibrary.IsTile(gameObject.name)) { Abort(); } }
protected override void Execute() { string levelFileName = StringHelper.ConvertToXMLCompatible(levelNameStatus.Name); LevelSaveData levelSaveData = SerializeHelper.Deserialize <LevelSaveData>(LevelDataPath.Path + levelFileName); List <Vector2> standardTileGridPositions = levelSaveData.StandardTileGridPositions; List <Vector2> nonStandardTileGridPositions = new List <Vector2>(); foreach (TileSaveData tileSaveData in levelSaveData.NonStandardTilesSaveData) { GenerateableTileNode generateableTileNode = GenerateableTileLibrary.GetGeneratableTileNode(tileSaveData.TileType); if (!generateableTileNode.UserGenerated) { continue; } nonStandardTileGridPositions.Add(tileSaveData.GridPosition); } List <Vector2> userGeneratedTileGridPositions = standardTileGridPositions.Concat(nonStandardTileGridPositions).ToList(); TileGenerator.SpawnTiles(userGeneratedTileGridPositions); List <LevelObjectSaveData> levelObjectsSaveData = levelSaveData.LevelObjectsSaveData; SpawnLevelObjects(levelObjectsSaveData); }
private GameObject InstantiateRectangleStandardTile(List <Vector2> rectangle, Transform parent) { Vector2 centerGridPosition = rectangle.Center(); Vector2 startGridPosition = rectangle.Lowest(); Vector2 endGridPosition = rectangle.Highest(); Vector2 centerWorldPosition = LevelEditorGridHelper.GridToNodePosition(centerGridPosition); Vector2 startWorldPosition = LevelEditorGridHelper.GridToNodePosition(startGridPosition); Vector2 endWorldPosition = LevelEditorGridHelper.GridToNodePosition(endGridPosition); Vector2 offset = VectorHelper.Abs(endWorldPosition - startWorldPosition); float nodeSize = LevelEditorGridNodeSizeLibrary.Instance.NodeSize; float width = offset.x + nodeSize; float height = offset.y + nodeSize; Vector2 scale = new Vector2(width, height); GenerateableTileNode generatableTileNode = GenerateableTileLibrary.GetGeneratableTileNode(TileType.Standard); GameObject standardTile = Object.Instantiate(generatableTileNode.Prefab, centerWorldPosition, new Quaternion(), parent); standardTile.transform.localScale = scale; return(standardTile); }
private static GenerateableTileLibrary GetInstance() { if (instance == null) { instance = Resources.Load <GenerateableTileLibrary>(GENERATABLE_TILE_LIBRARY_PATH); } return(instance); }
protected override void Execute() { LevelSaveData levelSaveData = deserializedLevelSaveDataStatus.LevelSaveData; foreach (TileSaveData nonStandardTileSaveData in levelSaveData.NonStandardTilesSaveData) { GameObject prefab = GenerateableTileLibrary.GetGeneratableTileNode(nonStandardTileSaveData.TileType).Prefab; Vector2 position = LevelEditorGridHelper.GridToNodePosition(nonStandardTileSaveData.GridPosition); Quaternion rotation = nonStandardTileSaveData.Rotation; GameObject nonStandardTile = Object.Instantiate(prefab, position, rotation); Vector2 size = new Vector2(LevelEditorGridNodeSizeLibrary.Instance.NodeSize, LevelEditorGridNodeSizeLibrary.Instance.NodeSize); nonStandardTile.transform.localScale = size; nonStandardTile.transform.SetParent(levelContainerStatus.LevelContainer); } }
private static bool CheckTileTypeUserGenerated(TileType tileType) { GenerateableTileNode generatableTile = GenerateableTileLibrary.GetGeneratableTileNode(tileType); return(generatableTile.UserGenerated); }