- 4,045
- 63
- 645
Всем привет!
Я таки начал решать эту непосильную задачу: написание своего рендера для подобия блока травы.
Кое как удалось создать макет кода для нескольких пассов рендера.
Использовал этот тутор, немного его изменив.
Но вот беда... Те цели, которые мне нужны, а именно: наложение поверх травы и её окраска в цвет биома, этот тутор не решает. А все попытки найти хоть что-нибудь подходящее утыкаются в несуществующие страницы!
ДА! То самое, что мне нужно, уже решалось много раз, но ВСЕ ссылки на готовый код не работают!
В частности эта. ЭТО ВСЁ ЗАГОВОР! :blink:
В общем, помогите плиз! Что именно нужно писать во 2-м пассе рендера, что б получилась таки трава? Думаю, что здесь полно людей, для который такая задача - семечки.
Пока что рендер выглядит так:
В сомом блоке травы добавил следующие методы:
Ну и верультат (всё работает, правда совсем не то, что мне надо )
P.S. Боковая сторона блока травы сейчас не красится совсем. То, что бы видите - это просто текстура, очень похожая по цвету на биом.
Я таки начал решать эту непосильную задачу: написание своего рендера для подобия блока травы.
Кое как удалось создать макет кода для нескольких пассов рендера.
Использовал этот тутор, немного его изменив.
Но вот беда... Те цели, которые мне нужны, а именно: наложение поверх травы и её окраска в цвет биома, этот тутор не решает. А все попытки найти хоть что-нибудь подходящее утыкаются в несуществующие страницы!
ДА! То самое, что мне нужно, уже решалось много раз, но ВСЕ ссылки на готовый код не работают!
В частности эта. ЭТО ВСЁ ЗАГОВОР! :blink:
В общем, помогите плиз! Что именно нужно писать во 2-м пассе рендера, что б получилась таки трава? Думаю, что здесь полно людей, для который такая задача - семечки.
Пока что рендер выглядит так:
Код:
package ru.liahim.saltmod.main;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.init.Blocks;
import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
public class SaltGrassRenderer implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
renderer.renderBlockAsItem(Blocks.grass, 1, 0.0F);
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId,
RenderBlocks renderer) {
if (ClientProxy.renderPass == 0)
{
renderer.renderStandardBlock(SaltMod.saltGrass, x, y, z);
}
else
{
renderer.renderStandardBlock(Blocks.glass, x, y, z);
}
return true;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
@Override
public int getRenderId() {
return ClientProxy.saltGrassRenderType;
}
}
В сомом блоке травы добавил следующие методы:
Код:
@Override
public boolean renderAsNormalBlock()
{
return false;
}
@Override
public int getRenderType()
{
return ClientProxy.saltGrassRenderType;
}
@Override
public boolean canRenderInPass(int pass)
{
ClientProxy.renderPass = pass;
return true;
}
@Override
public int getRenderBlockPass()
{
return 1;
}
@SideOnly(Side.CLIENT)
public static IIcon getIconSideOverlay()
{
return Blocks.grass.getIconSideOverlay();
}
Ну и верультат (всё работает, правда совсем не то, что мне надо )
P.S. Боковая сторона блока травы сейчас не красится совсем. То, что бы видите - это просто текстура, очень похожая по цвету на биом.