[1.6.4]Создание жидкости и ...

Статус
В этой теме нельзя размещать новые ответы.
68
0
Приветствую, форумчане.
Меня интересует несколько вопросов:
1.Как создать собственную жидкость?
2.Как создать 1/8 блока (как у снега)?
Заранее благодарю за дельные ответы
 
Может кто-нибудь помочь с регистрацией жидкости. :/
Я запутаться и ничего не понимаю. :с
[merge_posts_bbcode]Добавлено: 06.11.2014 13:32:47[/merge_posts_bbcode]

Также интересует, как приписать свойства такой жидкости. Например, когда игрок находится в жидкости  на него накладывается определённый эффект зелья.
 
public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity){
entity.addPotionEffect(...)
}
Разобрался как добавить эффект зелья при взаимодействии.
 
Все ещё нужна помощь с регистрацией жидкости.
При запуске в дебаг режиме сразу же краш. Краши читать я кажется научился, но так и не могу понять в чем дело, вот собственно и сам код. 
Вот так я регистрируют саму жидкость, в главном классе, хочу заметить, что ошибок еклипс не показывает.
Регистрация "в начале".
Код:
public static Block blockMagmaFluid;
public static Fluid magma = new Fluid("Magma");
public static int magmaID = 2053;
{
blockMagmaFluid = new MagmaFluid(magmaID, magma, Material.lava);
magma.setUnlocalizedName(blockMagmaFluid.getUnlocalizedName());
}
Регистрация "в конце".
Код:
 FluidRegistry.registerFluid(magma);
 GameRegistry.registerBlock(blockMagmaFluid);
 LanguageRegistry.addName(blockMagmaFluid, "Магма");
Вот сам класс жидкости.
Код:
package assets.bendingmod.src;


import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.util.Icon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fluids.BlockFluidClassic;
import net.minecraftforge.fluids.Fluid;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class MagmaFluid extends BlockFluidClassic {
 @SideOnly(Side.CLIENT)
 protected Icon stillIcon;
 @SideOnly(Side.CLIENT)
 protected Icon flowingIcon;
 
 public MagmaFluid(int id, Fluid magma, Material water){
 super(id, BendingMod.magma, Material.lava);
        this.setCreativeTab(BendingMod.bendingTab); // Таблица в креативе
        this.setUnlocalizedName("magmaFluidBlocks");
 }
 @Override
 public Icon getIcon(int side, int meta){
 return (side == 0 || side == 1)? stillIcon : flowingIcon;
 }
 @SideOnly(Side.CLIENT)
 @Override
 public void registerIcons(IconRegister register){
 stillIcon = register.registerIcon(ModInfo.MODID.toLowerCase() + ":magma_still");
 flowingIcon = register.registerIcon(ModInfo.MODID.toLowerCase() + ":magma_flow");
 }
 @Override
 public boolean canDisplace(IBlockAccess world, int x, int y, int z){
 if (world.getBlockMaterial(x, y, z).isLiquid()) 
 return false;
 return super.canDisplace(world, x, y, z);
 }
 @Override
 public boolean displaceIfPossible(World world, int x, int y, int z){
 if (world.getBlockMaterial(x, y, z).isLiquid()) 
 return false;
 return super.displaceIfPossible(world, x, y, z);
 }
}
Ну и наконец сам краш.
Код:
---- Minecraft Crash Report ----
// This doesn't make any sense!

Time: 06.11.14 17:34
Description: Initializing game

