예제 #1
0
파일: ILItem.cs 프로젝트: mortend/uno
        bool CanShow(VisibilityFlags flags)
        {
            var obj    = Object;
            var dt     = obj as DataType;
            var member = obj as Member;
            var block  = obj as Block;
            var mp     = obj as MetaProperty;

            return(!(flags.HasFlag(VisibilityFlags.PublicOnly) && (
                         dt != null && !dt.IsPublic ||
                         member != null && !member.IsPublic ||
                         mp != null && !mp.IsPublic ||
                         block != null && !block.IsPublic ||
                         block == null && this is BlockItem ||
                         this is DefinitionCollection) ||
                     flags.HasFlag(VisibilityFlags.ProjectOnly) &&
                     this is PackageItem && !((PackageItem)this).Package.Flags.HasFlag(SourcePackageFlags.Startup) ||
                     Children.Count == 0 && (
                         this is ReferenceCollection ||
                         this is ResourceCollection ||
                         this is ParameterizationCollection ||
                         this is DefinitionCollection ||
                         this is OverloadCollection ||
                         this is FolderBase
                         )));
        }
예제 #2
0
 public VisibilityFlagsHolder(int sizeX, int sizeY, int sizeZ)
 {
     _x   = sizeX;
     _y   = sizeY;
     _z   = sizeZ;
     Data = new VisibilityFlags[sizeX * sizeY * sizeZ];
 }
예제 #3
0
 public static void SetTabBarVisibility(VisibilityFlags flag)
 {
     _tabLayout.Visibility = flag switch
     {
         VisibilityFlags.Invisible => ViewStates.Gone,
         VisibilityFlags.Visible => ViewStates.Visible,
         _ => _tabLayout.Visibility
     };
 }
예제 #4
0
        //animated showing Run Bar
        public static void SetRunBarVisibility(VisibilityFlags flag)
        {
            switch (flag)
            {
            case VisibilityFlags.Invisible:
                _runBar.Animate().TranslationY(250);
                AnimatedListResizing(_lstMinHeight, _lstMaxHeight);
                break;

            case VisibilityFlags.Visible:
                _runBar.Animate().TranslationY(0);
                AnimatedListResizing(_lstMaxHeight, _lstMinHeight);
                break;
            }
        }
예제 #5
0
파일: ILItem.cs 프로젝트: mortend/uno
        public string GetText(Disassembler disasm, VisibilityFlags flags)
        {
            try
            {
                disasm.Clear();
                Disassemble(disasm, flags.HasFlag(VisibilityFlags.PublicOnly));
            }
            catch (Exception e)
            {
                disasm.AppendLine();
                disasm.Append(e);
                disasm.AppendLine();
            }

            return(disasm.GetText());
        }
