Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
 public ViewSetting(string key, Func <GameObject, ViewComp> addCompCb, bool isImportant, ViewLayer layer, ViewType viewType)
 {
     Key         = key;
     AddCompCb   = addCompCb;
     IsImportant = isImportant;
     Layer       = layer;
     ViewType    = viewType;
 }
Esempio n. 3
0
        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));
        }
Esempio n. 5
0
        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 };
        }
Esempio n. 6
0
 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 };
        }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 9
0
        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
            };
        }
Esempio n. 10
0
        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;
        }
Esempio n. 11
0
        //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);
 }
Esempio n. 14
0
 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);
 }
Esempio n. 15
0
        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);
        }