java.lang.NullPointerException
 at net.minecraftforge.fluids.FluidRegistry.getFluidID(FluidRegistry.java:115)
 at net.minecraftforge.fluids.Fluid.getID(Fluid.java:182)
 at net.minecraftforge.fluids.FluidStack.<init>(FluidStack.java:27)
 at net.minecraftforge.fluids.BlockFluidClassic.<init>(BlockFluidClassic.java:28)
 at assets.bendingmod.src.MagmaFluid.<init>(MagmaFluid.java:21)
 at assets.bendingmod.src.BendingMod.<init>(BendingMod.java:222)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 at java.lang.reflect.Constructor.newInstance(Unknown Source)
 at java.lang.Class.newInstance(Unknown Source)
 at cpw.mods.fml.common.ILanguageAdapter$JavaAdapter.getNewInstance(ILanguageAdapter.java:174)
 at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:518)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
 at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
 at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
 at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
 at com.google.common.eventbus.EventBus.post(EventBus.java:267)
 at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:201)
 at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:181)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
 at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
 at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
 at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
 at com.google.common.eventbus.EventBus.post(EventBus.java:267)
 at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
 at cpw.mods.fml.common.Loader.loadMods(Loader.java:511)
 at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
 at net.minecraft.client.Minecraft.startGame(Minecraft.java:473)
 at net.minecraft.client.Minecraft.run(Minecraft.java:808)
 at net.minecraft.client.main.Main.main(Main.java:93)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
 at net.minecraft.launchwrapper.Launch.main(Launch.java:27)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
 at net.minecraftforge.fluids.FluidRegistry.getFluidID(FluidRegistry.java:115)
 at net.minecraftforge.fluids.Fluid.getID(Fluid.java:182)
 at net.minecraftforge.fluids.FluidStack.<init>(FluidStack.java:27)
 at net.minecraftforge.fluids.BlockFluidClassic.<init>(BlockFluidClassic.java:28)
 at assets.bendingmod.src.MagmaFluid.<init>(MagmaFluid.java:21)
 at assets.bendingmod.src.BendingMod.<init>(BendingMod.java:222)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
 at java.lang.reflect.Constructor.newInstance(Unknown Source)
 at java.lang.Class.newInstance(Unknown Source)
 at cpw.mods.fml.common.ILanguageAdapter$JavaAdapter.getNewInstance(ILanguageAdapter.java:174)
 at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:518)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
 at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
 at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
 at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
 at com.google.common.eventbus.EventBus.post(EventBus.java:267)
 at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:201)
 at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:181)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
 at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
 at com.google.common.eventbus.EventBus.dispatch(EventBus.java:313)
 at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
 at com.google.common.eventbus.EventBus.post(EventBus.java:267)
 at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
 at cpw.mods.fml.common.Loader.loadMods(Loader.java:511)
 at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:183)
 at net.minecraft.client.Minecraft.startGame(Minecraft.java:473)

-- Initialization --
Details:
Stacktrace:
 at net.minecraft.client.Minecraft.run(Minecraft.java:808)
 at net.minecraft.client.main.Main.main(Main.java:93)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
 at net.minecraft.launchwrapper.Launch.main(Launch.java:27)

-- System Details --
Details:
 Minecraft Version: 1.6.4
 Operating System: Windows 7 (amd64) version 6.1
 Java Version: 1.7.0_55, Oracle Corporation
 Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
 Memory: 937095256 bytes (893 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
 JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
 AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
 Suspicious classes: FML and Forge are installed
 IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
 FML: MCP v8.11 FML v6.4.49.965 Minecraft Forge 9.11.1.965 4 mods loaded, 4 mods active
 mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed
 FML{6.4.49.965} [Forge Mod Loader] (bin) Unloaded->Constructed
 Forge{9.11.1.965} [Minecraft Forge] (bin) Unloaded->Constructed
 BendingMod{0.0.2 beta} [BendingMod] (bin) Unloaded->Errored
 Launched Version: 1.6
 LWJGL: 2.9.0
 OpenGL: AMD Radeon(TM) HD 6520G             GL version 4.1.10834 Compatibility Profile Context, ATI Technologies Inc.
 Is Modded: Definitely; Client brand changed to 'fml,forge'
 Type: Client (map_client.txt)
 Resource Pack: Default
 Current Language: English (US)
 Profiler Position: N/A (disabled)
 Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
 
Я ТЕБЕ СКАЗАЛ.
СНАЧАЛО ДЕЛАЕШЬ FLUIDREGISTRY.REGISTERFLUID(MAGMA);
А ПОТОМ BLOCKFLUID = NEW MAGMAFLUID(MAGMA);
 
Dragon2488 написал(а):
Я ТЕБЕ СКАЗАЛ.
СНАЧАЛО ДЕЛАЕШЬ FLUIDREGISTRY.REGISTERFLUID(MAGMA);
А ПОТОМ BLOCKFLUID = NEW MAGMAFLUID(MAGMA);
Дракон, ты тут ничего не писал о.о
Но, огромное спасибо, я долго парился над этим. Тему в топку.
 
Прости, Написал в другой теме. Просто голова болит, не сильно соображаю.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху