private bool CustomProcessClick(ScenePickArgs eventArgs) { switch (eventArgs.mObjectType) { case ScenePickObjectType.Terrain: case ScenePickObjectType.Floor: case ScenePickObjectType.RoadStreet: case ScenePickObjectType.RoadSidewalk: case ScenePickObjectType.WaterPond: case ScenePickObjectType.WaterSea: case ScenePickObjectType.WaterPool: case ScenePickObjectType.WaterFountain: if ((Bin.PlacementHousehold == null) && (Bin.PlacementLot == null)) { return(GameObjectEx.OnPick(Terrain.Singleton, eventArgs.mMouseEvent, eventArgs.AsGameObjectHit())); } break; case ScenePickObjectType.Object: case ScenePickObjectType.Sim: case ScenePickObjectType.Wall: ObjectGuid guid = ObjectGuid.InvalidObjectGuid; if ((eventArgs.mObjectType == ScenePickObjectType.Object) || (eventArgs.mObjectType == ScenePickObjectType.Sim)) { guid = new ObjectGuid(eventArgs.mObjectId); } else if (eventArgs.mObjectType == ScenePickObjectType.Wall) { guid = LotManager.GetLotObjectGuid(eventArgs.mObjectId); } IScriptProxy proxy = Simulator.GetProxy(guid); if (proxy != null) { IObjectUI target = proxy.Target as IObjectUI; if (target != null) { Lot lot = target as Lot; if (lot != null) { return(OnPickLot(lot, eventArgs.mMouseEvent, eventArgs.AsGameObjectHit())); } else { GameObject obj = target as GameObject; if (obj != null) { return(GameObjectEx.OnPick(obj, eventArgs.mMouseEvent, eventArgs.AsGameObjectHit())); } } } } break; } return(false); }
public override void ProcessClick(ScenePickArgs eventArgs) { try { if (((eventArgs.mObjectType != ScenePickObjectType.None) && !WasMouseDragged(eventArgs)) && ((eventArgs.mMouseEvent.MouseKey != MouseKeys.kMouseRight) || ((eventArgs.mMouseEvent.Modifiers & Modifiers.kModifierMaskControl) == Modifiers.kModifierMaskNone))) { bool flag = false; if ((eventArgs.mObjectType == ScenePickObjectType.Object) || (eventArgs.mObjectType == ScenePickObjectType.Sim)) { ObjectGuid objectId = new ObjectGuid(eventArgs.mObjectId); IScriptProxy proxy = Simulator.GetProxy(objectId); if (proxy != null) { IObjectUI target = proxy.Target as IObjectUI; if (target != null) { Vehicle vehicle = target as Vehicle; if (vehicle != null) { flag = OnSelect(vehicle, eventArgs.mMouseEvent); } else if (target is Sim) { flag = OnSelect(target as Sim, eventArgs.mMouseEvent); } else { flag = target.OnSelect(eventArgs.mMouseEvent); } } } } if (!flag) { CameraController.RequestLerpToTarget(eventArgs.mDisplayPos, 1.5f, false); } } } catch (Exception e) { Common.Exception("ProcessClick", e); } }