Example #1
0
		public Rect GetTileBoundsWorld (IVector2 coord)
		{
			Rect rect = GetTileBoundsLocal (coord);
			rect.x += transform.position.x;
			rect.y += transform.position.y;
			return rect;
		}
		public TileMeshSettings (IVector2 tiles, int tileResolution, float tileSize, MeshMode meshMode, TextureFormat textureFormat)
		{
			Tiles			= tiles;
			TileResolution	= tileResolution;
			TileSize		= tileSize;
			MeshMode		= meshMode;
			TextureFormat	= textureFormat;
		}
		[UsedImplicitly] private void OnEnable ()
		{
			_tileMap	= (TileMap) target;
			_tileSheet	= _tileMap.TileSheet;

			TileMeshSettings meshSettings = _tileMap.MeshSettings;

			if (meshSettings == null) return;

			_tiles			= meshSettings.Tiles;
			_tileResolution	= meshSettings.TileResolution;
		}
		private void SetTile (IVector2 coord, Color32[] colors)
		{
			if (MaterialTexture == null)
			{
				Debug.LogError("Texture has not been created");
				return;
			}

			int resolution = base.Settings.TileResolution;
			coord *= resolution;
			
			_texture.SetPixels32 (coord.x, coord.y, resolution, resolution, colors, 0);

			if (Application.isPlaying) _dirty = true;
			else _texture.Apply ();
		}
Example #5
0
		public Rect GetTileBoundsLocal (IVector2 coord)
		{
			float size = _settings.TileSize;
			return new Rect (coord.x * size, coord.y * size, size, size);
		}
Example #6
0
		public abstract void SetTile (IVector2 coord, Sprite sprite);
Example #7
0
		/// <summary> Multiplies every component of this vector by the same component of scale. </summary>
		/// <param name="scale"/>
		public void Scale (IVector2 scale)
		{
			x *= scale.x;
			y *= scale.y;
		}
Example #8
0
		/// <summary> Multiplies two vectors component-wise. </summary>
		/// <param name="a"/><param name="b"/>
		public static IVector2 Scale (IVector2 a, IVector2 b)
		{
			return new IVector2 (a.x * b.x, a.y * b.y);
		}
Example #9
0
		public bool Equals (IVector2 other)
		{
			if (ReferenceEquals (null, other)) return false;
			if (ReferenceEquals (this, other)) return true;
			return other.x == x && other.y == y;
		}
		public TileMeshSettings (IVector2 tiles, int tileResolution, float tileSize, MeshMode meshMode) : this (tiles, tileResolution, tileSize, meshMode, TextureFormat.ARGB32)
		{ }
		public TileMeshSettings (IVector2 tiles, int tileResolution, float tileSize) : this (tiles, tileResolution, tileSize, MeshMode.SingleQuad)
		{ }
		public TileMeshSettings (IVector2 tiles, int tileResolution) : this (tiles, tileResolution, 1f)
		{ }
		public void SetTile (IVector2 coord, Color32 color)
		{
			Color32[] colors = Enumerable.Repeat (color, base.Settings.TileResolution * base.Settings.TileResolution).ToArray();
			SetTile (coord, colors);
		}
		public override void SetTile (IVector2 coord, Sprite sprite)
		{
			Color[] spriteColours = sprite.texture.GetPixels((int)sprite.rect.x, (int)sprite.rect.y, (int)sprite.rect.width, (int)sprite.rect.height);

			SetTile (coord, Array.ConvertAll(spriteColours, item => (Color32)item));
		}