public void SubmitCurrentLevel(LinkJava.SimulationTypes inputSimulationType) { string levelToString = SerializeCurrentLevel(); string filename = linkJava.savePath + Constants.FilePrefixes.inputLevelFile + "_" + inputSimulationType.ToString().ToUpper() + "_" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"; //Debug.Log(filename); System.IO.File.WriteAllText(filename, levelToString); linkJava.filename = filename; linkJava.simulationMode = inputSimulationType; GameManager.Instance.tracker.CreateEventExt("SubmitCurrentLevel" + inputSimulationType.ToString(), filename); LinkJava.OnSimulationCompleted += TriggerLevelSimulation; linkJava.SendToJava(); }
public void DefineButtonBehaviors() { playerInteraction_UI.ClearButtonBehaviors(); foreach (Transform t in playerInteraction_UI.hint_button_container) { Destroy(t.gameObject); } /* semaphore placement events */ EventTrigger.Entry beginDrag_semaphore = new EventTrigger.Entry(); beginDrag_semaphore.eventID = EventTriggerType.BeginDrag; beginDrag_semaphore.callback.AddListener((eventData) => { BeginDrag(MenuOptions.semaphore); }); playerInteraction_UI.place_semaphore.triggers.Add(beginDrag_semaphore); EventTrigger.Entry continueDrag_semaphore = new EventTrigger.Entry(); continueDrag_semaphore.eventID = EventTriggerType.Drag; continueDrag_semaphore.callback.AddListener((eventData) => { ContinueDrag(MenuOptions.semaphore); }); playerInteraction_UI.place_semaphore.triggers.Add(continueDrag_semaphore); EventTrigger.Entry endDrag_semaphore = new EventTrigger.Entry(); endDrag_semaphore.eventID = EventTriggerType.EndDrag; endDrag_semaphore.callback.AddListener((eventData) => { EndDrag(MenuOptions.semaphore); }); playerInteraction_UI.place_semaphore.triggers.Add(endDrag_semaphore); /* signal placement events */ EventTrigger.Entry beginDrag_button = new EventTrigger.Entry(); beginDrag_button.eventID = EventTriggerType.BeginDrag; beginDrag_button.callback.AddListener((eventData) => { BeginDrag(MenuOptions.button); }); playerInteraction_UI.place_button.triggers.Add(beginDrag_button); EventTrigger.Entry continueDrag_button = new EventTrigger.Entry(); continueDrag_button.eventID = EventTriggerType.Drag; continueDrag_button.callback.AddListener((eventData) => { ContinueDrag(MenuOptions.button); }); playerInteraction_UI.place_button.triggers.Add(continueDrag_button); EventTrigger.Entry endDrag_button = new EventTrigger.Entry(); endDrag_button.eventID = EventTriggerType.EndDrag; endDrag_button.callback.AddListener((eventData) => { EndDrag(MenuOptions.button); }); playerInteraction_UI.place_button.triggers.Add(endDrag_button); /* trash events */ EventTrigger.Entry hover_trash = new EventTrigger.Entry(); hover_trash.eventID = EventTriggerType.PointerEnter; hover_trash.callback.AddListener((eventData) => { BeginHover(MenuOptions.trash); }); playerInteraction_UI.trash.triggers.Add(hover_trash); EventTrigger.Entry endHover_trash = new EventTrigger.Entry(); endHover_trash.eventID = EventTriggerType.PointerExit; endHover_trash.callback.AddListener((eventData) => { EndHover(MenuOptions.trash); }); playerInteraction_UI.trash.triggers.Add(endHover_trash); /* Bezier Visibility */ /*Button flowButton = playerInteraction_UI.preview.GetComponent<Button>(); * flowButton.onClick.RemoveAllListeners(); * flowButton.onClick.AddListener( ()=> ToggleConnectionVisibility() ); */ EventTrigger.Entry hover_bezier = new EventTrigger.Entry(); hover_bezier.eventID = EventTriggerType.PointerEnter; hover_bezier.callback.AddListener((eventData) => { connectVisibility = false; ToggleConnectionVisibility(); }); playerInteraction_UI.preview.triggers.Add(hover_bezier); EventTrigger.Entry click_bezier = new EventTrigger.Entry(); click_bezier.eventID = EventTriggerType.PointerDown; click_bezier.callback.AddListener((eventData) => { LockConnectionVisibility(); }); playerInteraction_UI.preview.triggers.Add(click_bezier); EventTrigger.Entry endHover_bezier = new EventTrigger.Entry(); endHover_trash.eventID = EventTriggerType.PointerExit; endHover_trash.callback.AddListener((eventData) => { connectVisibility = true; ToggleConnectionVisibility(); }); playerInteraction_UI.preview.triggers.Add(endHover_trash); /* Exit */ //Note: Exit Button behavior is handled in playerInteraction_UI.pauseOverlay LinkJava.SimulationTypes playSimulation = LinkJava.SimulationTypes.Play; playerInteraction_UI.simulationButton.onClick.RemoveAllListeners(); playerInteraction_UI.simulationButton.onClick.AddListener(() => TriggerSimulation(playSimulation) /*GameManager.Instance.SubmitCurrentLevel(playSimulation)*/); playerInteraction_UI.simulationButton.onClick.AddListener(() => playerInteraction_UI.simulationButton.interactable = false); playerInteraction_UI.simulationButton.interactable = true; playerInteraction_UI.stopSimulationButton.onClick.RemoveAllListeners(); playerInteraction_UI.stopSimulationButton.onClick.AddListener(() => EndSimulation()); playerInteraction_UI.stopSimulationButton.interactable = false; playerInteraction_UI.stopSimulationButton.gameObject.SetActive(false); LinkJava.SimulationTypes fullSimulation = LinkJava.SimulationTypes.ME; playerInteraction_UI.submitButton.onClick.RemoveAllListeners(); playerInteraction_UI.submitButton.onClick.AddListener(() => TriggerSimulation(fullSimulation) /*GameManager.Instance.SubmitCurrentLevel(fullSimulation)*/); playerInteraction_UI.submitButton.onClick.AddListener(() => playerInteraction_UI.submitButton.interactable = false); playerInteraction_UI.submitButton.interactable = true; playerInteraction_UI.revealHintsButton.onClick.RemoveAllListeners(); playerInteraction_UI.revealHintsButton.onClick.AddListener(() => ToggleHintsVisibility()); /* Track Color Hover Setup */ for (int triggerIndex = 0; triggerIndex < playerInteraction_UI.rightPanelColors.Length; triggerIndex++) { playerInteraction_UI.rightPanelColors[triggerIndex].triggers.Clear(); if (GameManager.Instance.GetGridManager().IsCurrentThreadColor(triggerIndex)) { playerInteraction_UI.rightPanelColors[triggerIndex].gameObject.SetActive(true); int loadColors = triggerIndex; // + 1; EventTrigger.Entry beginHoverColor = new EventTrigger.Entry(); beginHoverColor.eventID = EventTriggerType.PointerEnter; beginHoverColor.callback.AddListener((eventData) => { if (!/*connectVisibilityLock*/ colorFlowVisibilityLock) { GameManager.Instance.GetGridManager().RevealGridColorMask(loadColors); } ToggleFlowVisibility(true); }); playerInteraction_UI.rightPanelColors[triggerIndex].triggers.Add(beginHoverColor); EventTrigger.Entry lockHoverColor = new EventTrigger.Entry(); lockHoverColor.eventID = EventTriggerType.PointerDown; int lockIndex = triggerIndex; lockHoverColor.callback.AddListener((eventData) => { LockFlowVisibility(lockIndex); }); playerInteraction_UI.rightPanelColors[triggerIndex].triggers.Add(lockHoverColor); EventTrigger.Entry endHoverColor = new EventTrigger.Entry(); endHoverColor.eventID = EventTriggerType.PointerExit; endHoverColor.callback.AddListener((eventData) => { if (!/*connectVisibilityLock*/ colorFlowVisibilityLock) { GameManager.Instance.GetGridManager().HideGridColorMask(); } ToggleFlowVisibility(false); }); playerInteraction_UI.rightPanelColors[triggerIndex].triggers.Add(endHoverColor); } else { // Debug.Log(playerInteraction_UI.rightPanelColors[triggerIndex].gameObject.name); playerInteraction_UI.rightPanelColors[triggerIndex].gameObject.SetActive(false); } } /* Question Mark Hint Setup */ for (int hintIndex = 0; hintIndex < playerInteraction_UI.hintButtons.Length; hintIndex++) { HintConstructor h = playerInteraction_UI.hintButtons[hintIndex].hint; if (playerInteraction_UI.hintButtons[hintIndex].levelIds.Count == 0 || playerInteraction_UI.hintButtons[hintIndex].levelIds.Contains(GameManager.Instance.GetDataManager().currentLevelData.metadata.level_id)) { GameObject hintInstance = Instantiate(playerInteraction_UI.hint_button_prefab, playerInteraction_UI.hint_button_container) as GameObject; hintInstance.transform.localScale = Vector3.one; Button instanceButton = hintInstance.GetComponent <Button>(); Image instanceImage = hintInstance.GetComponent <Image>(); instanceButton.onClick.AddListener(() => TriggerHint(h.hintTitle, h.hintDescription, h.hintImage)); if (playerInteraction_UI.hintButtons[hintIndex].hint.hintButtonImage != null) { // playerInteraction_UI.hintButtons[hintIndex].hintButtonTrigger.GetComponent<Image>().sprite = playerInteraction_UI.hintButtons[hintIndex].hint.hintButtonImage; instanceImage.sprite = playerInteraction_UI.hintButtons[hintIndex].hint.hintButtonImage; } else if (playerInteraction_UI.hintButtons[hintIndex].hint.hintImage != null) { //playerInteraction_UI.hintButtons[hintIndex].hintButtonTrigger.GetComponent<Image>().sprite = playerInteraction_UI.hintButtons[hintIndex].hint.hintImage; instanceImage.sprite = playerInteraction_UI.hintButtons[hintIndex].hint.hintImage; } //playerInteraction_UI.hintButtons[hintIndex].hintButtonTrigger.onClick.AddListener( ()=> TriggerHint( h.hintTitle, h.hintDescription, h.hintImage ) ); } } /* Toolbar Tooltips */ foreach (TooltipEvent t in playerInteraction_UI.tooltipEvents) { EventTrigger.Entry beginHover_event = new EventTrigger.Entry(); string tooltipText = t.tooltipContent.tooltipText; string tooltipName = t.tooltipUiElement.name; beginHover_event.eventID = EventTriggerType.PointerEnter; Debug.Log("Adding listener for " + t.tooltipUiElement.name); beginHover_event.callback.AddListener((eventData) => { if (interactionPhase == InteractionPhases.ingame_default) { playerInteraction_UI.tooltipOverlay.OpenPanel(); playerInteraction_UI.tooltipOverlay.SetTooltip(tooltipText, Input.mousePosition); GameManager.Instance.tracker.CreateEventExt("tooltip", tooltipName); } }); t.tooltipUiElement.triggers.Add(beginHover_event); } }
void TriggerSimulation(LinkJava.SimulationTypes simulationType) { playerInteraction_UI.loadingOverlay.OpenPanel(); GameManager.Instance.SubmitCurrentLevel(simulationType); }