source: 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/World/Tiles/Tile.cs @ 4550

Revision 4550, 1.6 KB checked in by dezhidki, 7 years ago (diff)

Talletus.

Line 
1using CastleMaster.Graphics;
2using Microsoft.Xna.Framework;
3using CastleMaster.Physics;
4using CastleMaster.Entities;
5using System.Collections.Generic;
6
7namespace CastleMaster.World.Tiles
8{
9    public class Tile : BoundingRectangleOwner
10    {
11        private int id;
12
13        public Tile(Level level)
14        {
15            IsSolid = false;
16            level.RegisteredTiles.Add(this);
17            id = level.RegisteredTiles.Count - 1;
18        }
19
20        public int ID { get { return id; } }
21
22        public bool IsSolid { get; protected set; }
23
24        public virtual BoundingRectangle GetBoundingRect(int xTile, int zTile)
25        {
26            return new BoundingRectangle(xTile * Viewport.ZOOM, zTile * Viewport.ZOOM, (xTile + 1) * Viewport.ZOOM, (zTile + 1) * Viewport.ZOOM, this);
27        }
28
29        public virtual void AddBoundingRect(ref List<BoundingRectangle> list, int xTile, int zTile)
30        {
31            list.Add(new BoundingRectangle(xTile * Viewport.ZOOM, zTile * Viewport.ZOOM, (xTile + 1) * Viewport.ZOOM, (zTile + 1) * Viewport.ZOOM, this));
32        }
33
34        public virtual void Update(Level level, int tileX, int tileZ) { }
35
36        public virtual void Render(RenderHelper renderer, Level level, Vector2 screenPos, int tileX, int tileZ, byte dataVal) { }
37
38        public virtual void OnTouched(BoundingRectangleOwner touching) { }
39
40        public virtual void OnTouchedBy(BoundingRectangleOwner toucher) { }
41
42        public virtual void OnCollidedWith(BoundingRectangleOwner colliding) { }
43
44        public virtual void OnCollidedBy(BoundingRectangleOwner collidable) { }
45    }
46}
Note: See TracBrowser for help on using the repository browser.