Jump to content

Detect chunk unload of adjacent tile


target.san

Recommended Posts

Hi!

 

I'm having two linked blocks in different dimensions. Each of these blocks is a connector which tries to behave on some of its sides like a tile which is adjacent to its partner's opposite side. For performance reasons, I'm caching those tiles being represented by partners by reference.

Here's the question goes. How can I detect that some instance of TileEntity object is invalid in the sense that some chunk was unloaded, then loaded, and so I need to reacquire TE reference.

The problem is, TE in question and connector might reside in different chunks. So I cannot rely on connector's onChunkUnload.

I cannot also rely on isInvalid, since TE isn't invalidated on unload.

Maybe there's some way to detect chunk unload of adjacent tile?

 

Thanks.

 

Link to comment
Share on other sites

The case is, I'm interested not in linked blocks themselves, but in their immediate neighbors. So I can't rely on my linkers' onChunkUnload, because their neighbor blocks might reside in different chunk.

 

Anyway, I've already devised a not so bad logic, with ChunkEvent.Unload and a custom chunk watcher. This allowed me to watch for tiles of interest right from the linker on the other side.

Link to comment
Share on other sites

@rypofalem Thanks for your interest. Though I can't call my solution very elegant.

 

Code is here https://github.com/target-san/Gateway

The main problem is - it's Scala, and not very clean.

The classes of interest are TileSatellite, ChunkWatcher and EventHandler.

 

The main idea:

1. Satellite TE (the watcher) asks ChunkWatcher to register itself as a watcher for specific block. In fact, a whole chunk is added to its internal multimap.

2. EventHandler catches ChunkEvent.Unload, then calls ChunkWatcher.onChunkUnload. The latter finds set of watcher 4D coordinates by their chunk coordinate key, then calls onWatchedChunkUnload for those which are loaded at the moment.

 

Please note that there's a bug in my code elsewhere, so you won't be able to run the whole mod from master now.

