public class TutTNT extends BlockTNT {
public TutTNT(String name) {
this.setRegistryName(name);
this.setDefaultState(this.blockState.getBaseState().withProperty(EXPLODE, Boolean.valueOf(false)));
this.setCreativeTab(CreativeTabs.REDSTONE);
}
}
public static BlockTNT TUT_TNT = new TutTNT("tut_tnt");
Об этом есть тут: Создание блока - MC Modding Учебнику блока отсутствует текстура
При активации Block заменяется на Entity, подробнее можно посмотреть в методах самого BlockTNT. Если нужен свой формат, нужен будет и свой EntityTNTпри активации подставляется текстура
А как создать этот EntityTNT?При активации Block заменяется на Entity, подробнее можно посмотреть в методах самого BlockTNT. Если нужен свой формат, нужен будет и свой EntityTNT
бегом жабу учить.EntityTNT
текстура должна называться регистрационным именем@neverlessy Спасибо, действительно работает, но теперь у блока отсутствует текстура и при активации подставляется текстура обычного динамита ( Как исправить, что бы была моя текстура?
+- вроде так.Создаешь класс, наследуешь EntityTnt и ставишь свое регистрационное имя. Профит
Я уже все перепробовал, но у меня стандартная текстура, а сам динамит полностью работаетесли не ошибаюсь, при активации он превращается в Entity и использует ту же текстуру динамита.
Повторяя всех комментаторов выше..Я уже все перепробовал, но у меня стандартная текстура, а сам динамит полностью работает
net.minecraft.entity.item.EntityTNTPrimed
net.minecraft.client.renderer.entity.RenderTNTPrimed
,public void doRender()
будет this.blockRenderer.renderBlockAsItem(Blocks.tnt..
(строки 58 и 67) заменён блок на твой, например this.blockRenderer.renderBlockAsItem(MyBlocks.MyTnt...
ВДля которого будет создан и зареган свой рендер net.minecraft.client.renderer.entity.RenderTNTPrimed,
где в методе public void doRender() будет this.blockRenderer.renderBlockAsItem(Blocks.tnt.. (строки 58 и 67) заменён блок на твой, например this.blockRenderer.renderBlockAsItem(MyBlocks.MyTnt...
net.minecraft.client.renderer.entity.RenderTNTPrimed
нет this.blockRenderer.renderBlockAsItem
public class RenderHandler {
public static void registerEntityRenders(){
RenderingRegistry.registerEntityRenderingHandler(EntityMyTNTPrimed.class, RenderMyTNTPrimed::new);
}
}
@EventHandler
public void init(FMLInitializationEvent event)
{
// some example code
logger.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
ItemsRegister.registerRender();
BlocksRegister.registerBlocksRender();
RenderHandler.registerEntityRenders();
}
@SideOnly(Side.CLIENT)
public class RenderMyTNTPrimed extends Render<EntityMyTNTPrimed>
{
public RenderMyTNTPrimed(RenderManager renderManagerIn)
{
super(renderManagerIn);
this.shadowSize = 0.5F;
}
public void doRender(EntityMyTNTPrimed entity, double x, double y, double z, float entityYaw, float partialTicks)
{
BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
GlStateManager.pushMatrix();
GlStateManager.translate((float)x, (float)y + 0.5F, (float)z);
if ((float)entity.getFuse() - partialTicks + 1.0F < 10.0F)
{
float f = 1.0F - ((float)entity.getFuse() - partialTicks + 1.0F) / 10.0F;
f = MathHelper.clamp(f, 0.0F, 1.0F);
f = f * f;
f = f * f;
float f1 = 1.0F + f * 0.3F;
GlStateManager.scale(f1, f1, f1);
}
float f2 = (1.0F - ((float)entity.getFuse() - partialTicks + 1.0F) / 100.0F) * 0.8F;
this.bindEntityTexture(entity);
GlStateManager.rotate(-90.0F, 0.0F, 1.0F, 0.0F);
GlStateManager.translate(-0.5F, -0.5F, 0.5F);
blockrendererdispatcher.renderBlockBrightness(BlocksRegister.my_tnt.getDefaultState(), entity.getBrightness());
GlStateManager.translate(0.0F, 0.0F, 1.0F);
if (this.renderOutlines)
{
GlStateManager.enableColorMaterial();
GlStateManager.enableOutlineMode(this.getTeamColor(entity));
blockrendererdispatcher.renderBlockBrightness(BlocksRegister.my_tnt.getDefaultState(), 1.0F);
GlStateManager.disableOutlineMode();
GlStateManager.disableColorMaterial();
}
else if (entity.getFuse() / 5 % 2 == 0)
{
GlStateManager.disableTexture2D();
GlStateManager.disableLighting();
GlStateManager.enableBlend();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.DST_ALPHA);
GlStateManager.color(1.0F, 1.0F, 1.0F, f2);
GlStateManager.doPolygonOffset(-3.0F, -3.0F);
GlStateManager.enablePolygonOffset();
blockrendererdispatcher.renderBlockBrightness(BlocksRegister.my_tnt.getDefaultState(), 1.0F);
GlStateManager.doPolygonOffset(0.0F, 0.0F);
GlStateManager.disablePolygonOffset();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.disableBlend();
GlStateManager.enableLighting();
GlStateManager.enableTexture2D();
}
GlStateManager.popMatrix();
super.doRender(entity, x, y, z, entityYaw, partialTicks);
}
protected ResourceLocation getEntityTexture(EntityMyTNTPrimed entity)
{
return TextureMap.LOCATION_BLOCKS_TEXTURE;
}
}