Movecraft icon indicating copy to clipboard operation
Movecraft copied to clipboard

Ships stop sinking when sinking into void.

Open wolfebersahd opened this issue 6 years ago • 16 comments

Describe the bug When a ship sinks into the void, it stops sinking and freezes at Y=3 wihtout "squashing" like it does on land, or fading into the void.

To Reproduce Steps to reproduce the behavior:

  1. Pilot a ship over the void
  2. Damage it to the point where is sinks
  3. Watch it sink to the void
  4. Ship stops sinking at y=3 and doesn't squash or sink into void

Expected behavior As per previous versions (Movecraft 5) ships that sink into void fade immediately layer by layer as the descend into it.

Screenshots I can provide a screenshot later today.

Versions (please complete the following information):

  • Movecraft: Latest beta release on spigot.
  • Java 8
  • Minecraft: Spigot 1.12.2

Additional context Add any other context about the problem here.

wolfebersahd avatar Oct 30 '19 12:10 wolfebersahd

I've always thought how this should be handed, there is nowhere for the ship to crash into, stopping at the bottom is most likely the best solution, it it starts eroding from the void up, so its like the ship melts as it goes into the void, a warning could be delivered beforehand.

In old versions of movecraft it used to just spam the console with errors if a ship in the end crashed.

TomLewis avatar Nov 04 '19 12:11 TomLewis

Yeah i agree with OP, could you guys add this? It woud be a great correction/bug fix. Would love for fade wrecks to be able to function too.

jamesol1 avatar May 20 '20 00:05 jamesol1

I found what mwkaicz did way back in 2014 to stop ships sinking into void on Movecraft 3. Sad this functionality wasn't carried over to newer version.

https://github.com/AJCStriker/Movecraft-3/commit/a75ced8aecb0ed821c992c02884dc7c10f94d78d

Please if you can add this functionality back. It would be greatly appreciated.

wolfebersahd avatar May 29 '20 20:05 wolfebersahd

oh I wasn't aware this once existed, since it seems a lot of people want it I'll look into it. Would a temporary solution where the ship simply vanishes when reaching the point it would stop sinking at be helpfull?

oh-noey avatar May 29 '20 20:05 oh-noey

If you are going to work on it and make it fade layer by layer I would be willing to wait.

Having it delete when it hits the void sounds like a great temporary solution.

Thanks for this.

wolfebersahd avatar May 30 '20 00:05 wolfebersahd

Yeah fade layer by layer is what I had in my head would be how it worked too

TomLewis avatar May 30 '20 09:05 TomLewis

Mwkaicz wrote the fade layer by layers code back in Movecraft 3 for us. BaccaYarro had the ship fade too but it would respawn the layer at y=255 it was rather funny. He fixed that bug too, I can dig through their respective github to find it 😉 if you would like.

wolfebersahd avatar May 30 '20 10:05 wolfebersahd

@wolfebersahd If you can find the code from the old version maybe the movecraft superman can help us out.

@eirikh1996 is this something you could implement from old code for us? This would be brilliant to have sky world ships!

TomLewis avatar May 30 '20 10:05 TomLewis

I use this precisely on my skylands server, have been since 2011.

wolfebersahd avatar May 30 '20 14:05 wolfebersahd

As per the discord chat just adding this here do it doesn't get lost

On all the ideas:

  • Ships fading layer by layer into the void is ideal in mine and Mineshaft's case.
  • With that said if there was a "no-fade" block list. "cannons materials, chests, valuables" etc that we want other people to be able to scavenge/loot after a ship battle over the void would be nice.

Currently ships just stop sinking at Y=3, they don't even squash.

~~Another option, would be that a sinking ships set all the signs in the ship to blank (or sets the first line to SUNKEN, or a configurable string) so that ships can't be re-piloted from clicking the sign again.~~

^^^ Just brainstorming ideas. Things that i think might be easier and more maintainable than adding sinking ships to other worlds, or having floating chests or cannons in the skies after ships sink. Our biggest concern is we're a skylands style server so floating islands with lots of void in-between.

wolfebersahd avatar Jun 21 '20 02:06 wolfebersahd

I have recently been experimenting with ways to fix this, my current solution checks when a craft moves if it is of sinking type and removes all blocks below a certain point. This point is required to be above 0 in order for the craft to fade layer by layer, this is due to it being hardcoded in movecraft. Here's an example of it: XK4cJnfR1Q

I have yet to find extremely ground breaking issues with this, here are a few:

  • If a ship goes below y 4 the craft will not continue to translate downwards when sunk (this is because of a hardcoded limit to my knowledge)
  • Removing it layer by layer does take a small hit on performance

Overall this is an extremely simple solution, I would love to develop this further and contribute it too Movecraft if the demand exists (maybe even just for sake of completion or polish).

ghost avatar Apr 20 '22 20:04 ghost

@NotVentox this is brilliant! The only thing I would recommend is a way to alert players they are getting close so if its piloted then they know they will start to fall to bits. Unless this is only when its sinking in which its great!

TomLewis avatar Apr 21 '22 18:04 TomLewis

It only vanishes when the craft is actually sinking.

ghost avatar Apr 21 '22 18:04 ghost