Jump to content

Recommended Posts

Posted

I'm looking for a better way to do my semi-solid cloud blocks.

 

Effect I'm after:

Entities fall through the block unless the cloudWalk flag return true, then it is just like any other solid block.

The cloudWalk flag is true when the player can fly or has equipped special armor.

 

How it is Currently working.

The block is solid.

in "onEntityWalking" and "onFallenUpon" the flag gets checked, if false the entity gets nudged into the block.

in "onEntityCollidedWithBlock" the flag gets checked, if false "entity.setInWeb()" & "entity.setVelocity(0.0D, -2.0D, 0.0D)"

 

 

In 1.2.5 this method worked well in SSP, but on the server it worked poorly on players.

Issue #1 --Solved with new server side noClip hook added in #237

Even though the server was pushing the player it was seen as an invalid move and NetServerHandler would push the player back.

The only way I found to get around this was to edit the base class and override the check while falling through the cloud block

 

Issue #2

Minecraft seen the block as a valid spawn spot, many times you'd fall to your death.

To hack around this I edited my generator so clouds wouldn't be placed withing the spawn zone (this looked dumb)

 

Issue #3 --Solved with new hook added in #237or at least it appears to be

If the clouds where thicker then one block (almost always) sometimes you'd get stuck while falling through because "onEntityWalking" and "onFallenUpon" didn't trigger on the block bellow. By wiggling you could get unstuck.

 

 

My thoughts for reworking:

I think the best thing to do is set the getCollisionBoundingBox to null.

That should solve the getting stuck problem, remove the base edit, and maybe solve the spawn problem.

But then I have to find a way to collide with a block that has no collision box  :o

For the y value I could check if there is a cloud bellow and change it to counter the fall, if done at LivingUpdateEvent there shouldn't be any noticeable jitter, but I've got no ideas for x and z.

Posted

Colliding without the colliding box; have you considered putting a test in getCollisionBoundingBoxFromPool for cloudWalk?

 

so perhaps something like:

 

public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
    {        
        if (!cloudWalk)
        {
            return null; //fall to your death.
        }
        else
        {
            return AxisAlignedBB.getBoundingBox(par2, par3, par4, par2 + 1, par3 + 1, par4 + 1); //i.e a solid cloud.
        }
    }

 

So unless you have cloudWalk, you cant fall. At the very least, this should solve issue#3. As for issue#2, perhaps you could make it so players aren't given cloudWalk until after spawning? Perhaps add something like

 if (world.worldInfo.getWorldTime < youllhavetocheckwhattheworldtimeisafewsecondsafterspawn) { cloudWalk = true; } //i can see this being a little bit dodgey though

 

Alternatively, perhaps you could see if you can find a way to get number of generated chunks, and if it's > 8 or 16 or something, then apply cloudWalk?

 

As for issue#1, you're not moving the player, so maybe it will be fixed?

 

Just my 2 cents. Apologies if it's useless, I'm quite tired.

Posted

"have you considered putting a test in getCollisionBoundingBoxFromPool for cloudWalk?"

Yep with funny results too, the block became pass through for everyone when one who couldn't walk on them touched it.

Another thing I tried in 1.2.3 was setting the box to null on the server but a full cube on the client. I don't remember what problems I had with that but it was scrapped.

Got through this one though, I submitted a hook that allows server mods to use noClip to stop NetServerHandler from freaking out.

It was put in Build #237 so all is good there.

(server side noClip seems to have solved issue #3 as well)

 

 

As long as a block exists, is solid, and is not a leaf block, Minecraft calls it a valid spawn block.

I located where this was happening and submitted a new hook, others may find it helpful also.

But it if doesn't make it in I'll just continue pushing my blocks away from the map spawn point. (and hope no server admins move it)

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

    • Ignore shrimple, it doesn't work with Oculus. Also, enableShaders was alr true when it said that towards the end of the log. If you could also figure out why my tags are messed up that'd be cool too, but that's a later issue. https://drive.google.com/drive/folders/1ovEKDZECUCl7zZxGfpyQcS4s5PZPQyfa?usp=drive_link
    • accidental duplicate mesage cuz lag
    • https://gnomebot.dev/paste/231527759279685634/1372324909073563730/1372324908629102716 https://gnomebot.dev/paste/231527759279685634/1372320454861262908/1372320454299090996 seems like theres a registry sync error, not sure what that means though, however in an old pack i played on, i actually had a registry sync error happen whenever the world tried too save and it would suddenly stop loading chunks, is there a mod fix for this or some way too bypass registry syncing? is this a server problem? i have no issues with the pack on pc, only on my server.
    • i think the problem is the player animator library but i need it for one of my main mods is there any way i can fix this? The game crashed: rendering overlay Error: java.lang.IllegalArgumentException: Failed to create player model for default heres the crash report: https://pastebin.com/U5Wp8ysb
    • I have been an enthusiastic investor in crypt0currencies for several years, and my digital assets have been integral to my financial strategy. A few months ago, I encountered a distressing predicament when I lost access to my primary cryptocurrency walleet after clicking on an airdrop link that inadvertently connected to my walleet. The dread of potentially losing all my hard-earned funds was overwhelming, leaving me uncertain about where to seek assistance. In my pursuit of solutions, I stumbled upon ChainDigger Retrievers. From our initial consultation to the triumphant recovery of my assets, the team exhibited exceptional expertise. They provided comprehensive explanations of the recovery process, ensuring I was informed at every stage and offering reassurance during this tumultuous time. Their approach was not only meticulous but also compassionate, which significantly alleviated my anxiety. ChainDigger Retrievers unwavering commitment to resolving my issue was evident throughout the process. Leveraging their profound understanding of crypt0currency technology and digital forensics, they initiated an exhaustive investigation to trace the transactions linked to my compromised wallet. Their meticulous analysis and relentless determination were apparent as they left no stone unturned in their quest to recover my funds. After several days of diligent investigation, the team successfully recovered everything I had lost. They uncovered that the link I had clicked contained malware, which scammeers had used to infiltrate my walleet. This revelation was both alarming and enlightening, underscoring the inherent risks associated with crypt0currency transactions when proper precautions are not taken.Thanks to ChainDigger Retrievers, I not only regained everything but also acquired invaluable knowledge about safeguarding my investments. Their expertise and steadfast support transformed a daunting situation into a manageable one, and I am profoundly grateful for their assistance. I can now continue my investment journey with renewed confidence, knowing that I have a trustworthy ally in ChainDigger Retrievers. Their client satisfaction is truly commendable, and I wholeheartedly recommend their services to anyone facing similar challenges in the crypt0currency realm. With their help, I was able to turn a distressing time into a positive outcome, and I will forever be grateful for their support.  
  • Topics

×
×
  • Create New...

Important Information

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