Проблема с сием Magical Checkpoint :(

1,087
2
Тут на видео всё объясняется:
[youtube]pRFTBFDuZl8[/youtube]

В видео можно менять качество так на всякий.

Также есть проблемы с самим кодом.

Вот исходники:
(Там же и мои страдания)

Код:
//MagicalCraftMod
package com.JakiHappyCity.MagicalCraft;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityList;
import net.minecraft.item.Item;

@Mod(modid = MagicalCraftMod.MODID, version = MagicalCraftMod.VERSION, name = MagicalCraftMod.MODNAME, dependencies="required-after:AfterLifeCore@[0.0.1,);")
public class MagicalCraftMod {
    public static final String MODID = "magicalcraftmod";
    public static final String VERSION = "Dev. version 0.0.1";
    public static final String MODNAME = "Magical Craft";

    public static Block magicalcheckpoint;
    public static CreativeTabs tabMCraft;
    public static Block magicalcheckpointall;
    
    @EventHandler
    public void preLoad(FMLPreInitializationEvent event)
    {
        magicalcheckpoint = new MagicalCheckpoint("MagicalCheckpoint");
        GameRegistry.registerBlock(magicalcheckpoint, "MagicalCheckpoint");
        magicalcheckpointall = new MagicalCheckpointAll();
        GameRegistry.registerBlock(magicalcheckpointall, "MagicalCheckpointAll");
    }
}
//Есть несколько вещей которые здесь указаны, но даже не делаются сейчас.

Код:
//MagicalCheckpoint
package com.JakiHappyCity.MagicalCraft;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import java.util.Random;

import com.JakiHappyCity.AfterLifeCore.*;

import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;

public class MagicalCheckpoint extends Block {

    protected MagicalCheckpoint(String string) {
        super(Material.rock);
        
        this.setHardness(5F);
        this.setHarvestLevel("pickaxe", 2);
        this.setResistance(0F);
        this.setBlockTextureName("magicalcraftmod:MagicalCheckpoint");
        this.setLightLevel(0F);
        this.setStepSound(soundTypeMetal);
        this.setCreativeTab(CreativeTabs.tabBlock);
        this.setBlockName("MagicalCheckpoint");
    }
    
    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)
    {
        if(par1World.getBlock(par2, par3+1, par4) == MagicalCraftMod.magicalcheckpoint) //Подозреваю, что здесь 1 из проблем.
        {
            par1World.setBlock(par2, par3, par4, MagicalCraftMod.magicalcheckpointall);
        }
    }
    
}

Код:
//MagicalCheckpointAll (Мол это уже структура. Не важно)
package com.JakiHappyCity.MagicalCraft;

import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

public class MagicalCheckpointAll extends Block {

    protected MagicalCheckpointAll() {
        super(Material.rock);
        this.setBlockBounds(0.1F, 0.0F, 0.1F, 0.9F, 1.5F, 0.9F);
    }
    
    public MagicalCheckpointEmptyEntity createNewTileEntity(World world) {
        return new MagicalCheckpointEmptyEntity();
    }
    
    @Override
    public int getRenderType() {
        return 8;
    }
    
    @Override
    public boolean isOpaqueCube() { //Кубик рубик всё равно ведёт себя как X-Ray.
        return true;
    }
    
    @Override
    public boolean renderAsNormalBlock() {
        return false;
    }
    
    public void registerIcons(IIconRegister icon) {
        if(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
        {
            ClientRegistry.bindTileEntitySpecialRenderer(MagicalCheckpointEmptyEntity.class, new MagicalCheckpointRenderer()); //Тут какая-то ошибка по мнению eclipse.
        }
        this.blockIcon = icon.registerIcon("mccraft:none");
    }

}

Код:
//MagicalCheckpointEmptyEntity (Скоро оформлю)
package com.JakiHappyCity.MagicalCraft;

public class MagicalCheckpointEmptyEntity {

}

Код:
//MagicalCheckpointRenderer (Честно прошлый и этот класс пока не знаю как оформить).
package com.JakiHappyCity.MagicalCraft;

import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;

public class MagicalCheckpointRenderer extends TileEntitySpecialRenderer {

