-
Posts
12 -
Joined
-
Last visited
Naebulys's Achievements
Tree Puncher (2/8)
0
Reputation
-
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Well, anyway I finally managed to understand how does a Screwdriver works since my item now works properly. -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Guess what I am doing, I obviously does but there's no point in arguing about that '-- It's just taking this topic out of subject. I am not here to be told I need to learn, because I know that and I am learning, but get help about one particular thing. -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Diesiedben07 I am just a beginner, I know Eclipse don't read my mind, and I know I don't understand even half of what I am typing. I know that it wont help if just say "it crashes" but being cynical about me just being all lost with Eclipse and Java won't help me either -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Yes I do want, but how do I tell my item to ? I guess I have to define it in the block field but I get an error when I am trying to -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Aren't they supposed to exist in Forge code ? -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Anyway, got rid of my IHasModel interface and made a block field and overrode my method : but I still haven't defined which block I want to spawn public class TardisKey extends Item { private Block block; public TardisKey(String name, Block Tardis) { setUnlocalizedName(name); setRegistryName(name); setCreativeTab(CreativeTabs.TRANSPORTATION); setMaxStackSize(1); ModItems.ITEMS.add(this); } public void registerModels() { Main.proxy.registerItemRenderer(this, 0, "inventory"); } @Override public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { IBlockState iblockstate = worldIn.getBlockState(pos); Block block = iblockstate.getBlock(); if (!block.isReplaceable(worldIn, pos)) { pos = pos.offset(facing); } ItemStack itemstack = player.getHeldItem(hand); if (!itemstack.isEmpty() && player.canPlayerEdit(pos, facing, itemstack) && worldIn.mayPlace(this.block, pos, false, facing, (Entity)null)) { int i = this.getMetadata(itemstack.getMetadata()); IBlockState iblockstate1 = this.block.getStateForPlacement(worldIn, pos, facing, hitX, hitY, hitZ, i, player, hand); if (placeBlockAt(itemstack, player, worldIn, pos, facing, hitX, hitY, hitZ, iblockstate1)) { iblockstate1 = worldIn.getBlockState(pos); SoundType soundtype = iblockstate1.getBlock().getSoundType(iblockstate1, worldIn, pos, player); worldIn.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); itemstack.shrink(0); } return EnumActionResult.SUCCESS; } else { return EnumActionResult.FAIL; } } private boolean placeBlockAt(ItemStack itemstack, EntityPlayer player, World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, IBlockState iblockstate1) { // TODO Auto-generated method stub return false; } } -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
I told you was learning. But no, I don't understand all of basic Java yet, and that's why I am having troubles. but since I learn and I manage to keep my mod going I will keep on developing it, even though I know it's a big mod for a beginner which only knows how to use variables and that Java works by blocks and classes. -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Okay, here it is : import com.project_t.mod.Main; import com.project_t.mod.init.ModBlocks; import com.project_t.mod.init.ModItems; import com.project_t.mod.util.IHasModel; import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public class TardisKey extends Item implements IHasModel{ public TardisKey(String name, Block Tardis) { setUnlocalizedName(name); setRegistryName(name); setCreativeTab(CreativeTabs.TRANSPORTATION); setMaxStackSize(1); ModItems.ITEMS.add(this); } public void registerModels() { Main.proxy.registerItemRenderer(this, 0, "inventory"); } public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { IBlockState iblockstate = worldIn.getBlockState(pos); Block block = iblockstate.getBlock(); if (!block.isReplaceable(worldIn, pos)) { pos = pos.offset(facing); } ItemStack itemstack = player.getHeldItem(hand); if (!itemstack.isEmpty() && player.canPlayerEdit(pos, facing, itemstack) && worldIn.mayPlace(this.block, pos, false, facing, (Entity)null)) { int i = this.getMetadata(itemstack.getMetadata()); IBlockState iblockstate1 = this.block.getStateForPlacement(worldIn, pos, facing, hitX, hitY, hitZ, i, player, hand); if (placeBlockAt(itemstack, player, worldIn, pos, facing, hitX, hitY, hitZ, iblockstate1)) { iblockstate1 = worldIn.getBlockState(pos); SoundType soundtype = iblockstate1.getBlock().getSoundType(iblockstate1, worldIn, pos, player); worldIn.playSound(player, pos, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); itemstack.shrink(0); } return EnumActionResult.SUCCESS; } else { return EnumActionResult.FAIL; } } private boolean placeBlockAt(ItemStack itemstack, EntityPlayer player, World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, IBlockState iblockstate1) { // TODO Auto-generated method stub return false; } } -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Okay now my game is launching but obviously when I right click with my item I get a crash. I know that I crash because the EnumActionResult is false since I didn't tell it what block I aim to place. But how do I tell the EnumActionResult what block to place ? Do I have to put it in the line : Block block = iblockstate.getBlock(); ? -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
I am a beginner and I am just learning by experimenting things. Yes I knew there was something wrong with the super constructor but I was just trying to figure out what constructor use. Thanks for your help though. I didn't know there was no need to extend if I copied it ^^ -
How to make an Item spawn a bloc when right-clicking on the ground ?
Naebulys replied to Naebulys's topic in Modder Support
Okay so I have copy pasted ItemBlock methods in my TardisKey item class but I still get an error on public TardisKey(String name) {...} : Implicit super constructor ItemBlock() is undefined. Must explicitly invoke another constructor.