示例#1
0
        public override Sprite GetApplicableSprite(Vector3Int position, ITilemap tilemap)
        {
            int      hash = position.GetHashCode();
            OctoMask mask = tilemap.GetOctoMask(position, t => t.EqualsEX(this));

            if (randomize_with_position)
            {
                hash = hash.AbsorbObjectHash(tilemap.GetComponent <Transform>().GetSpacarPosition());
            }

            return(cache.Fetch(mask)
                   .PickACongruent(hash, t => t.GetWeight())
                   .IfNotNull(t => t.GetSprite()));
        }