Jump to content

Recommended Posts

Posted

This most likely has been answered numerous times on this forum, but I cant find an answer.

 

How come there is no forge event/hook for every time minecraft or a mod uses the setBlock command? Is it too resource intensive because its such a common function?

I'm making a world gen mod, and to be compatible with other mods I have to be picky about what types of blocks other mods generate. To be more specific I would like to replace grass and leaf blocks with custom blocks.

 

Is there a way to do this without having to make a coremod? If so, is there a coremod out there that i can just use?

Posted

I searched around and I found that none have been updated :( But I did find this that a friend told me you could decompile and look at and update to 1.8 and use! http://www.gamespot.com/minecraft/forums/cofh-core-mod-1-7-10-1-7-2-31468898/

Forgive my friend if he is wrong and me for posting it.

-Jake

P.S. Could you take a look at my topic under yours? I'm having trouble with item textures.

Check out my mod- SteelMod++ and maybe we can support each other :)

Help me learn and some day I will be able to help you learn!

Posted

This is probably what you are looking for, BUT note that this will cause your world generation to go probably 2 times slower.

@SubscribeEvent
public void populateChunk(PopulateChunkEvent.Pre event)
{
	Chunk chunk = event.world.getChunkFromChunkCoords(event.chunkX, event.chunkZ);
for (ExtendedBlockStorage storage : chunk.getBlockStorageArray()) {}
}

Null checks and iteration through all blocks in chunk.

 

Note: There is Pre and Post.

1.7.10 is no longer supported by forge, you are on your own.

Posted

Some mods (I'm working with thaumcraft now) add structures/features using (im assuming)  BiomeDecorators, that happens after the chunk events, right? (but i can use the biomeDecorator event in that case)

 

I was trying to avoid scanning all blocks in a chunk, but I'll try the methods you guys suggested; maybe I can limit the blocks scanned to a known range. Thanks.

Posted

I was trying to avoid scanning all blocks in a chunk, but I'll try the methods you guys suggested; maybe I can limit the blocks scanned to a known range. Thanks.

 

Based on having done basically that ("scan all the blocks") it's pretty fast, especially if you use Ernio's method, just keep in mind that an

ExtendedBlockStorage

object is a 16x16x16 volume (so each one in the array covers a range of 16 blocks on the Y axis inside a given chunk).  If you're only looking for grass and leaves, you can easily skip the first 3.  The fourth is probably skippable as well.  Then you just have to skip the null ones until you run out (its possible for a non-null volume to be above a null volume in the extreme hills biome!).

 

You can see what I did here.  There's some things I need to update (like the fact that at one time it was registered as an IWorldGenerator, and now isn't and is called from a chunk generation event, so I can remove that interface).1  But the core loop is valid and handles blocks as their internally native block IDs (to avoid the overhead of converting every int back to a Block).  There's some bits you don't need, of course, but that should at least help you figure out how to translate human-readable x/y/z values into the NibbleArray indexes (I had to dig into each call from world.getBlock until I had dissected all the way down to an inline array lookup).  Also be alert to the fact that I broke the 16 block volume into two 8 block volumes for my own purposes.

 

1Huh, I don't remember doing that (Line 151).  The hell'd I do that for?  *Fixes*

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

You read my mind, I was going to try that exactly. Thanks for the tip

 

This is super helpful.. i dont know why your title says you're an asshole :P

Posted

This is super helpful.. i dont know why your title says you're an asshole :P

 

's what everyone else says.  And by "everyone" I mean the 12 year olds who claim 4 years of Java experience and can't figure out why casting an Entity that's an instanceof EntityWolf to EntityPlayer crashes.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I've already tried it without mods and it works.
    • i never created a world on singleplayer and I don't see a level.dat file, there's a server.dat file though. but i play multiplayer on my minecraft server with my friends.
    • Add crash-reports with sites like https://mclo.gs/   Make a test without any mods - just Forge
    • Also add the level.dat from your worldsave via sites like mediafire
    • It's the little things that get you sometimes, isn't it? I was actually pretty hyped with my new Bluetooth speaker, ready to see just how well it would sound and pump up my playlist while finishing some work. So, like any other tech enthusiast, I connected it to my laptop, where, of course, my crypto wallet was open and logged in. Big mistake. It was a freakish twist of fate that, well, the Bluetooth speaker seemed to have other plans. It began glitching like a broken record, sending my laptop into a frenzy. I tried reconnecting it, and that's when the disaster struck. In some kind of crazy chain of events, I managed to get locked out of my $90,000 Bitcoin wallet. My wallet was still there, but access was completely blocked. As I sat staring at the screen in utter disbelief, my mind wandered to how something so silly could have caused such a huge mess. Cue the panic. Something this simple, such as a glitch with the speaker, and I don't have access to so much money. The whole thing was just utterly absurd, and I couldn't stop playing the scene over and over in my mind, wishing I'd just have waited until work was done to mess with my new gadget. But it was too late; I was locked out, and the financial chaos was real. Luckily, I knew where to go for help. The very first words in my mind were LEEULTIMATEHACKER @ AOL . COM   telegram: LEEULTIMATE   wh@tsapp +1  (715) 314  -  9248  https :// leeultimatehacker. com I had heard very positive feedback about them regarding their capabilities, and they did not even laugh after several minutes of hearing my story, which, let's face it, sounds utterly ridiculous. Instead, they reassured me that they have seen all kinds of scenarios and can be of assistance with mine. Immediately, I relaxed due to their professionalism. They were very calm, efficient, and started working on my case without wasting even a single second. In some days, they called me back to intimate me with the great news that my $90,000 was safely restored and my wallet was back in my hands. The feeling of relief which I felt was beyond description, knowing well that my ridiculous Bluetooth speaker disaster was finally over. I will make sure gadgets and crypto are in two completely different corners: Now I understand that crypto has absolutely nothing to do with gadgets. Thank the heavens, Lee Ultimate Hacker recovered my funds, at the same time teaching me how to be much more cautious in handling wallets this time around. Not getting caught a second time!
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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