Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 11
1

Моддинг на Minecraft 1.6.2 -1.6.4

11.11.2013, 19:28. Просмотров 1620. Ответов 1
Метки нет (Все метки)

Тут вы научитесь писать моды на Forge. Не будем томить, начнем же!

Требования:
- Java Development 7 (JDK 7).
- Eclipse - обязательно, иначе вы не сможете работать с кодом.
- Руки, желательно прямые.
- Желательно базовое знание английского языка.

Кликните здесь для просмотра всего текста
Скачиваем Forge SRC https://www.google.ru/url?sa=t... GE&cad=rjt, и распаковываем в удобное нам место. После заходим в папочку forge и запускаем install.cmd. Дальше он все сделает за нас. Скачает MCP, Minecraft и декомпилирует его. Как по мне, сдали очень удобно, убраны лишние действия, как было в ранних версиях.
После этого, делаем все как раньше. Запускаем Eclipse и выбираем начальный "Workspace". Вот такой был путь у меня E:\Moding\forge\mcp, у вас должен быть схожий. Думаю разберетесь. И да, не забудьте поменять [JavaSE-1.6] на [JavaSE-1.7], все это делается так. Нажимаем правой кнопкой на "JRE System Library" далее вылетает контекстное меню и там вы нажимаете на "Properties". Дальше сами разберетесь.

Подробнее в видео - http://www.youtube.com/watch?v... 2zboeiPtco


Урок 1
Кликните здесь для просмотра всего текста
Сначала создаем пакет (папку). Нажимаем правой кнопкой на папку src и выбираем "New" => "Package". Имя ему даем "net.tutorial.src" или называйте его как вы хотите. Потом создаем класс в нашей папке. Его создавать почти так же само как и пакет. Называем класс "TutBase.java"

Содержимое TutBase.java
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package net.tutorial.src;
 
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.network.NetworkMod;
 
@Mod (modid = "TutMod", name = "Tut Mod", version = "0.1")
@NetworkMod (clientSideRequired = true, serverSideRequired = false, versionBounds = "1.0.0")
 
public class TutBase {
 
 
    @EventHandler
    public void preInit(FMLPreInitializationEvent event)
    {
 
    }
 
    @EventHandler
    public void init(FMLInitializationEvent event)
    {
 
    }
 
    @EventHandler
    public void postInit(FMLPostInitializationEvent event)
    {
 
    }
 
    @EventHandler
    public void serverStarting(FMLServerStartingEvent event)
    {
 
    }
}


В этой строке:
Java
1
@Mod (modid = "TutMod", name = "Tut Mod", version = "0.1")
Изменяйте под себя.
TutMod - ID мода.
Tut Mod - Название мода.
0.1 - Версия мода.
На этом все.


Урок 2
Кликните здесь для просмотра всего текста
Java
1
 public static Block TutBlock;
Java
1
TutBlock = new TutBlock(2000).setUnlocalizedName("TutBlock");
Содержимое TutBlock.java
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package net.tutorial.src;
 
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class TutBlock extends Block
{
    protected TutBlock(int par1)
    {
        super(par1, Material.ground); // Материал
        this.setCreativeTab(CreativeTabs.tabBlock); // Таблица в креативе
        this.setHardness(1.0F);//Cкорость разрушения блока
        this.setLightValue(1.0F);//Светимость
        this.setResistance(3.0F);//Взрывоустойчивость.
        this.setStepSound(soundMetalFootstep);//Звук, при ходьбе по блоку.
    }
 
    
    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister ir)
    {
            this.blockIcon = ir.registerIcon("TutBase:TutBlock");
    }
}


Java
1
2
GameRegistry.registerBlock(TutBlock);
         LanguageRegistry.addName(TutBlock, "Minegusta Block");


Урок 3
Кликните здесь для просмотра всего текста
Java
1
public static Item TutItem;
Java
1
TutItem = new TutItem(3200).setUnlocalizedName("TutItem");
Содержимое TutItem.java
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package net.tutorial.src;
 
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
 
public class TutItem extends Item
{
public TutItem(int par1)
{
        super(par1);
        this.setCreativeTab(CreativeTabs.tabBlock); // Таблица в креативе
        this.maxStackSize = 2; //Количество предметов в стаке.
}
@Override
public void registerIcons(IconRegister par1IconRegister)
{
                                this.itemIcon = par1IconRegister.registerIcon("TutBase:TutItem");
}
 
 
}


Java
1
LanguageRegistry.addName(TutItem, "Minegusta Item");
Текстуры: forge\mcp\src\minecraft\assets\tutbase\textures\items



Урок 4
Создаем обыкновенный предмет. Вместо ID в переменной пишем

Java
1
(2022, 1, 0.4F, false)
1 – количество восстанавливаемых полу-сердец. 1 = 0.5 сердца.
0.4F – на сколько утоляет голод
false – можно ли этой едой приручить волка (true – да, false – нет)
+ ItemFood

Содержимое TutFood.java
Кликните здесь для просмотра всего текста
package net.tutorial.src;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

import java.util.List;

import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;

public class TutFood extends ItemFood
{
public TutFood(int par1, int par2, float par3, boolean par4)
{
super(par1, par2, par4);
this.setCreativeTab(CreativeTabs.tabMaterials); // Таблица в креативе
this.maxStackSize = 52; //Количество предметов в стаке.
}
@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.itemIcon = par1IconRegister.registerIcon("TutBase:TutItem");
}


}


Урок 5
Кликните здесь для просмотра всего текста
Java
1
2
public static Block TutPlant;
                      public static Item TutSeeds;
Java
1
2
3
4
5
TutPlant = new TutPlant(2040).setUnlocalizedName("TutPlant");
                   GameRegistry.registerBlock(TutPlant);
        
                   TutSeeds = new TutSeeds(2041).setUnlocalizedName("TutSeeds");
                   LanguageRegistry.addName(TutSeeds, "Minegusta Koffe");
TutPlants
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package net.tutorial.src;
 
import net.minecraft.block.Block;
import net.minecraft.block.BlockCrops;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.item.Item;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
 
public class TutPlant extends BlockCrops {
 
    private Icon[] iconArray;
 
    protected TutPlant(int id) {
        super(id);
    }
 
    @SideOnly(Side.CLIENT)
 
    public Icon getIcon(int par1, int par2)
    {
        if (par2 < 0 || par2 > 3)
        {
            par2 = 3;
        }
 
        return this.iconArray[par2];
    }
 
    public boolean canBlockStay(World par1World, int par2, int par3, int par4)
    {
        return par1World.getBlockId(par2, par3-1, par4)==Block.tilledField.blockID;
    }
 
    public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
    {
        return par1World.getBlockId(par2, par3-1, par4)==Block.tilledField.blockID;
    }
 
    protected int getSeedItem()
    {
        return TutBase.TutSeeds.itemID;
    }
 
    public int quantityDropped(Random par1Random)
    {
        return 2;
    }
    protected int getCropItem()
    {
        return Item.ingotIron.itemID;
    }
 
    @SideOnly(Side.CLIENT)
 
    public void registerIcons(IconRegister par1IconRegister)
    {
        this.iconArray = new Icon[4];
 
        for (int i = 0; i < this.iconArray.length; ++i)
        {
            this.iconArray[i] = par1IconRegister.registerIcon("TutBase:TutPlant_" + i);
        }
    }
 
}
TutSeeds
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package net.tutorial.src;
 
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemReed;
 
public class TutSeeds extends ItemReed {
 
    public TutSeeds(int par1) {
        super(par1, TutBase.TutPlant);
        this.setCreativeTab(CreativeTabs.tabMaterials);
    }
 
    @Override
 
    public void registerIcons(IconRegister par1IconRegister)
    {
                                    this.itemIcon = par1IconRegister.registerIcon("TutBase:TutSeeds");
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2013, 19:28
Ответы с готовыми решениями:

Моддинг, не моддинг, но где-то рядом. Как подвесить к стене ноутбук вместе с монитором?
По причине разъездов между домом, офисом, клиентами и датацентром, вместо нескольких компов...

Моддинг СВО
Добрый день(а у меня уже ночь :) ) уважаемые Форумчане. Я являюсь &quot;счастливым&quot; обладателем...

Ваш моддинг
Уважаемые люди! Может ли кто-нибудь из вас похвастаться какими-нибудь самоделками?

Моддинг клавиатуры
Здравствуйте, хочу сделать моддинг клавиатуры, хочу в нескольких местах внутри корпуса клавиатуры...

1
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 4
18.02.2014, 16:18 2
еще бы java выучить как следует
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2014, 16:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

BIOS-моддинг
Наткнулся случайно на статью «BIOS-моддинг» за авторством Крис Касперски. Чертовски захотелось...

Моддинг LUA скриптами
Столкнулся с проблемой, при создании модов для игры. Есть готовый мод, в котором в игру...

Моддинг колонок SVEN
Господа знатоки! Здравствуйте! Есть у меня хорошие колоночки SVEN, и интернет :) И вот, в этом...

Моддинг - первый опыт
Здравствуйте, форумчане ! Хотел бы выложить свою первую работу по моддингу и услышать ваше мнение?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.