Skip 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.

Animefan8888

Forge Modder
  • Joined

  • Last visited

Everything posted by Animefan8888

  1. He passed a TileEntity into his constructor didnt he.
  2. Your using your container as a variable instead of a TE.
  3. I think it was moved to FMLCommonHandler...
  4. Inhave not used them, but tgat does sound about right.
  5. You need to use an IBakedModel.
  6. Well i would start off by getting the source code for the mod by decompiling it with mcp if it is not provided already. I would then add the mod as a library in eclipse/your IDE and appling the source code. After doing that you will be able to code using whatever mod you choose. But you will not be able to compile it, you should add it as a dependancy in your @Mod in your main mod file, ad also in your build.gradle.
  7. Override removeStackFromSlot(int) in InventoryField also decrItemStack(int, int) and overall anything that doesn't use your ItemStack[] in InventoryField as that is your problem.
  8. There is not anything like that to my knowledge the best you could do is link it to something like github and use that to share code.
  9. Post your TileEntity and InventoryField
  10. Use world.getSeaLevel() if it is supposed to spawn on water.
  11. I can't find anything wrong with the code try creating a new Container and just add the players inventory and see if you can drag it around or not.
  12. I was just saying that he should save it client side if anything. Sadly to accomplish this you would need access to what keybind they are changing , which I can not think of a way to do this without a specific event. You would need to submit a pull request for it.
  13. Its there for the user of the API to check against, and nothing more. Save it client side and not server side.
  14. That might have something to do with this line. int posY = (world.getActualHeight());
  15. If the KeyEvent gets called when the player is in the Gui you could just check if the current gui is an instance of the KeyBind Changing gui. The problem with that is GuiKeyBindingList doesnt inherit from GuiScreen, so both checking Minecraft#currentScreen and using the KeyboardInputEvent and checking GuiScreenEvent#getGui() don't work. I believe it is actually GuiControls.
  16. If the KeyEvent gets called when the player is in the Gui you could just check if the current gui is an instance of the KeyBind Changing gui.
  17. Not using anything yet. In 1.7.10 that's all I needed to add icespikes to my biome. I did try extending WorldGenerator , basically duplicating the WorldGenIceSpike class so that I could then change the ice spikes but that did not work. Should I implement IWorldGenerator instead for 1.8? package com.glistre.glistremod.worldgen; import java.util.Random; import com.glistre.glistremod.init.BiomeRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenerator; public class WorldGenFreonSpikes extends WorldGenerator { public boolean generate(World worldIn, Random random, BlockPos blockPos) { blockPos = new BlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ()); while (worldIn.isAirBlock(blockPos) && blockPos.getY() > 2) { blockPos = blockPos.down(); } if (worldIn.getBlockState(blockPos).getBlock() != Blocks.snow) { return false; } else { blockPos = blockPos.up(random.nextInt(4)); int l = random.nextInt(4) + 70; int i1 = l / 4 + random.nextInt(2); if (i1 > 1 && random.nextInt(60) == 0) { blockPos = blockPos.up(random.nextInt(70)); } int j1; int k1; int l1; for (j1 = 0; j1 < l; ++j1) { float f = (1.0F - (float)j1 / (float)l) * (float)i1; k1 = MathHelper.ceiling_float_int(f); for (l1 = -k1; l1 <= k1; ++l1) { float f1 = (float)MathHelper.abs_int(l1) - 0.25F; for (int i2 = -k1; i2 <= k1; ++i2) { float f2 = (float)MathHelper.abs_int(i2) - 0.25F; if ((l1 == 0 && i2 == 0 || f1 * f1 + f2 * f2 <= f * f) && (l1 != -k1 && l1 != k1 && i2 != -k1 && i2 != k1 || random.nextFloat() <= 0.75F)) { Block block1 = worldIn.getBlockState(blockPos.add(l1, j1, i2)).getBlock(); if (block1.getMaterial() == Material.air || block1 == Blocks.dirt || block1 == Blocks.snow || block1 == Blocks.ice) { this.func_175906_a(worldIn, blockPos.add(l1, j1, i2), Blocks.packed_ice); // worldIn.setBlockState(blockPos.add(l1, j1, i2), (IBlockState) Blocks.packed_ice); } if (j1 != 0 && k1 > 1) { block1 = worldIn.getBlockState(blockPos.add(l1, j1, i2)).getBlock(); if (block1.getMaterial() == Material.air || block1 == Blocks.dirt || block1 == Blocks.snow || block1 == Blocks.ice) { this.func_175906_a(worldIn, blockPos.add(l1, -j1, i2), Blocks.packed_ice); // worldIn.setBlock(xcoord + l1, ycoord - j1, zcoord + i2, Blocks.packed_ice); } } } } } } j1 = i1 - 1; if (j1 < 0) { j1 = 0; } else if (j1 > 1) { j1 = 1; } for (int j2 = -j1; j2 <= j1; ++j2) { k1 = -j1; while (k1 <= j1) { BlockPos blockPos1 = blockPos.add(k1, -1, l); // l1 = ycoord - 1; int k2 = 50; if (Math.abs(j2) == 1 && Math.abs(k1) == 1) { k2 = random.nextInt(5); } while (true) { if (blockPos1.getY() > 50) { Block block1 = worldIn.getBlockState(blockPos1).getBlock(); if (block1.getMaterial() == Material.air || block1 == Blocks.dirt || block1 == Blocks.snow || block1 == Blocks.ice || block1 == Blocks.packed_ice) { this.func_175906_a(worldIn, blockPos1, Blocks.packed_ice); // worldIn.setBlockState(pos0, (IBlockState)Blocks.packed_ice); // worldIn.setBlockState(xcoord + j2, l1, zcoord + k1, (IBlockState)Blocks.packed_ice); blockPos1 = blockPos1.down(); --k2; if (k2 <= 0) { blockPos1 = blockPos1.down(random.nextInt(5) + 1); // l1 -= random.nextInt(5) + 1; k2 = random.nextInt(5); } continue; } } ++k1; break; } } } return true; } } } Yes you should have always been implementing IWorldGenerator instead of extending WorldGenerator.
  18. Ok just a couple things you do not need to load the Colony from NBT if you already to in the TileEntity, you can just pass along the data by using the syncing strategy from ContainerFurnace. Do you really need all of those getters and setters in the container class? And third if the problem is in the Your Container class then it is probably the way you override transferStackInSlot(), but I do not see a way that would cause a problem.
  19. You could override getActualState(...) then return the state that is not visible on the server, and if it is client side use Minecratf.getMinecraft().thePlayer to check if the client side player is holding the item and if so switch the blockstate to the visible one only client side. This will work I assume unless you plan on changing something other than the rending of the block, if you need some psuedocode ask.
  20. Is there any documentation on IBakedModels or should I go mess around with them to figure out what they can do?
  21. EnumFacing says which way it is facing so after rotating it to face north, check if it is facing a direction lets say south, if it is rotate it again to the correct position.
  22. Where do you open the gui?
  23. Then from my understanding you will most likely have to use a TESR. Though I myself have not done anything like this. I know that Block JSON's do not take any input so you can not use that.

Important Information

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

Account

Navigation

Search

Search

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.