private void UpdateViewLayer(ViewLayer layer) { if (currentRoom == null) { return; } switch (layer) { case ViewLayer.Both: mapGridBox.Image = OverlayImage(mapLayers[1], mapLayers[0]); viewLayer = ViewLayer.Both; topTileTab.Enabled = true; bottomTileTab.Enabled = true; break; case ViewLayer.Top: mapGridBox.Image = mapLayers[0]; tileTabControl.SelectedIndex = 0; viewLayer = ViewLayer.Top; selectedTileData = topTileGridBox.SelectedIndex; topTileTab.Enabled = true; bottomTileTab.Enabled = false; break; case ViewLayer.Bottom: mapGridBox.Image = mapLayers[1]; tileTabControl.SelectedIndex = 1; viewLayer = ViewLayer.Bottom; selectedTileData = bottomTileGridBox.SelectedIndex; bottomTileTab.Enabled = true; topTileTab.Enabled = false; break; } }
public ViewSetting(string key, Func <GameObject, ViewComp> addCompCb, bool isImportant, ViewLayer layer, ViewType viewType) { Key = key; AddCompCb = addCompCb; IsImportant = isImportant; Layer = layer; ViewType = viewType; }
public Mobile(Serial serial) : base(serial) { LastAnimationChangeTime = Engine.Ticks; CalculateRandomIdleTime(); _frames = new ViewLayer[(int)Layer.Legs]; HasShadow = true; }
public static IPattern Create(INamespace rootNamespace, Assembly assembly) { var logicLayer = new LogicLayer(rootNamespace, assembly); var viewModelLayer = new ViewModelLayer(rootNamespace, assembly); var viewLayer = new ViewLayer(rootNamespace, assembly); return(new MvvmPattern(logicLayer, viewModelLayer, viewLayer)); }
protected EditingView(ICommonNodeFactory commonNodeFactory, INavigationService navigationService) { this.navigationService = navigationService; FocusNode = commonNodeFactory.WorldRoot(false); var scene = Scene.Create(FocusNode); mainLayer = new ViewLayer { VisibleScene = scene, Camera = new PlaneOrthoBoundControlledCamera(FocusNode, PlaneOrthoBoundControlledCamera.Props.Default, false) }; Layers = new[] { mainLayer }; }
protected StoryGraphView(IStoryService storyService) { this.storyService = storyService; scene = storyService.EditingScene; GetCameraProps(scene, out var cameraProps, out var cameraBounds); camera = new PlaneOrthoBoundControlledCamera(scene.Root, cameraProps, true, cameraBounds); mainLayer = new ViewLayer { VisibleScene = scene, Camera = camera }; Layers = new[] { mainLayer }; }
public DebugVrPresentationView(INavigationService navigationService, IStoryService storyService, IUserQueryService userQueryService, ICommonNodeFactory commonNodeFactory, IAppModeService appModeService, IGlobalObjectService globalObjectService) { this.navigationService = navigationService; this.storyService = storyService; this.userQueryService = userQueryService; this.appModeService = appModeService; uiCarrier = globalObjectService.UICarrier; uiCanvas = uiCarrier.EnumerateChildren().Single(); var canvasTransform = uiCanvas.GetComponent <RectTransform>(); canvasTransform.sizeDelta = new Vector2(Screen.width, Screen.height); mainLayer = new ViewLayer(); Layers = new[] { mainLayer }; }
private static int GetMaxDepth(ViewLayer layer) { int depth = 100 * (int)layer; int minDepth = 1000; int maxDepth = depth; foreach (IView view in openViewList) { if (view.layerType == layer) { UIPanel[] panels = view.gameObject.GetComponentsInChildren <UIPanel>(true); foreach (UIPanel panel in panels) { if (maxDepth < panel.depth) { maxDepth = panel.depth; } if (minDepth > panel.depth) { minDepth = panel.depth; } } } } //统一调整基准点 foreach (IView view in openViewList) { if (view.layerType == layer) { UIPanel[] panels = view.gameObject.GetComponentsInChildren <UIPanel>(true); foreach (UIPanel panel in panels) { panel.depth = panel.depth - minDepth + depth; } } } if (maxDepth - minDepth + depth < depth) { return(depth); } else { return(maxDepth - minDepth + depth); } }
public VrPresentationView(IStoryService storyService, INavigationService navigationService, IGlobalObjectService globalObjectService, IUserQueryService userQueryService, IVrInputDispatcher vrInputDispatcher) { this.storyService = storyService; this.navigationService = navigationService; this.userQueryService = userQueryService; this.globalObjectService = globalObjectService; this.vrInputDispatcher = vrInputDispatcher; camera = new VrCamera(globalObjectService); layer = new ViewLayer { Camera = camera, VisibleScene = null }; Layers = new IViewLayer[] { layer }; }
protected PresentationView(INavigationService navigationService, IStoryService storyService, IUserQueryService userQueryService, ICommonNodeFactory commonNodeFactory, IAppModeService appModeService) { this.navigationService = navigationService; this.storyService = storyService; this.userQueryService = userQueryService; this.appModeService = appModeService; mainLayer = new ViewLayer(); userQueryLayer = new ViewLayer(); Layers = new[] { mainLayer, userQueryLayer }; querySceneComponent = AmFactory.Create <UserQuerySceneComponent>(); var uqSceneRoot = commonNodeFactory.WorldRoot(false); uqSceneRoot.Components.Add(querySceneComponent); var uqScene = Scene.Create(uqSceneRoot); var uqCamera = new PlaneOrthoBoundControlledCamera(uqSceneRoot, PlaneOrthoBoundControlledCamera.Props.Default, false); userQueryLayer.VisibleScene = uqScene; userQueryLayer.Camera = uqCamera; }
//public MobileView(Mobile mobile) : base(mobile) //{ //} public override bool Draw(Batcher2D batcher, Vector3 position, MouseOverList objectList) { if (IsDisposed) { return(false); } //mobile.AnimIndex = 0; bool mirror = false; byte dir = (byte)GetDirectionForAnimation(); FileManager.Animations.GetAnimDirection(ref dir, ref mirror); IsFlipped = mirror; SetupLayers(dir, this, out int mountOffset); if (Graphic == 0) { return(false); } AnimationFrameTexture bodyFrame = _frames[0].Hash; // FileManager.Animations.GetTexture(_frames[0].Hash); if (bodyFrame == null) { return(false); } int drawCenterY = bodyFrame.CenterY; int drawX; int drawY = mountOffset + drawCenterY + (int)(Offset.Z / 4) - 22 - (int)(Offset.Y - Offset.Z - 3); if (IsFlipped) { drawX = -22 + (int)Offset.X; } else { drawX = -22 - (int)Offset.X; } /*if (_frames[0].IsSitting) * { * int x1 = 0, y1 = 0; * FileManager.Animations.FixSittingDirection(ref dir, ref mirror, ref x1, ref y1); * }*/ FrameInfo = Rectangle.Empty; Rectangle rect = Rectangle.Empty; Hue hue = 0, targetColor = 0; if (Engine.Profile.Current.HighlightMobilesByFlags) { if (IsPoisoned) { hue = 0x0044; } if (IsParalyzed) { hue = 0x014C; } if (NotorietyFlag != NotorietyFlag.Invulnerable && IsYellowHits) { hue = 0x0030; } } bool isAttack = Serial == World.LastAttack; bool isUnderMouse = IsSelected && (TargetManager.IsTargeting || World.Player.InWarMode); bool needHpLine = false; if (this != World.Player && (isAttack || isUnderMouse || TargetManager.LastGameObject == Serial)) { targetColor = Notoriety.GetHue(NotorietyFlag); if (isAttack || this == TargetManager.LastGameObject) { Engine.UI.SetTargetLineGump(this); //if (TargetLineGump.TTargetLineGump?.Mobile != this) //{ // if (TargetLineGump.TTargetLineGump == null || TargetLineGump.TTargetLineGump.IsDisposed) // { // TargetLineGump.TTargetLineGump = new TargetLineGump(); // Engine.UI.Add(TargetLineGump.TTargetLineGump); // } // else // { // TargetLineGump.TTargetLineGump.SetMobile(this); // } //} needHpLine = true; } if (isAttack || isUnderMouse) { hue = targetColor; } } for (int i = 0; i < _layerCount; i++) { ViewLayer vl = _frames[i]; AnimationFrameTexture frame = vl.Hash; //FileManager.Animations.GetTexture(vl.Hash); if (frame.IsDisposed) { continue; } int x = drawX + frame.CenterX; int y = -drawY - (frame.Height + frame.CenterY) + drawCenterY - vl.OffsetY; int yy = -(frame.Height + frame.CenterY + 3); int xx = -frame.CenterX; if (mirror) { xx = -(frame.Width - frame.CenterX); } if (xx < rect.X) { rect.X = xx; } if (yy < rect.Y) { rect.Y = yy; } if (rect.Width < xx + frame.Width) { rect.Width = xx + frame.Width; } if (rect.Height < yy + frame.Height) { rect.Height = yy + frame.Height; } Texture = frame; Bounds = new Rectangle(x, -y, frame.Width, frame.Height); if (Engine.Profile.Current.NoColorObjectsOutOfRange && Distance > World.ViewRange) { HueVector = new Vector3(Constants.OUT_RANGE_COLOR, 1, HueVector.Z); } else if (World.Player.IsDead && Engine.Profile.Current.EnableBlackWhiteEffect) { HueVector = new Vector3(Constants.DEAD_RANGE_COLOR, 1, HueVector.Z); } else { HueVector = ShaderHuesTraslator.GetHueVector(IsHidden ? 0x038E : hue == 0 ? vl.Hue : hue, vl.IsPartial, 0, false); } base.Draw(batcher, position, objectList); Pick(frame, Bounds, position, objectList); } FrameInfo.X = Math.Abs(rect.X); FrameInfo.Y = Math.Abs(rect.Y); FrameInfo.Width = FrameInfo.X + rect.Width; FrameInfo.Height = FrameInfo.Y + rect.Height; //if (needHpLine) //{ // //position.X += Engine.Profile.Current.GameWindowPosition.X + 9; // //position.Y += Engine.Profile.Current.GameWindowPosition.Y + 30; // //TargetLineGump.TTargetLineGump.X = (int)(position.X /*+ 22*/ + Offset.X); // //TargetLineGump.TTargetLineGump.Y = (int)(position.Y /*+ 22 + (mobile.IsMounted ? 22 : 0) */+ Offset.Y - Offset.Z - 3); // //TargetLineGump.TTargetLineGump.BackgroudHue = targetColor; // //if (IsPoisoned) // // TargetLineGump.TTargetLineGump.HpHue = 63; // //else if (IsYellowHits) // // TargetLineGump.TTargetLineGump.HpHue = 53; // //else // // TargetLineGump.TTargetLineGump.HpHue = 90; // Engine.UI.SetTargetLineGumpHue(targetColor); //} //if (_edge == null) //{ // _edge = new Texture2D(batcher.GraphicsDevice, 1, 1); // _edge.SetData(new Color[] { Color.LightBlue }); //} //batcher.DrawRectangle(_edge, GetOnScreenRectangle(), Vector3.Zero); Engine.DebugInfo.MobilesRendered++; return(true); }
// Update is called once per frame void Update() { /////////////////// Load Player if (recvMsg.Count <= peopleNum && flag == false) { recvMsg = LoadController.LoadCharacter(); for (int i = 0; i < recvMsg.Count; i++) { //Debug.Log(recvMsg[i].Username); if (GameObject.Find(recvMsg[i].Username) == null) { //Debug.Log(recvMsg[i].Username); ModelLayer.CreateCharacter(recvMsg[i]); ViewLayer.CreateCharacter(recvMsg[i], playerObject); } } } //Debug.Log(recvMsg.Count + " " + flag); if (recvMsg.Count == peopleNum && flag == false) { for (int i = 0; i < peopleNum; i++) { Debug.Log("index = " + i + ", name = " + ModelLayer.PlayerName[i] + ", id = " + ModelLayer.PlayerMap[ModelLayer.PlayerName[i]]); } startTime = Time.time + 3f; flag = true; } /////////////////// Player Operation if (flag == true && Time.time >= startTime) { ModelLayer.RefreshMessage(username); ModelLayer.MovePosition(username); //Debug.Log("1 " + ModelLayer.msg.Optype); Skill0Button.onClick.AddListener( delegate { ModelLayer.ReleaseSkill0(username); } ); Skill1Button.onClick.AddListener( delegate { ModelLayer.ReleaseSkill1(username); } ); //Debug.Log("2 " + ModelLayer.msg.Optype + " " + ModelLayer.skillQueue.Count); ModelLayer.SendMessage(); //Debug.Log("3 " + ModelLayer.msg.Optype); ModelLayer.ReceiveMessage(); int userId = ModelLayer.PlayerMap[username]; int diff = ModelLayer.SkillNextFrame[userId][0] - ModelLayer.clientFrame; if (diff >= 0) { Skill0CD.text = (diff / 20).ToString(); } else { Skill0CD.text = ""; } diff = ModelLayer.SkillNextFrame[userId][1] - ModelLayer.clientFrame; if (diff >= 0) { Skill1CD.text = (diff / 20).ToString(); } else { Skill1CD.text = ""; } ViewLayer.MovePosition(); ViewLayer.PlayerAnimation(); } }
void LateUpdate() { ViewLayer.LateUpdate(mainCamera.transform); }
private static int GetMaxDepth(ViewLayer layer,UIPanel[] panels) { int depth = 100 * (int)layer; int minDepth = 1000; int maxDepth = depth; foreach(IView view in viewList) { if(view.layer==layer) { foreach(UIPanel panel in panels) { //if (maxDepth < panel.depth) maxDepth = panel.depth; //if (minDepth > panel.depth) minDepth = panel.depth; } } } foreach(IView view in viewList) { if(view.layer==layer) { foreach(UIPanel panel in panels) { //panel.depth = penel.depth - minDepth + depth; } } } return (maxDepth-minDepth+depth)<depth?depth:(maxDepth-minDepth+depth); }
public override bool Draw(Batcher2D batcher, Vector3 position, MouseOverList objectList) { if (GameObject.IsDisposed) { return(false); } Mobile mobile = (Mobile)GameObject; bool mirror = false; byte dir = (byte)mobile.GetDirectionForAnimation(); Animations.GetAnimDirection(ref dir, ref mirror); IsFlipped = mirror; SetupLayers(dir, mobile, out int mountOffset); AnimationFrameTexture bodyFrame = Animations.GetTexture(_frames[0].Hash); if (bodyFrame == null) { return(false); } int drawCenterY = bodyFrame.CenterY; int drawX; int drawY = mountOffset + drawCenterY + (int)(mobile.Offset.Z / 4) - 22 - (int)(mobile.Offset.Y - mobile.Offset.Z - 3); if (IsFlipped) { drawX = -22 + (int)mobile.Offset.X; } else { drawX = -22 - (int)mobile.Offset.X; } FrameInfo = Rectangle.Empty; Rectangle rect = Rectangle.Empty; for (int i = 0; i < _layerCount; i++) { ViewLayer vl = _frames[i]; AnimationFrameTexture frame = Animations.GetTexture(vl.Hash); if (frame.IsDisposed) { continue; } int x = drawX + frame.CenterX; int y = -drawY - (frame.Height + frame.CenterY) + drawCenterY - vl.OffsetY; int yy = -(frame.Height + frame.CenterY + 3); int xx = -frame.CenterX; if (mirror) { xx = -(frame.Width - frame.CenterX); } if (xx < rect.X) { rect.X = xx; } if (yy < rect.Y) { rect.Y = yy; } if (rect.Width < xx + frame.Width) { rect.Width = xx + frame.Width; } if (rect.Height < yy + frame.Height) { rect.Height = yy + frame.Height; } Texture = frame; Bounds = new Rectangle(x, -y, frame.Width, frame.Height); HueVector = ShaderHuesTraslator.GetHueVector(mobile.IsHidden ? 0x038E : vl.Hue, vl.IsParital, 0, false); base.Draw(batcher, position, objectList); Pick(frame, Bounds, position, objectList); } FrameInfo.X = Math.Abs(rect.X); FrameInfo.Y = Math.Abs(rect.Y); FrameInfo.Width = FrameInfo.X + rect.Width; FrameInfo.Height = FrameInfo.Y + rect.Height; MessageOverHead(batcher, position, mobile.IsMounted ? 0 : -22); //OverheadManager damageManager = Engine.SceneManager.GetScene<GameScene>().Overheads; //if (mobile.Name != null && mobile.Name.ToLower().Contains("trunks")) //{ //} //if (damageManager.HasOverhead(GameObject) || damageManager.HasDamage(GameObject)) //{ // GetAnimationDimensions(mobile, 0xFF, out int height, out int centerY); // var overheadPosition = new Vector3 // { // X = position.X + mobile.Offset.X, // Y = position.Y + (mobile.Offset.Y - mobile.Offset.Z) - (height + centerY + 8), // Z = position.Z // }; // damageManager.UpdatePosition(mobile, overheadPosition); //} //if (_edge == null) //{ // _edge = new Texture2D(batcher.GraphicsDevice, 1, 1); // _edge.SetData(new Color[] { Color.LightBlue }); //} //batcher.DrawRectangle(_edge, GetOnScreenRectangle(), Vector3.Zero); return(true); }