DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ Event_OnClickMiddle()

void PluginBase::Event_OnClickMiddle ( )
inlineprivate

См. определение в файле PluginSceneManager.c строка 178

179 {
180 if ( !IsMouseInScene() || !m_IsOpen )
181 {
182 return;
183 }
184
185 if ( GetSelectedSceneObject() != NULL )
186 {
187 // Direction Vector from current active Camera
188 vector dir = GetGame().GetPointerDirection();
189
190 // Raycast from
191 vector from = FreeDebugCamera.GetInstance().GetPosition();
192 // Raycast to
193 vector to = from + ( dir * 10000 );
194 // Raycast out parameter
195 vector contact_pos;
196 vector contact_dir;
197 int contact_component;
198 set<Object> objects = new set<Object>;
199 bool selected = false;
200
201 if ( DayZPhysics.RaycastRV(from, to, contact_pos, contact_dir, contact_component, objects) )
202 {
203 for ( int i = 0; i < objects.Count(); ++i )
204 {
205 Object obj = objects.Get(i);
206
207 if ( obj.IsInherited( EntityAI ) )
208 {
209 EntityAI eai = EntityAI.Cast( obj );
210 SceneObject scene_object = m_SceneData.GetSceneObjectByEntityAI(eai);
211
212 if ( !scene_object.IsPlayer() )
213 {
214 if ( scene_object != NULL && scene_object != GetSelectedSceneObject() )
215 {
216 if ( !AreSceneObjectsLinked(GetSelectedSceneObject(), scene_object) )
217 {
218 LinkSceneObjects( GetSelectedSceneObject(), scene_object );
219 }
220 else
221 {
223 }
224 }
225 }
226 else
227 {
228 SceneEditorMenuCmdPopup("I am sorry. You cant create link on player!");
229 }
230 }
231 }
232 }
233 }
234
235 EditorUpdate();
236 }
class LogManager EntityAI
proto native vector GetPointerDirection()
Returns the direction where the mouse points, from the camera view.
static bool m_IsOpen
Определения PluginCameraTools.c:4
ref SceneData m_SceneData
Определения PluginSceneManager.c:1129
void LinkSceneObjects(SceneObject scene_object1, SceneObject scene_object2)
Определения PluginSceneManager.c:671
void EditorUpdate()
Определения PluginSceneManager.c:1145
bool IsMouseInScene()
Определения PluginSceneManager.c:1227
SceneObject GetSelectedSceneObject()
Определения PluginSceneManager.c:491
void UnlinkSceneObjects(SceneObject scene_object1, SceneObject scene_object2)
Определения PluginSceneManager.c:680
bool AreSceneObjectsLinked(SceneObject scene_object1, SceneObject scene_object2)
Определения PluginSceneManager.c:689
void SceneEditorMenuCmdPopup(string message)
Определения PluginSceneManager.c:1211
bool IsPlayer()
Определения SceneObject.c:75
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки AreSceneObjectsLinked(), EditorUpdate(), GetGame(), CGame::GetPointerDirection(), GetSelectedSceneObject(), IsMouseInScene(), SceneObject::IsPlayer(), LinkSceneObjects(), m_IsOpen, m_SceneData, DayZPhysics::RaycastRV(), SceneEditorMenuCmdPopup() и UnlinkSceneObjects().