Jump to content

[Plugin/Parts] Kerbal Foundries - Continuation [Latest: 1.9g]


Recommended Posts

I took our code and referenced the new KSP 1.1 api and what should I say? The error list grew from ~10 entries (just debug stuff from SharpDevelop which Visual Studio can't interpret) to 50 entries.

Looking at the errors I think they mostly originate from the changed namespaces.
Summary:
- DustFX has 20 error regarding particle emitters not being accessible from GameObject anymore. (namespace problem?)
- GUI seems to only miss referencing the right namespace (can't find the ApplicationLoader, I think it is now in one of the new KSPsomething.dlls). \o/
- Rest of the errors are mostly about missing RigidBody and Renderer references in GameObject. (I think they are moved somewhere else.)

It doesn't look that serious but I only had a quick look. I have to re-read this post and scan the new dlls to get to know where everything was moved to.

Link to post
Share on other sites

I don't actually have access to the new libraries yet, so I can't really comment on what needs to be changed.  As for SharpDevelop stuff... the only stuff unique to that program are in the form of comment lines that SharpDevelop interprets.  That shouldn't have any impact on Visual Studio or anything else.

Anyway... I'm sure the GUI will need to be completely redone with a Unity 5 compatible GUI system.  It's supposed to be a lot easier with the new unity tools, but I haven't had a chance to mess with that yet.

I'm still a bit worried about the SpaceDock entry for KF.  I don't know who the tagged author is and the link in that entry still points to the old thread.

Hopefully all the differences are namespace/dll issues.  They'd have had to do a ton of work if their modules were changed so dramatically as to be outputting different stuff for related modules.  It's likely that anything new relating to wheels and collisions has been changed, but configured to output the same kind of data that other referencing modules would expect.  This would limit the need to completely rewrite the entire game.

On 3/15/2016 at 11:48 AM, damerell said:

It doesn't, although it does explain why one Mole Track wheel doesn't rotate in sync with the others.

I don't yet have an explanation for "rover's droop": I didn't take many external shots but this image shows it, with the forward wheel in each set dipping into the landscape. (On the other side the rear wheel droops because the tracks were added as subassemblies not by mirror symmetry). Unfortunately it only seems to occur after long periods of roving, making it hard to reproduce.

One thing to note here is that the wheels in that image aren't actually drooping into the landscape.  They're drooping into a static model of the runway.  Landscape is defined as the planetary surface.  Also, the droop can occur on any surface and, while the "long-roving" thing does happen, it also shows up a lot when tweaking the scale of the part.

 

EDIT: I haven't had any trouble editing posts... so my guess is you all are doing something wrong.  So... stop it.  There.  That's fixed now.

From looking around in the post you referenced, Aqua, it looks like a lot of this will be easily fixed in a temporary form by moving around the referenced DLLs and changing some namespace stuff around.  I found it a bit funny that they talked about shortcuts being eliminated in Unity 5, considering I never actually used any of those shortcuts nor even knew they existed.  Oh well.

Edited by Gaalidas
Link to post
Share on other sites
1 hour ago, Gaalidas said:

One thing to note here is that the wheels in that image aren't actually drooping into the landscape.  They're drooping into a static model of the runway.

They also drooped into about half the circumference of Kerbin - always the same wheel on each track - as mentioned above.

Link to post
Share on other sites
13 hours ago, Gaalidas said:

I'm still a bit worried about the SpaceDock entry for KF.  I don't know who the tagged author is and the link in that entry still points to the old thread.

We talked about that a few pages ago. The guy contacted lofi and apologized to him. The SpaceDock guys are informed and are waiting for us to pump out a new release. Then they'll delete the entry.

 

13 hours ago, Gaalidas said:

Hopefully all the differences are namespace/dll issues.

Unfortunately it's more serious than I thought. WheelCollider seems to be completely gone. Everything is in Assembly-CSharp-firstpass.dll -> VPWheel and VPWheelCollider now. In total I counted 69(!) classes, enums and structs belonging to VP. It will take time to understand how everything is related and set up.

We have to rewrite everything. *sigh*

 

4 minutes ago, Eskandare said:

recent test DLL

What recent test dll? There wasn't a new dll for months.

Edited by *Aqua*
Link to post
Share on other sites

Hmmmm. This could be good or bad.. VPWheelCollider will be Vehicle Physics, which is a library they bought in.

Do I have to buy a steam copy to get 1.1 preview? Happy to step back in and get the wheel collider stuff going again, as I'm probably best placed to do so. I'll leave the gui etc to you guys, though.

Link to post
Share on other sites
6 minutes ago, lo-fi said:

Do I have to buy a steam copy to get 1.1 preview?

Yes, atm it is the only way to get access to it and Squad stated they won't distribute it through the Squad servers. They are to weak to handle that much traffic.The price in my country is 39.99 € :o. I bought the game for ~15 or 18 € back then.

If you don't want to buy it, you can still have a look here: http://vehiclephysics.com/
The wheel part cfg look like this now:
 

Spoiler
PART
{
	name = roverWheel1
	module = Part
	author = Squad
	mesh = model.mu
	scale = 1
	node_attach = 0.3093255, 0.322, 0.00, 1.0, 0.0, 0.0, 1
	TechRequired = fieldScience
	entryCost = 5200
	cost = 450
	category = Utility
	subcategory = 0
	title = RoveMax Model M1
	manufacturer = Kerbal Motion LLC
	description = After years of outcry against the lack of proper powered wheels, a small startup company named Kerbal Motion was founded and delivered just what the public wanted - the RoveMax Model 1 powered rover wheel.
	attachRules = 0,1,0,1,0
	mass = 0.075
	dragModelType = default
	maximum_drag = 0.3
	minimum_drag = 0.2
	angularDrag = 1
	//crashTolerance = 7
	maxTemp = 1200 // = 3600
	crashTolerance = 50
	breakingForce = 50
	breakingTorque = 50
	bulkheadProfiles = srf
	tags = )car drive ground roll rover wheel
	MODULE
	{
		name = ModuleWheelBase
		
		wheelColliderTransformName = WheelCollider		
		wheelTransformName = WheelPivot
		
		wheelType = MOTORIZED

		// setting this to true will override the radius and center parameters
		FitWheelColliderToMesh = False		
		radius = 0.378
		center = 0,0,0
		mass = 0.040
		groundHeightOffset = 0
				
		TooltipTitle = Rover Wheel
		TooltipPrimaryField = Motorized
	}
	MODULE
	{
		name = ModuleWheelSuspension
		baseModuleIndex = 0
		suspensionTransformName = suspensionPivot
		
		suspensionDistance = 0.2
		targetPosition = 0.5			
		springRatio = 7
		damperRatio = 1.0
	}	
	MODULE
	{
		name = ModuleWheelSteering
		baseModuleIndex = 0
		
		caliperTransformName = SteeringPivot
		
		steeringResponse = 2
		steeringCurve
		{
			key = 0 20
			key = 10 9//6
			key = 30 3.0//1.5
		}
	}
	MODULE
	{
		name = ModuleWheelMotor
		baseModuleIndex = 0
		
		maxRpm = 42
		driveResponse = 2
		
		torqueCurve
		{
			key = 0 1.0 0 0
			key = 10  0.66 0//20  0.66 0
			key = 30 0.14 0 0//40 0.14 0 0
			key = 34 0 0 0//44 0 0 0
		}
		
		RESOURCE
		{
			name = ElectricCharge
			rate = 2.5//5
		}		
		idleDrain = 0.0//0.1////0.3
	}
	MODULE
	{
		name = ModuleWheelBrakes
		baseModuleIndex = 0
		
		maxBrakeTorque = 2
		brakeResponse = 1
	}
	MODULE
	{
		name = ModuleWheelDamage
		baseModuleIndex = 0
		
		damagedTransformName = wheelDamaged
		undamagedTransformName = wheel
		
		stressTolerance = 560
		impactTolerance = 200
		deflectionMagnitude = 10
		deflectionSharpness = 2.0
		slipMagnitude = 15
		slipSharpness = 2.0
	}	
	MODULE
	{
		name = FXModuleLookAtConstraint
		CONSTRAINLOOKFX
		{
			targetName = susp2-1
			rotatorsName = susp2-2
		}
		CONSTRAINLOOKFX
		{
			targetName = susp2-2
			rotatorsName = susp2-1
		}
		CONSTRAINLOOKFX
		{
			targetName = susp1-2
			rotatorsName = susp1-1
		}
		CONSTRAINLOOKFX
		{
			targetName = susp1-1
			rotatorsName = susp1-2
		}
		CONSTRAINLOOKFX
		{
			targetName = susp3-1
			rotatorsName = susp3-2
		}
		CONSTRAINLOOKFX
		{
			targetName = susp3-2
			rotatorsName = susp3-1
		}
	}
	MODULE
	{
		name = ModuleTestSubject
		environments = 15
		useStaging = False
		useEvent = True
	}
}

 

Edit:
It seems Squad still tweaks the new wheel system. Atm it's impossible to not get into Tokyo Drift mode.

Edited by *Aqua*
Link to post
Share on other sites

@lo-fi & @Gaalidas
I have an hour of free time. Want to chat? I'm currently online in the official irc chat.

 

Edit:

I just set up a part cfg.

Spoiler
PART
{
	name = KF_WheelSmall
	module = Part
	author = Lo-Fi + nli2work (texturing), Gaalidas (TweakScale configs), *Aqua* (KSP 1.1 configs)

	scale = 1
	rescaleFactor = 1

	node_attach = 0.33, -0.01, 0.0, 1.0, 0.0, 0.0
	node_stack_top = 0.33, -0.01, 0.0, 1.0, 0.0, 0.0, 0
	attachRules = 1,1,0,1,0
	
	TechRequired = advancedMotors
	entryCost = 6000

	cost = 300
	category = Utility
	subcategory = 0
	
	title = KF Small Rover Wheel
	manufacturer = Kerbal Foundries
	description = Ruggedised wheel for surface exploration
	tags = car drive ground roll rover wheel foundries kerbalfoundries
	
	mass = 0.2
	dragModelType = default
	maximum_drag = 0.3
	minimum_drag = 0.2
	angularDrag = 1
	maxTemp = 3600 

	crashTolerance = 1200
	breakingForce = 1200
	breakingTorque = 1200
	
	MODEL
	{
		model = KerbalFoundries/Assets/SmallWheel
	}
	
	MODULE
	{
		name = ModuleWheelBase
		
		wheelColliderTransformName = WC1		
		wheelTransformName = WheelMesh
		
		wheelType = MOTORIZED

		// setting this to true will override the radius and center parameters
		FitWheelColliderToMesh = True
		mass = 0.040
		groundHeightOffset = 0
				
		TooltipTitle = Rover Wheel
		TooltipPrimaryField = Motorized
	}
	
	MODULE
	{
		name = ModuleWheelSuspension
		baseModuleIndex = 0
		suspensionTransformName = suspensionTraverse
		
		suspensionDistance = 0.2
		targetPosition = 0.5			
		springRatio = 7
		damperRatio = 1.0
	}
	
	MODULE
	{
		name = ModuleWheelSteering
		baseModuleIndex = 0
		
		caliperTransformName = trackSteering
		
		steeringResponse = 2
		steeringCurve
		{
			key = 0 30
			key = 10 15
			key = 20 5
		}
	}
	
	MODULE
	{
		name = ModuleWheelMotor
		baseModuleIndex = 0
		
		maxRpm = 42
		driveResponse = 2
		
		torqueCurve
		{
			key = 0 60
			key = 5 95
			key = 45 15
			key = 60 0
		}
		
		RESOURCE
		{
			name = ElectricCharge
			rate = 2.5//5
		}		
		idleDrain = 0.0//0.1////0.3
	}
	
	MODULE
	{
		name = ModuleWheelBrakes
		baseModuleIndex = 0
		
		maxBrakeTorque = 2
		brakeResponse = 1
	}
	
	MODULE
	{
		name = FXModuleLookAtConstraint
		CONSTRAINLOOKFX
		{
			targetName = suspensionTraverse
			rotatorsName = WishBoneUpper
		}
		CONSTRAINLOOKFX
		{
			targetName = SuspT
			rotatorsName = SuspB
		}
		CONSTRAINLOOKFX
		{
			targetName = SuspB
			rotatorsName = SuspT
		}
	}

	MODULE
	{
		name = FXModuleConstrainPosition
		matchRotation = true
		matchPosition = false
		CONSTRAINFX
		{
			targetName = WishBoneUpper
			moversName = WishBoneLower
		}
	}

	MODULE
	{
		name = FXModuleConstrainPosition
		matchRotation = false
		matchPosition = true
		CONSTRAINFX
		{
			targetName = RodEnd
			moversName = WheelMount
		}
	}
}	

 

 

mjyf1Mi.jpg

The wheels start spinning when I press forward, they stop spinning when I break, they turn when I press A or D (inverted), the suspension is compressed in the editor and extended in flight, but apart from that they do nothing.
That means: The rover doesn't roll or move. It just sits there. Hm...:huh:

 

Edited by *Aqua*
Link to post
Share on other sites

Sorry bud, I was out putting the steam engine back together today.

Who knows if the wheel colliders in the existing .mu files are even compatible?! I'm guessing there's still no parttools update, so we're left guessing.

Link to post
Share on other sites

Great, thanks for the links.

Some of the wheels might be. Tracks are pretty much a definite no.

Great, thanks for the links.

Some of the wheels might be. Tracks are pretty much a definite no.

 

Oh, and the "bounds" helper object will need removing from the models. There's a partmodule if KF called objectDestroy (I think) which can help with that. 

Link to post
Share on other sites

Wheels still similar to the old setup. just split up into several sub modules. Old wheels might work without reexport. as long as you got the right transform names in the submodules.

And no more Bounds object. grab the unity package from the wheels thread to see the new setup, very familiar for you I'm sure.

Link to post
Share on other sites
2 hours ago, Seeker89 said:

I might be a little greedy.. but does the anti-grav work in 1.1?

I know this may come across as a bit harsh but. Have you at the very least attempted to read back one to two pages?.....

Link to post
Share on other sites
13 hours ago, V8jester said:

I know this may come across as a bit harsh but. Have you at the very least attempted to read back one to two pages?.....

Mmmm.... yes. The Repulsors doesn't use the wheel modules, and doesn't need to touch the ground to move. In my mind that would mean that it wouldn't be as broken compared to a lot of other stuff in the mod. Of course the UI stuff would be. (and DustFX)

For me it's what I use the most from this mod, and it was also the first parts. 

Link to post
Share on other sites
1 hour ago, *Aqua* said:

I'm again in the irc for about 1 hour (might be afk for a few minutes).

#KSPModders?

 

22 minutes ago, Seeker89 said:

Mmmm.... yes. The Repulsors doesn't use the wheel modules, and doesn't need to touch the ground to move. In my mind that would mean that it wouldn't be as broken compared to a lot of other stuff in the mod. Of course the UI stuff would be. (and DustFX)

For me it's what I use the most from this mod, and it was also the first parts. 

Don't take anything for granted. I've not had a play yet, but looks like Squad have really thrown us a curveball.

 

EDIT: yes, that's really annoying. I'm not paying £30 for a copy of a game I already own so I can get the 1.1 beta or whatever it is. Sorry folks, it'll have to wait.

Edited by lo-fi
Squad rage
Link to post
Share on other sites
41 minutes ago, lo-fi said:

#KSPModders?

 

Don't take anything for granted. I've not had a play yet, but looks like Squad have really thrown us a curveball.

 

EDIT: yes, that's really annoying. I'm not paying £30 for a copy of a game I already own so I can get the 1.1 beta or whatever it is. Sorry folks, it'll have to wait.

Sorry, it was more wondering then pushing. I don't expect you to pay for a game on steam when you already have it. but over all I'll be happy to wait. 

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
×
×
  • Create New...