public static void DrawSpawn(MapSpawnValues spawn, ISpriteBatch spriteBatch, IDrawableMap map, Font font) { var spawnArea = spawn.SpawnArea; // Only draw if it does not cover the whole map if (!spawnArea.X.HasValue && !spawnArea.Y.HasValue && !spawnArea.Width.HasValue && !spawnArea.Height.HasValue) return; // Draw spawn area Vector2 cameraOffset = map.Camera.Min; Rectangle rect = spawnArea.ToRectangle(map); rect.X -= (int)cameraOffset.X; rect.Y -= (int)cameraOffset.Y; RenderRectangle.Draw(spriteBatch, rect, new Color(0, 255, 0, 75), new Color(0, 0, 0, 125), 2); // Draw name CharacterTemplate charTemp = CharacterTemplateManager.Instance[spawn.CharacterTemplateID]; if (charTemp != null) { string text = string.Format("{0}x {1} [{2}]", spawn.SpawnAmount, charTemp.TemplateTable.Name, spawn.CharacterTemplateID); Vector2 textPos = new Vector2(rect.X, rect.Y); textPos -= new Vector2(0, font.MeasureString(text).Y); textPos = textPos.Round(); spriteBatch.DrawStringShaded(font, text, textPos, Color.White, Color.Black); } }
public void AddNewItem() { if (Map == null) { MessageBox.Show("The map must be set before a new spawn can be created!"); return; } var charID = CharacterTemplateManager.Instance.First().TemplateTable.ID; var newSpawn = new MapSpawnValues(DbControllerBase.GetInstance(), Map.ID, charID); this.AddItemAndReselect(newSpawn); }
/// <summary> /// Loads the NPCSpawners for a Map. /// </summary> /// <param name="map">Map to load the spawners for.</param> /// <returns>IEnumerable of the <see cref="NPCSpawner"/>s that were loaded.</returns> public static IEnumerable <NPCSpawner> LoadSpawners(Map map) { var queryValues = MapSpawnValues.Load(map.DbController, map.ID); var ret = new List <NPCSpawner>(); foreach (var queryValue in queryValues) { var spawner = new NPCSpawner(queryValue, map); ret.Add(spawner); } return(ret); }
public bool DeleteItem(MapSpawnValues item) { if (item == null) return false; if (!Items.Contains(item)) return false; var q = DbControllerBase.GetInstance().GetQuery<DeleteMapSpawnQuery>(); q.Execute(item.ID); ReloadSpawns(); return true; }
static string GetDrawString(MapSpawnValues x) { return string.Format("Char ID: {0} Count: {1} Region: {2}", x.CharacterTemplateID, x.SpawnAmount, x.SpawnArea); }
/// <summary> /// Initializes a new instance of the <see cref="EditorMapSpawnValues"/> class. /// </summary> /// <param name="msv">The <see cref="MapSpawnValues"/>.</param> /// <param name="map">The map.</param> public EditorMapSpawnValues(MapSpawnValues msv, MapBase map) { _msv = msv; _map = map; }