예제 #6
0
파일: ILItem.cs 프로젝트: mortend/uno
        public void UpdateVisibility(VisibilityFlags flags)
        {
            IsVisible = CanShow(flags);

            if (!IsVisible)
            {
                return;
            }
            foreach (var c in Children)
            {
                c.UpdateVisibility(flags);
            }

            int childCount = GetVisibleChildCount();

            if (this is NamespaceItem ||
                this is ParameterizationCollection ||
                this is ReferenceCollection ||
                this is ResourceCollection ||
                this is FolderBase)
            {
                Suffix = "(" + childCount + (
                    this is FolderBase || this is ResourceCollection
                            ? " file" :
                    this is ReferenceCollection
                            ? " package"
                            : " item"
                    ) + (
                    childCount != 1
                            ? "s"
                            : null
                    ) + ")";
                OnPropertyChanged("HasSuffix");
                OnPropertyChanged("Suffix");
            }
        }
        public void UpdateVisualizer()
        {
            if (Window == null || !Window.IsVisible)
            {
                return;
            }

            if (!ZetaDia.IsInGame)
            {
                return;
            }

            using (new PerformanceLogger("Visualizer Update"))
            {
                if (DateTime.UtcNow.Subtract(LastRefresh).TotalMilliseconds <= RefreshRateMs || IsPaused)
                {
                    return;
                }

                LastRefresh = DateTime.UtcNow;

                var objects = Core.Targets.ToList();
                foreach (var obj in objects)
                {
                    obj.Position = obj.Position;
                }
                var queryableObjects = ApplySort(objects.AsQueryable());

                Objects = new ObservableCollection <TrinityActor>(queryableObjects);

                if (VisibilityFlags.HasFlag(RadarVisibilityFlags.NotInCache))
                {
                    if (DateTime.UtcNow.Subtract(LastUpdatedNotInCacheObjects).TotalMilliseconds > 150)
                    {
                        NotInCacheObjects            = new List <TrinityActor>(Core.Targets.Ignored);
                        LastUpdatedNotInCacheObjects = DateTime.UtcNow;
                    }
                }
                else
                {
                    NotInCacheObjects.Clear();
                }

                //if (!IsMouseOverGrid)
                //{
                switch (SelectedTab)
                {
                case Tab.Actors:
                    var allobjects = new List <TrinityActor>(Objects);
                    allobjects.AddRange(NotInCacheObjects);
                    AllObjects = new ObservableCollection <TrinityActor>(allobjects);
                    break;

                case Tab.Markers:
                    AllMarkers = new ObservableCollection <TrinityMarker>(Core.Markers);
                    break;

                case Tab.Minimap:
                    AllMinimap = new ObservableCollection <TrinityMinimapIcon>(Core.Minimap.MinimapIcons);
                    break;
                }
                //}
                //else
                //{
                //    Core.Logger.Verbose("Skipping grid update so grid items can be clicked properly");
                //}

                CurrentTarget = TrinityCombat.Targeting.CurrentTarget;
                Player        = Core.Player.Actor;
                if (Player != null)
                {
                    PlayerPositionX = Player.Position.X;
                    PlayerPositionY = Player.Position.Y;
                    PlayerPositionZ = Player.Position.Z;
                    WorldSnoId      = Core.Player.WorldSnoId;
                    LevelAreaSnoId  = Core.Player.LevelAreaId;
                    PlayerRotation  = MathUtil.RadianToDegree(Player.Rotation);
                    IsStuck         = Navigator.StuckHandler.IsStuck;
                    IsBlocked       = PlayerMover.IsBlocked;
                    OnPropertyChanged(nameof(Player));
                }

                if (!_listeningForStatChanges)
                {
                    AddStatChangerListeners();
                }

                OnPropertyChanged(nameof(CurrentTarget));
                //OnPropertyChanged(nameof(SelectedObject));
            }
        }
예제 #8
0
 public static void Unset(VisibilityFlags flags, VisibilityFlags flag)
 {
     flags = (flags & (~flag));
 }
예제 #9
0
 public static void Set(ref VisibilityFlags flags, VisibilityFlags flag)
 {
     flags = (flags | flag);
 }
예제 #10
0
 public static bool IsSet(this VisibilityFlags flags, VisibilityFlags flag)
 {
     return((flags & flag) != 0);
 }
예제 #11
0
        public static void GenerateFullBlockSimple(GeneratableMesh meshInfo, BlockDescription desc, BlockData data, Vector3 rootPos, VisibilityFlags visibility, LightInfo light)
        {
            var pointer = meshInfo.Vertices.Count;
            var tile    = desc.Subtypes[Mathf.Clamp(data.Subtype, 0, desc.Subtypes.Count - 1)].FaceTiles[0];
            var uvs     = GetCachedUVsForTile(tile);
            var h       = (byte)(data.AddColor >> 8);
            var l       = (byte)(data.AddColor % 256);

            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Backward))
            {
                var calcColor = new Color32(light.SunBackward, light.OBackward, h, l);
                AddPlaneWithUVs(meshInfo, _fullBlockBackSide, uvs, rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Forward))
            {
                var calcColor = new Color32(light.SunForward, light.OForward, h, l);
                AddPlaneWithUVs(meshInfo, _fullBlockFrontSide, uvs, rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Left))
            {
                var calcColor = new Color32(light.SunLeft, light.OLeft, h, l);
                AddPlaneWithUVs(meshInfo, _fullBlockLeftSide, uvs, rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Right))
            {
                var calcColor = new Color32(light.SunRight, light.ORight, h, l);
                AddPlaneWithUVs(meshInfo, _fullBlockRightSide, uvs, rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Up))
            {
                var calcColor = new Color32(light.SunUp, light.OUp, h, l);
                AddPlaneWithUVs(meshInfo, _fullBlockUpSide, uvs, rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Down))
            {
                var calcColor = new Color32(light.SunDown, light.ODown, h, l);
                AddPlaneWithUVs(meshInfo, _fullBlockDownSide, uvs, rootPos, pointer, calcColor);
                pointer += 4;
            }
        }
