Jump to content

Naebulys

Members
  • Posts

    12
  • Joined

  • Last visited

Naebulys's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. Well, anyway I finally managed to understand how does a Screwdriver works since my item now works properly.
  2. 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.
  3. 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
  4. 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
  5. 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; } }
  6. 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.
  7. 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; } }
  8. 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(); ?
  9. 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 ^^
  10. 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.
  11. Hello everyone, I am developing a Tardis mod for Minecraft 1.12.2 and I am currently trying to get the Tardis Key summon the Tardis, which is a bloc, when right-clicking on the ground. I think it has something to do with Forge Events but I am a bit lost. Thanks in advance for your help :)
×
×
  • Create New...

Important Information

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