Too awasome to be true. :smithicide:
Im not sure who's fault it is, but I hope its fixed soon.
I'm really having fun with this on my friend's server experimenting with hulls within hulls.
That's SB's feeble attempt at allowing players to stick to the hull. Works with a very small, 1 layer ship but as soon as you have several hulls it flings you between them. Not caused by GravHulls.Hvaenngard posted:
how to download?
In one way it's great that ridiculously oversized ships now have a little more purpose; previously you had a ship the size of a city and you spent the whole time in one chair.
In other ways I'm dreading it. You're not going to be able to move for huge, laggy leviathans on some servers :ohdear:
The reason, best I can tell, is because the contents of the Ship, are not really inside the ship once you use the Hull Designator.
You may notice in some maps, if you look up into the sky while using phys gun, you see your true location in the form of an invisible player shooting a phys gun into the sky.
When the Ring Transporters from the TelTak vessel are used with Gravity Hull Designator, it causes them to fly down to the ground at weird angles, because the TelTak asssumes that the rings only need to travel vertically, but because the Gravity Hull Designator puts the rings in a hidden location elsewhere, they actually have to fly across the map really fast, often at weird angles to reach the same location, that used to be vertical.
I noticed another querk, im not sure what causes it, but...
The Wire Field Generators from the wireextras pack, when I toggle a field generator ON inside my ship, while I am inside the ship, it has no effect on anything outside the ship.
Eg - Electromagnetic field generator interferes with cloaks and shields within x radius.
But when I am inside the ship, the effect is dampened.
When I exit the ship, the EMP suddonly turns on. Im guessing I need to mount the Wire Field generator external to the grav hull?
Suggestion - Add Wire inputs for the Gravity Hull etc.
eg - Use GMOD Tool Gun, spawns a chip or something on a surface, then wire inputs can turn the hull on and off. Would be alot easier for building.
eg - Turn it off via numpad input, to build, and back on when finished building.
Could also integrate it with other wire devices to make it only turn on when the ship is moving or in flight.
Integration with wire, make the choices unending.... well... almost.
It might be possible to add Client Side convar's to control the rendering of the Designated space?
eg - Lets say my Graphics Card cant handle all these GHD's, maybe I could set the draw distance or something for GHD's, and only GHD's within a certain radius draw for me?
Or perhaps optionally disabling view INTO the GHD's?
I came back to Garry's Mod because of this.
Before it was better to just stick with little single/twin-seaters, seeing as you were glued to your chair anyway.
In that case..
You need a good server rig to survive.
My own server surprised me, when a player spawned an adv duplication of the Destiny Ship from Stargate Universe, used like 1000+ Props, was fully walkable inside, and realistic and looked just like Destiny.
Server 'almost' crashed when he was spawning it...
Then we detonated a nuke, which of course disassembled it, and the server chugged along, ping went from 33 for me, up to about 300, but recovered quickly after he undid the duplication.
Whats with all the ents.Find* functions though? Won't redoing them in lua degrade performance alot?
^ Because that would get spacebuilds "is player in space or on a planet"-thing to work, i think (if the planets use ents.FindInSphere at all?! Don't rate me dumb, it's just an idea i had )
Is this available for download yet, or is it just on certain servers?
True, overriding ents functions would be a bit hard on the server. It would only override ents.FindInSphere, ents.FindInBox, and ents.FindInCone, though-- so maybe not as much as it could be. Honestly though, gmod is a 4-year-old game at best, and a lot of gmod server boxes these days run multiple servers. As long as it doesn't create network lag (which isn't really any better than it was in 07), I think our modern PC's can handle it. It's kind of necessary for spacebuild support, too.
EDIT: @above: it's available as an svn download now. There's a download section on the OP.
EDIT3: So I just looked at the code for SB2 and it looks like my code should work just fine with its environment stuff. I'm guessing the "resources not going through the hull" bug is SB3-only then; correct me if I'm wrong. Seems like aside from the link distance bug (which I know the cause of) SB2 works fine, so I'll work on fixing it with SB3 as well.
Can't wait for the next revision. :o
Argh, I can't seem to find the download for SB3. Any help while I work on the hull scanner? :P
An upside down gravity hull within another, Strange..
Yes, I missed something. Me dumb.
1. Spawn a spacebuild model that u can walk inside of.
Place it flat on the ground.
Use the gravity Designator on the ground of the prop (eg - on the bit u walk on)
Have another person tilt the prop - you should remain stuck to the ground.
Spawn a Flat Prop
Spawn another flat prop
Put Flat Prop B over flat prop A, and weld them together, so Prop B is suspended above A.
Use gravity Designator on Prop A, (Which should be the ground one)
Now that you have done that, unfreeze the props, and tilt them upside down etc, and you should be able to pass between props A and B and be affected by the new gravity zone.
It seems like you need Prop A and B in order for a gravity zone to be made.
Make an entity that toggles the GHD on your ship via a Wire Input.
You would have to apply the GHD first so your ship knew which direction was down to begin with but then you can turn it on/off via a "Portable GHD" attached to your ship with a wire input
Deactivating gravity to simulate power drains.
Wanting to restore normal gravity a bit
Can someone please test this for compatibility with WAC? I don't know what might make them conflict (god knows what would) but I'd love for them to work together as painlessly as possible.
So the new hull scanner is coming along nicely-- what I ended up doing was to just loop over the constraints, ignore no collides and keep upright, and scan through the rest and keep a list of all entities connected via an actual physical constraint. Next, I scan through again and ONLY obey welds, removing each entity from the old list and adding it to a new list. I'm left with a list of entities connected solidly to the GHD prop, and a list of entities connected via nonsolid constraints. I'll then set it up so the solid connections make it to the hull, and the nonsolid connections are added to the moving parts list. It's not functional as a hull scanner YET, but the algorithm part of it is finished.
EDIT: Later on there will be a SENT version of the tool which will be spawned like a hoverdrive controller. If wire is installed, it will generate inputs, and if wire is not installed, it will just use default settings. Servers will be able to disable the tool in favor of the SENT if need be. The SENT will also have optional LS support so that your gravity hull needs a resource to stay working.
Just because you dislike having wire support on every addon you cant deny that this would be a fairly cool thing to have as until EVERYTHING works with this addon(Enviroments noteably) it would be nice to turn off the GHD when your ship is righted and in an atmosphere so you can turn off the LS safely without turning blue and exploding.
Also i still think power outages would be epic(Just need to be able to turn off the modbridge lights to complete the picture)
Just seen the final part of the above.
Yay for wire!
Wire support could be done later, when the code is cleaned up. No point in making any other addon use this, only to have to rewrite the whole thing when SuperLlama cleans up the messy code. And we don't need to rush it.
I think I just fixed all the shortcomings of the new hull scanner. I also added a feature where the first prop of another hull that's constrained will be considered a moving part, so there should always be a permanent physghost there to stop you from falling through. This will also make ship-to-ship transitions MUCH easier to implement.
One problem though-- if you rope, say, a helicopter bomb to your ship, you can use the physgun to fly your ship by dragging the bomb around from inside the ship... not sure what to do about this, since I want people to be able to physgun moving parts, but I guess it's not really that big of a problem.
EDIT: But yeah, going to commit as soon as I finish the permaghost stuff and test it fairly thoroughly. I also fixed the prop spazz associated with docking, looks like I still did something wrong in that regard.
I think it's actually a clever mechanism, being able to pilot your ship from inside it using the physgun.
For entities that teleport (Stargate Rings for example), would it be possible to reverse the method of Hulling so instead of putting the real one hidden, it remains in the real world. This should solve the issue of the rings not being able to send, but able to receive (because it is receiving in the hidden hull, but when it sends there isn't anything there to send. I'm assuming).
Correct me if I'm wrong. It's a theory. And theories are meant to be proven wrong (or right).
Great tool this, I've had lots of fun with it. Will keep track of svn updates!
The hull you get teleported to when you enter a GH already is in the "real" world, it's just invisible.
If you mean instead of making it hidden, you put it where the original hull is, that would defeat the purpose of the addon and just make a copy of all the props in the contraption for no reason...
EDIT: The reason stargate rings don't work is because SuperLlama has overwritten the GetPos function to return the position in the visual hull (the original hull - the one you click with the GHD tool). When you try to use the rings from inside the ship, it returns a position where there are no players.
To fix it, he'd probably have to override all entity finding functions ( http://wiki.garrysmod.com/?title=Ents ) as well.
Another way which would be less demanding for the server (but equally hacky) is to override the function of the entity. This would cause some problems if the entity in question is being actively developed (no issues for Stargate there...) since you would then have to update the override every time the addon's owner updates his entity.
EDIT: For SG rings, you'd just have to override the DoTeleport function on line 176 in this file: http://svn.daggeringcats.com/stargat..._base/init.lua
EDIT 2: I just overwrote the Wire button's Use function to tell the person who pressed it that "omg they pressed use".
using this simple line:
entered in console.lua_run scripted_ents.GetList()["gmod_wire_button"].t.Use = function( self, ply ) ply:ChatPrint("omg you pressed use") end
This means it's perfectly possible :D