Как сделать FluidTank

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.7.10
29
1
2
Вопрос:
Подскажите как сделать блок, который хранит жидкость с нуля, если можно объясните че да как, а то смотрел исходники в других модах не чего не понял)) Ещё пожалуйста без лишнего оффтопика :)
 
Решение
Каким-нибудь образом зарендерить блок с текстурой этой жидкости. Я-бы зарендерил часть типа так:
Код:
if (tank.getFluid() != null && tank.getFluid().getFluid() != null && tank.getFluid().getFluid().getIcon() != null) {
	boxOnIcon(Tessellator.instance, tank.getFluid().getFluid().getIcon(),
			0.0625D, 0.0625D, 0.0625D, 0.9375D, 0.9375D, 0.9375D);
}
Код:
	public static void boxOnIcon(Tessellator tessellator, IIcon icon, double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
		if (icon == null) return;
		double icon_minX = (minX < 0D ? 0D : minX) * 16D;
		double icon_minY = (minY < 0D ? 0D : minY) * 16D;
		double icon_minZ = (minZ < 0D ? 0D : minZ) * 16D;
		double icon_maxX = (maxX > 1D ? 1D : maxX) * 16D...
connor41 написал(а):
Работает всё зашибенно. Последний вопрос ..
Как сделать рендер внутри блока жидкости?)

Сделай тему в учебнике, как делать кастомный FluidTank. Я думаю многим пригодится, да еще и на русском
 
Maxik001 написал(а):
connor41 написал(а):
Работает всё зашибенно. Последний вопрос ..
Как сделать рендер внутри блока жидкости?)

Сделай тему в учебнике, как делать кастомный FluidTank. Я думаю многим пригодится, да еще и на русском

Попробую потом.


Код:
          @Override
    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) {
        
        ItemStack stack = player.inventory.getCurrentItem();
        if (stack != null) {
            FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(stack);
            TileGlassFluidTank tank = (TileGlassFluidTank) world.getTileEntity(x, y, z);
            if (liquid != null) {
                int amount = tank.fill(ForgeDirection.UNKNOWN, liquid, false);
                if (amount == liquid.amount) {
                    tank.fill(ForgeDirection.UNKNOWN, liquid, true);
                    if (!player.capabilities.isCreativeMode)
                        player.inventory.setInventorySlotContents(player.inventory.currentItem, Utils.useItemSafely(stack));

                    if(tank.tank.getFluid().getFluid().getBlock() != null){
    }
                    return true;
                }
                else
                    return true;
            }
            else if (FluidContainerRegistry.isBucket(stack)) {
                FluidTankInfo[] tanks = tank.getTankInfo(ForgeDirection.UNKNOWN);
                if (tanks[0] != null) {
                    FluidStack fillFluid = tanks[0].fluid;
                    ItemStack fillStack = FluidContainerRegistry.fillFluidContainer(fillFluid, stack);
                    if (fillStack != null) {
                        tank.drain(ForgeDirection.UNKNOWN, FluidContainerRegistry.getFluidForFilledItem(fillStack).amount, true);
                        if (!player.capabilities.isCreativeMode) {
                            if (stack.stackSize == 1)
                                player.inventory.setInventorySlotContents(player.inventory.currentItem, fillStack);
                            else {
                                player.inventory.setInventorySlotContents(player.inventory.currentItem, Utils.useItemSafely(stack));
                                if (!player.inventory.addItemStackToInventory(fillStack))
                                    player.dropPlayerItemWithRandomChoice(fillStack, false);
                            }
                        }
                        return true;
                    }
                    else
                        return true;
                }

            }
        }
        return false;
        }

Вот само условие при котором жидкость пкм из ведра
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху