public void AddOption(RPGGameEvent option) { int s = RPGGameEventUtils.MenuSortOrder(option); if (!MenuOptions.ContainsKey(s)) { MenuOptions.Add(s, option); } }
public static void AddOption(int entityID, RPGGameEvent option) { var menu = GameBehavior.thisGame.EntityManager.GetComponent <MenuComponent>(entityID); if (menu == null) { return; } int s = RPGGameEventUtils.MenuSortOrder(option); if (!menu.MenuOptions.ContainsKey(s)) { menu.MenuOptions.Add(s, option); } }
private void OnMouseUpdate(GameEvent e) { var data = (InputMouseBehaviour.MouseData)e.EventData; var menu = this.EntityManager.GetComponent <MenuComponent>(data.EntityID); if (menu == null) { return; } // Start by assuming nothing was selected menu.MouseButtonPressed = false; menu.SelectedOption = RPGGameEvent.None; if (data.HitMenu) { menu.MouseButtonPressed = data.MouseButton0; menu.SelectedOption = RPGGameEventUtils.GetEnumFromString(data.HitMenuCollider.name); } else { menu.Distance = data.HitDistance; menu.EntityID_Item = data.HitEntityID; // If item changed then clear options if (menu.EntityID_Item != data.HitEntityID) { menu.ClearOptions(); } } if (data.HitMenu && data.MouseButton0Up) { var selectedOption = menu.SelectedOption; var optionData = new MenuOptionSelected() { ActorID = data.EntityID, ItemID = menu.EntityID_Item }; menu.ClearAll(); this.EventManager.QueueEvent(selectedOption, optionData); } }
private void SetMenuOptions(MenuComponent menu) { //menu.RemoveOption(RPGGameEvent.Menu_None); //if (menu.MenuOptions.Count == 0 && menu.Distance <= MenuSystem.DistanceItemActionable && menu.EntityID_Item > 0) { menu.AddOption(RPGGameEvent.Menu_None); } if (RPGGameEventUtils.MenuOptionIsDisabledType(menu.SelectedOption)) { menu.SelectedOption = RPGGameEvent.None; } foreach (Transform child in menu.MenuGO.transform) { child.gameObject.SetActive(menu.OptionIsActive((RPGGameEvent)Enum.Parse(typeof(RPGGameEvent), child.name, true))); float transparency = menu.OptionTransparencyDefault; if (child.name != menu.SelectedOption.ToString()) { child.transform.localEulerAngles = new Vector3(child.transform.localEulerAngles.x, menu.OptionAdditionalRotationY, child.transform.localEulerAngles.z); } else { if (menu.MouseButtonPressed) { child.transform.Rotate(0, child.transform.rotation.y + menu.OptionRotationRate, 0); } else { child.transform.localEulerAngles = new Vector3(child.transform.localEulerAngles.x, menu.OptionAdditionalRotationY, child.transform.localEulerAngles.z); } transparency = menu.MouseButtonPressed ? menu.OptionTransparencySelected : menu.OptionTransparencyMouseOver; } var r = menu.MenuGO.transform.FindChild(child.name).GetComponent <Renderer>() as Renderer; if (r != null) { r.material.SetColor("_Color", new Color(r.material.color.r, r.material.color.g, r.material.color.b, transparency)); } } }
public void RemoveOption(RPGGameEvent option) { MenuOptions.Remove(RPGGameEventUtils.MenuSortOrder(option)); }
public bool OptionIsActive(RPGGameEvent option) { return(MenuOptions.ContainsKey(RPGGameEventUtils.MenuSortOrder(option))); }