using System; using System.IO; using UnityEngine; namespace Tiles { public abstract class BaseTile { private Sprite _sprite; public Sprite Sprite => _sprite; protected BaseTile(String pathToImageFile) { this._sprite = GenerateSpriteFromFile(pathToImageFile); } protected void Start() { } protected void Update() { } public void DayLightStep() { } public virtual BaseTile Clicked(UsableItem usable) { Debug.Log(usable + " used on " + this); return null; } static protected Sprite GenerateSpriteFromFile(String pathToImageFile) { byte[] data = File.ReadAllBytes(pathToImageFile); Texture2D texture = new Texture2D(32, 32, TextureFormat.ARGB32, false); texture.LoadImage(data); Sprite sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), 32); return sprite; } } }