public UIDebugEOD(UIEODController controller) : base(controller) { Options = new EODLiveModeOpt(); InitUI(); SetMode(); }
public void OnEODMessage(VMNetEODMessageCmd cmd) { switch (cmd.EventName) { case "eod_enter": //attempt to create the EOD UI for the given plugin (live mode will detect this) if (cmd.Binary) { return; //??? } Type handlerType = null; if (IDToHandler.TryGetValue(cmd.PluginID, out handlerType)) { ActiveEOD = (UIEOD)Activator.CreateInstance(handlerType, this); ActivePID = cmd.PluginID; Add(ActiveEOD); } break; case "eod_leave": if (cmd.Binary || ActiveEOD == null) { return; //??? } DisplayMode = null; Remove(ActiveEOD); ActivePID = 0; ActiveEOD = null; break; default: //forward to existing ui if (ActiveEOD == null) { return; //uh... what UI? } if (cmd.Binary) { EODDirectBinaryEventHandler handle = null; if (ActiveEOD.BinaryHandlers.TryGetValue(cmd.EventName, out handle)) { handle(cmd.EventName, cmd.BinData); } } else { EODDirectPlaintextEventHandler handle = null; if (ActiveEOD.PlaintextHandlers.TryGetValue(cmd.EventName, out handle)) { handle(cmd.EventName, cmd.TextData); } } break; } }
internal virtual void ShowUIHandler(string evt, byte[] eodType) { EODLiveModeOptions = new EODLiveModeOpt { Height = EODHeight.Tall, Length = EODLength.Full, Tips = EODTextTips.Short, Timer = EODTimer.Normal }; if (eodType[0] == 1) // VMEODGameshowBuzzerPluginType.Host { IsHost = true; EODLiveModeOptions.Height = EODHeight.ExtraTall; } EODController.ShowEODMode(EODLiveModeOptions); }
public void OnEODMessage(VMNetEODMessageCmd cmd) { switch (cmd.EventName) { case "eod_enter": //attempt to create the EOD UI for the given plugin (live mode will detect this) if (cmd.Binary) return; //??? Type handlerType = null; if (IDToHandler.TryGetValue(cmd.PluginID, out handlerType)) { ActiveEOD = (UIEOD)Activator.CreateInstance(handlerType, this); ActivePID = cmd.PluginID; Add(ActiveEOD); } break; case "eod_leave": if (cmd.Binary || ActiveEOD == null) return; //??? DisplayMode = null; Remove(ActiveEOD); ActivePID = 0; ActiveEOD = null; break; default: //forward to existing ui if (ActiveEOD == null) return; //uh... what UI? if (cmd.Binary) { EODDirectBinaryEventHandler handle = null; if (ActiveEOD.BinaryHandlers.TryGetValue(cmd.EventName, out handle)) { handle(cmd.EventName, cmd.BinData); } } else { EODDirectPlaintextEventHandler handle = null; if (ActiveEOD.PlaintextHandlers.TryGetValue(cmd.EventName, out handle)) { handle(cmd.EventName, cmd.TextData); } } break; } }
public void ShowEODMode(EODLiveModeOpt mode) { DisplayMode = mode; //gets picked up by live mode }
public void SetInEOD(EODLiveModeOpt options, UIEOD eod) { bool eodPresent = (options != null); bool inEOD = eodPresent && !HideEOD; if (ActiveEOD != null) Remove(ActiveEOD); LastEODConfig = options; ActiveEOD = eod; EODHelpButton.Visible = inEOD; EODCloseButton.Visible = inEOD; EODExpandButton.Visible = false; //todo EODContractButton.Visible = false; EODButton.Visible = eodPresent; bool tall = inEOD && options.Height == EODHeight.Tall; EODPanel.Visible = inEOD && !tall; EODPanelTall.Visible = inEOD && tall; EODButtonLayoutNone.Visible = inEOD && !tall && options.Buttons == 0; EODButtonLayoutNoneTall.Visible = inEOD && tall && options.Buttons == 0; EODButtonLayoutOne.Visible = inEOD && !tall && options.Buttons == 1; EODButtonLayoutOneTall.Visible = inEOD && tall && options.Buttons == 1; EODButtonLayoutTwo.Visible = inEOD && !tall && options.Buttons == 2; EODButtonLayoutTwoTall.Visible = inEOD && tall && options.Buttons == 2; EODSubFullLength.Visible = inEOD && !tall && options.Length == EODLength.Full; EODSubFullLengthTall.Visible = inEOD && tall && options.Length == EODLength.Full; EODSubMediumLength.Visible = inEOD && !tall && options.Length == EODLength.Medium; EODSubMediumLengthTall.Visible = inEOD && tall && options.Length == EODLength.Medium; EODSubShortLength.Visible = inEOD && !tall && options.Length == EODLength.Short; EODSubShortLengthTall.Visible = inEOD && tall && options.Length == EODLength.Short; EODMsgWinLong.Visible = inEOD && options.Tips == EODTextTips.Long; EODMsgWinShort.Visible = inEOD && options.Tips == EODTextTips.Short; EODTimer.Visible = inEOD && options.Timer == EODs.EODTimer.Normal; MsgWinTextEntry.Visible = inEOD && options.Tips != EODTextTips.None; TimerTextEntry.Visible = inEOD && options.Timer != EODs.EODTimer.None; MoodPanelButton.Position = (eodPresent) ? new Vector2(20, 7) : new Vector2(31, 63); if (EODImage.Texture != null) EODImage.Texture.Dispose(); EODImage.Texture = null; if (inEOD) { Add(ActiveEOD); ActiveEOD.Position = new Vector2(120, 0); } if (eodPresent) { Vector2 TopXOffset = new Vector2(); Vector2 MoodButtonOff = new Vector2(); var offHeight = options.Height; if (HideEOD) offHeight = EODHeight.Normal; switch (offHeight) { case EODHeight.Normal: TopXOffset = (Vector2)Script.GetControlProperty("EODActiveOffset"); MoodButtonOff = TopXOffset; break; case EODHeight.Tall: TopXOffset = (Vector2)Script.GetControlProperty("EODActiveOffset"); MoodButtonOff = (Vector2)Script.GetControlProperty("EODActiveOffsetTall"); break; } MoodPanelButton.Position += MoodButtonOff; EODCloseButton.Position = EODCloseBase + TopXOffset; EODHelpButton.Position = EODHelpBase + MoodButtonOff; EODButton.Position = (Vector2)Script.GetControlProperty("EODButtonPosition") + MoodButtonOff; var ava = SelectedAvatar; if (ava != null) { var blockInfo = ava.Thread.BlockingState; if (blockInfo is VMEODPluginThreadState) { var eodInfo = (VMEODPluginThreadState)blockInfo; var entity = LotController.vm.GetObjectById(eodInfo.ObjectID); if (entity is VMGameObject) { var objects = entity.MultitileGroup.Objects; ObjectComponent[] objComps = new ObjectComponent[objects.Count]; for (int i = 0; i < objects.Count; i++) { objComps[i] = (ObjectComponent)objects[i].WorldUI; } var thumb = LotController.World.GetObjectThumb(objComps, entity.MultitileGroup.GetBasePositions(), GameFacade.GraphicsDevice); EODImage.Texture = thumb; } } } if (EODImage.Texture != null) { var imgScale = 22f / Math.Max(EODImage.Texture.Width, EODImage.Texture.Height); EODImage.SetSize(EODImage.Texture.Width * imgScale, EODImage.Texture.Height * imgScale); EODImage.Position = EODButton.Position + new Vector2((EODButton.Texture.Width / 4 - EODImage.Width) / 2, (EODButton.Texture.Height - EODImage.Height) / 2); } } this.Y = (inEOD && options.Height == EODHeight.Tall) ? 41: 61; Divider.Visible = !inEOD; MotiveDisplay.Visible = !inEOD; PersonGrid.Visible = !inEOD; MotivesLabel.Visible = !inEOD; PeopleListBg.Visible = !inEOD; PreviousPageButton.Visible = !inEOD; NextPageButton.Visible = !inEOD; Background.Visible = !inEOD; PersonGrid.Columns = (eodPresent || (GlobalSettings.Default.GraphicsWidth < 1024)) ?4:9; PersonGrid.DrawPage(); PeopleListBg.Texture = (eodPresent && PeopleListEODBackgroundImg != null) ? PeopleListEODBackgroundImg : PeopleListBackgroundImg; PeopleListBg.SetSize(PeopleListBg.Texture.Width, PeopleListBg.Texture.Height); var small800 = (GlobalSettings.Default.GraphicsWidth < 1024) || FSOEnvironment.UIZoomFactor > 1f; NextPageButton.Position = (eodPresent && !small800) ? (Vector2)Script.GetControlProperty("NextPageEODButton") : DefaultNextPagePos; Background.Texture = (eodPresent) ? BackgroundEODImg : DefaultBGImage; Background.SetSize(Background.Texture.Width, Background.Texture.Height); UpdateThumbPosition(); }