Change vehicle drive mode to vehiclde drive control

This commit is contained in:
Mr. Capybara
2024-01-07 10:35:00 -04:00
parent 14a4c92aa8
commit eca17c7799
3 changed files with 6 additions and 24 deletions

View File

@@ -33,16 +33,6 @@ void WheeledVehicle::SetDriveType(DriveTypes value)
Setup();
}
void WheeledVehicle::SetDriveMode(DriveModes value)
{
_driveMode = value;
}
WheeledVehicle::DriveModes WheeledVehicle::GetDriveMode() const
{
return _driveMode;
}
const Array<WheeledVehicle::Wheel> &WheeledVehicle::GetWheels() const
{
return _wheels;
@@ -441,7 +431,6 @@ void WheeledVehicle::Serialize(SerializeStream &stream, const void *otherObj)
SERIALIZE_GET_OTHER_OBJ(WheeledVehicle);
SERIALIZE_MEMBER(DriveType, _driveType);
SERIALIZE_MEMBER(DriveModes, _driveMode);
SERIALIZE_MEMBER(Wheels, _wheels);
SERIALIZE_MEMBER(DriveControl, _driveControl);
SERIALIZE(UseReverseAsBrake);
@@ -457,7 +446,6 @@ void WheeledVehicle::Deserialize(DeserializeStream &stream, ISerializeModifier *
RigidBody::Deserialize(stream, modifier);
DESERIALIZE_MEMBER(DriveType, _driveType);
DESERIALIZE_MEMBER(DriveModes, _driveMode);
DESERIALIZE_MEMBER(Wheels, _wheels);
DESERIALIZE_MEMBER(DriveControl, _driveControl);
DESERIALIZE(UseReverseAsBrake);

View File

@@ -130,6 +130,11 @@ API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Wheeled Vehicle\"), ActorTo
DECLARE_SCRIPTING_TYPE_MINIMAL(DriveControlSettings);
API_AUTO_SERIALIZATION();
/// <summary>
/// Gets or sets the drive mode, used by vehicles specify the way of the tracks control.
/// </summary>
API_FIELD(Attributes="EditorOrder(0), EditorDisplay(\"Tanks\")") WheeledVehicle::DriveModes DriveMode;
/// <summary>
/// Acceleration input sensitive.
/// </summary>
@@ -441,7 +446,6 @@ private:
void* _vehicle = nullptr;
DriveTypes _driveType = DriveTypes::Drive4W, _driveTypeCurrent;
DriveModes _driveMode = DriveModes::Standard;
Array<WheelData, FixedAllocation<20>> _wheelsData;
float _throttle = 0.0f, _steering = 0.0f, _brake = 0.0f, _handBrake = 0.0f, _tankLeftThrottle, _tankRightThrottle, _tankLeftBrake, _tankRightBrake;
Array<WheeledVehicle::Wheel> _wheels;
@@ -476,16 +480,6 @@ public:
/// </summary>
API_PROPERTY() void SetDriveType(DriveTypes value);
/// <summary>
/// Used only for tanks, set the drive mode.
/// </summary>
API_PROPERTY() void SetDriveMode(DriveModes value);
/// <summary>
/// Gets the vehicle driving mode. Used only on tanks
/// </summary>
API_PROPERTY(Attributes="EditorOrder(3), EditorDisplay(\"Vehicle\")") DriveModes GetDriveMode() const;
/// <summary>
/// Gets the vehicle wheels settings.
/// </summary>

View File

@@ -1397,7 +1397,7 @@ void PhysicsBackend::EndSimulateScene(void* scene)
float leftBrake = Math::Max(wheelVehicle->_tankLeftBrake, wheelVehicle->_handBrake);
float rightBrake = Math::Max(wheelVehicle->_tankRightBrake, wheelVehicle->_handBrake);
WheeledVehicle::DriveModes vehicleDriveMode = wheelVehicle->_driveMode;
WheeledVehicle::DriveModes vehicleDriveMode = wheelVehicle->_driveControl.DriveMode;
if (isTank)
{