Здравствуйте. Создал свою жидкость. Вроде с первого взгляда все нормально, жидкости течет, её можно набрать в ведро и вылить, НО, есть несколько проблем.
Основные:
А)Если зайти внутрь жидкости, то у неё нет внутренней текстуры, т.е. если стоять внутри нее, то она совершенно прозрачна, как будто ты не внутри неё а просто где то стоишь.
Б)Нельзя двигаться по вертикали внутри жидкости даже совсем чуть чуть нельзя. только влево вправо вперед назад.
В)Скорость перемещения в жидкости должна быть к в обычной воде, а она(скорость) как будто вообще я не в жидкости нахожусь, а в воздухе, т.е. не уменьшается
Г)Нельзя утонуть в ней, не появляются пузырьки воздуха.
Искал в коде воды как там это сделано, но не нашел
Основные:
А)Если зайти внутрь жидкости, то у неё нет внутренней текстуры, т.е. если стоять внутри нее, то она совершенно прозрачна, как будто ты не внутри неё а просто где то стоишь.
Б)Нельзя двигаться по вертикали внутри жидкости даже совсем чуть чуть нельзя. только влево вправо вперед назад.
В)Скорость перемещения в жидкости должна быть к в обычной воде, а она(скорость) как будто вообще я не в жидкости нахожусь, а в воздухе, т.е. не уменьшается
Г)Нельзя утонуть в ней, не появляются пузырьки воздуха.
Искал в коде воды как там это сделано, но не нашел
public class BlockTestFluid extends BlockFluidClassic {
private static long timePlaced;
@SideOnly(Side.CLIENT)
public IIcon stillIcon;
@SideOnly(Side.CLIENT)
public IIcon flowingIcon;
public BlockTestFluid(Fluid fluid, Material material) {
super(fluid,material);
setCreativeTab(CreativeTabs.tabBlock);
this.setLightLevel(5);
}
@Override
public IIcon getIcon(int side, int meta) {
return (side == 0 || side == 1)? stillIcon : flowingIcon;
}
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
stillIcon= register.registerIcon("testMod:testfluidstill");
flowingIcon=register.registerIcon("testMod:testfluidflowing");
TestMod.testFluid.setIcons(stillIcon,flowingIcon);
}
@Override
public boolean canDisplace(IBlockAccess world, int x, int y, int z) {
if(world.getBlock(x,y,z).getMaterial().isLiquid()) return false;
return super.canDisplace(world, x, y, z);
}
@Override
public boolean displaceIfPossible(World world, int x, int y, int z) {
if(world.getBlock(x,y,z).getMaterial().isLiquid()) return false;
return super.displaceIfPossible(world, x, y, z);
}
public static void placedTimeStart(){
timePlaced=new Date().getTime();
}
public static boolean ifF1(){
//if(timePlaced==0) return false;
if((new Date().getTime()-timePlaced)>100) return true;
else return false;
}
}
private static long timePlaced;
@SideOnly(Side.CLIENT)
public IIcon stillIcon;
@SideOnly(Side.CLIENT)
public IIcon flowingIcon;
public BlockTestFluid(Fluid fluid, Material material) {
super(fluid,material);
setCreativeTab(CreativeTabs.tabBlock);
this.setLightLevel(5);
}
@Override
public IIcon getIcon(int side, int meta) {
return (side == 0 || side == 1)? stillIcon : flowingIcon;
}
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister register) {
stillIcon= register.registerIcon("testMod:testfluidstill");
flowingIcon=register.registerIcon("testMod:testfluidflowing");
TestMod.testFluid.setIcons(stillIcon,flowingIcon);
}
@Override
public boolean canDisplace(IBlockAccess world, int x, int y, int z) {
if(world.getBlock(x,y,z).getMaterial().isLiquid()) return false;
return super.canDisplace(world, x, y, z);
}
@Override
public boolean displaceIfPossible(World world, int x, int y, int z) {
if(world.getBlock(x,y,z).getMaterial().isLiquid()) return false;
return super.displaceIfPossible(world, x, y, z);
}
public static void placedTimeStart(){
timePlaced=new Date().getTime();
}
public static boolean ifF1(){
//if(timePlaced==0) return false;
if((new Date().getTime()-timePlaced)>100) return true;
else return false;
}
}