Changeset View
Changeset View
Standalone View
Standalone View
source/gameengine/Ketsji/KX_TouchSensor.cpp
| Show First 20 Lines • Show All 96 Lines • ▼ Show 20 Lines | bool KX_TouchSensor::Evaluate() | ||||
| } | } | ||||
| return result; | return result; | ||||
| } | } | ||||
| KX_TouchSensor::KX_TouchSensor(SCA_EventManager* eventmgr,KX_GameObject* gameobj,bool bFindMaterial,bool bTouchPulse,const STR_String& touchedpropname) | KX_TouchSensor::KX_TouchSensor(SCA_EventManager* eventmgr,KX_GameObject* gameobj,bool bFindMaterial,bool bTouchPulse,const STR_String& touchedpropname) | ||||
| :SCA_ISensor(gameobj,eventmgr), | :SCA_ISensor(gameobj,eventmgr), | ||||
| m_touchedpropname(touchedpropname), | m_touchedpropname(touchedpropname), | ||||
| m_bFindMaterial(bFindMaterial), | m_bFindMaterial(bFindMaterial), | ||||
| m_bTouchPulse(bTouchPulse) | m_bTouchPulse(bTouchPulse), | ||||
| m_hitMaterial("") | |||||
| /*m_sumoObj(sumoObj),*/ | /*m_sumoObj(sumoObj),*/ | ||||
| { | { | ||||
| // KX_TouchEventManager* touchmgr = (KX_TouchEventManager*) eventmgr; | // KX_TouchEventManager* touchmgr = (KX_TouchEventManager*) eventmgr; | ||||
| // m_resptable = touchmgr->GetResponseTable(); | // m_resptable = touchmgr->GetResponseTable(); | ||||
| // m_solidHandle = m_sumoObj->getObjectHandle(); | // m_solidHandle = m_sumoObj->getObjectHandle(); | ||||
| m_colliders = new CListValue(); | m_colliders = new CListValue(); | ||||
| ▲ Show 20 Lines • Show All 162 Lines • ▼ Show 20 Lines | if (found) | ||||
| if (!m_colliders->SearchValue(gameobj)) { | if (!m_colliders->SearchValue(gameobj)) { | ||||
| m_colliders->Add(gameobj->AddRef()); | m_colliders->Add(gameobj->AddRef()); | ||||
| if (m_bTouchPulse) | if (m_bTouchPulse) | ||||
| m_bColliderHash += (uint_ptr)(static_cast<void *>(&gameobj)); | m_bColliderHash += (uint_ptr)(static_cast<void *>(&gameobj)); | ||||
| } | } | ||||
| m_bTriggered = true; | m_bTriggered = true; | ||||
| m_hitObject = gameobj; | m_hitObject = gameobj; | ||||
| m_hitMaterial = (client->m_auxilary_info ? (char*)client->m_auxilary_info : ""); | |||||
| //printf("KX_TouchSensor::HandleCollision\n"); | //printf("KX_TouchSensor::HandleCollision\n"); | ||||
| } | } | ||||
| } | } | ||||
| return false; // was DT_CONTINUE but this was defined in sumo as false. | return false; // was DT_CONTINUE but this was defined in sumo as false. | ||||
| } | } | ||||
| #ifdef WITH_PYTHON | #ifdef WITH_PYTHON | ||||
| Show All 27 Lines | |||||
| PyMethodDef KX_TouchSensor::Methods[] = { | PyMethodDef KX_TouchSensor::Methods[] = { | ||||
| {NULL,NULL} //Sentinel | {NULL,NULL} //Sentinel | ||||
| }; | }; | ||||
| PyAttributeDef KX_TouchSensor::Attributes[] = { | PyAttributeDef KX_TouchSensor::Attributes[] = { | ||||
| KX_PYATTRIBUTE_STRING_RW("propName",0,MAX_PROP_NAME,false,KX_TouchSensor,m_touchedpropname), | KX_PYATTRIBUTE_STRING_RW("propName",0,MAX_PROP_NAME,false,KX_TouchSensor,m_touchedpropname), | ||||
| KX_PYATTRIBUTE_BOOL_RW("useMaterial",KX_TouchSensor,m_bFindMaterial), | KX_PYATTRIBUTE_BOOL_RW("useMaterial",KX_TouchSensor,m_bFindMaterial), | ||||
| KX_PYATTRIBUTE_BOOL_RW("usePulseCollision",KX_TouchSensor,m_bTouchPulse), | KX_PYATTRIBUTE_BOOL_RW("usePulseCollision",KX_TouchSensor,m_bTouchPulse), | ||||
| KX_PYATTRIBUTE_STRING_RO("hitMaterial", KX_TouchSensor, m_hitMaterial), | |||||
| KX_PYATTRIBUTE_RO_FUNCTION("hitObject", KX_TouchSensor, pyattr_get_object_hit), | KX_PYATTRIBUTE_RO_FUNCTION("hitObject", KX_TouchSensor, pyattr_get_object_hit), | ||||
| KX_PYATTRIBUTE_RO_FUNCTION("hitObjectList", KX_TouchSensor, pyattr_get_object_hit_list), | KX_PYATTRIBUTE_RO_FUNCTION("hitObjectList", KX_TouchSensor, pyattr_get_object_hit_list), | ||||
| { NULL } //Sentinel | { NULL } //Sentinel | ||||
| }; | }; | ||||
| /* Python API */ | /* Python API */ | ||||
| PyObject *KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) | PyObject *KX_TouchSensor::pyattr_get_object_hit(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef) | ||||
| Show All 18 Lines | |||||