/// <summary> /// Converts a <see cref="LevelEntity"/> data object into <see cref="Level"/> domain model. /// </summary> /// <returns>The <see cref="Level"/> domain model.</returns> /// <param name="levelEntity">The <see cref="LevelEntity"/> data object.</param> internal static Level ToDomainModel(this LevelEntity levelEntity) { Level level = new Level { Id = levelEntity.Id, Name = levelEntity.Name, Description = levelEntity.Description, Size = new Size2D(levelEntity.Width, levelEntity.Height), BackgroundColour = ColourTranslator.FromHexadecimal(levelEntity.BackgroundColour), Tiles = new WorldTile[levelEntity.Width, levelEntity.Height] }; foreach (TerrainInstanceEntity terrainInstance in levelEntity.Terrain) { if (level.Tiles[terrainInstance.LocationX, terrainInstance.LocationY] == null) { level.Tiles[terrainInstance.LocationX, terrainInstance.LocationY] = new WorldTile(); } level.Tiles[terrainInstance.LocationX, terrainInstance.LocationY].TerrainId = terrainInstance.TerrainId; } foreach (WorldObjectInstanceEntity worldObjectInstance in levelEntity.WorldObjects) { if (level.Tiles[worldObjectInstance.LocationX, worldObjectInstance.LocationY] == null) { level.Tiles[worldObjectInstance.LocationX, worldObjectInstance.LocationY] = new WorldTile(); } level.Tiles[worldObjectInstance.LocationX, worldObjectInstance.LocationY].WorldObjectId = worldObjectInstance.WorldObjectId; } return(level); }
/// <summary> /// Converts the entity into a domain model. /// </summary> /// <returns>The domain model.</returns> /// <param name="worldObjectEntity">WorldObject entity.</param> internal static WorldObject ToDomainModel(this WorldObjectEntity worldObjectEntity) { WorldObject worldObject = new WorldObject { Id = worldObjectEntity.Id, Name = worldObjectEntity.Name, Description = worldObjectEntity.Description, MinimapColour = ColourTranslator.FromHexadecimal(worldObjectEntity.MinimapColour) }; return(worldObject); }
/// <summary> /// Converts the entity into a domain model. /// </summary> /// <returns>The domain model.</returns> /// <param name="textureEntity">Texture entity.</param> internal static Terrain ToDomainModel(this TerrainEntity textureEntity) { Terrain terrain = new Terrain { Id = textureEntity.Id, Name = textureEntity.Name, Description = textureEntity.Description, Colour = ColourTranslator.FromHexadecimal(textureEntity.ColourHexadecimal) }; return(terrain); }
/// <summary> /// Converts the colour to a hexadecimal string. /// </summary> /// <returns>A string representing the hexadecimal code of the colour.</returns> public string ToHexadecimal() => ColourTranslator.ToHexadecimal(this);
/// <summary> /// Converts the colour to a 32 bit integer. /// </summary> /// <returns>The ARGB integer value.</returns> public int ToArgb() => ColourTranslator.ToArgb(this);
/// <summary> /// Creates a colour from a hexadecimal code. /// </summary> /// <returns>The colour.</returns> /// <param name="hexa">Hexadecimal code.</param> public static Colour FromHexadecimal(string hexa) => ColourTranslator.FromHexadecimal(hexa);
/// <summary> /// Creates a colour from ARGB values. /// </summary> /// <returns>The colour.</returns> /// <param name="a">Alpha value.</param> /// <param name="r">Red value.</param> /// <param name="g">Green value.</param> /// <param name="b">Blue value.</param> public static Colour FromArgb(int a, int r, int g, int b) => ColourTranslator.FromArgb(a, r, g, b);
/// <summary> /// Creates a colour from ARGB values. /// </summary> /// <returns>The colour.</returns> /// <param name="a">Alpha value.</param> /// <param name="r">Red value.</param> /// <param name="g">Green value.</param> /// <param name="b">Blue value.</param> public static Colour FromArgb(byte a, byte r, byte g, byte b) => ColourTranslator.FromArgb(a, r, g, b);
/// <summary> /// Creates a colour from an ARGB integer. /// </summary> /// <returns>The colour.</returns> /// <param name="argb">ARGB integer.</param> public static Colour FromArgb(int argb) => ColourTranslator.FromArgb(argb);