Link to comment
Share on other sites

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

    • In the perilous world of online trading, where promises of quick riches often lead to devastating losses, finding a trustworthy ally can feel like searching for a needle in a haystack. My journey began with high hopes, as I ventured into online trading with an external expert guiding my every move. Little did I know, I was stepping into a carefully orchestrated scam. After investing a substantial $380,000 deposit on an online trading platform, I found myself at the mercy of both the platform and the supposed expert leading my trades. Despite initially seeing profits, red flags began to appear when they demanded a hefty 20% fee, not from the generated profits, but from my pocket. Alarm bells rang loudly in my mind, signaling a potential scam. Thankfully, in the nick of time, I stumbled upon Wizard Web Recovery. With skepticism clouding my judgment, I cautiously reached out to them, hoping against hope for a glimmer of salvation. From the first interaction, their professionalism and expertise shone brightly, offering hope amidst the murky waters of deceit. Their approach was meticulous and methodical, as they diligently assessed my situation, leaving no stone unturned in their quest for justice. Despite the daunting odds stacked against me, Wizard Web Recovery embarked on a relentless pursuit to reclaim what was rightfully mine. Their transparency was a breath of fresh air in an industry plagued by deception. Every step of the way, they kept me informed, providing regular updates and guidance, instilling a sense of trust that had long eluded me. Their dedication to my cause was unwavering, as they navigated the complexities of online trading with finesse and precision. What truly sets Wizard Web Recovery apart is its unwavering commitment to its clients. Beyond mere restitution, they prioritize education and empowerment, equipping individuals with the knowledge and tools to navigate the treacherous waters of online trading safely. Through their expertise and tenacity, Wizard Web Recovery emerged victorious, securing the return of my hard-earned funds. But their impact extends far beyond mere financial restitution. They restored my faith in humanity, proving that amidst the darkness, there are still beacons of light shining brightly. To anyone who finds themselves ensnared in the tangled web of online trading scams, I wholeheartedly recommend Wizard Web Recovery. Their professionalism, expertise, and unwavering dedication are unmatched, offering a glimmer of hope in an otherwise bleak landscape. Trust in their abilities, for they are true wizards in the realm of recovery.
    • In the perilous world of online trading, where promises of quick riches often lead to devastating losses, finding a trustworthy ally can feel like searching for a needle in a haystack. My journey began with high hopes, as I ventured into online trading with an external expert guiding my every move. Little did I know, I was stepping into a carefully orchestrated scam. After investing a substantial $380,000 deposit on an online trading platform, I found myself at the mercy of both the platform and the supposed expert leading my trades. Despite initially seeing profits, red flags began to appear when they demanded a hefty 20% fee, not from the generated profits, but from my pocket. Alarm bells rang loudly in my mind, signaling a potential scam. Thankfully, in the nick of time, I stumbled upon Wizard Web Recovery. With skepticism clouding my judgment, I cautiously reached out to them, hoping against hope for a glimmer of salvation. From the first interaction, their professionalism and expertise shone brightly, offering hope amidst the murky waters of deceit. Their approach was meticulous and methodical, as they diligently assessed my situation, leaving no stone unturned in their quest for justice. Despite the daunting odds stacked against me, Wizard Web Recovery embarked on a relentless pursuit to reclaim what was rightfully mine. Their transparency was a breath of fresh air in an industry plagued by deception. Every step of the way, they kept me informed, providing regular updates and guidance, instilling a sense of trust that had long eluded me. Their dedication to my cause was unwavering, as they navigated the complexities of online trading with finesse and precision. What truly sets Wizard Web Recovery apart is its unwavering commitment to its clients. Beyond mere restitution, they prioritize education and empowerment, equipping individuals with the knowledge and tools to navigate the treacherous waters of online trading safely. Through their expertise and tenacity, Wizard Web Recovery emerged victorious, securing the return of my hard-earned funds. But their impact extends far beyond mere financial restitution. They restored my faith in humanity, proving that amidst the darkness, there are still beacons of light shining brightly. To anyone who finds themselves ensnared in the tangled web of online trading scams, I wholeheartedly recommend Wizard Web Recovery. Their professionalism, expertise, and unwavering dedication are unmatched, offering a glimmer of hope in an otherwise bleak landscape. Trust in their abilities, for they are true wizards in the realm of recovery.     
    • Throughout a day i tried to understand what each variable does, and at the end of a day, i finally got it, but what EXACTLY (difference between) setRotationPoint and addBox does - idk Alias for setRotationPoint = "srp", addBox = "ab" -----------------NERD-TALK----------------- SO, the most sussy value is Y-axis. Starting from srp, 24.0F - is height +0, meaning a starting point. in ab, 0.0F is also height +0. When you decrement srp or ab y-axis  values - you get height +1 with each -1, meaning you can interpretate same height in infinite ways, same for X axis but srp starting point is 0.0F, note that none of each applies to Z axis - it is 'normal' For example, task: Place cube with dimensions 3, 3, 3 to coords -1.5, 6, -4. My theory approach: Decrement cube Y dimension from ab value, and decrement srp value until satisfied(3 in this case). I think X and Z axis do not need explanation, but still: you can set -1.5 and -4 to either srp or/and ab -------------INTERESTING-PART------------- this.head = new ModelRenderer((ModelBase)this, 0, 10)). addBox(-1.5f, -3.0f, -3.0f, 3, 3, 3); # For X and Y axis - decrement its dimension to get position 0. To achieve -1.5 in X axis - add this reverted value to srp/ab (ab in this case) this.head.setRotationPoint(0.0f, 21.0f, -2.0f); # Decrementing 3 to achieve "6" height (you can do so with ab value, but NOTE that i don't know the difference between both) Edit: I Figured it out by playing with java entity class file for forge 1.7.10 Hope this helps someone if you went this far somehow
    • I have been following a tutorial for DataGen for my Minecraft Mod and I have come across an error. Caused by: java.lang.IllegalStateException: No way of obtaining recipe droidsancientrelics:lemon_juice I am not sure why this has happened for the Lemon Juice specifically, as no error is present for the Orange Juice even though the code is the same. I thought I would make a post before acting on anything in case I would create unnecessary work for myself, though I know that a possible outcome would be to go to an earlier version of the mod where the data files are still separate and go from there.  Video link for reference.
    • I removed optifine and now F3 works
  • Topics

×
×
  • Create New...

Important Information

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