Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Naebulys

Members
  • Joined

  • Last visited

Everything posted by Naebulys

  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. Aren't they supposed to exist in Forge code ?
  6. 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; } }
  7. 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.
  8. 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; } }
  9. 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(); ?
  10. 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 ^^
  11. 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.
  12. 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 :)

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.