    @Override
    public void renderTileEntityAt(TileEntity p_147500_1_, double p_147500_2_, double p_147500_4_, double p_147500_6_,
            float p_147500_8_) {

    }

}


Код:
//en_US.lang (Всея язык моего мода :D)
tile.MagicalCheckpoint.name=Magical Checkpoint //Пока только это.

Ну и напоследок:
pXh9ZWU.png

Это текстура Magical Checkpoint.
Надо же. На 1 блок потратил 2 дня *pokerface*. Мне ещё ведь столько сделать...
 
То гуглоанглийский на майнфордж встретишь, то гуглорусский на русских форумах увидишь... жесть
Ну, сам я не силен в английском, однако
Update to 1.8, or reading http://bedrockminer.jimdo.com/modding-tutorials/basic-modding-1-7/first-block/
 
FanKar,
0. Видно некоторые не знания в Java-коде, а так-же ты не читаешь подсказки eclipse'а.
1. MagicalCheckpointEmptyEntity не унаследовал TileEntity. Рендер будет выдавать ошибку, пока ты не зарегистрируешь MagicalCheckpointEmptyEntity как TileEntity.
2. Не первый раз писали, что метод "randomDisplayTick" клиентский. Используй метод "updateTick".
3. В первом блоке есть "isOpaqueCube", в другом нету.
 
timaxa007 написал(а):
FanKar,
0. Видно некоторые не знания в Java-коде, а так-же ты не читаешь подсказки eclipse'а.
1. MagicalCheckpointEmptyEntity не унаследовал TileEntity. Рендер будет выдавать ошибку, пока ты не зарегистрируешь MagicalCheckpointEmptyEntity как TileEntity.
2. Не первый раз писали, что метод "randomDisplayTick" клиентский. Используй метод "updateTick".
3. В первом блоке есть "isOpaqueCube", в другом нету.
Насчёт 0 - да. Это так. Но некоторые подсказки огромные и их лень читать.
*1* - О как. Регистрирую:
Код:
GameRegistry.registerTileEntity(MagicalCheckpointEmptyEntity.class, //А тут чё? Какой ID? :D);
2. Попробую.
3. Сделал, посмотрю.
[merge_posts_bbcode]Добавлено: 25.08.2015 17:22:51[/merge_posts_bbcode]

Aquinary написал(а):
То гуглоанглийский на майнфордж встретишь, то гуглорусский на русских форумах увидишь... жесть
Ну, сам я не силен в английском, однако
Update to 1.8, or reading http://bedrockminer.jimdo.com/modding-tutorials/basic-modding-1-7/first-block/
Я хорош в английском и видел эти туториалы. Они хорошие, но сейчас хочу конкректно закончить свой блок, а потом дальше смотреть что да как XD

[merge_posts_bbcode]Добавлено: 25.08.2015 17:29:42[/merge_posts_bbcode]

Пожалуй буду учиться завтра по вот этому
 
GloomyFolken написал(а):
Извини, конечно, но чот взоржал:

> Я хорош в английском
> I creating a mod
Уупс. Ну на съёмку я вообще не думал о том, что пишу. Мне надо было показать что да как, а не вспоминать английский. И на сайте я почему то текст понимаю :)
[merge_posts_bbcode]Добавлено: 25.08.2015 18:02:32[/merge_posts_bbcode]

GloomyFolken написал(а):
Извини, конечно, но чот взоржал:

> Я хорош в английском
> I creating a mod
А так ты же мега-про ну так значит помоги!
 
Код:
randomDisplayTick

Замени на onUpdate или что-то в этом вроде.Дело вот в чём,ставить блоки надо на сервере,а ты на клиенте делаешь это.И в isOpaqueCube надо вернуть false,чтобы XRay выключить
[merge_posts_bbcode]Добавлено: 25.08.2015 18:12:49[/merge_posts_bbcode]

FanKar написал(а):
GloomyFolken написал(а):
Извини, конечно, но чот взоржал:
> Я хорош в английском
> I creating a mod
А так ты же мега-про ну так значит помоги!
I'm creating a mod(I've created a mod)
 
