tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
112 stars 17 forks source link

[SUGGESTION] Implementation of docks/force fields #2095

Open nokturnihs opened 4 years ago

nokturnihs commented 4 years ago

Short Description of the issue:

So been thinking about force fields and docking areas as I've been working on ships and trying to land the smaller craft on the ring world (beachball physics ATM).

Could you use linked blocks (like small square logic blocks) that you link into shapes and once a shape is made it can serve as a marker for your force fields or docks? For example in the OFF state anything inside the 2D/3D grid is turned off, doesn't existence and in the ON state anything you placed there does exist? Same with the docking area/magnetic connection? Just a suggestion, dunno if that's harder or easier than what you're working on for it now.. Or just add a logic block that does the same function that can be connected to hull pieces, non-system blocks to do that? You already have the amazing scaling technology, this would conform better to current building methods (and wouldn't necessarily screw with mass, etc). Anyway, just passing you ideas...

Steps to reproduce the issue:

...

Environment

Additional information:

(Screenshots, Videos, Error logs, Related issues)

Please also include the output_log.txt file. You can find your log here: %UserProfile%\AppData\LocalLow\Moonfire Entertainment\Starship EVO\

JRL101 commented 4 years ago

The forcefields could be a block thats stretchable, but it is able to turn its texture/shader and collision on and off like a light.

ZachZent commented 4 years ago

Maybe a block that can only be stretched on the X and Y axis. Placing the will result in a perimeter of blocks while the area inside is the force field.

tsunamayo commented 4 years ago

Yes the stretch is the easiest for me but that means: 1) limited to 16x16 2) can only make square. => do you think it is okay? That rules out a lot of hangar design.

ZachZent commented 4 years ago

That would not be enough by a long shot. Here is another option.

You place a vertical/horiz bar similar to sliders. Add extensions. This will create a forcefield until said field hits another block. Or you need to set up two of these bars facing each other. If there is nothing in between them, a field can be created.

tsunamayo commented 4 years ago

@ZachZent yes that was the other options, except without the extensions logic, you just put them side by side and they go until they meet another block. Limitation would be no wedged forcefield (but same as single frame block)

nokturnihs commented 4 years ago

Like that option @tsunamayo - can you use that for magnetic adherence surfaces (docks, garages) as well? That would allow people to turn them on/off and would reduce collision problems at high speed, also might allow for cool things like fast launching ships (aka a bigger ship going forward at 80 m/s releases the magnetic docking surface of a small ship exiting out the back, essentially rocketing smaller ship out of bigger ships behind.) I dunno, guess it could be exploited to add collision issues too but could also allow for really neat things like mech-suits to go EVA And repair capital ships, etc

ZachZent commented 4 years ago

I'd really consider the extensions. Without you come back to the same problem of only having a 16 tall force field. Well I guess you can stack them, but since we already got extension rails may as well use them

nokturnihs commented 4 years ago

Yeah, 16x16 isn't super useful beyond smaller ships, at that point would just prefer no-collision translucent blocks at that point. Especially if we could have them as wedges, etc. Anyway...

nokturnihs commented 4 years ago

@tsunamayo could your 16x16 blocks be controlled and placed next to each other? Like hull blocks now?

Dwarf-LordPangolin commented 4 years ago

Yes, the option that is bigger than 16x16 would be best; otherwise hangars with these fields would not be able to hold even most Cat 0 ships.

tsunamayo commented 4 years ago

no you misunderstood me, when I say no extension it means you can put two separate block side by side and get a 32m large force field. There is just no addon block, it is two separate field. But then there is some issue with linking: if you want to get some info on when your ship pass through, or if you want to desactivate them. Not a big deal, you could link them all. Need a bit more though, are we missing something?

nokturnihs commented 4 years ago

If we can link them all with logic or whatever that'd be great I think, would also allow force cages and the like via separated doors and things! Yeah, would work for me anyway...

JRL101 commented 4 years ago

If its a boaderless block you can just make the logic turn them all off. Could even be a shader, that you paint blocks with.

If people want something to detect ships passing through a forcefield block, they can always use a sensor.

ProPeach commented 4 years ago

What happens at the corners of the force field perimeter? That might need a procedural texture or something to blend the horizontal and vertical parts of the stretched force field blocks, a bit like the bevels on hull blocks joining together.

This sounds like an awesome plan though, a cool idea for the VFX would be something similar to the mirror plane where if a ship passes through the force field a line appears on it where the ship and field intersect. I think theres a similar effext when a ship intersects with water

Edit - just realised I'm potentially wrong about needing a smoothing solution for the corners, that would only be required if the model of the force field block was less than 1m tall

tsunamayo commented 4 years ago

@ProPeach yes exactly the force would use this shader technique like on the symmetry plane. So no border needed, borders appears naturally when close to any real geometry. Yes it would be 1m wide, but it have to be aligned to the grid as all air tightness computation will be per voxel.