diff options
author | Charles Krinke | 2008-09-28 22:38:59 +0000 |
---|---|---|
committer | Charles Krinke | 2008-09-28 22:38:59 +0000 |
commit | 6758ecc40375fb046f142f5f45a19513a89b1f86 (patch) | |
tree | ad96c1b2674d2124952ca63e4ec60a2703ed7945 | |
parent | Mantis#2291. Thank you kindly, StrawberryFride for a patch that solves: (diff) | |
download | opensim-SC-6758ecc40375fb046f142f5f45a19513a89b1f86.zip opensim-SC-6758ecc40375fb046f142f5f45a19513a89b1f86.tar.gz opensim-SC-6758ecc40375fb046f142f5f45a19513a89b1f86.tar.bz2 opensim-SC-6758ecc40375fb046f142f5f45a19513a89b1f86.tar.xz |
Implement the plumbing for llSetVehicleType from the LSL
subroutine down through the physics modules through PhysActor
and SceneObjectPart. No connection to the physics simulators.
10 files changed, 70 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 68df0e4..17d678d 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -2337,6 +2337,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
2337 | } | 2337 | } |
2338 | } | 2338 | } |
2339 | 2339 | ||
2340 | public void SetVehicleType(int type) | ||
2341 | { | ||
2342 | if (PhysActor != null) | ||
2343 | { | ||
2344 | PhysActor.VehicleType = type; | ||
2345 | } | ||
2346 | } | ||
2347 | |||
2340 | public void SetVehicleFloatParam(int param, float value) | 2348 | public void SetVehicleFloatParam(int param, float value) |
2341 | { | 2349 | { |
2342 | if (PhysActor != null) | 2350 | if (PhysActor != null) |
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 96543da..702f5f1 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -335,6 +335,12 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
335 | set { return; } | 335 | set { return; } |
336 | } | 336 | } |
337 | 337 | ||
338 | public override int VehicleType | ||
339 | { | ||
340 | get { return 0; } | ||
341 | set { return; } | ||
342 | } | ||
343 | |||
338 | public override void VehicleFloatParam(int param, float value) | 344 | public override void VehicleFloatParam(int param, float value) |
339 | { | 345 | { |
340 | 346 | ||
diff --git a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs index e62f966..9e7b459 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs +++ b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs | |||
@@ -950,6 +950,12 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
950 | set { return; } | 950 | set { return; } |
951 | } | 951 | } |
952 | 952 | ||
953 | public override int VehicleType | ||
954 | { | ||
955 | get { return 0; } | ||
956 | set { return; } | ||
957 | } | ||
958 | |||
953 | public override void VehicleFloatParam(int param, float value) | 959 | public override void VehicleFloatParam(int param, float value) |
954 | { | 960 | { |
955 | 961 | ||
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 44d4df7..5b51203 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -175,6 +175,7 @@ namespace OpenSim.Region.Physics.Manager | |||
175 | public abstract float Mass { get; } | 175 | public abstract float Mass { get; } |
176 | public abstract PhysicsVector Force { get; set; } | 176 | public abstract PhysicsVector Force { get; set; } |
177 | 177 | ||
178 | public abstract int VehicleType { get; set; } | ||
178 | public abstract void VehicleFloatParam(int param, float value); | 179 | public abstract void VehicleFloatParam(int param, float value); |
179 | public abstract void VehicleVectorParam(int param, PhysicsVector value); | 180 | public abstract void VehicleVectorParam(int param, PhysicsVector value); |
180 | public abstract void VehicleRotationParam(int param, Quaternion rotation); | 181 | public abstract void VehicleRotationParam(int param, Quaternion rotation); |
@@ -281,6 +282,12 @@ namespace OpenSim.Region.Physics.Manager | |||
281 | set { return; } | 282 | set { return; } |
282 | } | 283 | } |
283 | 284 | ||
285 | public override int VehicleType | ||
286 | { | ||
287 | get { return 0; } | ||
288 | set { return; } | ||
289 | } | ||
290 | |||
284 | public override void VehicleFloatParam(int param, float value) | 291 | public override void VehicleFloatParam(int param, float value) |
285 | { | 292 | { |
286 | 293 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 6af0781..2561fa5 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -537,6 +537,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
537 | set { return; } | 537 | set { return; } |
538 | } | 538 | } |
539 | 539 | ||
540 | public override int VehicleType | ||
541 | { | ||
542 | get { return 0; } | ||
543 | set { return; } | ||
544 | } | ||
545 | |||
540 | public override void VehicleFloatParam(int param, float value) | 546 | public override void VehicleFloatParam(int param, float value) |
541 | { | 547 | { |
542 | 548 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 9db7e8b..5d9b169 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -1876,6 +1876,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1876 | set { m_force = value; } | 1876 | set { m_force = value; } |
1877 | } | 1877 | } |
1878 | 1878 | ||
1879 | public override int VehicleType | ||
1880 | { | ||
1881 | get { return 0; } | ||
1882 | set { return; } | ||
1883 | } | ||
1884 | |||
1879 | public override void VehicleFloatParam(int param, float value) | 1885 | public override void VehicleFloatParam(int param, float value) |
1880 | { | 1886 | { |
1881 | 1887 | ||
diff --git a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs index 9719a05..a9ddf27 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs | |||
@@ -159,6 +159,12 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
159 | set { return; } | 159 | set { return; } |
160 | } | 160 | } |
161 | 161 | ||
162 | public override int VehicleType | ||
163 | { | ||
164 | get { return 0; } | ||
165 | set { return; } | ||
166 | } | ||
167 | |||
162 | public override void VehicleFloatParam(int param, float value) | 168 | public override void VehicleFloatParam(int param, float value) |
163 | { | 169 | { |
164 | 170 | ||
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs index 265e170..873529e 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs | |||
@@ -121,6 +121,12 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
121 | set { return; } | 121 | set { return; } |
122 | } | 122 | } |
123 | 123 | ||
124 | public override int VehicleType | ||
125 | { | ||
126 | get { return 0; } | ||
127 | set { return; } | ||
128 | } | ||
129 | |||
124 | public override void VehicleFloatParam(int param, float value) | 130 | public override void VehicleFloatParam(int param, float value) |
125 | { | 131 | { |
126 | 132 | ||
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs index c9d2c13..2d35ff0 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | |||
@@ -343,6 +343,12 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
343 | set { return; } | 343 | set { return; } |
344 | } | 344 | } |
345 | 345 | ||
346 | public override int VehicleType | ||
347 | { | ||
348 | get { return 0; } | ||
349 | set { return; } | ||
350 | } | ||
351 | |||
346 | public override void VehicleFloatParam(int param, float value) | 352 | public override void VehicleFloatParam(int param, float value) |
347 | { | 353 | { |
348 | 354 | ||
@@ -688,6 +694,12 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
688 | set { return; } | 694 | set { return; } |
689 | } | 695 | } |
690 | 696 | ||
697 | public override int VehicleType | ||
698 | { | ||
699 | get { return 0; } | ||
700 | set { return; } | ||
701 | } | ||
702 | |||
691 | public override void VehicleFloatParam(int param, float value) | 703 | public override void VehicleFloatParam(int param, float value) |
692 | { | 704 | { |
693 | 705 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index e560d52..540ff98 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -5159,7 +5159,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5159 | public void llSetVehicleType(int type) | 5159 | public void llSetVehicleType(int type) |
5160 | { | 5160 | { |
5161 | m_host.AddScriptLPS(1); | 5161 | m_host.AddScriptLPS(1); |
5162 | NotImplemented("llSetVehicleType"); | 5162 | if (m_host.ParentGroup != null) |
5163 | { | ||
5164 | if (m_host.ParentGroup.RootPart != null) | ||
5165 | { | ||
5166 | m_host.ParentGroup.RootPart.SetVehicleType(type); | ||
5167 | } | ||
5168 | } | ||
5163 | } | 5169 | } |
5164 | 5170 | ||
5165 | //CFK 9/28: Most, but not all of the underlying plumbing between here and the physics modules is in | 5171 | //CFK 9/28: Most, but not all of the underlying plumbing between here and the physics modules is in |