- Версия(и) Minecraft
- 1.12+
В процессе написания Realism'а у меня сформировалась небольшая компактная библиотека(возможно говнокодовая,но мне норм, лол, кек, хз)
Данная библиотека содержит большое количество базовых классов для быстрого создания блоков и предметов различного типа. Пройдемся по порядку
1.
Содержит в себе аргументы:
Чем отличается от обычного блока: ничем.
2.
Содержит в себе аргументы:
Унаследован от
2.1.
3.
Содержит в себе аргументы:
Чем отличается от обычного - офигеннейшей кастомизацией через аргументы, настроить можно почти все что угодно, не парясь о коде.
4.
5.
6.
6.1.
7.
-/
Содержит в себе аргументы помимо стандартных:
Особенности: по неведомым причинам, иногда вылетал null и майн вместо дропа)) . Во избежание этого пришлось подставлять костыль в виде:
-/
Содержит в себе аргументы помимо стандартных:
8.
9.
Аргументы стандартные.
10.
Содержит в себе аргументы:
11. BasicFood.class - почти обычная еда. В аргументах помимо дефолтных :
Особенности: многие методы из ItemFood вытащены сюда. Настраивайте как вам больше нравится.
12.
13.
14.
Помимо базовых аргументов имеет:
TimerForCoord - небольшой класс, для привязки таймера своих тиков к координатам блоков. Примеры реализации его можете посмотреть в GitHub мода Realism Craft(ветка Redux)
EnumMaterials - свой список материалов.
Теперь создать свой блок, предмет или механизм стало гораздо проще!
P.S Замечания обязательно высказывайте в культурной форме.
Данная библиотека содержит большое количество базовых классов для быстрого создания блоков и предметов различного типа. Пройдемся по порядку
1.
BasicBlock.class
- обычный классический блок.Содержит в себе аргументы:
Java:
super(material); // материал, указывается прям в суперклассе
this.setRegistryName(name);//имя для форджа
this.setUnlocalizedName(name);//имя для игры
this.setSoundType(soundtype);//тип звука для блока(некий комплекс звуков: как ломается, когда ходишь и.т.д)
this.setHardness(hardness);//прочность(как долго ломать)
this.setResistance(resistanse);//взрывоустойчивость
this.setCreativeTab(tab);//указывает креативную вкладку где будет оное чудо
2.
BasicBlockBush.class
- базовый блок одноблочного растения(как трава, цветочки, грибы)Содержит в себе аргументы:
Java:
setRegistryName(name);
setUnlocalizedName(name);
setHardness(0.2F);
this.setSoundType(SoundType.PLANT);
setCreativeTab(tab);
LGBlockBush.class
...2.1.
LGBlockBush.class
- переделанный ванильный класс BlockBush. В чем разница - неважно к какой стороне блока ставишь. Неважно какой блок снизу. Не дропается если снизу воздух. Встроен метод MapColor - покраски в цвет биома. 3.
BasicBlockCrops.class
- базовый блок растения с грядки(как морковь\пшеница )Содержит в себе аргументы:
Java:
this.setDefaultState(this.blockState.getBaseState().withProperty(this.getAgeProperty(), Integer.valueOf(0)));//дефолт блокстата
this.setTickRandomly(true);//рандомно тикает(растет)
this.setCreativeTab((CreativeTabs)null);//не добавляем в креативную вкладку(ибо нефиг)
this.setHardness(0.0F);
this.setRegistryName(name);
this.setUnlocalizedName(name);
this.setSoundType(SoundType.PLANT);
this.disableStats();//выключает какую то статистику... оно само!, так и было!, я ни причем...
this.itemCrop = crop;//можете прям в аргументах указать че будет дропаться
this.itemSeed = seed;//что является семянами(хехехее семена есть, а если найду?)
this.blockOn = blockOn;//блок на который можно сажать. насколько помню, вроде не оч норм работает
this.meta = meta;//мета предмета, который дропается
this.canUseBonemeal = canUseBonemeal;// можно ли удобрять костной мукой
this.valueDrops = valueDrops;//количество дропа
4.
BasicBlockFalling.class
- легендарная падающая наискось земля из ТФК. Нечего добавить)5.
BasicBlockWithCustomModel.class
- аргументы содержит все те же самые. Обычный блок, но годится только для создания блоков с кастомной моделью. И да, баундбоксы придется переопределять и делать самому. 6.
BasicBlockSide.class
- блок, который поворачивается по сторонам света, в зависимости от того, куда смотрит игрок. Вверх\вниз не работает. 6.1.
BasicBlockSideWithInfo.class
- то же самое, создано для кастомного ItemBlock, для добавления addInformation7.
-/
BasicBlockWithDropItem.class
- обычный блок, с возможностью настроить дроп какого либо предметаСодержит в себе аргументы помимо стандартных:
Java:
setItemDrop();//местный метод, о нем ниже
this.drop = drop;//некий дроп-предмет
this.meta = meta;//его мета
this.valueDrops = valueDrops;//количество
Java:
public void setItemDrop() {
if(drop == null) {
this.drop = drop.getItemFromBlock(Blocks.AIR);
}
}
BasicBlockWithDropBlock.class
- обычный блок, с возможностью настроить дроп какого либо блокаСодержит в себе аргументы помимо стандартных:
Java:
this.drop = drop;//дроп-блок
this.valueDrops = valueDrops;//колво
BasicItemBlock.class
- базовый ItemBlock. Удобен тем что содержит в конструкторе переопределенные аргументы:
Java:
this.type = type;//тип доп.инфы(не помню точно что это значит)
this.color = color;//цвет доп.текста
BasicLogBlock.class
- обычный блок дерева, вертящийся по любым осям. Выпилены нахер все непонятные методы метадаты и тому подобное говно, с которыми нихрена не работало.Аргументы стандартные.
10.
BasicItem.class
- обычный, простейший предмет.Содержит в себе аргументы:
Java:
this.setRegistryName(name);
this.setCreativeTab(tab);
this.setUnlocalizedName(name);
this.setMaxStackSize(maxStackSize);//максимальное колво в стаке. От 1 до 64
Код:
this.itemUseDuration = itemUseDuration;// как долго есть еду.
this.healAmount = amount;//колво восполняемого жрача
this.isWolfsFavoriteMeat = isWolfFood;//можно ли волка этим кормить
12.
BasicDamageItem.class
- дамажащийся от чего то предмет13.
BasicDamageFood.class
- еда, которую можно хавать несколько раз.14.
BasicTool.class
- базовый класс инструмента со всеми необходимыми методамиПомимо базовых аргументов имеет:
Код:
this.efficiency = 4.0F;//общая эффективность. Если хотите получать эффективность из материала, удалите строку
this.toolMaterial = material;//материал предмета(алмазное\золотое\свое)
this.effectiveBlocks = effectiveBlocksIn;//блок\блоки для которых он эффективнее всего
this.efficiency = material.getEfficiency();//получает эффективность из материала
this.attackDamage = attackDamageIn + material.getAttackDamage();//кастомная сила удара + сила удара в зависимости от материала
this.attackSpeed = attackSpeedIn;// скорость атаки
TimerForCoord - небольшой класс, для привязки таймера своих тиков к координатам блоков. Примеры реализации его можете посмотреть в GitHub мода Realism Craft(ветка Redux)
EnumMaterials - свой список материалов.
Теперь создать свой блок, предмет или механизм стало гораздо проще!
P.S Замечания обязательно высказывайте в культурной форме.