Мод, который, не требуя знаний языка программирования Java и умений модостроения, позволяет игроку:
• добавлять в игру свои собственные блоки: заборы, жидкости, люки и многие другие; • добавлять в игру свои собственные предметы: еду, броню и другие; • добавлять в игру свои рецепты создания блоков и предметов; • добавлять в игру свои рецепты переплавки блоков и предметов в печи; • делать любые блоки и предметы топливом для печи; • добавлять любые блоки в генерацию мира; • удалять из игры нежелательные рецепты; • добавлять в игру свои собственные блоки с GUI на основе блоков верстака и печи; • добавлять в игру скрипты для блоков и предметов так, что они будут действовать как например спаунер мобов.
Общее описание конфигурационных файлов:
Конфигурационные файлы, которые описывают пользовательские блоки, предметы, топливо, рецепты и другие элементы, помещаются в папку .../.minecraft/config/ внутри которой создаются подпапки соответствующего элемента мода
Хотя все конфигурационные файлы имеют обычный текстовый формат, они должны иметь не стандартное расширение текстового файла (.txt), а расширение конфигурационного файла соответствующего элемента мода. Например, файл описания пользовательских блоков должен располагаться в папке customBlocks и иметь расширение (.block).
Для добавления нового элемента в игру необходимо создать конфигурационный файл, в котором будет описан этот новый элемент, и поместить его в соответствующую папку. При добавлении в игру нового блока или предмета кроме конфигурационного файла нового блока или предмета возможно понадобится графический файл с текстурами для этого нового блока или предмета (если будут использованы только стандартные текстуры, то отдельный файл с текстурами не потребуется). А также возможно понадобится конфигурационный файл рецептов крафта и/или переплавки нового блока или предмета.
Описание нового элемента состоит из набора обязательных и необязательных атрибутов. У каждого элемента имеется свой набор обязательных и необязательных атрибутов, поэтому список атрибутов, их описание и примеры будут приведены отдельно для каждого элемента.
Пользовательские блоки :
Для добавления в игру пользовательских блоков необходимо создать текстовый файл с любым понравившимся именем, с расширением ".block" вместо ".txt" и поместить его в папку customBlocks, которая в свою очередь расположена в папке .../.minecraft/config/. Например так: .../.minecraft/config/customBlocks/custom.block
Конфигурационный файл содержит текстовое описание одного или нескольких пользовательских блоков, которое состоит из строк, в каждой из которых указано значение определённого атрибута пользовательского блока или блоков.
Cамым важным и обязательным атрибутом любого пользовательского блока является атрибут type, так как именно он указывает тип блока и в зависимости от значения этого атрибута пользовательскому блоку будут доступны другие атрибуты.
Атрибут type:
Атрибут type для блоков может принимать следующие значения: chest - сундук container - контейнер crosstexture - пересечённая текстура (ростки, цветы и т.п.) door - дверь fence - забор fencegate - ворота ladder - лестница liquid - жидкость normal - обычный блок pane - панель pressureplate - нажимная плита simple - простой блок slab - плита (полублок) stairs - ступеньки torch - факел trapdoor - люк
Подробное описание пользовательских блоков каждого конкретного типа из вышеуказанного списка будет рассмотрено отдельно далее.
Список атрибутов блока Normal:
К обязательным атрибутам относятся: name - название блока id - идентификационный номер блока type - тип блока texturefile - имя файла с текстурами для блока textureindex - индекс используемой текстуры в файле с текстурами harvestlevel - уровень добычи toolclass - класс инструментов
К необязательным атрибутам относятся: material - материал textureindextop - индекс текстур верхней части блока textureindexeast - индекс текстур восточной части блока textureindexwest - индекс текстур западной части блока textureindexnorth - индекс текстур северной части блока textureindexsouth - индекс текстур южной части блока stepsound - звук шагов по блоку damagevalues - значение повреждения или метаданные блока hardness - твёрдость resistance - сопротивление light - свет opacity - затенённость iddropped - идентификационный номер выпадающего блока или предмета quantitydropped - количество выпадающих блоков или предметов damagedropped - метаданные выпадающих блоков или предметов transparent - прозрачность collision - столкновение speed - скорость gravity - гравитация movebypiston - движение поршнем addtocreative - добавление в инвентарь творческого режима color - цвет container - контейнер maxstack - максимальное количество в стопке Атрибут name name - (анг.) имя, наименование. name - этот атрибут присваивает наименование блоку. Это наименование будет показываться во всплывающей подсказке при наведении мыши на блок в инвентаре. В наименовании могут использоваться практически любые символы - прописные и строчные буквы, цифры, пробел и другие символы. Главное чтобы наименование блока было заключено в двойные кавычки. name - это один из немногих атрибутов, который обязательно должен присутствовать в описании!
Примеры: name="Example";
name="Сверхпрочный блок №7";
name="Сундук с 1001 предметом!"; Атрибут id id - первые две буквы английского слова identifier - идентификатор, идентификационный номер. id - идентификатор — это атрибут, который позволяет Minecraft однозначно идентифицировать блок в игре. Вместо сохранения сложных строк символов (например, тех, которые используются в имени), Minecraft запоминает значения id и связывает их с блоками или предметами, на которые указывает ссылка во время игры. По этой причине очень важно, чтобы каждый блок или предмет имел свой уникальный id и не использовался другими блоками или предметами. id - это один из немногих атрибутов, который обязательно должен присутствовать в описании!
Примеры: id=125;
id=255;
id=3789;
Приложение: [spoiler] Minecraft версии 1.2.5 использует id для блоков в диапазоне 0 - 124 и для предметов в диапазоне 256 - 385, а также пластинки используют id в диапазоне 2256 - 2266. При этом нужно помнить, что используемый id для предметов получается сложением id указанного в конфигурационном файле с константой 256 (очень редко встречается исключение из этого правила). Например, если предмет должен использовать в игре id = 400, то в конфигурационном файле следует указать id предмета равным 144 (400-256=144). Максимальное значение id предмета может быть 31 743, так как в игре к нему прибавится константа 256 и получится максимально возможный в игре идентификатор 31 999. Если установлен мод 4096-Fix, то максимальный идентификатор блока может быть 4095, так как номера блоков начинаются с 0. Без этого мода максимальный идентификатор блока может иметь значение 255. Конфликт id - самая частая критическая ошибка игры. Поэтому нужно внимательно следить за тем, чтобы у каждого блока или предмета в игре был уникальный идентификатор! Атрибут type type - (анг.) тип. type - этот атрибут определяет, как блок, предмет или GUI отображаются в игре, а также определяет другие атрибуты, доступные для использования. Все блоки, а также большинство предметов и GUI, созданные с помощью мода Custom Stuff, требуют обязательного указания этого атрибута!
Примеры: type="normal";
type="simple";
type="chest";
Атрибуты texturefile и textureindex:
texturefile - этот атрибут указывает имя файла из которого будут взяты текстуры для блока. textureindex - этот атрибут указывает индекс текстуры для блока в том файле, имя которого указано в атрибуте texturefile.
Файл текстур - это графический файл в формате .png размером 256х256 пикселей, который поделён на участки по 16х16 пикселей. Каждый такой участок и является текстурой для блока. Участки индексируются начиная с верхнего левого угла с индексом 0 и далее по строкам сверху вниз. Так первая строка содержит текстуры с индексами от 0 (слева) до 15 (справа), вторая строка от 16 (слева) до 31 (справа) и так далее. Всего в таком файле может содержаться 256 текстур (от 0 до 255). Файл текстур необходимо поместить внутрь файла minecraft.jar (рядом со стандартным файлом текстур terrain.png).
Стандартный файл текстур terrain.png с обозначенными индексами текстур
Если не указать атрибут texturefile, то будет использоваться стандартный файл текстур terrain.png, а если не указать textureindex, то будет использоваться самая первая текстура с индексом 0.
Примеры: texturefile="customstuff.png"; textureindex=4; //будет использована 5-я по порядку текстура из файла customstuff.png
texturefile="terrain.png"; textureindex=49; //будет использована текстура стекла из стандартного файла terrain.png
Атрибут harvestlevel:
harvestlevel - это новый атрибут для блоков и предметов, который был впервые представлен в Custom Stuff 2.3.0. Этот атрибут служит одной и той же цели для блоков и предметов, но с разных сторон.
Для блока harvestlevel указывает материал инструмента, с помощью которого блок может быть добыт. Если попытаться добыть блок с помощью инструмента с harvestlevel ниже, чем этот утрибут у блока, то разбивание блока будет происходить медленно, а также из блока ничего не выпадет и блок просто исчезнет.
Для предмета harvestlevel указывает тип материала из которого сделан инструмент для симуляции функций инструмента из указанного материала. Например, чтобы создать изумрудную кирку, которая будет эффективна так же, как алмазная кирка, то нужно установить этот атрибут равным "3", чтобы позволить добывать обсидиан.
Атрибут harvestlevel может принимать 4 значения: 0 - древесина; 1 - камень или золото; 2 - железо; 3 - алмаз.
Примеры: harvestlevel=0;
harvestlevel=1;
harvestlevel=3;
Атрибут toolclass:
toolclass - это новый атрибут для блоков и предметов, который был впервые представлен в Custom Stuff 2.3.0. И для блоков, и для предметов используются одни и теже значения, но влияние на них разное.
Для блока этот атрибут определяет каким инструментом необходимо добывать блок чтобы после разрушения блока из него выпал предмет. Ранее это было связано с атрибутом material.
Для предмета этот атрибут определяет класс инструментов, который позволяет правильно собирать пользовательские блоки, созданные с помощью Custom Stuff. Он также определяет, какие блоки можно собирать быстро, тем самым значительно перекрывая атрибут efficiencyblocks.
И для блоков, и для предметов атрибут устанавливается одинаково: toolclass="pickaxe";
Можно также указать несколько классов инструментов, разделённых запятой: toolclass="pickaxe, axe";
Атрибут может иметь следующие значения: pickaxe - кирка axe - топор shovel - лопата hoe - мотыга
Важно! Если создаётся блок, добывающийся исключительно определённым инструментом, то необходимо установить атрибут material блока отличный от "rock" или "iron". Как и большинство атрибутов, связанных с материалом, они уже были портированы на другие атрибуты, и это не должно стать проблемой в большинстве случаев.
Примеры: toolclass="pickaxe, axe";
toolclass="shovel";
toolclass="axe, shovel, hoe"; Атрибут material Цитата: Материал, проще говоря, то, из чего блок сделан. Блоки могут быть изготовлены из любого из восьми различных типов материалов (плюс два типа жидкостей). Каждый материал имеет свои атрибуты и взаимодействует с другими блоками и действия игрока в отличие от других типов. Материал блока влияет на многие вещи в том числе, какие инструменты могут добывать его эффективно и собирать его.
Важно отметить, что этот атрибут определяет только механику игры. Он не изменяет вид блока или звук, когда он сломан. Эти элементы определяются другими атрибутами. Этот факт делает атрибут material несколько нелогичным. Можно привести пример из оригинальной игры Minecraft, - TNT имеет материал "стекло". Хотя, казалось бы неуместно, но это было сделано, чтобы предотвратить установку факелов и размещения на нём нажимных плит.
Для установки материала блока, добавьте следующую строку. Блок файла. material="rock";
Возможные значения: grass ground wood rock iron cloth sand glass water lava
Есть пять атрибутов, которые определяют текстуру для каждой конкретной стороны блока. Они делают точно то же, что и атрибут textureindex, а именно указывают порядковый номер соответствующей текстуры в texturefile.
Разница в том, что в то время как textureindex является атрибутом, который охватывает все стороны блока, эти пять атрибутов, перечисленных ниже, указывают текстуру только одной конкретной стороной блока, соответствующей каждому из них. Это означает, что если все пять этих атрибутов используются, то атрибут textureindex определяет текстуру только на нижней части блока, так как низ блока является единственной стороной, которая конкретно не определена.
Вот эти пять атрибутов: textureindextop - указывает текстуру верхней стороны блока textureindexeast - указывает текстуру восточной стороны блока textureindexwest - указывает текстуру западной стороны блока textureindexnorth - указывает текстуру северной стороны блока textureindexsouth - указывает текстуру южной стороны блока
Чтобы задать все эти атрибуты, или только некоторые из них, необходимо добавить в конфигурацинный файл .block соответствующие строки примера, изменяя номера примера на нужные.
Эти пять атрибутов переопределяют атрибут textureindex соответствующей стороны блока. Таким образом, нет необходимости всегда определять все пять атрибутов в конфигурационном файле .block, а можно указать только те, которые должны отличаться от текстуры, указанной атрибутом textureindex. Например, если необходимо, чтобы блок выглядел одинаково со всех сторон, кроме верхней стороны, можно добавить только textureindextop, а textureindex определит другие пять сторон.
Важно отметить, что каждый из этих атрибутов указывает текстуру всегда определённой стороны. Нет возможности поместить текстуру под другим углом, чтобы изменить ориентацию текстуры. Так это работает с верстаком: пила и молоток всегда смотрят в одном направлении, независимо от того, как поместить его. Для сравнения тыква может устанавливаться лицевой стороной в любом направлении в зависимости от соответствующего размещения.
Атрибут stepsound:
stepsound - это атрибут, который определяет какой звук будет воспроизведён, когда по блоку шагают, когда блок устанавливается или ломается. При этом нет зависимости от имени блока. Также это не влияет на функции блока, так как сделано это исключительно ради звуковой атмосферы в игре.
Пример: stepsound="stone";
Есть только семь доступных аудионаборов, на один из которых можно указать этим атрибутом: cloth glass grass gravel metal stone wood Все звуки соответствуют звукам одноимённых блоков оригинальной игры Minecraft. Исключение составляют только "metal" и "cloth", которым соответствуют звуки блока железа и шерсти.
Можно заметить, что допустимые значения этого атрибута отличаются от допустимых значений атрибута material, хотя и есть некоторые совпадения. Например, значение "stone" будет работать в stepsound.
Установка: 1) Удалить "META_INF" из minecraft.jar 2) Скачать и установить Minecraft Forge Client 3) Скачать Custom Stuff. 4) Переместить скачанный архив(СustomStuff_2.3.9_Client.zip) в .minecraft/mods 5) Готово! Желаю удачи в Ваших начинаниях!