Версия 3.0.7

09.10.2007

  • В классе WearBlock добавлены методы GetVariants и GetInstanceVariant.
  • Добавлена заготовка команды "одеть".
  • В классе Character реализованы вирт.методы GetSlots и GetSlot.
  • Добавлен класс ItemSlotHost.
  • В классе NerealAbstract добавлены вирт.метод GetSlotHost и метод GetItemBySlot.
  • В классе Character добавлено свойство SlotHost и реализован вирт.метод GetSlotHost.

11.10.2007

  • В классе ItemSlotType добавлен вирт.метод GetTypes.
  • В классах WearVariant и WearBlockSlots добавлен метод GetSlotTypes.
  • Реализован метод поиска текущего варианта по текущим слотам.
  • В классе Item метод IsExemplarOf переименован в IsInstanceOf.
  • В классе Item добавлено свойство IsEquipment.
  • В классе ItemSlotHost добавлены методы IsBusy и IsFree.
  • В классе Item добавлен метод EquipTo.
  • В классе WearBlock добавлен метод EquipAs.
  • Команда "одеть" доведена до рабочего варианта.
  • Добавлена команда "!предмет" и ее подкоманда "создать".
  • Команда "инвентарь" подправлена для вывода только не надетых предметов.

12.10.2007

  • В классе ItemSlotType добавлено свойство Name.
  • Команда "осмотреть" доработана для просмотра надетых предметов.
  • Добавлен метод Utility.Join.
  • Команда "осмотреть" слегка оптимизирована и доработана для исключения повтора одинаковых названий слотов.
  • Переделана работа с InputError для возможности выдачи ошибок со всеми возможностями шаблонов.
  • В классе NerealAbstract добавлен метод GetParent<T> - получение ближайшего предка указанного типа.
  • В методе NerealAbstract.GetEntities добавлена обработка параметра IteratorSource.Location.
  • В классе Item добавлен метод UnequipTo.
  • В классе WearBlock метод EquipAs переименован в Equip.
  • В классе WearBlock добавлен метод Unequip.
  • Добавлена команда "снять".
  • Команда "осмотреть" доработана для просмотра возможных вариантов использования предмета.
  • Если у персонажа не указана локация, то он переносится в локацию по умолчанию.
  • Команда "одеть" доработана для обработки параметра, на кого надевать.

14.10.2007

  • Добавлен класс ItemAlternateSlotType - альтернатива косметики для другого одиночного типа. Равнозначно ItemMultiSlotType с одним типом в списке.
  • Полностью заполнена косметика в имеющемся списке типов слотов (файл itemslots.xml).
  • Тип слота "рукавица" переименован в "на руке".
  • Заполнен список слотов у расы "человек" (пока единственной).
  • Добавлены класс SlotEffect и перечислимый тип SlotEffectType - описание воздействия между слотами.
  • В классе ItemSlot добавлено свойство Effects - список воздействий на другие слоты.
  • Команда "осмотреть" доработана для определения скрытых слотов и исключения их из видимого списка.
  • Добавлен перехват ошибок при загрузке мира.
  • В списках расовых слотов добавлены описания для различения левых и правых слотов.
  • Исправлена команда "дать".
  • В классе Item добавлено свойство IsClosedEquipment.
  • Команда "осмотреть" не даст осмотреть предмет, если он закрыт другими.

15.10.2007

  • В классе ItemSlot добавлен метод EffectExists.
  • В классе NerealAbstract добавлен метод IsClosedSlot.
  • Команда "осмотреть" доработана для осмотра предметов, надетых на ком-то/чем-то другом.
  • В методе NerealClient.Echo параметр bool wrap заменен на EchoFlag flags.
  • Добавлен флаг EchoFlag.NotLine - запрет добавления символов окончания строки в посылаемый текст.
  • В классе ItemSlotDescription алиасы при десериализации и при изменении раскладываются на массив.
  • В команде "одеть" реализована проверка алиасов.
  • В командах "одеть" и "снять" реализована проверка блокировки слотов.
  • NodeInfo и все связанные с ним имена классов, свойств и методов переименованы в PropertyInfo и подобно тому.
  • В схемы данных добавлено appinfo-свойство property, при наличии которого методы GetPropertyValue/SetPropertyValue начинают работать с ним, а не напрямую с полем.
  • В схемы данных добавлено appinfo-свойство nodef, при наличии которого поле не генерируется, но свойство существует.
  • В классе ItemSlotDescription убрано обновление массива при пост-десериализации, ввиду того, что он обновляется непосредственно при десериализации свойства.
  • В классе Item виртуальные атрибуты place и placeid сделаны реальными свойствами, теперь по ним можно делать xpath-запросы.
  • В классах Material, Item, ItemStructure добавлено свойство Transparency - степень прозрачности.
  • В классе Item свойство template переименовано в Template.
  • В классе WearVariant добавлено свойство Transparency - прозрачен ли предмет для скрытого под ним при надевании в этом варианте.
  • В классе Item добавлено свойство IsTransparencyEquipment - является ли этот предмет прозрачныым для скрытого под ним (да, если таков текущий вариант, или если прозрачность материала выше 0.3).
  • В команду "осмотреть" и в метод IsClosedSlot добавлены проверки прозрачности предмета.

16.10.2007

  • Классы WearBlock, WearTemplateBlock, и другие с ними связанные, вынесены в отдельный файл.
  • Добавлены классы WearHostBlock и WearHostTemplateBlock.
  • В классе Item реализованы вирт.методы, нужные для работы со слотами.
  • В классе Serializer добавлена возможность регистрации обработчков, вызываемых после окончания десериализации.
  • Во всех методах поиска по древовидным структурам (территория, шаблоны предметов, рецепты) исправлено получение элементов, чтобы не выдавало ошибку об отсутствии элемента.
  • В классе ItemSlot удалено свойство Name.
  • Класс Item при десериализации регистрируется на обработку только при наличии WearBlock.
  • Добавлен вариант ItemPlace.ItemEquipment, назначаемый, если предмет надет на другом предмете.