В английском я далеко не "мега-про", а скорее "понимаю технические тексты". Не упрекаю никого в незнании английского (ну как я могу в этом упрекать, когда сам его не знаю), но "хорош в английском" и пропущенный глагол to be в continuous предложении сочетаются довольно забавно. Быть может, и continuous там совсем некстати, но повторюсь: английский я не знаю :D

Чем тебе помочь - без понятия, потому что не знаю, чего ты добиваешься. Разве что могу сказать тебе, что при регистрации тайл энтити надо указывать айди блока.
 
cucugag написал(а):
FanKar написал(а):
GloomyFolken написал(а):
Извини, конечно, но чот взоржал:
> Я хорош в английском
> I creating a mod
А так ты же мега-про ну так значит помоги!
I'm creating a mod(I've created a mod)
Я не нуждался в переводе, я нуждался в помощи по моду.
Насчёт остального я попробую.
 
GlommyFolken написал(а):
Чем тебе помочь - без понятия, потому что не знаю, чего ты добиваешься. Разве что могу сказать тебе, что при регистрации тайл энтити надо указывать айди блока.
Айди блока я должен придумывать? И да добиваюсь я такой цели - сделать нужный мне блок. Это выглядит немного оскорбительно :/
[merge_posts_bbcode]Добавлено: 25.08.2015 18:31:20[/merge_posts_bbcode]

Agravaine написал(а):
Разве айди? Вроде ж просто строковый идентификатор.
В начале (В конструкторе было id), но что за строковый идентификатор.
 
Agravaine написал(а):
Разве айди? Вроде ж просто строковый идентификатор.

Ты прав, я ошибся, стыд мне и позор :(

Там действительно любая уникальная строка, которая используется как идентификатор тайла при сохранении чанка.
[merge_posts_bbcode]Добавлено: 25.08.2015 18:34:44[/merge_posts_bbcode]
что за строковый идентификатор

Что угодно, лишь бы не повторялось. Название класса тайла, например.
 
GloomyFolken написал(а):
Agravaine написал(а):
Разве айди? Вроде ж просто строковый идентификатор.

Ты прав, я ошибся, стыд мне и позор :(

Там действительно любая уникальная строка, которая используется как идентификатор тайла при сохранении чанка.
[merge_posts_bbcode]Добавлено: 25.08.2015 18:34:44[/merge_posts_bbcode]
что за строковый идентификатор

Что угодно, лишь бы не повторялось. Название класса тайла, например.
Окей
[merge_posts_bbcode]Добавлено: 25.08.2015 18:57:21[/merge_posts_bbcode]

GloomyFolken написал(а):
Что угодно, лишь бы не повторялось. Название класса тайла, например.
Eclipse даёт ошибку:
Code:
GameRegistry.registerTileEntity(MagicalCheckpointEmptyEntity.class, MCheckpoint);
Вот код.
 
GloomyFolken написал(а):
Строку там надо. "MCheckpoint".
Теперь ошибка на registerTileEntity.
[merge_posts_bbcode]Добавлено: 25.08.2015 19:00:43[/merge_posts_bbcode]

GameRegistry.registerTileEntity(MagicalCheckpointEmptyEntity.class, "MCheckpoint");
 
Я тупой *facepalm*
[merge_posts_bbcode]Добавлено: 25.08.2015 19:03:55[/merge_posts_bbcode]

GloomyFolken написал(а):
А теперь, вероятно, ты так и не унаследовал TileEntity, как говорил Тимаха.
Стоп, напомни как это сделать?
 
cucugag написал(а):
Теперь норм.
[merge_posts_bbcode]Добавлено: 25.08.2015 19:07:45[/merge_posts_bbcode]

Ща проверим как всё работает.

[merge_posts_bbcode]Добавлено: 25.08.2015 19:09:17[/merge_posts_bbcode]

Да как кстати сделать так, чтобы этот блок выделялся как два (Сейчас как 1,5)?
Код:
        this.setBlockBounds(0.1F, 0.0F, 0.1F, 0.9F, 1.5F, 0.9F);

И если кто может объясните как действует этот "F"?
 
Назад
Сверху