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.

funsize888

Members
  • Joined

  • Last visited

  1. Hey, I have a custom tnt explosion and I was able to make it destroy a sphere, but I wanted to to only destroy the bottom half of the sphere and then expand from there on up. Here is my code, @Override public void doExplosionA() { Set<BlockPos> set = Sets.<BlockPos>newHashSet(); Set<IBlockState> states = Sets.<IBlockState>newHashSet(); int blocksDestroyed = 0; int radius = this.size; for (int j = -radius; j < radius; j ++) { for (int k = -radius; k < radius; k ++) { for (int l = -radius; l < radius; l ++) { double distSq = j * j + k * k + l * l; if(distSq <= (radius * radius)) { if(k > 0) { continue; } BlockPos pos = new BlockPos(x + j, y + k, z + l); if(world.getBlockState (pos) != Blocks.BEDROCK.getDefaultState()){ if(world.getBlockState(pos) != Blocks.AIR.getDefaultState()) { world.setBlockToAir(pos); blocksDestroyed++; } } } } } } I have it stop destroying blocks half way up, because thats the point at which I want it to expand. Any help is appreciated, Thanks
  2. That’s the part struggling with, I’m not sure how I would delay the for loop for a certain amount of ticks. Maybe I could save all the blocks from the loop and place them one by one with a delay?
  3. ok so now I have this: static int tick = 0; static int timer = 0; @SubscribeEvent public static void onServerTick(TickEvent.ServerTickEvent event) { if(tick == 40) { tick = 0; timer++; System.out.print(timer); if(timer >= 20) { timer = 0; } }tick++; } /** * Does the first part of the explosion (destroy blocks) */ @Override public void doExplosionA() { Set<BlockPos> set = Sets.<BlockPos>newHashSet(); Set<IBlockState> states = Sets.<IBlockState>newHashSet(); long time = world.getWorldTime(); int blocksDestroyed = 0; int radius = this.size; int center = radius / 2; if(timer == 20) { for (int j = center - radius; j < center + radius; j++) { for (int k = center - radius; k < center + radius; k++) { for (int l = center - radius; l < center + radius; l++) { double distSq = (j-center) * (j-center) + (k-center) * (k-center) + (l-center) * (l-center); if(distSq <= (radius) * (radius)) { BlockPos pos = new BlockPos(x + j - center, y + k - center, z + l - center); if(world.getBlockState (pos) != Blocks.BEDROCK.getDefaultState()){ world.setBlockToAir(pos); timer = 0; blocksDestroyed++; System.out.println(timer); } } } } } } but obviously the if statement will only run if the timer = 20. So the code isnt run at all. how do I wait for the timer to = 20?
  4. What do you mean by keep track of the position im at? or which explosion, its only one explosion.
  5. Hello, I have made a custom TNT with a custom explosion, but I wanted the explosion to be huge, like 1,000,000+ blocks. It works fine but obviously there is a huge lag when detonating, I was wondering how I could add a very slight delay between each time a block is removed. Here is my code: static int tick = 0; @SubscribeEvent public static void onClientTick(TickEvent.ClientTickEvent event) { if(tick == 80) { System.out.print("DELAY"); tick = 0; } tick++; } /** * Does the first part of the explosion (destroy blocks) */ @Override public void doExplosionA() { Set<BlockPos> set = Sets.<BlockPos>newHashSet(); long time = world.getWorldTime(); int blocksDestroyed = 0; int radius = this.size; int center = radius / 2; for (int j = center - radius; j < center + radius; j++) { for (int k = center - radius; k < center + radius; k++) { for (int l = center - radius; l < center + radius; l++) { double distSq = (j-center) * (j-center) + (k-center) * (k-center) + (l-center) * (l-center); if(distSq <= (radius) * (radius)) { BlockPos pos = new BlockPos(x + j - center, y + k - center, z + l - center); if(world.getBlockState (pos) != Blocks.BEDROCK.getDefaultState()){ world.setBlockState(pos, Blocks.AIR.getDefaultState()); I added the ClientTickEvent, because I thought it would be the way to go, but cant figure out how to add the delay after each block gets removed. Any help is appreciated, thanks.
  6. Nothing happened, it didn't render
  7. No I did file -> export, in eclipse
  8. Hello, I have made a mod in eclipse and it works just fine with no errors. But when I export it as a java file and try to run it in regular minecraft, I get a crash. I have no clue why this would happen. My crash log: Looks like this is the main problem class:
  9. Put, @SideOnly(Side.CLIENT) above, public class ClientProxy extends CommonProxy {
  10. Post your client proxy
  11. Caused by: net.minecraftforge.fml.common.LoaderException: java.lang.ClassNotFoundException: co/coolbeyblades7/minecraft_mod/proxy/ClientProxy; at net.minecraftforge.fml.common.ProxyInjector.inject(ProxyInjector.java:88) at net.minecraftforge.fml.common.FMLModContainer.constructMod(FMLModContainer.java:595) It says what it was caused by. Try taking a look at your ProxyInjector, that seems to be the problem
  12. hmmm, I put that in my Main class under pre init event, it didn't work, should it go in either of the proxys?

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.