Jump to content

sham1

Forge Modder
  • Posts

    80
  • Joined

  • Last visited

Everything posted by sham1

  1. I'm not a expert, but what about those "Unable to determine registrant mod for cpw.mods.fml.common.eventhandler.EventBus@43b56020. This is a critical error and should be impossible java.lang.Throwable" things.
  2. Good day(or night if looked from my perspective when I write this). Before I go into my problems, let me introduce myself: I am Sham1, you can call me Sham if you want, I have modded Minecraft before using Modloader and I have made some Bukkit plugins so this is not unknown stuff for me. Anyways, here is my problem: I try make liquid called "Liquid Mana" what i will use to power my machines later on, i just try make bucket version now before i need it. Placing the liquid into world with my custom bucket full of liquid mana can be done, but when i try to pick the liquid back, i just get bucket of water what is not that good: here is my main mod file: package sham1.minecraft.magiweapons; import net.minecraft.block.Block; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidContainerRegistry.FluidContainerData; import net.minecraftforge.fluids.FluidRegistry; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = "Magicweapon", name = "Magic weapons mod", version = "v0.0") @NetworkMod(clientSideRequired=true, serverSideRequired=true) public class mod_magicWeapons { final static Fluid liquidMana = new LiquidMana(); final static Item steelSpear = new ModSpear(1000,EnumToolMaterial.IRON,"iron_spear"); public static Item manaBucket = new ItemManaBucket(3000); final static Block blockLiquidMana = new BlockLiquidMana(2000); //Used by Forge to be able to use this mod @Instance("Magicweapon") public static mod_magicWeapons instance; @SidedProxy(clientSide="sham1.minecraft.magiweapons.ClientProxy", serverSide="sham1.minecraft.magiweapons.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event){ } @EventHandler public void load(FMLInitializationEvent event){ proxy.registerRenderers(); LanguageRegistry.addName(steelSpear, "Iron Spear"); LanguageRegistry.addName(manaBucket, "Bucket o' mana"); FluidContainerRegistry.registerFluidContainer(liquidMana, new ItemStack(manaBucket)); } @EventHandler public void postInit(FMLPostInitializationEvent event){ } } Here is my Fluid-class: package sham1.minecraft.magiweapons; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; public class LiquidMana extends Fluid { public LiquidMana(){ super("LiquidMana"); setDensity(10); // How tick the fluid is, affects movement inside the liquid. setViscosity(1000); // How fast the fluid flows. FluidRegistry.registerFluid(this); // Registering inside it self, keeps things neat } } My actual fluid-block: package sham1.minecraft.magiweapons; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import net.minecraftforge.fluids.BlockFluidClassic; public class BlockLiquidMana extends BlockFluidClassic{ public BlockLiquidMana(int id){ super(id, mod_magicWeapons.liquidMana, Material.water); mod_magicWeapons.liquidMana.setBlockID(id); } @Override @SideOnly(Side.CLIENT) public Icon getIcon(int side, int meta){ return Block.waterMoving.getIcon(side, meta); } @Override public int colorMultiplier(IBlockAccess iBlockAccess, int x, int y, int z){ return 0xFF0099; } } My custom full bucket of liquid mana: package sham1.minecraft.magiweapons; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumMovingObjectType; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.Event.Result; import net.minecraftforge.event.Event; import net.minecraftforge.event.EventPriority; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.player.FillBucketEvent; import net.minecraftforge.fluids.ItemFluidContainer; public class ItemManaBucket extends ItemFluidContainer{ int isFull; public ItemManaBucket(int id){ super(id); func_111206_d("magicweapon:bucket_mana"); isFull = 2000; setCreativeTab(CreativeTabs.tabMisc); } @Override public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player) { // TODO Auto-generated method stub MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(world, player, true); if (movingobjectposition == null) { return item; } else { FillBucketEvent event = new FillBucketEvent(player, item, world, movingobjectposition); if (MinecraftForge.EVENT_BUS.post(event)) { return item; } if (event.getResult() == Event.Result.ALLOW) { if (player.capabilities.isCreativeMode) { return item; } if (--item.stackSize <= 0) { return event.result; } if (!player.inventory.addItemStackToInventory(event.result)) { player.dropPlayerItem(event.result); } return item; } if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) { int x = movingobjectposition.blockX; int y = movingobjectposition.blockY; int z = movingobjectposition.blockZ; if (!world.canMineBlock(player, x, y, z)) { return item; } if (movingobjectposition.sideHit == 0) { --y; } if (movingobjectposition.sideHit == 1) { ++y; } if (movingobjectposition.sideHit == 2) { --z; } if (movingobjectposition.sideHit == 3) { ++z; } if (movingobjectposition.sideHit == 4) { --x; } if (movingobjectposition.sideHit == 5) { ++x; } if (!player.canPlayerEdit(x, y, z, movingobjectposition.sideHit, item)) { return item; } if (this.tryPlaceContainedLiquid(world, x, y, z) && !player.capabilities.isCreativeMode) { return new ItemStack(Item.bucketEmpty); } } return item; } } private boolean tryPlaceContainedLiquid(World world, int x, int y, int z) { if (this.isFull <= 0) { return false; } else { Material material = world.getBlockMaterial(x, y, z); boolean flag = !material.isSolid(); if (!world.isAirBlock(x, y, z) && !flag) { return false; } else { if (world.provider.isHellWorld && this.isFull == Block.waterMoving.blockID) { world.playSoundEffect((double)((float)x + 0.5F), (double)((float)y + 0.5F), (double)((float)z + 0.5F), "random.fizz", 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F); for (int l = 0; l < 8; ++l) { world.spawnParticle("largesmoke", (double)x + Math.random(), (double)y + Math.random(), (double)z + Math.random(), 0.0D, 0.0D, 0.0D); } } else { if (!world.isRemote && flag && !material.isLiquid()) { world.destroyBlock(x, y, z, true); } world.setBlock(x, y, z, this.isFull, 0, 3); } return true; } } } } If you would be able to help me, it would be appreaciated
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.