Данный раздел предназначается для публикаций предложений с кодом игры, но не все умеют писать код игры. Исходя из этой темы, Вы научитесь писать код игры.
 Рассмотрим создание блока на примере BlockStone.java
 Рассмотрим создание блока на примере BlockStone.javapackage net.minecraft.src;
import java.util.Random;
public class BlockStone extends Block
{
    public BlockStone(int par1, int par2)
    {
        super(par1, par2, Material.rock);
    }
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return Block.cobblestone.blockID;
    }
}
package net.minecraft.src;
2) Пропишем классы:
import java.util.Random;
3) Объявим блок Камень с рендером блока
public class BlockStone extends Block
{
4) "Создадим" блок и добавим материал
    public BlockStone(int par1, int par2)
    {
        super(par1, par2, Material.rock);
    }
5) Добавим дроп блоку
    public int idDropped(int par1, Random par2Random, int par3)
    {
        return Block.cobblestone.blockID;
    }
}
 Block.java
 Block.javaДля примера создадим блок на основе камня с возможностью издавать свет и назовём его "Example"
Растолкую:
1) Объявляем блок
2) Подключаем к файлу с исходником (в примере у нас BlockStone)
3) Пишем ID и номер текстуры блока:
4) Пишет характеристики блока (В данном случае у нас камень)
5) Добавим блоку светимость:
6) Добавим блоку звук:
7) Добавим имя блоку - Example
8) Завершим код:
Та-дам, блок существует в игре!
public static final Block Example = (new BlockStone(1, 1)).setHardness(1.5F).setResistance(10.0F).setLightValue(1.0F).setStepSound(soundStoneFootstep).setBlockName("Example");
1) Объявляем блок
public static final Block Example
2) Подключаем к файлу с исходником (в примере у нас BlockStone)
new BlockStone
3) Пишем ID и номер текстуры блока:
(1, 1)
4) Пишет характеристики блока (В данном случае у нас камень)
.setHardness(1.5F).setResistance(10.0F)
5) Добавим блоку светимость:
.setLightValue(1.0F)
6) Добавим блоку звук:
.setStepSound(soundStoneFootstep)
7) Добавим имя блоку - Example
.setBlockName("Example")
8) Завершим код:
;
Та-дам, блок существует в игре!
 Item.java
 Item.javaСоздадим итем - кожа.
1) Публикуем итем
2) Указываем итем (Если нету пути к определённому файлу, то просто пишем Item) и ID
3) добавим иконку (7 столб (ряд), 6 текстура)
4) Добавим имя итему
При желании можно добавить эффект частиц, на пример как у ред-стоуна (если это блок (на пример ))
    public static Item leather = (new Item(78)).setIconCoord(7, 6).setItemName("leather");
1) Публикуем итем
 public static Item leather = 
2) Указываем итем (Если нету пути к определённому файлу, то просто пишем Item) и ID
(new Item(78))
3) добавим иконку (7 столб (ряд), 6 текстура)
.setIconCoord(7, 6)
4) Добавим имя итему
.setItemName("leather");
При желании можно добавить эффект частиц, на пример как у ред-стоуна (если это блок (на пример ))
.setPotionEffect(PotionHelper.redstoneEffect);
 CraftingManager.java
 CraftingManager.javaИсходя из названия скрола уже всё ясно - здесь мы научимся добавлять крафт нашему итему.
Возьмём к примеру итем "карта":
1) Добавляем крафт и класс (ItemStack)
2) Добавим итем, который получится на выходе и кол-во
3) Добавим крафт:
Получается:
						
Возьмём к примеру итем "карта":
        this.addRecipe(new ItemStack(Item.map, 1), new Object[] {"###", "#X#", "###", '#', Item.paper, 'X', Item.compass});
1) Добавляем крафт и класс (ItemStack)
this.addRecipe(new ItemStack
2) Добавим итем, который получится на выходе и кол-во
(Item.map, 1),
3) Добавим крафт:
new Object[] {"###", "#X#", "###", '#', Item.paper, 'X', Item.compass});
Получается:
|  | ||||
 Полублоки
 ПолублокиЗа полублоки отвечает код
Рендер блока:
Чтобы сделать горизонтальный полублок, достаточно сделать так:
 
Чтобы сделать вертикальный полублок, достаточно сделать так
Чтобы сделать 1/4 блока, достаточно сделать так
Но не стоит забывать про X-Ray:
Дабы полублок не отталкивал нас:
[/scroll]
Рендер блока:
    public void setBlockBoundsForItemRender()
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
    }
Чтобы сделать горизонтальный полублок, достаточно сделать так:
    public void setBlockBoundsForItemRender()
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
    }
Чтобы сделать вертикальный полублок, достаточно сделать так
    public void setBlockBoundsForItemRender()
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
    }
Чтобы сделать 1/4 блока, достаточно сделать так
    public void setBlockBoundsForItemRender()
    {
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F);
    }
Но не стоит забывать про X-Ray:
    public boolean isOpaqueCube()
    {
        return false;
    }
Дабы полублок не отталкивал нас:
    public boolean renderAsNormalBlock()
    {
        return false;
   
    }
admin писал(а):
- все дополнительные файлы с исходниками оформляются так же, как основной- все дополнительные файлы с изменениями уже существующих исходников оформляются ввиде diff
- если блок использует несколько текстур, то их индекс должен задаваться в конструкторе только одним числом(baseIndex), а все последующие считаться как baseIndex + N
В данной теме представлен чистый код игры без использования сторонних ресурсов (лоадеров и прочих)
Если Вы собрались выкладывать своё предложением с кодом, то воспользуйтесь данной темой. По всем вопросом ко мне в ЛС.
 Достижения
 Достижения Биржа
 Биржа 
 Карты ↓
 Карты ↓



 Поиск
 Поиск Твинки
 Твинки Друзья
 Друзья Администрация
 Администрация