diff --git a/Templates/BaseGame/game/data/Prototyping/scripts/managedData/managedDatablocks.tscript b/Templates/BaseGame/game/data/Prototyping/scripts/managedData/managedDatablocks.tscript index 60dbe9c8a..e73435b9b 100644 --- a/Templates/BaseGame/game/data/Prototyping/scripts/managedData/managedDatablocks.tscript +++ b/Templates/BaseGame/game/data/Prototyping/scripts/managedData/managedDatablocks.tscript @@ -4,3 +4,58 @@ datablock ItemData(PrototypeItemData) ShapeAsset = "Prototyping:TorusPrimitive_shape"; cameraMaxDist = "0.75"; }; + +datablock PlayerData( ProtoPlayer ) { + // Third person shape + ShapeAsset = "Prototyping:Playerbot_shape"; + controlMap = "playerKeyMap"; + AIControllerData = "aiPlayerControl"; +}; + +datablock WheeledVehicleTire(ProtoCarTire) +{ + // Tires act as springs and generate lateral and longitudinal + // forces to move the vehicle. These distortion/spring forces + // are what convert wheel angular velocity into forces that + // act on the rigid body. + shapeAsset = "Prototyping:carwheel_shape"; + + staticFriction = 1; + kineticFriction = 4.2; + + // Spring that generates lateral tire forces + lateralForce = 150000; + lateralDamping = 30000; + lateralRelaxation = 0.1; + + // Spring that generates longitudinal tire forces + longitudinalForce = 600; + longitudinalDamping = 1600; + longitudinalRelaxation = 0.1; +}; + +datablock WheeledVehicleSpring(ProtoCarSpring) +{ + // Wheel suspension properties + length = "0.6"; // Suspension travel + force = 3600; // Spring force + damping = 2800; // Spring damping + antiSwayForce = 300; // Lateral anti-sway force +}; + +datablock WheeledVehicleData(ProtoCar) +{ + category = "Vehicles"; + shapeAsset = "Prototyping:car_shape"; + + collisionMul = 0; + impactMul = 0; + controlMap = "vehicleKeyMap"; + AIControllerData = "aiCarControl"; + cameraMaxDist = "2.81993"; + ShapeFile = "data/Prototyping/shapes/Vehicles/car.dae"; + mass = "1000"; + originalAssetName = "ProtoCar"; + massCenter = "0 0.75 0"; + dragForce = "0.1"; +}; diff --git a/Templates/BaseGame/game/data/Prototyping/scripts/server/protoCar.tscript b/Templates/BaseGame/game/data/Prototyping/scripts/server/protoCar.tscript new file mode 100644 index 000000000..23d59229e --- /dev/null +++ b/Templates/BaseGame/game/data/Prototyping/scripts/server/protoCar.tscript @@ -0,0 +1,47 @@ +//----------------------------------------------------------------------------- +// Copyright (c) 2012 GarageGames, LLC +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +//----------------------------------------------------------------------------- + +// This file contains script methods unique to the WheeledVehicle class. All +// other necessary methods are contained in "../server/scripts/vehicle.cs" in +// which the "generic" Vehicle class methods that are shared by all vehicles, +// (flying, hover, and wheeled) can be found. + +function ProtoCar::onAdd(%this, %obj) +{ + Parent::onAdd(%this, %obj); + + // Setup the car with some tires & springs + for (%i = %obj.getWheelCount() - 1; %i >= 0; %i--) + { + %obj.setWheelTire(%i, ProtoCarTire); + %obj.setWheelSpring(%i, ProtoCarSpring); + %obj.setWheelPowered(%i, false); + } + + // Steer with the front tires + %obj.setWheelSteering(0, 1); + %obj.setWheelSteering(1, 1); + + // Only power the two rear wheels... assuming there are only 4 wheels. + %obj.setWheelPowered(2, true); + %obj.setWheelPowered(3, true); +} \ No newline at end of file