[1.7.10] Лестница

svk

1,185
3
Сделал лестницу, но выкидывает вот с таким крашем
Код:
    java.lang.ClassCastException: com.redenergy.blocks.BlockStairs cannot be cast to net.minecraft.block.BlockStairs
    at net.minecraft.client.renderer.RenderBlocks.renderBlockByRenderType(RenderBlocks.java:366)
    at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:207)
    at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1618)
    at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1263)
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1087)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1056)
    at net.minecraft.client.Minecraft.run(Minecraft.java:951)
    at net.minecraft.client.main.Main.main(Main.java:164)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)

        at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
    at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2555)
    at net.minecraft.client.Minecraft.run(Minecraft.java:980)
    at net.minecraft.client.main.Main.main(Main.java:164)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)
Код
http://pastebin.com/cymJgS5P
 
Делай или extends BlockStairs (extends net.minecraft.block.BlockStairs (пакет может криво указал, главное принцип)), либо свой рендерер.
Ты выбрал renderType, как у ванильного блока ступенек и он пытается скастовать твой блок к ванильному, хотя он не является им\либо его наследником.

Название класса тут вообще роли не играет, проблема в переданном renderType.
 
Сделал лестницу с extends BlockStairs.
Почему-то при установки рядом с другим блоком затеняется внутренний угол ступеней.


Порылся на забугорных форумах, советуют добавить this.setLightOpacity(255); и типа всё заработает...

Добавил, не заработало...
Есть мысли?

Код:
Код:
package ru.liahim.testmod.block;

import ru.liahim.testmod.main.TestMod;
import net.minecraft.block.BlockStairs;

public class TestStair extends BlockStairs {
    
    public TestStair() {
        super(TestMod.testBlock, 5);
        this.setTickRandomly(true);
        this.setCreativeTab(TestMod.Tab);
        this.setHardness(5F);
        this.setResistance(10F);
        this.setHarvestLevel("pickaxe", 1);
        this.setLightOpacity(255);
    }
}
[merge_posts_bbcode]Добавлено: 15.09.2015 23:07:04[/merge_posts_bbcode]

Хм... И, почему-то, она не видит имени блока при регистрации...
Видит только если добавить: this.setBlockName("TestStair");

[merge_posts_bbcode]Добавлено: 15.09.2015 23:13:38[/merge_posts_bbcode]

Так, всё, опять вопрос снят )))
Ответ в теме: http://forum.mcmodding.ru/viewtopic.php?id=2657
 
Liahim написал(а):
Народ! Ещё вопрос: как при такой системе, то есть с использованием extends BlockStairs, можно запихнуть несколько лестниц в один блок?

Видимо, что-то нужно писать в:
Код:
super(???, ???);

Но что?
What?
 
Да не то, чтобы прям What...


Пытаюсь запихнуть в кастомные ступени и плиты несколько блоков в один класс.
Чо-та не получаецца.


Например у плит пихаю:
Код:
    public void getSubBlocks(Block block, CreativeTabs creativeTabs, List list)
    {
        if (block != TestMod.testSlabDouble)
        {
            list.add(new ItemStack(block, 1, 0));
            list.add(new ItemStack(block, 1, 1));
        }
    }


И не фурычит... Плита только одна.
А уж со ступенями вообще не представляю что куда пихать. Там вообще в супере блок указывается.
[merge_posts_bbcode]Добавлено: 16.09.2015 20:20:07[/merge_posts_bbcode]

Может что с регистрацией не то сделал?
Код:
public static BlockSlab testSlab= new TestSlab(false, TestMod.LittleTab, "testSlab");
public static BlockSlab testSlabDouble = new TestSlab(true, null, "testSlabDouble");

@EventHandler
public void init(FMLInitializationEvent event)
{    
GameRegistry.registerBlock(testSlab, ItemTestSlab.class, "testSlab");
GameRegistry.registerBlock(testSlabDouble, ItemTestSlab.class, "testSlabDouble");
}

[merge_posts_bbcode]Добавлено: 16.09.2015 20:42:21[/merge_posts_bbcode]

Так, блин! Разобрался... Нужно не блоки добавлять, а айтемы.
 
Назад
Сверху