//INICIAIZATION void Start() { displayerInstance = this; access = Name.GetComponent <NameDisplay>(); //access2 = Sprite.GetComponent<ImageDisplay>(); _textComponent = GetComponent <Text>(); _textComponent.text = ""; //Emptying text display just for good measure. ContinueIcon.SetActive(false); }
/// <summary> /// Handle the end of the dragging action /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Student_Drop(object sender, DragEventArgs e) { PlaceDisplay placeDisplay = (PlaceDisplay)((FrameworkElement)sender).DataContext; NameDisplay data = (NameDisplay)e.Data.GetData(typeof(NameDisplay)); if (placeDisplay.StudentId != 0) { return; } placeDisplay.Content = data.Name; placeDisplay.StudentId = data.ID; StudentPlaceDisplay studentPlace = new StudentPlaceDisplay() { StudentId = data.ID, Row = placeDisplay.Row, Column = placeDisplay.Column }; studentPlaceList.Add(studentPlace); ((IList)dragSource.ItemsSource).Remove(data); }
public PlanEditPage(int scheduleId, int classroomId) //Create plan { studentPlanList = new ObservableCollection <ObservableCollection <PlaceDisplay> >(); ScheduleInfo schedule = Database.Get.Schedule.FromId(scheduleId); if (schedule.scheduleId == null) { MessageBox.Show("Un probème est surnvenu"); return; } RoomInfo roomInfo = Database.Get.Room.FromID((int)schedule.roomId); if (roomInfo == null) { MessageBox.Show("Salle inexistante"); return; } roomId = (int)schedule.roomId; this.scheduleId = scheduleId; rowNumber = roomInfo.Rows; columnNumber = roomInfo.Columns; //double itemWidth = _mainGrid.ColumnDefinitions[1].ActualWidth / columnNumber; //double itemHeight = _mainGrid.RowDefinitions[0].ActualHeight / rowNumber; int initItemHeight = 60; int initItemWidth = 60; for (int i = 0; i < rowNumber; i++) { studentPlanList.Add(new ObservableCollection <PlaceDisplay>()); for (int j = 0; j < columnNumber; j++) { //if (j == 1) //{ // PlaceDisplay placeDisplay = new PlaceDisplay() // { // ItemHeight = (int)initItemHeight, // ItemWidth = (int)initItemWidth, // AbsoluteWidth = columnSkipSize, // Content = "", // Drop = false, // Thickness = 0 // }; // studentPlanList[i].Add(placeDisplay); //} else //{ PlaceDisplay placeDisplay = new PlaceDisplay() { Row = i, Column = j, ItemHeight = initItemHeight, ItemWidth = initItemWidth, AbsoluteWidth = 0, Content = $"Glisser déposer ici pour\nplacer l'élève {i} {j}", Drop = true, Thickness = 1, StudentId = 0 }; studentPlanList[i].Add(placeDisplay); //} } } InitializeComponent(); buttonList = new List <Button>(); List <string> spacingList = new List <string>(); //if (planId != null) //{ // List<PlanInfo> plan = Database.Get.Plan.FromScheduleId(scheduleId); // spacingList = plan.spacing.Split(",").ToList(); // planId = plan.planId; //} for (int i = 0; i < columnNumber - 1; i++) { Button btn = new Button(); btn.Content = "|"; btn.Height = 20; btn.Width = 20; btn.HorizontalAlignment = HorizontalAlignment.Left; btn.Tag = i; btn.Click += SpacingButton_Click; //btn.Margin = new Thickness(80 * (i + 1), 0, 0, 0); _mainGrid.Children.Add(btn); Grid.SetRow(btn, 0); Grid.SetColumn(btn, 1); string found = spacingList.Find(x => x == i.ToString()); if (found != null) { btn.IsEnabled = false; } buttonList.Add(btn); } List <StudentInfo> studentList = Database.Get.Student.AllFromClassroomId(classroomId); foreach (StudentInfo student in studentList) { NameDisplay nameDisplay = new NameDisplay() { ID = student.studentId, Name = String.Join(" ", new string[] { student.surname, student.lastname }) }; studentCollection.Add(nameDisplay); } _studentList.ItemsSource = studentCollection; _lst.ItemsSource = studentPlanList; }
// Update is called once per frame void FixedUpdate() { OnRightClick rc = plane.GetComponent <OnRightClick>(); if (rc.clicked_off) { foreach (GameObject task in construction_tasks.Values) { SelectTask selections = task.GetComponent <SelectTask>(); selections.rightClickAndSelected = false; } foreach (GameObject task in transport_tasks.Values) { SelectTask selections = task.GetComponent <SelectTask>(); selections.rightClickAndSelected = false; } if (selectAgent.currentlySelected.Count != 0) { selectAgent.DeselectAll(); } rc.clicked_off = false; } if (!start_recieved) { rosSocket.Publish(updateID, message); } // Update agents through the update function if (agent_message != null) { if (!agents.ContainsKey(agent_message.name)) { GameObject addingAgent = new GameObject(); try { if (agent_message.agent_type == "ConstructionAgent") { addingAgent = Instantiate(contructionAgentModel, getVectFromMessage(agent_message.pose), getQuadFromMsg(agent_message.pose)); } else { addingAgent = Instantiate(transportAgentModel, getVectFromMessage(agent_message.pose), getQuadFromMsg(agent_message.pose)); } selectAgent menu = addingAgent.AddComponent <selectAgent>(); menu.agentType = agent_message.agent_type; BoxCollider box = addingAgent.AddComponent <BoxCollider>(); box.size = box.size * 1.3f; NameDisplay name_display = addingAgent.AddComponent <NameDisplay>(); if (agent_message.agent_type == "ConstructionAgent") { name_display.colour = red; } else { name_display.colour = blue; } AgentInfo agent_info = addingAgent.AddComponent <AgentInfo>(); name_display.name = agent_message.name; menu.agentName = agent_message.name; menu.agentCurrentTask = agent_message.current_task; menu.currentAction = agent_message.current_action; menu.agentCapabilities = getStringCompatibilities(agent_message.capabilities); menu.movementSpeed = agent_message.movement_speed.ToString(); menu.isAtTask = agent_message.is_at_task.ToString(); agents.Add(agent_message.name, addingAgent); } catch (ArgumentException e) { print("Some reason, the agent has already been added... " + e); Destroy(addingAgent); agents.Remove(agent_message.name); } } else { GameObject currentAgent; agents.TryGetValue(agent_message.name, out currentAgent); currentAgent.transform.position = getVectFromMessage(agent_message.pose); currentAgent.transform.localRotation = getQuadFromMsg(agent_message.pose); selectAgent menu = currentAgent.GetComponent <selectAgent>(); menu.agentCurrentTask = agent_message.current_task; menu.currentAction = agent_message.current_action; menu.agentCapabilities = getStringCompatibilities(agent_message.capabilities); menu.movementSpeed = agent_message.movement_speed.ToString(); menu.isAtTask = agent_message.is_at_task.ToString(); } agent_message = null; } if (construction_task_message != null) { string PERM_CONTRUCTION_NAME = String.Copy(construction_task_message.name); if ((!construction_tasks.ContainsKey(construction_task_message.name))) { try { if (!construction_task_message.is_complete) { GameObject addingConstructionTask = Instantiate(contructionTaskModel, getVectFromMessage(construction_task_message.pose, new Vector3(0, 1f, 0)), getQuadFromMsg(construction_task_message.pose)); construction_tasks.Add(PERM_CONTRUCTION_NAME, addingConstructionTask); NameDisplay name_display = addingConstructionTask.AddComponent <NameDisplay>(); name_display.name = PERM_CONTRUCTION_NAME; name_display.colour = offRed; BoxCollider box = addingConstructionTask.AddComponent <BoxCollider>(); box.size = box.size * 1.3f; SelectTask taskSelect = addingConstructionTask.AddComponent <SelectTask>(); taskSelect.taskName = PERM_CONTRUCTION_NAME; taskSelect.taskType = "Construction"; } } catch (ArgumentException e) { print("Some reason, the contruction task has already been added... " + e); } } else { GameObject currentConstructionTask; construction_tasks.TryGetValue(construction_task_message.name, out currentConstructionTask); if (construction_task_message.is_complete) { construction_tasks.Remove(construction_task_message.name); Destroy(currentConstructionTask); } } construction_task_message = null; } if (transport_task_message != null) { if (!transport_tasks.ContainsKey(transport_task_message.name)) { if (!transport_task_message.is_complete) { GameObject addingTransportTask = Instantiate(transportTaskModel, getVectFromMessage(transport_task_message.pose, new Vector3(0, 0.47f, 0)), getQuadFromMsg(transport_task_message.pose)); GameObject addingTransportTaskEnd = Instantiate(dartModel, getVectFromMessage(transport_task_message.end_pose, new Vector3(0, 1.252f, 0)), Quaternion.Euler(90, 0, 0)); addingTransportTaskEnd.transform.localScale = new Vector3(200, 200, 200); // Makes the transport task end a child of the adding transport task. // addingTransportTaskEnd.transform.parent = addingTransportTask.transform; transport_tasks.Add(transport_task_message.name, addingTransportTask); LineRenderer line = addingTransportTask.AddComponent <LineRenderer>(); line.material = lineMaterial; NameDisplay name_display = addingTransportTask.AddComponent <NameDisplay>(); name_display.colour = offBlue; line.SetPositions(new Vector3[2] { new Vector3(addingTransportTask.transform.position.x, 0.01f, addingTransportTask.transform.position.z), new Vector3(addingTransportTaskEnd.transform.position.x, 0.01f, addingTransportTaskEnd.transform.position.z) }); line.startWidth = 0.05f; line.endWidth = 0.5f; name_display.name = transport_task_message.name; BoxCollider box = addingTransportTask.AddComponent <BoxCollider>(); box.size = box.size * 1.3f; SelectTask taskSelect = addingTransportTask.AddComponent <SelectTask>(); taskSelect.taskName = transport_task_message.name; taskSelect.taskType = "Transport"; } } else { GameObject currentTransportTask; transport_tasks.TryGetValue(transport_task_message.name, out currentTransportTask); try { currentTransportTask.transform.position = getVectFromMessage(transport_task_message.pose, new Vector3(0, 0.47f, 0)); LineRenderer line = currentTransportTask.GetComponent <LineRenderer>(); line.SetPosition(0, new Vector3(currentTransportTask.transform.position.x, 0.01f, currentTransportTask.transform.position.z)); if (transport_task_message.is_complete) { transport_tasks.Remove(transport_task_message.name); Destroy(currentTransportTask); } } catch (MissingReferenceException e) { print("Transport task was destroyed, the task is still in the dictionary for some reasons... Deleting it again."); transport_tasks.Remove(transport_task_message.name); } } transport_task_message = null; } if (construction_tasks.Count != 0) { foreach (GameObject task in construction_tasks.Values) { task.transform.localEulerAngles = new Vector3(45, task.transform.localEulerAngles.y + 1f, 90); } } }