Просто приведу пример с комментариями, как сделать GuiContainer.

А как в эту консоль выводить.. А то я только комман.. Ааа.. логгером? Ну, или в чат..
 
Выводишь ты правильно, но метод не правильный, надо такой:
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
 
ужас... и как его внутри оформлять? ведь половину player.openGui() , точнее то, что в скобках материть... а хотя... попробую. Потом скажу.
 
Только ты учти, что блок твой не будет сохранять вещи которые ты засунул в GUI, по крайней мере с текущим кодом.
 
Вывод:
Код:
2014-04-15 22:52:45 [WARNING] [ForgeModLoader] A mod tried to open a gui on the server without being a NetworkMod
Код основного файла(сокр.)
Код:
@Mod(modid=MFInfo.MODID, name=MFInfo.NAME, version=MFInfo.VERSION)
@NetworkMod(clientSideRequired=true, serverSideRequired=false, versionBounds = MFInfo.VERSION)
public class MoreFood {
    
    public static int renderBlockMincerModelID;
    public static int mincerID;
    
    public static CreativeTabs mFoodBlocks = new MFoodBlocks(CreativeTabs.getNextID(), "mFoodBlocks");
    public static CreativeTabs mFoodItems = new MFoodItems(CreativeTabs.getNextID(), "mFoodItems");
    
    public static Block blockMincer;
    
@Instance("MFoodID")
    public static MoreFood instance;

@SidedProxy(clientSide=MFInfo.PROXY_LOCATION + ".ClientProxy", serverSide=MFInfo.PROXY_LOCATION + ".CommonProxy")
public static CommonProxy proxy;

@EventHandler
    public void init(FMLInitializationEvent e)
    {
    Items.items();
    Blocks.blocks();
    
    blockMincer = new Mincer(4000, Material.rock).setUnlocalizedName("mincer");
    
    GameRegistry.registerBlock(blockMincer, "mincer");
    LanguageRegistry.addName(blockMincer, "Mincer");
    
    GameRegistry.registerTileEntity(TileEntityMincer.class, "TileEntityMincer");
    ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMincer.class,new MincerEntity());
    renderBlockMincerModelID=RenderingRegistry.getNextAvailableRenderId();
    RenderingRegistry.registerBlockHandler(renderBlockMincerModelID, new HandlerBlockMincer());
    MinecraftForgeClient.registerItemRenderer(blockMincer.blockID, new ItemRendererBlockMincerModel());
    proxy.load();
     NetworkRegistry.instance().registerGuiHandler(instance, new GuiHandler());
    }

На serverSideRequired true надо ставить?

А, все равно тоже самое
[merge_posts_bbcode]Добавлено: 16.04.2014 00:02:21[/merge_posts_bbcode]

Dimansel написал(а):
Только ты учти, что блок твой не будет сохранять вещи которые ты засунул в GUI, по крайней мере с текущим кодом.
Так это блок, как стол для крафта, только для приготовления фарша из разного мяса.

[merge_posts_bbcode]Добавлено: 16.04.2014 00:04:11[/merge_posts_bbcode]

Код:
    public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
    {
        if (par1World.isRemote)
        {
            return true;
        }
        else
        {
            par5EntityPlayer.displayGUIWorkbench(par2, par3, par4);
            return true;
        }
    }
Как думаешь, с таким пойдет? Ну естественно, displayGUIWorckbench я заменю.

[merge_posts_bbcode]Добавлено: 16.04.2014 00:06:17[/merge_posts_bbcode]

А хотя... че за бред я леплю... там же с NetworkMod проблема...
 
Эм...
Код:
public class MFInfo {

    public static final String NAME = "More Food Mod";
    public static final String MODID = "MFoodMod";
    public static final String VERSION = "0.1.0";
    public static final String CHANNEL = MODID;
    public static final String PROXY_LOCATION = "assets.morefood.src.proxy";
    public static final String LANGUAGE_LOCATION = "assets.mfood.lang";
}
 

timaxa007

Модератор
5,831
409
672
Vova_master написал(а):
Код:
2014-04-15 22:52:45 [WARNING] [ForgeModLoader] A mod tried to open a gui on the server without being a NetworkMod
Примерный перевод: "Мод попытался открыть графический интерфейс на сервере, не будучи NetworkMod".
Логично, что:
Vova_master написал(а):
Код:
@NetworkMod(clientSideRequired=true, serverSideRequired=false, versionBounds = MFInfo.VERSION)
Должно:
Код:
@NetworkMod(clientSideRequired=true, serverSideRequired=true, versionBounds = MFInfo.VERSION)
Ну по-крайней мере как я понял, так и ответил.
[merge_posts_bbcode]Добавлено: 16.04.2014 00:48:05[/merge_posts_bbcode]

Так-же думаю надо поменять:
Код:
@Instance("MFoodID")
    public static MoreFood instance;
на
Код:
@Instance(MFInfo.MODID)
    public static MoreFood instance;
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
timaxa007 написал(а):
Так-же думаю надо поменять:
Код:
@Instance("MFoodID")
    public static MoreFood instance;
на
Код:
@Instance(MFInfo.MODID)
    public static MoreFood instance;
Ха, это и есть ошибка!
 
RaVeN написал(а):
Vova_master написал(а):
ужас... и как его внутри оформлять? ведь половину player.openGui() , точнее то, что в скобках материть... а хотя... попробую. Потом скажу.
помоги с сайтом там проги для рисования(лень учить php,html)
Шутишь? Я php только для блоковой конструкции сайта юзаю. Остальные скрипты мне находит могучий гугл и яндекс
 
Ухх. А насчет instance, я когда писал, не знал, что он должен быть MODID что бы работать как полагается. Но терь все робит, осталось текстуры запилить и свои слоты. А потом рецепты... ух... ну ладно, спасибо за помощь в общем.
[merge_posts_bbcode]Добавлено: 17.04.2014 00:32:14[/merge_posts_bbcode]

Маленькая беда при рендере гуи
de7bb85e8d41113d5b28d07850f1aac0.png

А еще в уроке маааленькая ошибка в ContainerTest. Там хотбар на месте, а остальной инвентарь куда-то уполз. Вот нормальный вариант:
Код:
for(int i = 0; i < 9; i++)//Циклом добавляем 9 слотов хотбара
            addSlotToContainer(new Slot(player.inventory, i, 29/*x координата первого слота(двигаем хотбар)*/ + i * 18, 90/*y координата*/));
        for(int i = 0; i < 3; i++)//Циклами остальной инвентарь
            for(int j = 0; j < 9; j++)
                addSlotToContainer(new Slot(player.inventory, j + i * 9 + 9, 29/*тоже самое, x*/ + j * 18, 24/*y*/ + i * 18));
 
Еще кстати нет функции transferStackInSlot, точнее она есть, но пустая, если надо я могу запилить подробный тутор о создании сундука, чтобы предметы сохранялись и с рабочей функцией transferStackInSlot, а так же с произвольным количеством рядов и столбцов слотов в сундуке.
 
О крут, только что с этой долбаннойблиннафиг текстурой делать? Как вернуть в нужное место? Просто класс+метод скажи. Я же должен сам в этом разобраться
[merge_posts_bbcode]Добавлено: 17.04.2014 00:44:49[/merge_posts_bbcode]

Воу Воу:
a216e353777653d8e37954824818b9a1.png
А ведь я просто в drawGuiContainerBackgroundLayer в int zX = (width - ySize) / 2;
int zY = (height - ySize) /2;
заменил 2 на 1... I'm shoked
 
771
5
Это центр экрана, изменив число ты сломал систему.
 
Сверху