Иконка ресурса

Сборник дислокации полезных малоизвестных вещей.

Версия(и) Minecraft
1.12.2
Сборник предназначен для тех, кому уже есть 18 кому суть "доставания чего то из чего то" ясна полностью как ночь в горах.
Просто порой что то требуется в определенном методе для вашей задумки, а этого там нету. И необходимо извращаться в поисках в разнообразных местах.
1) ForgeHooksClient.class
2) FMLClientHandler.class
3) FMLCommonHandler.class
4) TileEntitySpecialRenderer.class
5) TileEntityRendererDispatcher.class
6) FastTESR.class
7) ForgeBlockModelRenderer.class
1) CommandEvent.class
Эвент для создания команд.
Путь: net.minecraftforge.event.CommandEvent.CommandEvent(ICommand, ICommandSender, String[])
2) FluidEvent.class && FluidRegisterEvent.class
Позволяет оперировать с жидкостями
Путь: net.minecraftforge.fluids.FluidEvent.FluidEvent(FluidStack, World, BlockPos)
Путь: net.minecraftforge.fluids.FluidRegistry.FluidRegisterEvent.FluidRegisterEvent(String, int)
3) RenderBlockOverlayEvent.class
Судя по названию, позволяет рендерить слои на блоке. Надо попробовать)
Путь: net.minecraftforge.client.event.RenderBlockOverlayEvent.RenderBlockOverlayEvent(EntityPlayer, float, OverlayType, IBlockState, BlockPos)
4) ModelBakeEvent.class && ModelRegistryEvent.class
Эвенты, позволяющие собрать свою модель в игре.
Путь: net.minecraftforge.client.event.ModelRegistryEvent
Путь: net.minecraftforge.client.event.ModelBakeEvent.ModelBakeEvent(ModelManager, IRegistry<ModelResourceLocation, IBakedModel>, ModelLoader)
5) EntityViewRenderEvent.class
Эвент, по факту форджевский хук в ванильный EntityRenderer -можно настроить свое отображение рендера того, что видит энтити.
Путь: net.minecraftforge.client.event.EntityViewRenderEvent.EntityViewRenderEvent(EntityRenderer, Entity, IBlockState, double)
6) BabyEntitySpawnEvent.class
Эвент рождения маленького энтити. Можно изменять ванильных мобов, можно контролировать их размножение и условия размножения.
Путь: net.minecraftforge.event.entity.living.BabyEntitySpawnEvent.BabyEntitySpawnEvent(EntityLiving, EntityLiving, EntityAgeable)
7) ColorHandlerEvent.class(abstract class)
Поможет с окраской блока в разные цвета(кастомные\биома\соседнего блока\бомжа на улице)
Путь: net.minecraftforge.client.event.ColorHandlerEvent
0) Майнкрафт
Minecraft mc = Minecraft.getMinecraft();
1) Клиентский мир
World world = mc.world;
2) Серверный мир...
3) Серверный мир

World world = FMLCommonHandler.instance().getMinecraftServerInstance().getServer().getEntityWorld();
4)Клиентский игрок
EntityPlayer player = mc.player;
5)Серверный игрок по нику(мир соотвественно должен быть серверным)
EntityPlayerMP player = world.getPlayerByUsername(username)
6) Расположение модели(полагаю obj тоже подгрузит)
ModelResourceLocation mrl = new ModelResourceLocation("modid:model.obj");
7) Получение IBakedModel
IBakedModel model = mc.getBlockRendererDispatcher().getBlockModelShapes().getModelManager().getModel(mrl);
8) Получение ресурса, расположенного по пути
ResourceLocation rl = new ResourceLocation("modid:image.png");
9) Получение шейпов модели
BlockModelShapes bms = mc.getBlockRendererDispatcher().getBlockModelShapes();
10) Получение класса рендера блоков
BlockModelRenderer bmr = mc.getBlockRendererDispatcher().getBlockModelRenderer();
11) Получение тесселятора
Tessellator tessl = Tessellator.getInstance();
12) Получение блока(через клиентский мир)(правда позицию блока все таки придется уже иметь)
Block block = mc.world.getBlockState(pos).getBlock();
13) Получение блока(через серверный мир)
Block block = mc.getRenderViewEntity().getServer().getEntityWorld().getBlockState(pos).getBlock();
14) Получение предмета из ItemBlock'а
Item item = block.getItemFromBlock(item);
15) Получение блока из предмета(не проверял, но скорее всего из предметов блоки вы достать не сможете, а из ItemBlock'ов блоки сможете)
Block block = block.getBlockFromItem(item);
16) Клиентская сущность
Entity entity = this.mc.getRenderViewEntity();
17) Получение IBlockState(через клиентский и серверный мир, как хотите)
IBlockState state = world.getBlockState(pos);
18) Получить текстуру блока(эксклюзивно для 1.10+, насколько я знаю)
TextureAtlasSprite texture = mc.getTextureMapBlocks().getAtlasSprite("modid:image.png");
19) Получение x,y,z координат из BlockPos(для новичков и тех, кто переходит с 1.7 и ему удобнее коры)
BlockPos pos;
любойМетодГдеНадоПозицию(new BlockPos(pos.getX() , pos.getY(), pos.getZ()))
20) Получение полноценного мира из IBlockAccess
*
Например в методе есть только IBlockAccess мир. А нам нужен полный для каких то целей. Например,
достать рендом

Random rand = world instanceof World ? ((World)world).rand : new Random();
Буду пополнять понемногу...
  • Like
Реакции: u241, mousecray и CMTV
Автор
Maxik
Просмотры
881
Первый выпуск
Обновление
Оценка
4.50 звёзд 4 оценок

Другие ресурсы пользователя Maxik

Последние обновления

  1. Добавлен список малоизвестных эвентов.

    Добавлен список малоизвестных эвентов.

Последние рецензии

"ясна полностью как ночь в горах" - скрин бы приложил, в шапку темы, например

Некоторые вещи не знал, спасибо, теперь знаю)
А с некоторых просто проорал:
"Minecraft.getMinecraft()"

"new BlockPos(pos.getX() , pos.getY(), pos.getZ())" - антипаттерн?

Наверное, это еще не все секретки, надеюсь, еще чем-нить дополнишь гайд
Полезно. Но надо пополнять и будет круто для новичков.
Не забрасывай это дело! :) Помни, тебе всегда есть для кого это делать ;)
3.5 можно получить как параметр во время обработки IMessage.
Maxik
Maxik
тут типо сборник того, что можно получить В ЛЮБОМ месте.
Полезно. Но надо пополнять и будет круто для новичков.
Сверху