Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Doc написал(а):Что сложного?
GameRegistry.addRecipe(new ItemStack(Blocks.SANDSTONE), "AP", 'A', Items.APPLE, 'P', Items.ROTTEN_FLESH);
Подробно - new ItemStack(Blocks.SANDSTONE) - это выходной блок.
"AP" - сетка крафта, входные блоки.
'A', Items.APPLE, 'P', Items.ROTTEN_FLESH - А это яблоко, P - это плоть.
Если ты положишь рядом яблоко и плоть - получишь песчаник.
AP - Сетка крафта. А далее? Можно использовать любые имена?Thunder написал(а):Представим это так:
GameRegistry.addRecipe(new ItemStack(Blocks.SANDSTONE),
"APX",
"XXX",
"XXX",
'A', Items.APPLE,
'P', Items.ROTTEN_FLESH); - твой верстак
Вместо Х я предпочитаю ставить пробелы если у меня там ничего нету.
Dahaka написал(а):Сетка крафта это все эти три строки "APX", "XXX", "XXX". Вот так, например, можно задать 2х2 сетку "QW", "QW". Отдельная строка - строка в крафт сетке, символ - ячейка. После крафт сетки нужно последовательно указывать символ и то, что он означает (итем или блок). Символы можно использовать любые.
Скидывай сюда главный класс и прокси. В том, что у тебя сейчас ошибок не должно быть.
ananacik написал(а):Dahaka написал(а):Сетка крафта это все эти три строки "APX", "XXX", "XXX". Вот так, например, можно задать 2х2 сетку "QW", "QW". Отдельная строка - строка в крафт сетке, символ - ячейка. После крафт сетки нужно последовательно указывать символ и то, что он означает (итем или блок). Символы можно использовать любые.
Скидывай сюда главный класс и прокси. В том, что у тебя сейчас ошибок не должно быть.
RecipesRegister[/color]]
package ru.mcmodding.testmod.utils;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class RecipesRegister {
public static void register(){
GameRegistry.addRecipe(new ItemStack(Blocks.SANDSTONE), "AP", 'A', Items.APPLE, 'P', Items.ROTTEN_FLESH);
}
}ServerProxy[/color]]
package ru.mcmodding.testmod.proxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import ru.mcmodding.testmod.utils.RecipesRegister;
public class ServerProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
}
@Override
public void init(FMLInitializationEvent event) {
super.init(event);
RecipesRegister.register();
}
@Override
public void postInit(FMLPostInitializationEvent event) {
super.postInit(event);
}
}
Maxik001 написал(а):ananacik написал(а):Dahaka написал(а):Сетка крафта это все эти три строки "APX", "XXX", "XXX". Вот так, например, можно задать 2х2 сетку "QW", "QW". Отдельная строка - строка в крафт сетке, символ - ячейка. После крафт сетки нужно последовательно указывать символ и то, что он означает (итем или блок). Символы можно использовать любые.
Скидывай сюда главный класс и прокси. В том, что у тебя сейчас ошибок не должно быть.
RecipesRegister[/color]]
package ru.mcmodding.testmod.utils;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class RecipesRegister {
public static void register(){
GameRegistry.addRecipe(new ItemStack(Blocks.SANDSTONE), "AP", 'A', Items.APPLE, 'P', Items.ROTTEN_FLESH);
}
}Парень, открываю тебе секреты редактора - есть кнопочка "Код", в нее надо код вставлять, а не этот кошмар сюда пихать!ServerProxy[/color]]
package ru.mcmodding.testmod.proxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import ru.mcmodding.testmod.utils.RecipesRegister;
public class ServerProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
}
@Override
public void init(FMLInitializationEvent event) {
super.init(event);
RecipesRegister.register();
}
@Override
public void postInit(FMLPostInitializationEvent event) {
super.postInit(event);
}
}
На будущее буду знать. Но теперь, почему мой код не работает?
Dahaka написал(а):Главный класс скинь
package ru.mcmodding.testmod;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import ru.mcmodding.testmod.proxy.CommonProxy;
import static ru.mcmodding.testmod.TestMod.MODID;
import static ru.mcmodding.testmod.TestMod.VERSION;
@Mod(modid = MODID, version = VERSION)
public class TestMod {
public static final String MODID = "testmod";
public static final String VERSION = "1.0";
@SidedProxy(clientSide = "ru.mcmodding.testmod.proxy.ClientProxy", serverSide = "ru.mcmodding.testmod.proxy.ServerProxy")
public static CommonProxy proxy;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
// Преинициализация
System.out.println("\u001B[32m" + "[Starting Test Mod PRE-INITIALIZATION]" + "\u001B[0m");
proxy.preInit(event);
}
@EventHandler
public void init(FMLInitializationEvent event) {
// Инициализация
System.out.println("\u001B[32m" + "[Starting Test Mod INITIALIZATION]" + "\u001B[0m");
proxy.init(event);
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
// Инициализация
System.out.println("\u001B[32m" + "[Starting Test Mod POST-INITIALIZATION]" + "\u001B[0m");
proxy.postInit(event);
}
}
Dahaka написал(а):У Ивасика все нормально. Просто у него ServerProxy это CommonProxy, а у тебя нет. Кстати, я ему говорил, что это будет путать людей.
"ru.mcmodding.testmod.proxy.ServerProxy")
public static CommonProxy proxy;
Удалить ServerProxy? Т.е все вписывается в CommonProxy?Maxik001 написал(а):Нахрен тебе три? Только два их. Клиент и сервер.И лишний (ServerProxy) удали, чтобы не путаться
@SidedProxy(clientSide = "ru.mcmodding.testmod.proxy.ClientProxy", serverSide = "ru.mcmodding.testmod.proxy.ServerProxy")
Ты в этой строке указываешь какой объект класса должен создаться в зависимости от стороны. В данном случае у тебя сейчас при запуске клиента создастся ClientProxy, а при запуске выделенного сервера - ServerProxy. Обычно никому не нужно особых действий для выделенного сервера, поэтому классом ServerProxy пренебрегают и просто используют вместо него CommonProxy.ananacik написал(а):Удалить ServerProxy? Т.е все вписывается в CommonProxy?Maxik001 написал(а):Нахрен тебе три? Только два их. Клиент и сервер.И лишний (ServerProxy) удали, чтобы не путаться
Тогда как же строка
?Код:@SidedProxy(clientSide = "ru.mcmodding.testmod.proxy.ClientProxy", serverSide = "ru.mcmodding.testmod.proxy.ServerProxy")