예제 #12
0
        public static void GenerateCrossedVPlanes(GeneratableMesh meshInfo, BlockDescription desc, BlockData data, Vector3 rootPos, VisibilityFlags visibility)
        {
            var pointer   = meshInfo.Vertices.Count;
            var tile      = desc.Subtypes[Mathf.Clamp(data.Subtype, 0, desc.Subtypes.Count - 1)].FaceTiles[0];
            var calcColor = new Color32(data.SunLevel, data.LightLevel, (byte)(data.AddColor >> 8), (byte)(data.AddColor % 256));

            AddPlane(meshInfo, _rotVertPlaneVerts_0, tile, rootPos, pointer, calcColor);
            pointer += 4;
            AddPlane(meshInfo, _rotVertPlaneVerts_1, tile, rootPos, pointer, calcColor);
            pointer += 4;
            AddPlaneInv(meshInfo, _rotVertPlaneVerts_0, _helper, tile, rootPos, pointer, calcColor);
            pointer += 4;
            AddPlaneInv(meshInfo, _rotVertPlaneVerts_1, _helper, tile, rootPos, pointer, calcColor);
            pointer += 4;
        }
예제 #13
0
        //Неполные блоки не рисуем только если они полностью ограждены полными блоками.
        public static void GenerateHorizontalPlane(GeneratableMesh meshInfo, BlockDescription desc, BlockData data, Vector3 rootPos, VisibilityFlags visibility)
        {
            if (visibility == VisibilityFlags.None)
            {
                return;
            }
            var pointer   = meshInfo.Vertices.Count;
            var h         = (byte)(data.AddColor >> 8);
            var l         = (byte)(data.AddColor % 256);
            var calcColor = new Color32(data.SunLevel, data.LightLevel, h, l);

            AddPlane(meshInfo, _horizontalPlaneVerts, desc.Subtypes[Mathf.Clamp(data.Subtype, 0, desc.Subtypes.Count - 1)].FaceTiles[0], rootPos, pointer, calcColor);
        }
예제 #14
0
        public static void GenerateHalfBlockDown(GeneratableMesh meshInfo, BlockDescription desc, BlockData data, Vector3 rootPos, VisibilityFlags visibility, LightInfo light)
        {
            var pointer = meshInfo.Vertices.Count;
            var sub     = desc.Subtypes[Mathf.Clamp(data.Subtype, 0, desc.Subtypes.Count - 1)];
            var h       = (byte)(data.AddColor >> 8);
            var l       = (byte)(data.AddColor % 256);

            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Backward))
            {
                var calcColor = new Color32(light.SunBackward, light.OBackward, h, l);
                AddPlane(meshInfo, _halfBlockDBackSide, sub.FaceTiles[0], rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Forward))
            {
                var calcColor = new Color32(light.SunForward, light.OForward, h, l);
                AddPlane(meshInfo, _halfBlockDFrontSide, sub.FaceTiles[1], rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Left))
            {
                var calcColor = new Color32(light.SunLeft, light.OLeft, h, l);
                AddPlane(meshInfo, _halfBlockDLeftSide, sub.FaceTiles[2], rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Right))
            {
                var calcColor = new Color32(light.SunRight, light.ORight, h, l);
                AddPlane(meshInfo, _halfBlockDRightSide, sub.FaceTiles[3], rootPos, pointer, calcColor);
                pointer += 4;
            }

            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Up))
            {
                var calcColor = new Color32(light.SunUp, light.OUp, h, l);
                AddPlane(meshInfo, _halfBlockDUpside, sub.FaceTiles[4], rootPos, pointer, calcColor);
                pointer += 4;
            }
            if (VisibilityFlagsHelper.IsSet(visibility, VisibilityFlags.Down))
            {
                var calcColor = new Color32(light.SunDown, light.ODown, h, l);
                AddPlane(meshInfo, _fullBlockDownSide, sub.FaceTiles[5], rootPos, pointer, calcColor);
                pointer += 4;
            }
        }
예제 #15
0
 public VisibilityMode(string name, VisibilityFlags flags)
 {
     Name  = name;
     Flags = flags;
 }