Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using System.Threading;
- using UnityEditor;
- using UnityEngine;
- using UnityEngine.Tilemaps;
- using static UnityEditor.FilePathAttribute;
- public class WaterTile : Tile
- {
- public Sprite shallowWater;
- public Sprite shallowOcean;
- public Sprite deepOcean;
- [HideInInspector]
- public float altitude;
- [HideInInspector]
- public Tile[] neighbours = new Tile[8];
- public override void GetTileData(Vector3Int position, ITilemap tilemap, ref TileData tileData)
- {
- if (altitude > 0.33f)
- {
- tileData.sprite = shallowWater;
- }
- else if (altitude < 0.24f)
- {
- tileData.sprite = deepOcean;
- }
- else
- {
- tileData.sprite = shallowOcean;
- }
- neighbours[0] = GetNeighbours(position + new Vector3Int(0, 1, 0), tilemap);
- neighbours[1] = GetNeighbours(position + new Vector3Int(1, 0, 0), tilemap);
- neighbours[2] = GetNeighbours(position + new Vector3Int(0, -1, 0), tilemap);
- neighbours[3] = GetNeighbours(position + new Vector3Int(-1, 0, 0), tilemap);
- }
- private Tile GetNeighbours(Vector3Int position, ITilemap tilemap)
- {
- return tilemap.GetTile(position) as Tile;
- }
- private bool HasWaterTile(Vector3Int position, ITilemap tilemap)
- {
- return tilemap.GetTile(position) == this;
- }
- #if UNITY_EDITOR
- [MenuItem("Assets/Create/WaterTile")]
- public static void CreateWaterTile()
- {
- string path = EditorUtility.SaveFilePanelInProject("Save Water Tile", "New Water Tile", "Asset", "Save Water Tile", "Assets/Tiles");
- if (path == "")
- return;
- AssetDatabase.CreateAsset(ScriptableObject.CreateInstance<WaterTile>(), path);
- }
- #endif
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement