1.16.4 Освещение блока

Версия Minecraft
1.16.4
API
Forge
1609669903087.png
Java:
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS,
            Main.MOD_ID);
  
public static final RegistryObject<Block> WHITE_CRYSTAL_ORE = BLOCKS.register("white_crystal_ore",
        () -> new Block(AbstractBlock.Properties.create(Material.GLASS, MaterialColor.WHITE_TERRACOTTA)
                .hardnessAndResistance(0.5f, 0.5f)
                .sound(SoundType.GLASS)
                .setLightLevel((state)->{return 6;})
                ));


Поставил освещение блоку 6 .setLightLevel((state)->{return 6;}), освещает, все окей, но появилась "тень" под блоком. Для примера на скрине факел и мой блок. Под факелом нет тени, а под моим блоком есть. Как ее убрать?
 
Решение
2 варианта по памяти, не помню, помогают ли они в этом случае, но ты попробуй:
1. Установи блоку тип notSolid() в его конструкторе
2. Если с первым не прокатило, попробуй на стороне клиента (FMLClientSetupEvent) зарегать ему рендер: RenderTypeLookup.setRenderLayer(твой_блок, RenderType.getCutout());

UPD: Еще можно глянуть как сделан тот же стержень энда, но там регистрация рендера чуть упоротее в ванили, если сможешь распарсить - смотри.
Возможно это из-за того что блок имеет материал стекла.
Перепробовал другие материалы - iron, air, REDSTONE_LIGHT, etc, но не помогло.
Может есть табличка как материал влияет на блок?
Заметил, что если материал воздух, то блок низя сломать)
 
Просто для справки, если ты вдруг так не делал:
Когда меняешь материал, ставь блок заново где-то в другом месте. Тень от предыдущей установки до изменения кода не пропадет, пока не обновишь стейт. И, да, там верно подсказали, если мне не изменяет память - связано с материалом.
 
ставь блок заново где-то в другом месте
Да, я так делал)
Просто перепробовал материалов штук 5-6, и изменений не было. Пытаюсь вот табличку материалов и их свойств найти, но шот не могу(
 
2 варианта по памяти, не помню, помогают ли они в этом случае, но ты попробуй:
1. Установи блоку тип notSolid() в его конструкторе
2. Если с первым не прокатило, попробуй на стороне клиента (FMLClientSetupEvent) зарегать ему рендер: RenderTypeLookup.setRenderLayer(твой_блок, RenderType.getCutout());

UPD: Еще можно глянуть как сделан тот же стержень энда, но там регистрация рендера чуть упоротее в ванили, если сможешь распарсить - смотри.
 
Назад
Сверху