private DreamProcArguments ConstructClickArguments(DreamObject atom, EntityClickedEvent e) { NameValueCollection paramsBuilder = HttpUtility.ParseQueryString(String.Empty); if (e.Shift) { paramsBuilder.Add("shift", "1"); } if (e.Ctrl) { paramsBuilder.Add("ctrl", "1"); } if (e.Alt) { paramsBuilder.Add("alt", "1"); } //TODO: "icon-x", "icon-y", "screen-loc" return(new DreamProcArguments(new() { new DreamValue(atom), DreamValue.Null, DreamValue.Null, new DreamValue(paramsBuilder.ToString()) })); }
internal void EntityClicked(Guid entityGuid, Guid starSys, MouseButtons button) { LastClickedEntity = StarSystemStates[starSys].EntityStatesWithNames[entityGuid]; EntityClickedEvent?.Invoke(LastClickedEntity, button); if (ActiveWindow != null) { ActiveWindow.EntityClicked(StarSystemStates[starSys].EntityStatesWithNames[entityGuid], button); } OnEntitySelected(); }
private void OnEntityClicked(EntityClickedEvent e, EntitySessionEventArgs sessionEvent) { DreamObject atom = _atomManager.GetAtomFromEntity(e.EntityUid); if (atom == null) { return; } IPlayerSession session = (IPlayerSession)sessionEvent.SenderSession; var client = _dreamManager.GetConnectionBySession(session).ClientDreamObject; var usr = client.GetVariable("mob").GetValueAsDreamObject(); client.SpawnProc("Click", ConstructClickArguments(atom, e), usr: usr); }
internal void EntityClicked(Guid entityGuid, Guid starSys, MouseButtons button) { LastClickedEntity = StarSystemStates[starSys].EntityStatesWithNames[entityGuid]; EntityClickedEvent?.Invoke(LastClickedEntity, button); if (ActiveWindow != null) { ActiveWindow.EntityClicked(StarSystemStates[starSys].EntityStatesWithNames[entityGuid], button); } SelectedSysMapRender.SelectedEntityExtras = new List <IDrawData>(); if (LastClickedEntity.DebugOrbitOrder != null) { SelectedSysMapRender.SelectedEntityExtras.Add(LastClickedEntity.DebugOrbitOrder); } if (ActiveWindow == null || ActiveWindow.GetActive() == false || ActiveWindow.ClickedEntityIsPrimary) { PrimaryEntity = LastClickedEntity; } }