/
Vagabond132
/
TerrariaCourse
Обзор
Документация
Войти
/
Vagabond132
/
TerrariaCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
Windows
Model/Blocks/BlockBuilder.cs
152 строки
4 KB
Vagabond132
Соглашение
13 янв 2025, 13:34
13 янв 2025, 13:34
8528b00
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Model.Blocks { /// <summary> /// Шаблон билдер для блоков /// </summary> public class BlockBuilder : IBlockBuilder { private string _name = "Отсутствует имя"; // Название блока private char _sign = ' '; private int _durability = 1; // Прочность (число) private int _toolRequirement = 1; // Требуемый инструмент (число) private int _colorCode = 0; // Редкость (число) /// <summary> /// Конструктор /// </summary> public BlockBuilder() { } /// <summary> /// Есть ли коллизия с блоком /// </summary> private bool HasCollision { get; set; } = true; /// <summary> /// Может ли сущность заменять этот блок /// </summary> bool CanBeReplaced { get; set; } = true; /// <summary> /// Может ли сущность ставить этот блок /// </summary> bool CanBePlaced { get; set; } = true; /// <summary> /// Количество очков за блок /// </summary> int Value { get; set; } = 0; public AbstractBlock Build() { return new Block( this._name, this._durability, this._toolRequirement, this._colorCode, this.HasCollision, this.CanBeReplaced, this.CanBePlaced, this._sign, this.Value ); } /// <summary> /// Задать прочность блока /// </summary> /// <param name="parDurability"> прочность блока</param> /// <returns></returns> public IBlockBuilder SetDurability(int parDurability) { this._durability = parDurability; return this; } /// <summary> /// Задать имя блока /// </summary> /// <param name="parDame">имя блока</param> /// <returns></returns> public IBlockBuilder SetName(string parDame) { this._name = parDame; return this; } /// <summary> /// Задать редкость блока /// </summary> /// <param name="parRarity"></param> /// <returns></returns> public IBlockBuilder SetColorCode(int parRarity) { this._colorCode = parRarity; return this; } /// <summary> /// Задать стоимость блока /// </summary> /// <param name="rarity"></param> /// <returns></returns> public IBlockBuilder SetValue(int parValue) { this.Value = parValue; return this; } /// <summary> /// Задать редкость блока /// </summary> /// <param name="parRarity"></param> /// <returns></returns> public IBlockBuilder SetSign(char parRarity) { this._sign = parRarity; return this; } /// <summary> /// Задать номер инструмента для добычи /// </summary> /// <param name="parToolRequirement"></param> /// <returns></returns> public IBlockBuilder SetToolRequirement(int parToolRequirement) { this._toolRequirement = parToolRequirement; return this; } /// <summary> /// Задать отсутствие коллизии с блоком /// </summary> /// <returns></returns> public IBlockBuilder hasNotCollision() { this.HasCollision = false; return this; } /// <summary> /// Задать отсутствие возможности заенять блок /// </summary> /// <returns></returns> public IBlockBuilder canNotBeReplaced() { this.CanBeReplaced = false; return this; } /// <summary> /// Задать отсутствие возможности ставить блок /// </summary> /// <returns></returns> public IBlockBuilder canNotBePlaced() { this.CanBePlaced = false; return this; } } }