/// <summary> /// Loads a map. Example: "maps/testmap/", "testmap.tmx" /// </summary> void LoadMap(string fileFolder, string fileName) { var fm = new FileManager <TTileMap>(); map = fm.ImportRaw("Content/" + fileFolder + fileName); engine = new Engine(map); cam = new Camera2DControlled(); cam.Zoom = 3f; camera2DCutscenes = new List <Camera2DCutscene>(); for (int i = 0; i < map.tileSets.Count; ++i) { var ts_fm = new FileManager <TTileSet>(); var loaded_set = ts_fm.ImportRaw("Content/" + fileFolder + map.tileSets[i].source); loaded_set.source = map.tileSets[i].source; loaded_set.firstgid = map.tileSets[i].firstgid; var file = loaded_set.image.image_source.Remove(loaded_set.image.image_source.Length - 4, 4); loaded_set.image.texture = Content.Load <Texture2D>("maps/testmap/" + file); map.tileSets[i] = loaded_set; // Set new reference map.tileSets[i].Properties.CopyFrom(loaded_set.Properties); // Copy the properties map.tileSets[i].CreateClips(); // Create clips after loading the *.tsx file. } foreach (var l in map.tileLayers) { l.tileData.ConstructTiles(map.tileWidth, l.width, l.height); } this.player = CreatePlayer(); engine.AddEntity(player); var builder = new EntityBuilder(); foreach (var ogroups in map.objectGroups) { foreach (var obj in ogroups.objects) { var ent = builder.CreateFromFile(obj, "Content/entities/" + obj.type); engine.AddEntity(ent); if (ent.type.Equals("Spawn") && ent.name.Equals("spawn_start")) { this.spawn = ent.pos; player.pos = spawn; } if (ent.type.Equals("LoadZone")) { var collider = ent.GetComponent <Collider>(); collider.Collided += LoadZone_LoadMap; } } } }
public Engine(TTileMap map) { this.map = map; this.entities = new List <Entity>(); this._uuid = new UUID(); }