diff options
author | Kitto Flora | 2010-01-21 19:31:02 -0500 |
---|---|---|
committer | Kitto Flora | 2010-01-21 19:31:02 -0500 |
commit | 1abb70cc73c997c08a416fecf689b83453f853d0 (patch) | |
tree | 1b8afb44aa5c280f28b0fc9b00486cd43b7dd1a2 /OpenSim/Region | |
parent | ChODE Object Linear Motion update (diff) | |
download | opensim-SC-1abb70cc73c997c08a416fecf689b83453f853d0.zip opensim-SC-1abb70cc73c997c08a416fecf689b83453f853d0.tar.gz opensim-SC-1abb70cc73c997c08a416fecf689b83453f853d0.tar.bz2 opensim-SC-1abb70cc73c997c08a416fecf689b83453f853d0.tar.xz |
Add glue for llSetVehicleFlags(), llRemoveVehicleFlags(). ChODE: Add associated methods.
Diffstat (limited to 'OpenSim/Region')
15 files changed, 174 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 4c97467..04be9fc 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2963,7 +2963,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
2963 | PhysActor.VehicleRotationParam(param, rotation); | 2963 | PhysActor.VehicleRotationParam(param, rotation); |
2964 | } | 2964 | } |
2965 | } | 2965 | } |
2966 | 2966 | ||
2967 | public void SetVehicleFlags(int flags) | ||
2968 | { | ||
2969 | if (PhysActor != null) | ||
2970 | { | ||
2971 | PhysActor.VehicleFlagsSet(flags); | ||
2972 | } | ||
2973 | } | ||
2974 | |||
2975 | public void RemoveVehicleFlags(int flags) | ||
2976 | { | ||
2977 | if (PhysActor != null) | ||
2978 | { | ||
2979 | PhysActor.VehicleFlagsRemove(flags); | ||
2980 | } | ||
2981 | } | ||
2982 | |||
2967 | public void SetGroup(UUID groupID, IClientAPI client) | 2983 | public void SetGroup(UUID groupID, IClientAPI client) |
2968 | { | 2984 | { |
2969 | _groupID = groupID; | 2985 | _groupID = groupID; |
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs index 31366db..25b9099 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsActor.cs | |||
@@ -184,7 +184,17 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
184 | { | 184 | { |
185 | 185 | ||
186 | } | 186 | } |
187 | |||
188 | public override void VehicleFlagsSet(int flags) | ||
189 | { | ||
190 | |||
191 | } | ||
192 | |||
193 | public override void VehicleFlagsRemove(int flags) | ||
194 | { | ||
187 | 195 | ||
196 | } | ||
197 | |||
188 | public override void SetVolumeDetect(int param) | 198 | public override void SetVolumeDetect(int param) |
189 | { | 199 | { |
190 | 200 | ||
diff --git a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETCharacter.cs b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETCharacter.cs index a3344dd..120d040 100644 --- a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETCharacter.cs +++ b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETCharacter.cs | |||
@@ -361,7 +361,17 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin | |||
361 | { | 361 | { |
362 | 362 | ||
363 | } | 363 | } |
364 | |||
365 | public override void VehicleFlagsSet(int flags) | ||
366 | { | ||
367 | |||
368 | } | ||
369 | |||
370 | public override void VehicleFlagsRemove(int flags) | ||
371 | { | ||
364 | 372 | ||
373 | } | ||
374 | |||
365 | public override void SetVolumeDetect(int param) | 375 | public override void SetVolumeDetect(int param) |
366 | { | 376 | { |
367 | 377 | ||
diff --git a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs index 9603ea4..f430def 100644 --- a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs +++ b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETPrim.cs | |||
@@ -396,7 +396,17 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin | |||
396 | { | 396 | { |
397 | //TODO: | 397 | //TODO: |
398 | } | 398 | } |
399 | |||
400 | public override void VehicleFlagsSet(int flags) | ||
401 | { | ||
402 | |||
403 | } | ||
404 | |||
405 | public override void VehicleFlagsRemove(int flags) | ||
406 | { | ||
399 | 407 | ||
408 | } | ||
409 | |||
400 | public override void SetVolumeDetect(int param) | 410 | public override void SetVolumeDetect(int param) |
401 | { | 411 | { |
402 | //TODO: GhostObject | 412 | //TODO: GhostObject |
diff --git a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs index d5d146e..9113ebe 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs +++ b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs | |||
@@ -984,7 +984,17 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
984 | { | 984 | { |
985 | 985 | ||
986 | } | 986 | } |
987 | |||
988 | public override void VehicleFlagsSet(int flags) | ||
989 | { | ||
990 | |||
991 | } | ||
992 | |||
993 | public override void VehicleFlagsRemove(int flags) | ||
994 | { | ||
987 | 995 | ||
996 | } | ||
997 | |||
988 | public override void SetVolumeDetect(int param) | 998 | public override void SetVolumeDetect(int param) |
989 | { | 999 | { |
990 | 1000 | ||
diff --git a/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs index aa0acb7..2eb519f 100644 --- a/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/ChOdePlugin/ODECharacter.cs | |||
@@ -733,7 +733,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
733 | { | 733 | { |
734 | 734 | ||
735 | } | 735 | } |
736 | |||
737 | public override void VehicleFlagsSet(int flags) | ||
738 | { | ||
736 | 739 | ||
740 | } | ||
741 | |||
742 | public override void VehicleFlagsRemove(int flags) | ||
743 | { | ||
744 | |||
745 | } | ||
746 | |||
737 | public override void SetVolumeDetect(int param) | 747 | public override void SetVolumeDetect(int param) |
738 | { | 748 | { |
739 | 749 | ||
diff --git a/OpenSim/Region/Physics/ChOdePlugin/ODEDynamics.cs b/OpenSim/Region/Physics/ChOdePlugin/ODEDynamics.cs index 9e145ec..14d5caa 100644 --- a/OpenSim/Region/Physics/ChOdePlugin/ODEDynamics.cs +++ b/OpenSim/Region/Physics/ChOdePlugin/ODEDynamics.cs | |||
@@ -286,7 +286,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
286 | } | 286 | } |
287 | 287 | ||
288 | }//end ProcessRotationVehicleParam | 288 | }//end ProcessRotationVehicleParam |
289 | |||
290 | internal void ProcessFlagsVehicleSet(int flags) | ||
291 | { | ||
292 | m_flags |= (VehicleFlag)flags; | ||
293 | } | ||
289 | 294 | ||
295 | internal void ProcessFlagsVehicleRemove(int flags) | ||
296 | { | ||
297 | m_flags &= ~((VehicleFlag)flags); | ||
298 | } | ||
299 | |||
290 | internal void ProcessTypeChange(Vehicle pType) | 300 | internal void ProcessTypeChange(Vehicle pType) |
291 | { | 301 | { |
292 | // Set Defaults For Type | 302 | // Set Defaults For Type |
diff --git a/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs index 6e6b44f..29a3dd9 100644 --- a/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/ChOdePlugin/ODEPrim.cs | |||
@@ -2415,7 +2415,17 @@ Console.WriteLine(" JointCreateFixed"); | |||
2415 | { | 2415 | { |
2416 | m_vehicle.ProcessRotationVehicleParam((Vehicle) param, rotation); | 2416 | m_vehicle.ProcessRotationVehicleParam((Vehicle) param, rotation); |
2417 | } | 2417 | } |
2418 | 2418 | ||
2419 | public override void VehicleFlagsSet(int flags) | ||
2420 | { | ||
2421 | m_vehicle.ProcessFlagsVehicleSet(flags); | ||
2422 | } | ||
2423 | |||
2424 | public override void VehicleFlagsRemove(int flags) | ||
2425 | { | ||
2426 | m_vehicle.ProcessFlagsVehicleRemove(flags); | ||
2427 | } | ||
2428 | |||
2419 | public override void SetVolumeDetect(int param) | 2429 | public override void SetVolumeDetect(int param) |
2420 | { | 2430 | { |
2421 | lock (_parent_scene.OdeLock) | 2431 | lock (_parent_scene.OdeLock) |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 9c192ed..f43de48 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -208,6 +208,8 @@ namespace OpenSim.Region.Physics.Manager | |||
208 | public abstract void VehicleFloatParam(int param, float value); | 208 | public abstract void VehicleFloatParam(int param, float value); |
209 | public abstract void VehicleVectorParam(int param, Vector3 value); | 209 | public abstract void VehicleVectorParam(int param, Vector3 value); |
210 | public abstract void VehicleRotationParam(int param, Quaternion rotation); | 210 | public abstract void VehicleRotationParam(int param, Quaternion rotation); |
211 | public abstract void VehicleFlagsSet(int flags); | ||
212 | public abstract void VehicleFlagsRemove(int flags); | ||
211 | 213 | ||
212 | public abstract void SetVolumeDetect(int param); // Allows the detection of collisions with inherently non-physical prims. see llVolumeDetect for more | 214 | public abstract void SetVolumeDetect(int param); // Allows the detection of collisions with inherently non-physical prims. see llVolumeDetect for more |
213 | 215 | ||
@@ -351,7 +353,17 @@ namespace OpenSim.Region.Physics.Manager | |||
351 | { | 353 | { |
352 | 354 | ||
353 | } | 355 | } |
356 | |||
357 | public override void VehicleFlagsSet(int flags) | ||
358 | { | ||
359 | |||
360 | } | ||
361 | |||
362 | public override void VehicleFlagsRemove(int flags) | ||
363 | { | ||
354 | 364 | ||
365 | } | ||
366 | |||
355 | public override void SetVolumeDetect(int param) | 367 | public override void SetVolumeDetect(int param) |
356 | { | 368 | { |
357 | 369 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index a38fccc..b713142 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -733,7 +733,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
733 | { | 733 | { |
734 | 734 | ||
735 | } | 735 | } |
736 | |||
737 | public override void VehicleFlagsSet(int flags) | ||
738 | { | ||
739 | |||
740 | } | ||
741 | |||
742 | public override void VehicleFlagsRemove(int flags) | ||
743 | { | ||
736 | 744 | ||
745 | } | ||
746 | |||
737 | public override void SetVolumeDetect(int param) | 747 | public override void SetVolumeDetect(int param) |
738 | { | 748 | { |
739 | 749 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 567fd0e..010d97f 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -2352,6 +2352,16 @@ Console.WriteLine(" JointCreateFixed"); | |||
2352 | { | 2352 | { |
2353 | m_vehicle.ProcessRotationVehicleParam((Vehicle) param, rotation); | 2353 | m_vehicle.ProcessRotationVehicleParam((Vehicle) param, rotation); |
2354 | } | 2354 | } |
2355 | |||
2356 | public override void VehicleFlagsSet(int flags) | ||
2357 | { | ||
2358 | |||
2359 | } | ||
2360 | |||
2361 | public override void VehicleFlagsRemove(int flags) | ||
2362 | { | ||
2363 | |||
2364 | } | ||
2355 | 2365 | ||
2356 | public override void SetVolumeDetect(int param) | 2366 | public override void SetVolumeDetect(int param) |
2357 | { | 2367 | { |
diff --git a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs index 566b4e7..491e200 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSCharacter.cs | |||
@@ -181,7 +181,17 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
181 | { | 181 | { |
182 | 182 | ||
183 | } | 183 | } |
184 | |||
185 | public override void VehicleFlagsSet(int flags) | ||
186 | { | ||
187 | |||
188 | } | ||
189 | |||
190 | public override void VehicleFlagsRemove(int flags) | ||
191 | { | ||
184 | 192 | ||
193 | } | ||
194 | |||
185 | public override void SetVolumeDetect(int param) | 195 | public override void SetVolumeDetect(int param) |
186 | { | 196 | { |
187 | 197 | ||
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs index edccf47..f8d49f9 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPrim.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPrim.cs | |||
@@ -138,7 +138,17 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
138 | { | 138 | { |
139 | 139 | ||
140 | } | 140 | } |
141 | |||
142 | public override void VehicleFlagsSet(int flags) | ||
143 | { | ||
141 | 144 | ||
145 | } | ||
146 | |||
147 | public override void VehicleFlagsRemove(int flags) | ||
148 | { | ||
149 | |||
150 | } | ||
151 | |||
142 | public override void SetVolumeDetect(int param) | 152 | public override void SetVolumeDetect(int param) |
143 | { | 153 | { |
144 | 154 | ||
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs index 24eb6b1..e54065c 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | |||
@@ -370,7 +370,17 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
370 | { | 370 | { |
371 | 371 | ||
372 | } | 372 | } |
373 | |||
374 | public override void VehicleFlagsSet(int flags) | ||
375 | { | ||
376 | |||
377 | } | ||
378 | |||
379 | public override void VehicleFlagsRemove(int flags) | ||
380 | { | ||
373 | 381 | ||
382 | } | ||
383 | |||
374 | public override void SetVolumeDetect(int param) | 384 | public override void SetVolumeDetect(int param) |
375 | { | 385 | { |
376 | 386 | ||
@@ -774,7 +784,17 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
774 | { | 784 | { |
775 | 785 | ||
776 | } | 786 | } |
787 | |||
788 | public override void VehicleFlagsSet(int flags) | ||
789 | { | ||
790 | |||
791 | } | ||
792 | |||
793 | public override void VehicleFlagsRemove(int flags) | ||
794 | { | ||
777 | 795 | ||
796 | } | ||
797 | |||
778 | public override void SetVolumeDetect(int param) | 798 | public override void SetVolumeDetect(int param) |
779 | { | 799 | { |
780 | 800 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index a5aecd8..33218aa 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -6315,13 +6315,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6315 | public void llSetVehicleFlags(int flags) | 6315 | public void llSetVehicleFlags(int flags) |
6316 | { | 6316 | { |
6317 | m_host.AddScriptLPS(1); | 6317 | m_host.AddScriptLPS(1); |
6318 | NotImplemented("llSetVehicleFlags"); | 6318 | if (m_host.ParentGroup != null) |
6319 | { | ||
6320 | if (!m_host.ParentGroup.IsDeleted) | ||
6321 | { | ||
6322 | m_host.ParentGroup.RootPart.SetVehicleFlags(flags); | ||
6323 | } | ||
6324 | } | ||
6319 | } | 6325 | } |
6320 | 6326 | ||
6321 | public void llRemoveVehicleFlags(int flags) | 6327 | public void llRemoveVehicleFlags(int flags) |
6322 | { | 6328 | { |
6323 | m_host.AddScriptLPS(1); | 6329 | m_host.AddScriptLPS(1); |
6324 | NotImplemented("llRemoveVehicleFlags"); | 6330 | if (m_host.ParentGroup != null) |
6331 | { | ||
6332 | if (!m_host.ParentGroup.IsDeleted) | ||
6333 | { | ||
6334 | m_host.ParentGroup.RootPart.RemoveVehicleFlags(flags); | ||
6335 | } | ||
6336 | } | ||
6325 | } | 6337 | } |
6326 | 6338 | ||
6327 | public void llSitTarget(LSL_Vector offset, LSL_Rotation rot) | 6339 | public void llSitTarget(LSL_Vector offset, LSL_Rotation rot) |