1 using System.Collections.Generic;
3 using FBLibrary.Core.BaseEntities;
4 using FBClient.Core.Entities;
5 using Microsoft.Xna.Framework;
6 using Microsoft.Xna.Framework.Graphics;
7 using FBClient.TileEngine;
9 namespace FBClient.WorldEngine
16 Texture2D _mapTexture;
17 Texture2D _wallTexture;
21 private readonly List<EdgeWall> _edgeWallList;
22 private readonly List<UnbreakableWall> _unbreakableWallList;
23 private List<Teleporter> _teleporterList;
24 private readonly List<Arrow> _arrowList;
28 #region Property Region
32 get {
return _tileMap; }
35 public List<Teleporter> TeleporterList
37 get {
return _teleporterList; }
38 set { _teleporterList = value; }
43 #region Constructor Region
47 _edgeWallList =
new List<EdgeWall>();
48 _unbreakableWallList =
new List<UnbreakableWall>();
49 _teleporterList =
new List<Teleporter>();
50 _arrowList =
new List<Arrow>();
55 #region XNA Method Region
59 _wallTexture = FinalBomber.Instance.Content.Load<Texture2D>(
"Graphics/Characters/edgeWall");
60 _mapTexture = FinalBomber.Instance.Content.Load<Texture2D>(
"Graphics/Tilesets/tileset1");
62 var tilesets =
new List<Tileset>() {
new Tileset(_mapTexture, 64, 32, 32, 32) };
63 var layer =
new MapLayer(Size.X, Size.Y);
64 var mapLayers =
new List<MapLayer> { layer };
65 _tileMap =
new TileMap(tilesets, mapLayers);
68 public void Update(GameTime gameTime)
72 public void Draw(GameTime gameTime, SpriteBatch spriteBatch,
Camera2D camera)
75 var position =
new Vector2(
79 for (
int i = 0; i < (FinalBomber.Instance.GraphicsDevice.Viewport.Width / Engine.TileWidth) + 2; i++)
81 for (
int j = 0; j < (FinalBomber.Instance.GraphicsDevice.Viewport.Height / Engine.TileHeight) + 2; j++)
85 (position.Y + j * Engine.TileHeight > Engine.Origin.Y &&
86 position.Y + j * Engine.TileHeight < Engine.Origin.Y + Size.Y * Engine.TileHeight - Engine.TileHeight)))
94 _tileMap.Draw(spriteBatch, camera, CollisionLayer);
97 foreach (var edgeWall
in _edgeWallList)
98 edgeWall.Draw(gameTime);
100 foreach (var unbreakableWall
in _unbreakableWallList)
101 unbreakableWall.Draw(gameTime);
103 foreach (var teleporter
in TeleporterList)
104 teleporter.Draw(gameTime);
106 foreach (var arrow
in _arrowList)
107 arrow.Draw(gameTime);
113 _unbreakableWallList.Add(unbreakableWall);
115 base.AddUnbreakableWall(unbreakableWall);
120 var edgeWall =
new EdgeWall(position);
121 _edgeWallList.Add(edgeWall);
123 base.AddEdgeWall(edgeWall);
void Update(GameTime gameTime)
override void AddEdgeWall(Point position)
override void AddUnbreakableWall(Point position)
void Draw(GameTime gameTime, SpriteBatch spriteBatch, Camera2D camera)