From 5b4904919426ed5c563084e04d441870b1df6479 Mon Sep 17 00:00:00 2001 From: Patrick Dulebohn Date: Sat, 19 Mar 2022 20:50:57 -0400 Subject: [PATCH] More adjustments Remove unneeded "safety" measures and set dynamic_blocker default value to True instead of False --- korman/exporter/physics.py | 41 +++++++++++++------------- korman/properties/modifiers/physics.py | 2 +- korman/ui/modifiers/physics.py | 1 - 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/korman/exporter/physics.py b/korman/exporter/physics.py index aee83bb..960eb28 100644 --- a/korman/exporter/physics.py +++ b/korman/exporter/physics.py @@ -165,28 +165,27 @@ class PhysicsConverter: physical.friction = mod.friction physical.restitution = mod.restitution - if not mod.dynamic_blocker: - if mod.dynamic: - if ver <= pvPots: - physical.collideGroup = (1 << plSimDefs.kGroupDynamic) | \ - (1 << plSimDefs.kGroupStatic) - physical.memberGroup = plSimDefs.kGroupDynamic - physical.mass = mod.mass - _set_phys_prop(plSimulationInterface.kStartInactive, simIface, physical, - value=mod.start_asleep) - elif not mod.avatar_blocker: - physical.memberGroup = plSimDefs.kGroupLOSOnly - else: - physical.memberGroup = plSimDefs.kGroupStatic - - # Line of Sight DB - if mod.camera_blocker: - physical.LOSDBs |= plSimDefs.kLOSDBCameraBlockers - _set_phys_prop(plSimulationInterface.kCameraAvoidObject, simIface, physical) - if mod.terrain: - physical.LOSDBs |= plSimDefs.kLOSDBAvatarWalkable - else: + if mod.dynamic: + if ver <= pvPots: + physical.collideGroup = (1 << plSimDefs.kGroupDynamic) | \ + (1 << plSimDefs.kGroupStatic) + physical.memberGroup = plSimDefs.kGroupDynamic + physical.mass = mod.mass + _set_phys_prop(plSimulationInterface.kStartInactive, simIface, physical, + value=mod.start_asleep) + elif mod.dynamic_blocker and not mod.avatar_blocker: physical.memberGroup = plSimDefs.kDynamicBlocker + elif not mod.avatar_blocker and not mod.dynamic_blocker: + physical.memberGroup = plSimDefs.kGroupLOSOnly + else: + physical.memberGroup = plSimDefs.kGroupStatic + + # Line of Sight DB + if mod.camera_blocker: + physical.LOSDBs |= plSimDefs.kLOSDBCameraBlockers + _set_phys_prop(plSimulationInterface.kCameraAvoidObject, simIface, physical) + if mod.terrain: + physical.LOSDBs |= plSimDefs.kLOSDBAvatarWalkable # Hacky? We'd like to share the simple surface descriptors(TM) as much as possible... # This could result in a few orphaned PhysicalSndGroups, but I think that's preferable diff --git a/korman/properties/modifiers/physics.py b/korman/properties/modifiers/physics.py index 8ca529f..d972b91 100644 --- a/korman/properties/modifiers/physics.py +++ b/korman/properties/modifiers/physics.py @@ -82,7 +82,7 @@ class PlasmaCollider(PlasmaModifierProperties): default=True) dynamic_blocker = BoolProperty(name="Blocks Dynamics", description="Object blocks dynamic objects (kickables)", - default=False) + default=True) friction = FloatProperty(name="Friction", min=0.0, diff --git a/korman/ui/modifiers/physics.py b/korman/ui/modifiers/physics.py index 733e809..6bf1d46 100644 --- a/korman/ui/modifiers/physics.py +++ b/korman/ui/modifiers/physics.py @@ -21,7 +21,6 @@ def collision(modifier, layout, context): split = layout.split() col = split.column() col.prop(modifier, "dynamic_blocker") - col.active != modifier.dynamic_blocker) col.prop(modifier, "avatar_blocker") col.prop(modifier, "camera_blocker") col.prop(modifier, "terrain")