using System; using System.IO; using UnityEngine; namespace Tiles { /// /// Base class of all Tile types /// public abstract class BaseTile { protected Sprite _sprite; public virtual Sprite Sprite => _sprite; protected BaseTile(String pathToImageFile) { _sprite = GenerateSpriteFromFile(pathToImageFile); HouseController.NewDayEvent.AddListener(DayLightStep); } public virtual void DayLightStep() { } /// /// Used to generate Sprites from files /// /// Path to the Image file to be Converted to the Sprite /// the created Sprite static public 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; } } }