FluidContainerRegistry или же свое ведро для жижи

Версия Minecraft
1.12.2
3,005
192
592
В одной теме говорилось, как сделать свое ведро для жижи..
Создаёшь ведро жидкости унаследованное от ItemBucket, в конструктор пишешь "setContainerItem(Items.bucket);", потом регаешь FluidContainerRegistry.registerFluidContainer(new FluidStack(жидкость, FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(твоё_ведро), new ItemStack(пустое_ведро)); потом пишешь, BucketHandler.INSTANCE.bucket.put(блок_твоей_жидкости, твоё_ведро); потом пишешь MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); Ну вроде всё, дальше регаешь рендер для своего ведра.
Но, вот есть проблема, что FluidContainerRegistry нету в 1.12.
После поиска по исходникам, его замены я не нашел.
Что нужно юзать?
 
3,005
192
592
1,057
50
234
Костылями через FillBucketEvent делается.
Вот кусок из GC
Java:
 if (GCBlocks.fuel != null && !FluidRegistry.getBucketFluids().contains(fluidFuel))
        {
            FluidRegistry.addBucketForFluid(GCFluids.fluidFuel);  //Create a Universal Bucket AS WELL AS our type, this is needed to pull fuel out of other mods tanks
            GCItems.bucketFuel = new ItemBucketGC(GCBlocks.fuel, fluidFuel);
            GCItems.bucketFuel.setUnlocalizedName("bucket_fuel");
            GCItems.registerItem(GCItems.bucketFuel);
            EventHandlerGC.bucketList.put(GCBlocks.fuel, GCItems.bucketFuel);
        }
EventHandlerGC
Java:
public static Map<Block, Item> bucketList = new HashMap<Block, Item>(4, 1F);

private ItemStack fillBucket(World world, RayTraceResult position)
    {
        IBlockState state = world.getBlockState(position.getBlockPos());
        Block block = state.getBlock();

        Item bucket = bucketList.get(block);

        if (bucket != null && block.getMetaFromState(state) == 0)
        {
            world.setBlockToAir(position.getBlockPos());
            return new ItemStack(bucket);
        }

        return null;
    }

    @SubscribeEvent
    public void onBucketFill(FillBucketEvent event)
    {
        if (event.getEmptyBucket() == null || !(event.getEmptyBucket().getItem() instanceof ItemBucket))
        {
            return;
        }
        RayTraceResult pos = event.getTarget();
        if (pos == null)
        {
            return;
        }

        ItemStack ret = fillBucket(event.getWorld(), pos);

        if (ret == null)
        {
            return;
        }

        event.setFilledBucket(ret);
        event.setResult(Result.ALLOW);
    }
 
3,005
192
592
Т.Е. В место нормального, уже готового класса они предлагают делать велосипеды? Умно со стороны Forge..
 
Сверху