diff --git a/Assets/CineboxAndrew b/Assets/CineboxAndrew index f357fa8e..e0d84f62 160000 --- a/Assets/CineboxAndrew +++ b/Assets/CineboxAndrew @@ -1 +1 @@ -Subproject commit f357fa8e99937d7ef61aa8c63e8f198ea2c7a269 +Subproject commit e0d84f6229971bab4b1557380a1f3b9c39e2ac46 diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil-n.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil-n.dds new file mode 100644 index 00000000..1308f1cf Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil-n.dds differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil-s.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil-s.dds new file mode 100644 index 00000000..d58c1604 Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil-s.dds differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil.dds new file mode 100644 index 00000000..934c8321 Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-ground-1-foil.dds differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1-rigid.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1-rigid.mu index 1d01111a..86ce78f6 100644 Binary files a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1-rigid.mu and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1-rigid.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1.mu index 15a90cff..1dcf21bf 100644 Binary files a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1.mu and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-leg-1.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil-n.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil-n.dds deleted file mode 100644 index 8deb7aa1..00000000 Binary files a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil-n.dds and /dev/null differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil-s.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil-s.dds deleted file mode 100644 index c590b4fc..00000000 Binary files a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil-s.dds and /dev/null differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil.dds deleted file mode 100644 index 1c6a9f72..00000000 Binary files a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-legs-1-foil.dds and /dev/null differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-1-T.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-1-T.mu new file mode 100644 index 00000000..9dd346a0 Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-1-T.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-1.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-1.mu new file mode 100644 index 00000000..a6ee5f43 Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-1.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-2.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-2.mu new file mode 100644 index 00000000..428f2d4f Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-2.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-3.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-3.mu new file mode 100644 index 00000000..0193cfea Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-3.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-4.mu b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-4.mu new file mode 100644 index 00000000..ecc9fce9 Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheel-4.mu differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheels-1-n.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheels-1-n.dds new file mode 100644 index 00000000..c6effcde Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheels-1-n.dds differ diff --git a/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheels-1.dds b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheels-1.dds new file mode 100644 index 00000000..fb5fd4ab Binary files /dev/null and b/Distribution/Restock/GameData/ReStock/Assets/Ground/restock-wheels-1.dds differ diff --git a/Distribution/Restock/GameData/ReStock/Localization/en-us.cfg b/Distribution/Restock/GameData/ReStock/Localization/en-us.cfg index dabb07b7..37d897bd 100644 --- a/Distribution/Restock/GameData/ReStock/Localization/en-us.cfg +++ b/Distribution/Restock/GameData/ReStock/Localization/en-us.cfg @@ -74,6 +74,9 @@ Localization #LOC_Restock_variant-telescope_shielded = Shielded #LOC_Restock_variant-telescope_bare = Bare + #LOC_Restock_variant-wheel_broken = Broken + #LOC_Restock_variant-wheel_bare = Bare + #LOC_Restock_variant-surface_metal = Metal #LOC_Restock_variant-surface_basic = Basic #LOC_Restock_variant-surface_truss = Truss diff --git a/Distribution/Restock/GameData/ReStock/Patches/Ground/restock-wheels.cfg b/Distribution/Restock/GameData/ReStock/Patches/Ground/restock-wheels.cfg new file mode 100644 index 00000000..da309570 --- /dev/null +++ b/Distribution/Restock/GameData/ReStock/Patches/Ground/restock-wheels.cfg @@ -0,0 +1,257 @@ +// Patches applying art changes to wheels +// Contents: +// - Rovemax Model S2 (roverWheel2) +// - Rovemax Model M1 (roverWHeel1) +// - TR-2L Ruggedized Wheel (wheelMed) + +// RoveMax Model S2 +@PART[roverWheel2]:HAS[~RestockIgnore[*]]:FOR[ReStock] +{ + @author = Andrew Cassidy + + !MODEL {} + MODEL + { + model = ReStock/Assets/Ground/restock-wheel-1 + } + + @MODULE[ModuleWheelSuspension] { + @suspensionTransformName = SuspensionPivot + } + + @MODULE[ModuleWheelSteering] { + @steeringTransformName = SteeringPivot + } + + @MODULE[ModuleWheelDamage] { + @damagedTransformName = WheelBusted + @undamagedTransformName = Wheel + } + + !MODULE[FXModuleLookAtConstraint] {} + + MODULE + { + name = ModuleRestockConstraints + + LOOKATCONSTRAINT + { + rotatorsName = Suspension1 + targetName = Suspension2 + } + + LOOKATCONSTRAINT + { + rotatorsName = Suspension2 + targetName = Suspension1 + } + } + + MODULE + { + name = ModulePartVariants + useMultipleDragCubes = false + baseVariant = Bare + VARIANT + { + name = Bare + displayName = #LOC_Restock_variant-probe-bare + primaryColor = #999999 + secondaryColor = #999999 + + GAMEOBJECTS + { + body_gold = false + SteeringPivot_gold = false + body_silver = false + SteeringPivot_silver = false + } + } + VARIANT + { + name = Gold + displayName = #LOC_Restock_variant-probe-gold + themeName = Gold + primaryColor = #fccb0a + secondaryColor = #999999 + + GAMEOBJECTS + { + body_gold = true + SteeringPivot_gold = true + body_silver = false + SteeringPivot_silver = false + } + } + VARIANT + { + name = Silver + displayName = #LOC_Restock_variant-probe-silver + themeName = Silver + primaryColor = #cecece + secondaryColor = #999999 + + GAMEOBJECTS + { + body_gold = false + SteeringPivot_gold = false + body_silver = true + SteeringPivot_silver = true + } + } + } +} + +// RoveMax Model M1 +@PART[roverWheel1]:HAS[~RestockIgnore[*]]:FOR[ReStock] +{ + @author = Andrew Cassidy + + !mesh = DELETE + MODEL + { + model = ReStock/Assets/Ground/restock-wheel-2 + } + + @MODULE[ModuleWheelSuspension] { + @suspensionTransformName = SuspensionPivot + } + + @MODULE[ModuleWheelSteering] { + @steeringTransformName = SteeringPivot + } + + @MODULE[ModuleWheelDamage] { + @damagedTransformName = WheelBusted + @undamagedTransformName = Wheel + } + + !MODULE[FXModuleLookAtConstraint] + + MODULE + { + name = ModuleRestockConstraints + + LOOKATCONSTRAINT + { + rotatorsName = Link1 + targetName = Link1Target + } + + LOOKATCONSTRAINT + { + rotatorsName = Link2 + targetName = Link2Target + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = LowerBracket + targetName = Base + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = SteeringPivotFollower + targetName = SteeringPivot + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = WheelPivotFollower + targetName = WheelPivot + } + + LOOKATCONSTRAINT + { + rotatorsName = ShockCylinder + targetName = ShockPiston + } + + LOOKATCONSTRAINT + { + rotatorsName = ShockPiston + targetName = ShockCylinder + } + + LOOKATCONSTRAINT + { + rotatorsName = SteeringPiston1 + targetName = SteeringCylinder1 + } + + LOOKATCONSTRAINT + { + rotatorsName = SteeringCylinder1 + targetName = SteeringPiston1 + } + + LOOKATCONSTRAINT + { + rotatorsName = SteeringPiston2 + targetName = SteeringCylinder2 + } + + LOOKATCONSTRAINT + { + rotatorsName = SteeringCylinder2 + targetName = SteeringPiston2 + } + } +} + +// TR-2L Ruggedized Vehicular Wheel +@PART[wheelMed]:HAS[~RestockIgnore[*]]:FOR[ReStock] +{ + @author = Andrew Cassidy + + !MODEL {} + MODEL + { + model = ReStock/Assets/Ground/restock-wheel-3 + } + + @MODULE[ModuleWheelSuspension] { + @suspensionTransformName = SuspensionPivot + } + + @MODULE[ModuleWheelSteering] { + @steeringTransformName = SteeringPivot + } + + @MODULE[ModuleWheelDamage] { + @damagedTransformName = WheelBusted + @undamagedTransformName = Wheel + } + + !MODULE[FXModuleLookAtConstraint] {} + + MODULE + { + name = ModuleRestockConstraints + + LOOKATCONSTRAINT + { + rotatorsName = DamperCylinder + targetName = DamperPiston + } + + LOOKATCONSTRAINT + { + rotatorsName = DamperPiston + targetName = DamperCylinder + } + + LOOKATCONSTRAINT + { + rotatorsName = SteeringCylinder1 + targetName = SteeringPiston1 + } + + LOOKATCONSTRAINT + { + rotatorsName = SteeringPiston1 + targetName = SteeringCylinder1 + } + } +} diff --git a/Distribution/Restock/GameData/ReStock/PatchesMH/Ground/restock-mh-wheels.cfg b/Distribution/Restock/GameData/ReStock/PatchesMH/Ground/restock-mh-wheels.cfg new file mode 100644 index 00000000..2c7b6ea2 --- /dev/null +++ b/Distribution/Restock/GameData/ReStock/PatchesMH/Ground/restock-mh-wheels.cfg @@ -0,0 +1,156 @@ +// Patches applying art changes to the Making History rover wheel +// Contents: +// - RoveMax M1-F Rover Wheel (roverWheelM1-F) + +// RoveMax M1-F Rover Wheel +@PART[roverWheelM1-F]:HAS[~RestockIgnore[*]]:FOR[ReStock] +{ + @author = Andrew Cassidy + + !MODEL {} + MODEL + { + model = ReStock/Assets/Ground/restock-wheel-4 + } + + @MODULE[ModuleWheelSuspension] { + @suspensionTransformName = SuspensionPivot + } + + @MODULE[ModuleWheelSteering] { + @steeringTransformName = SteeringPivot + } + + @MODULE[ModuleWheelDamage] { + @damagedTransformName = WheelBusted + @undamagedTransformName = Wheel + } + + @MODULE[ModuleWheelDeployment] { + @animationTrfName = restock-wheel-4 + @animationStateName = restock-wheel-4-deploy + + } + + !MODULE[ModulePartVariants] {} + + MODULE + { + name = ModulePartVariants + baseVariant = Orange + VARIANT + { + name = Orange + displayName = #autoLOC_8007100 // Orange + themeName = Orange + primaryColor = #74402B + secondaryColor = #707070 + GAMEOBJECTS + { + Fender_orange = true + Fender_grey = false + Fender_cernan = false + } + } + + VARIANT + { + name = Grey + displayName = #autoLOC_8007119 // White + themeName = White + primaryColor = #ffffff + secondaryColor = #707070 + GAMEOBJECTS + { + Fender_orange = false + Fender_grey = true + Fender_cernan = false + } + } + + VARIANT + { + name = Cernan + displayName = #LOC_Restock_variant-wheel_broken // Broken + themeName = Orange + primaryColor = #74402B + secondaryColor = #A0A0A0 + GAMEOBJECTS + { + Fender_orange = false + Fender_grey = false + Fender_cernan = true + } + } + + VARIANT + { + name = Bare + displayName = #LOC_Restock_variant-wheel_bare //Bare + themeName = White + primaryColor = #707070 + secondaryColor = #707070 + GAMEOBJECTS + { + Fender_orange = false + Fender_grey = false + Fender_cernan = false + } + } + } + + !MODULE[FXModuleLookAtConstraint] {} + + MODULE + { + name = ModuleRestockConstraints + + LOOKATCONSTRAINT + { + rotatorsName = Link1 + targetName = Link1Target + } + + LOOKATCONSTRAINT + { + rotatorsName = Link2 + targetName = Link2Target + } + + LOOKATCONSTRAINT + { + rotatorsName = SuspensionPiston + targetName = SuspensionPistonTarget + } + + LOOKATCONSTRAINT + { + rotatorsName = SuspensionCylinder + targetName = SuspensionCylinderTarget + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = LowerBracket + targetName = UpperBracket + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = SteeringPivotFollower + targetName = SteeringPivot + } + + COPYPOSITIONCONSTRAINT + { + moversName = WheelMesh + targetName = WheelPivotFollower + } + + COPYPOSITIONCONSTRAINT + { + moversName = WheelMeshBusted + targetName = WheelPivotFollower + } + } +} \ No newline at end of file diff --git a/Distribution/Restock/GameData/ReStock/Restock.restockblacklist b/Distribution/Restock/GameData/ReStock/Restock.restockblacklist index bbf540ba..34c3b211 100644 --- a/Distribution/Restock/GameData/ReStock/Restock.restockblacklist +++ b/Distribution/Restock/GameData/ReStock/Restock.restockblacklist @@ -135,6 +135,9 @@ Squad/Parts/Utility/launchClamp1/ Squad/Parts/Utility/landingLegLT-1/ Squad/Parts/Utility/landingLegLT-2/ Squad/Parts/Utility/landingLegLT-5/ +Squad/Parts/Wheel/roverWheelM1/ +Squad/Parts/Wheel/roverWheelS2/ +Squad/Parts/Wheel/roverWheelTR-2L/ Squad/Parts/Resources/RadialTank/ Squad/Parts/Resources/SmallTank/ Squad/Parts/Resources/LargeTank/ diff --git a/Distribution/Restock/changelog.txt b/Distribution/Restock/changelog.txt index e8d37ab6..c9ef6c2a 100644 --- a/Distribution/Restock/changelog.txt +++ b/Distribution/Restock/changelog.txt @@ -1,3 +1,15 @@ +v1.1.0 +----- +- New stock part replacements + - Wheels + - Rovemax Model S2 (Andrew Cassidy) + - Rovemax Model M1 (Andrew Cassidy) + - TR-2L Ruggedized Wheel (Andrew Cassidy) + +- Making History parts replaced: + - Wheels + - Rovemax Model M1-F (Andrew Cassidy) + v1.0.3 ----- - Updated ModuleManager distribution to 4.1.3 @@ -9,7 +21,6 @@ v1.0.2 - Fixed 'tankbutt' localizations for Skiff showing 1.875m when they should be 2.5m (#766) - Fixed inflatable heatshield fairing (#765) - v1.0.1 ----- - Fixed lack of bundled ModuleManager diff --git a/Distribution/RestockPlus/GameData/ReStockPlus/Localization/en-us.cfg b/Distribution/RestockPlus/GameData/ReStockPlus/Localization/en-us.cfg index e16ecdf4..26d8421b 100644 --- a/Distribution/RestockPlus/GameData/ReStockPlus/Localization/en-us.cfg +++ b/Distribution/RestockPlus/GameData/ReStockPlus/Localization/en-us.cfg @@ -429,5 +429,15 @@ Localization #LOC_RestockPlus_restock-oretank-375-1_title = Jumbo Holding Tank #LOC_RestockPlus_restock-oretank-375-1_description = A very large tank that can be used for storing raw materials. The manufacturer denies any claims that it has been re-purposed from a local farm #LOC_RestockPlus_restock-oretank-375-1_tags = black isru mine )mining (ore resource store restock + + // GROUND + // ============== + #LOC_RestockPlus_restock-wheel-1-T_title = Rovemax Model S2-T + #LOC_RestockPlus_restock-wheel-1-T_description = A modified rover wheel that is rotated 90°, ideal for tricycles or other unusually shaped vehicles. + #LOC_RestockPlus_restock-wheel-1-T_tags = )car drive ground roll rover wheel tricycle restock + + #LOC_RestockPlus_restock-wheel-4_title = Rovemax Model M0 + #LOC_RestockPlus_restock-wheel-4_description = A smaller version of the popular Rovemax wheel with an integrated folding function, allowing it to be stowed for transportation. + #LOC_RestockPlus_restock-wheel-4_tags = )car drive ground roll rover wheel fold LRV restock } } diff --git a/Distribution/RestockPlus/GameData/ReStockPlus/Parts/Ground/restock-wheel-1-T.cfg b/Distribution/RestockPlus/GameData/ReStockPlus/Parts/Ground/restock-wheel-1-T.cfg new file mode 100644 index 00000000..5710273e --- /dev/null +++ b/Distribution/RestockPlus/GameData/ReStockPlus/Parts/Ground/restock-wheel-1-T.cfg @@ -0,0 +1,209 @@ +// ReStock+ 1.1.0 +// 90° rotated rover wheel +PART +{ + name = restock-wheel-1-T + module = Part + author = Andrew Cassidy + + MODEL + { + model = ReStock/Assets/Ground/restock-wheel-1-T + scale = 1.0, 1.0, 1.0 + } + rescaleFactor = 1.0 + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,0,0,0 + node_attach = 0.0, 0.5248517, 0.3083052, 0.0, 0.0, -1.0, 1 + node_stack_bottom = 0.0, 0.5248517, 0.321335, 0.0, 0.0, 1.0, 1 + + TechRequired = spaceExploration + entryCost = 3100 + cost = 300 + category = Ground + subcategory = 0 + mass = 0.06 + + title = #LOC_RestockPlus_restock-wheel-1-T_title // Rovemax Model S2-T + manufacturer = #autoLOC_501649 //#autoLOC_501649 = Kerbal Motion LLC + description = #LOC_RestockPlus_restock-wheel-1-T_description + // A modified rover wheel that is rotated 90°, ideal for tricycles or other unusually shaped vehicles + + dragModelType = default + maximum_drag = 0.3 + minimum_drag = 0.2 + angularDrag = 1 + crashTolerance = 20 + maxTemp = 1200 + bulkheadProfiles = srf + tags = #LOC_RestockPlus_restock-wheel-1-T_tags // drive ground roll rover wheel tricycle restock + + MODULE + { + name = ModuleWheelBase + + wheelColliderTransformName = WheelCollider + wheelTransformName = WheelPivot + + wheelType = MOTORIZED + + // setting this to true will override the radius and center parameters + FitWheelColliderToMesh = False + radius = 0.157 + center = 0,0,0 + mass = 0.040 + groundHeightOffset = 0 + + TooltipTitle = #autoLOC_502081 //#autoLOC_502081 = Rover Wheel + TooltipPrimaryField = #autoLOC_6004045 //#autoLOC_6004045 = Motorized + } + + MODULE + { + name = ModuleWheelSuspension + baseModuleIndex = 0 + suspensionTransformName = SuspensionPivot + maximumLoad = 8.0 + suspensionDistance = 0.195 + suspensionOffset = -0.05 + targetPosition = 0.2 + springRatio = 5 + damperRatio = 1.0 + useAutoBoost = true + } + + MODULE + { + name = ModuleWheelSteering + baseModuleIndex = 0 + + caliperTransformName = SteeringPivot + + steeringResponse = 1.5 + steeringCurve + { + key = 0 40 + key = 5 27//15 + key = 10 9//6 + key = 30 3.0//1.5 + } + } + MODULE + { + name = ModuleWheelMotor + baseModuleIndex = 0 + + wheelSpeedMax = 11 + driveResponse = 2 + + torqueCurve + { + key = 0 0.17 0 0 + key = 2.5 0.1 0 0 + key = 12 0 0 0 + } + RESOURCE + { + name = ElectricCharge + rate = 1//5 + } + idleDrain = 0.0//0.1// + } + + MODULE + { + name = ModuleWheelBrakes + baseModuleIndex = 0 + + maxBrakeTorque = 0.34 + brakeResponse = 1 + } + + MODULE + { + name = ModuleWheelDamage + baseModuleIndex = 0 + + damagedTransformName = WheelBusted + undamagedTransformName = Wheel + + stressTolerance = 315 + impactTolerance = 65 + deflectionMagnitude = 1.0 + deflectionSharpness = 2.0 + slipMagnitude = 15 + slipSharpness = 2.0 + } + + MODULE + { + name = ModuleRestockConstraints + + LOOKATCONSTRAINT + { + rotatorsName = Suspension1 + targetName = Suspension2 + } + + LOOKATCONSTRAINT + { + rotatorsName = Suspension2 + targetName = Suspension1 + } + } + + MODULE + { + name = ModulePartVariants + useMultipleDragCubes = false + baseVariant = Bare + VARIANT + { + name = Bare + displayName = #LOC_Restock_variant-probe-bare + primaryColor = #999999 + secondaryColor = #999999 + + GAMEOBJECTS + { + body_gold = false + SteeringPivot_gold = false + body_silver = false + SteeringPivot_silver = false + } + } + VARIANT + { + name = Gold + displayName = #LOC_Restock_variant-probe-gold + themeName = Gold + primaryColor = #fccb0a + secondaryColor = #999999 + + GAMEOBJECTS + { + body_gold = true + SteeringPivot_gold = true + body_silver = false + SteeringPivot_silver = false + } + } + VARIANT + { + name = Silver + displayName = #LOC_Restock_variant-probe-silver + themeName = Silver + primaryColor = #cecece + secondaryColor = #999999 + + GAMEOBJECTS + { + body_gold = false + SteeringPivot_gold = false + body_silver = true + SteeringPivot_silver = true + } + } + } +} \ No newline at end of file diff --git a/Distribution/RestockPlus/GameData/ReStockPlus/Parts/Ground/restock-wheel-4.cfg b/Distribution/RestockPlus/GameData/ReStockPlus/Parts/Ground/restock-wheel-4.cfg new file mode 100644 index 00000000..e585a789 --- /dev/null +++ b/Distribution/RestockPlus/GameData/ReStockPlus/Parts/Ground/restock-wheel-4.cfg @@ -0,0 +1,288 @@ +// ReStock+ 1.1.0 +// Folding LRV wheel +PART +{ + name = restock-wheel-4 + module = Part + author = Andrew Cassidy + + MODEL + { + model = ReStock/Assets/Ground/restock-wheel-4 + scale = 1.0, 1.0, 1.0 + } + rescaleFactor = 1.25 //sigh + + // attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision + attachRules = 1,1,0,0,0 + node_attach = 0.36, 0.1207, 0.0, 1.0, 0.0, 0.0, 1 + node_stack_bottom = 0.3815, 0.1207, 0.0, 1.0, 0.0, 0.0, 1 + + TechRequired = fieldScience + entryCost = 5000 + cost = 500 + category = Ground + subcategory = 0 + mass = 0.04 + + title = #LOC_RestockPlus_restock-wheel-4_title // Rovemax Model M0 + manufacturer = #autoLOC_501649 //#autoLOC_501649 = Kerbal Motion LLC + description = #LOC_RestockPlus_restock-wheel-4_description + // A smaller version of the popular Rovemax wheel with an integrated folding function, allowing it to be stowed for transportation. + + dragModelType = default + maximum_drag = 0.3 + minimum_drag = 0.2 + angularDrag = 1 + crashTolerance = 30 + maxTemp = 1200 + bulkheadProfiles = srf + tags = #LOC_RestockPlus_restock-wheel-4_tags // )car drive ground roll rover wheel fold LRV restock + + /// Flag to disable this part if MH is installed + MHReplacement = True + + MODULE + { + name = ModuleWheelBase + + wheelColliderTransformName = WheelCollider + wheelTransformName = WheelPivot + + wheelType = MOTORIZED + + // setting this to true will override the radius and center parameters + FitWheelColliderToMesh = False + radius = 0.23 + center = 0,0,0 + mass = 0.040 + groundHeightOffset = 0 + + TooltipTitle = #autoLOC_502081 //#autoLOC_502081 = Rover Wheel + TooltipPrimaryField = #autoLOC_6004045 //#autoLOC_6004045 = Motorized + } + + MODULE + { + name = ModuleWheelSuspension + baseModuleIndex = 0 + suspensionTransformName = SuspensionPivot + suspensionDistance = 0.1 + targetPosition = 0.0 + springRatio = 12 + damperRatio = 1.0 + maximumLoad = 5.0 + } + + MODULE + { + name = ModuleWheelSteering + baseModuleIndex = 0 + + caliperTransformName = SteeringPivot + + steeringResponse = 2 + steeringCurve + { + key = 0 20 + key = 10 9 + key = 30 3.0 + } + } + MODULE + { + name = ModuleWheelMotor + baseModuleIndex = 0 + + maxRpm = 42 + driveResponse = 2 + + torqueCurve + { + key = 0 0.5 0 0 + key = 2 0.3 0 + key = 10 0.1 0 0 + key = 25 0 0 0 + } + + RESOURCE + { + name = ElectricCharge + rate = 1.0 + } + idleDrain = 0.0 + } + + MODULE + { + name = ModuleWheelBrakes + baseModuleIndex = 0 + + maxBrakeTorque = 0.5 + brakeResponse = 1 + } + + MODULE + { + name = ModuleWheelDamage + baseModuleIndex = 0 + + damagedTransformName = WheelBusted + undamagedTransformName = Wheel + + stressTolerance = 250 + impactTolerance = 100 + deflectionMagnitude = 1.0 + deflectionSharpness = 2.0 + slipMagnitude = 15 + slipSharpness = 2.0 + } + + MODULE + { + name = ModuleWheelDeployment + baseModuleIndex = 0 + + animationTrfName = restock-wheel-4 + animationStateName = restock-wheel-4-deploy + deployedPosition = 0 + deployTargetTransformName = deployTgt + + TsubSys = 1.0 + useStandInCollider = False + slaveModules = 8 + + fxDeploy = deploy + fxRetract = retract + fxDeployed = deployed + fxRetracted = retracted + } + + + MODULE + { + name = ModulePartVariants + baseVariant = Orange + VARIANT + { + name = Orange + displayName = #autoLOC_8007100 // Orange + themeName = Orange + primaryColor = #74402B + secondaryColor = #707070 + GAMEOBJECTS + { + Fender_orange = true + Fender_grey = false + Fender_cernan = false + } + } + + VARIANT + { + name = Grey + displayName = #autoLOC_8007119 // White + themeName = White + primaryColor = #ffffff + secondaryColor = #707070 + GAMEOBJECTS + { + Fender_orange = false + Fender_grey = true + Fender_cernan = false + } + } + + VARIANT + { + name = Cernan + displayName = #LOC_Restock_variant-wheel_broken // Broken + themeName = Orange + primaryColor = #74402B + secondaryColor = #A0A0A0 + GAMEOBJECTS + { + Fender_orange = false + Fender_grey = false + Fender_cernan = true + } + } + + VARIANT + { + name = Bare + displayName = #LOC_Restock_variant-wheel_bare //Bare + themeName = White + primaryColor = #707070 + secondaryColor = #707070 + GAMEOBJECTS + { + Fender_orange = false + Fender_grey = false + Fender_cernan = false + } + } + } + + MODULE + { + name = ModuleTestSubject + environments = 15 + useStaging = False + useEvent = True + } + + + MODULE + { + name = ModuleRestockConstraints + + LOOKATCONSTRAINT + { + rotatorsName = Link1 + targetName = Link1Target + } + + LOOKATCONSTRAINT + { + rotatorsName = Link2 + targetName = Link2Target + } + + LOOKATCONSTRAINT + { + rotatorsName = SuspensionPiston + targetName = SuspensionPistonTarget + } + + LOOKATCONSTRAINT + { + rotatorsName = SuspensionCylinder + targetName = SuspensionCylinderTarget + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = LowerBracket + targetName = UpperBracket + } + + COPYROTATIONCONSTRAINT + { + rotatorsName = SteeringPivotFollower + targetName = SteeringPivot + } + + COPYPOSITIONCONSTRAINT + { + moversName = WheelMesh + targetName = WheelPivotFollower + } + + COPYPOSITIONCONSTRAINT + { + moversName = WheelMeshBusted + targetName = WheelPivotFollower + } + } +} \ No newline at end of file diff --git a/Distribution/RestockPlus/changelog.txt b/Distribution/RestockPlus/changelog.txt index 36b61e45..dc06cb3e 100644 --- a/Distribution/RestockPlus/changelog.txt +++ b/Distribution/RestockPlus/changelog.txt @@ -1,3 +1,9 @@ +v1.1.0 +----- +- New Wheel parts + - Rovemax Model S2-T (Andrew Cassidy): 90° rotated rover wheel for building tricycles + - Rovemax Model M0 (Andrew Cassidy): folding rover wheel. Disabled if Making History is installed + v1.0.3 ----- - Updated ModuleManager distribution to 4.1.3 diff --git a/Source/Restock/Constraints/CopyPositionConstraint.cs b/Source/Restock/Constraints/CopyPositionConstraint.cs new file mode 100644 index 00000000..dceb4734 --- /dev/null +++ b/Source/Restock/Constraints/CopyPositionConstraint.cs @@ -0,0 +1,40 @@ +using UnityEngine; + +namespace Restock.Constraints +{ + [System.Serializable] + public class CopyPositionConstraint : IConstraint + { + private readonly string moversName; + private readonly string targetName; + + private readonly bool local = false; + + // Cached components + private readonly Transform mover; + private readonly Transform target; + + public CopyPositionConstraint(ConfigNode node, Part p) + { + node.TryGetValue("rotatorsName", ref moversName); + node.TryGetValue("targetName", ref targetName); + + mover = p.FindModelTransform(moversName); + target = p.FindModelTransform(targetName); + } + + public void Update() + { + if (mover == null || target == null) return; + + if (local) + { + mover.localPosition = target.localPosition; + } + else + { + mover.position = target.position; + } + } + } +} \ No newline at end of file diff --git a/Source/Restock/Constraints/CopyRotationConstraint.cs b/Source/Restock/Constraints/CopyRotationConstraint.cs new file mode 100644 index 00000000..99b71b6f --- /dev/null +++ b/Source/Restock/Constraints/CopyRotationConstraint.cs @@ -0,0 +1,40 @@ +using UnityEngine; + +namespace Restock.Constraints +{ + [System.Serializable] + public class CopyRotationConstraint : IConstraint + { + private readonly string rotatorsName; + private readonly string targetName; + + private readonly bool local = false; + + // Cached components + private readonly Transform target; + private readonly Transform rotator; + + public CopyRotationConstraint(ConfigNode node, Part p) + { + node.TryGetValue("rotatorsName", ref rotatorsName); + node.TryGetValue("targetName", ref targetName); + + rotator = p.FindModelTransform(rotatorsName); + target = p.FindModelTransform(targetName); + } + + public void Update() + { + if (rotator == null || target == null) return; + + if (local) + { + rotator.localRotation = target.localRotation; + } + else + { + rotator.rotation = target.rotation; + } + } + } +} \ No newline at end of file diff --git a/Source/Restock/Constraints/IConstraint.cs b/Source/Restock/Constraints/IConstraint.cs new file mode 100644 index 00000000..76b8ffa6 --- /dev/null +++ b/Source/Restock/Constraints/IConstraint.cs @@ -0,0 +1,10 @@ +using System; +using UnityEngine; + +namespace Restock.Constraints +{ + public interface IConstraint + { + void Update(); + } +} \ No newline at end of file diff --git a/Source/Restock/Constraints/LookAtConstraint.cs b/Source/Restock/Constraints/LookAtConstraint.cs new file mode 100644 index 00000000..ef31cc9f --- /dev/null +++ b/Source/Restock/Constraints/LookAtConstraint.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +namespace Restock.Constraints +{ + [System.Serializable] + public class LookAtConstraint : IConstraint + { + private readonly string rotatorsName; + private readonly string targetName; + + // Cached components + private readonly Transform target; + private readonly Transform rotator; + + public LookAtConstraint(ConfigNode node, Part p) + { + node.TryGetValue("rotatorsName", ref rotatorsName); + node.TryGetValue("targetName", ref targetName); + + rotator = p.FindModelTransform(rotatorsName); + target = p.FindModelTransform(targetName); + } + + public void Update() + { + if (rotator == null || target == null) return; + + var lookPos = target.position - rotator.position; + var rotation = Quaternion.LookRotation(lookPos, target.up); + rotator.rotation = rotation; + } + } +} \ No newline at end of file diff --git a/Source/Restock/ModuleRestockConstraints.cs b/Source/Restock/ModuleRestockConstraints.cs new file mode 100644 index 00000000..3ea46a90 --- /dev/null +++ b/Source/Restock/ModuleRestockConstraints.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Linq; +using Restock.Constraints; + +namespace Restock +{ + public class ModuleRestockConstraints : PartModule + { + public List constraints; + + public override void OnLoad(ConfigNode node) + { + base.OnLoad(node); + + constraints = new List(); + var cnodes = node.GetNodes(); + this.Log($"Loading {cnodes.Length} constraints"); + + foreach (var cnode in cnodes) + { + switch (cnode.name) + { + //LookAtConstraint + case "CONSTRAINLOOKFX": + case "LOOKATCONSTRAINT": + constraints.Add(new LookAtConstraint(cnode, this.part)); + break; + + //CopyPositionConstraint + case "COPYPOSITIONCONSTRAINT": + constraints.Add(new CopyPositionConstraint(cnode, this.part)); + break; + + //CopyRotationConstraint + case "COPYROTATIONCONSTRAINT": + constraints.Add(new CopyRotationConstraint(cnode, this.part)); + break; + + //Unknown + default: + this.LogError($"Unknown constraint type \"{cnode.name}\""); + break; + } + } + + this.Log($"Loaded {constraints.Count} constraints"); + } + + public override void OnStart(StartState state) + { + if (HighLogic.LoadedSceneIsFlight || HighLogic.LoadedSceneIsEditor) + { + if (constraints == null || constraints.Count == 0) + { + ConfigNode cfg; + foreach (UrlDir.UrlConfig pNode in GameDatabase.Instance.GetConfigs("PART")) + { + if (pNode.name.Replace("_", ".") == part.partInfo.name) + { + cfg = pNode.config; + ConfigNode node = cfg.GetNodes("MODULE").Single(n => n.GetValue("name") == moduleName); + OnLoad(node); + } + } + } + } + } + + void LateUpdate() + { + if (constraints == null) return; + + foreach (var constraint in constraints) + { + constraint.Update(); + } + } + } +} \ No newline at end of file diff --git a/Source/Restock/Restock.csproj b/Source/Restock/Restock.csproj index da8753e9..8c469675 100644 --- a/Source/Restock/Restock.csproj +++ b/Source/Restock/Restock.csproj @@ -44,6 +44,10 @@ + + + + @@ -55,6 +59,7 @@ +