- 395
- 34
- 90
Дратути
Решил я сделать так чтобы в биоме было всегда темно как ночью, нашел метод
как видно метод клиентский, сделал туда трансформер.
Как подобает клиентскому методу сделал клиентскую проверку.
Работает! но каким-то магическим образом когда я стою (в данном случае на пляже) везде начинают спавнится ночные мобы, и зомби скелеты и т.д не горят
я конечно понимаю что все это привязано к уровню освещенности. Но это клиентский метод! магия какаято...
Почему так? Как быть? ((
Можно конечно в методе
Решил я сделать так чтобы в биоме было всегда темно как ночью, нашел метод
getSunBrightness:
@SideOnly(Side.CLIENT)
public float getSunBrightness(float partialTicks)
{
return this.provider.getSunBrightness(partialTicks);
}
visitCode:
@Override
public void visitCode() {
super.visitCode();
mv.visitMethodInsn(Opcodes.INVOKESTATIC, HANDLER_PATH, "isClientPlayerInTaintBiome", "()Z", false);
Label continueLabel = new Label();
mv.visitJumpInsn(Opcodes.IFEQ, continueLabel);
mv.visitLdcInsn(0.0f);
mv.visitInsn(Opcodes.FRETURN);
mv.visitLabel(continueLabel);
}
Проверка:
public static boolean isClientPlayerInTaintBiome() { // не бейти меня это тестовый вариант!
if (Minecraft.getMinecraft().player != null && Minecraft.getMinecraft().world != null) {
EntityPlayerSP player = Minecraft.getMinecraft().player;
World world = Minecraft.getMinecraft().world;
// return world.getBiome(player.getPosition()).equals(InitBiome.TAINT);
return world.getBiome(player.getPosition()).equals(Biomes.BEACH);
} else {
return false;
}
}
я конечно понимаю что все это привязано к уровню освещенности. Но это клиентский метод! магия какаято...
Почему так? Как быть? ((
Можно конечно в методе
decorate() покрывать небо над биомом блоком по типу air который не пропускает свет но это помойму костыль.
Последнее редактирование: