- 1,057
- 50
- 234
Добрый день. Снова я и снова с вопросами.
Вопрос 1) У меня имеется 2 жидкости и 2 новых ведра с этими жидкостями (ItemBucket).
Проблема следующая:
При наборе жидкости в пустое ведро происходит то, что на скрине.
Жидкости и блоки жидкостей зарегистрированы так:
Эвент, который регистрируется в главном файле мода:
Главный файл мода:
Причем данная байда не у всех, я не смог воспроизвести эту ошибку у себя. Однако игроки пишут о ее наличии. А на серверах при наборе в ведро выкидывает с ошибкой (если надо, скину лог).
И Вопрос 2) У меня есть измерение с провайдером WorldProviderVenus. Как и где запретить разлитие жидкостей из ванильного ведра? (Как в аду, но там проверка прописана в самом ведре).
UPD. Еще вопрос, как в своем измерении отрендерить свой дождь? (Свою текстуру дождя или цвет)
Вопрос 1) У меня имеется 2 жидкости и 2 новых ведра с этими жидкостями (ItemBucket).
Проблема следующая:
При наборе жидкости в пустое ведро происходит то, что на скрине.
Жидкости и блоки жидкостей зарегистрированы так:
Код:
public class GSFluids {
public static Fluid Methane;
public static Fluid UnknowWater;
//--------------------------------------
public static Block BlockMethane;
public static Block BlockUnknowWater;
public static void initialize() {
if (!FluidRegistry.isFluidRegistered("methane"))
{
Methane = new Fluid("methane").setDensity(400).setViscosity(1500);
FluidRegistry.registerFluid(Methane);
}
else
{
GCLog.info("Galaxy Space methane is not default, issues may occur.");
}
if (!FluidRegistry.isFluidRegistered("unknowwater"))
{
UnknowWater = new Fluid("unknowwater").setDensity(400).setViscosity(3000);
FluidRegistry.registerFluid(UnknowWater);
}
else
{
GCLog.info("Galaxy Space UnknowWater is not default, issues may occur.");
}
Methane = FluidRegistry.getFluid("methane");
UnknowWater = FluidRegistry.getFluid("unknowwater");
if (Methane.getBlock() == null)
{
BlockMethane = new TitanBlockMethane(Methane, Material.water).setBlockName("Methane");
((TitanBlockMethane) BlockMethane).setQuantaPerBlock(6);
GameRegistry.registerBlock(BlockMethane, ItemBlockDesc.class, BlockMethane.getUnlocalizedName());
Methane.setBlock(BlockMethane);
}
else
{
BlockMethane = Methane.getBlock();
}
if (UnknowWater.getBlock() == null)
{
BlockUnknowWater = new BarnardaCBlockUnknowWater(UnknowWater, Material.water).setBlockName("UnknowWater");
((BarnardaCBlockUnknowWater) BlockUnknowWater).setQuantaPerBlock(6);
GameRegistry.registerBlock(BlockUnknowWater, ItemBlockDesc.class, BlockUnknowWater.getUnlocalizedName());
UnknowWater.setBlock(BlockUnknowWater);
}
else
{
BlockUnknowWater = UnknowWater.getBlock();
}
if (BlockMethane != null)
{
GSItems.MethaneBucket = new ItemMethaneBucket(BlockMethane);
FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluidStack("methane", FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(GSItems.MethaneBucket, 1, 0), new ItemStack(Items.bucket));
}
if (BlockUnknowWater != null)
{
BRItems.UnknowWaterBucket = new ItemUnknowWaterBucket(BlockUnknowWater);
FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluidStack("unknowwater", FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(BRItems.UnknowWaterBucket, 1, 0), new ItemStack(Items.bucket));
}
}
}
Код:
@SubscribeEvent
public void onBucketFill(FillBucketEvent event)
{
World world = event.world;
MovingObjectPosition pos = event.target;
Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ);
int meta = world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ);
if (block == GSFluids.BlockMethane && meta == 0)
{
world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ);
event.result = new ItemStack(GSItems.MethaneBucket, 1, 0);
event.setResult(Result.ALLOW);
}
if (block == GSFluids.BlockUnknowWater && meta == 0)
{
world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ);
event.result = new ItemStack(BRItems.UnknowWaterBucket, 1, 0);
event.setResult(Result.ALLOW);
}
}
Код:
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
//code
GSFluids.initialize();
//code
}
И Вопрос 2) У меня есть измерение с провайдером WorldProviderVenus. Как и где запретить разлитие жидкостей из ванильного ведра? (Как в аду, но там проверка прописана в самом ведре).
UPD. Еще вопрос, как в своем измерении отрендерить свой дождь? (Свою текстуру дождя или цвет)