예제 #1
0
 public static void Load()
 {
     foreach (Enigma.D3.Assets.Scene Scene in SNO.GetContainer <Enigma.D3.Assets.Scene>(Enigma.D3.Enums.SnoGroupId.Scene))
     {
         SNOScenes.Add(Scene.x000_Header.x00_SnoId, new SceneNavContainer(Scene.x180_NavZoneDefinition.x08_NavCells));
     }
 }
예제 #2
0
            public void GetItems()
            {
                if (UIControl == null)
                {
                    CreateUIControl();
                }

                int Tab = ActiveTab();

                if (_ActiveTab != Tab)
                {
                    UIControl.Wipe();
                    InventoryActors.Clear();
                }

                _ActiveTab = Tab;

                foreach (var Item in Controller.GameManagerData.GameManagerAccountHelper.Current.DiabloIII.ObjectManager.Storage.ActorCommonDataManager.Dereference().x00_ActorCommonData)
                {
                    if (!Item.IsItem())
                    {
                        continue;
                    }

                    int Seed = Attributes.Seed.GetValue(Item);

                    if (InventoryActors.ContainsKey(Seed))
                    {
                        if (InventoryActors[Seed].Actor.x114_ItemLocation != Enigma.D3.Enums.ItemLocation.Stash)
                        {
                            InventoryActors.Remove(Seed);
                            continue;
                        }

                        InventoryActors[Seed].ValidatePosition();
                        continue;
                    }

                    else if (Item.x114_ItemLocation == Enigma.D3.Enums.ItemLocation.Stash)
                    {
                        var Sno = SNO.TryGet(Item);

                        if (!EqualityComparer <SNO.ItemData> .Default.Equals(Sno, default(SNO.ItemData)) && ((LegendaryItemsTypes)Sno.ItemType != LegendaryItemsTypes.LegendaryGem))
                        {
                            continue;
                        }

                        if (Item.x11C_ItemSlotY >= (TabsY * Tab) && Item.x11C_ItemSlotY < (TabsY * Tab) + TabsY)
                        {
                            InventoryActors.Add(Seed, new InventoryHelper(Item));
                        }
                    }
                }
            }
예제 #3
0
        public static bool TryAdd(int SceneID)
        {
            foreach (Enigma.D3.Assets.Scene Scene in SNO.GetContainer <Enigma.D3.Assets.Scene>(Enigma.D3.Enums.SnoGroupId.Scene))
            {
                if (Scene.x000_Header.x00_SnoId == SceneID)
                {
                    SNOScenes.Add(Scene.x000_Header.x00_SnoId, new SceneNavContainer(Scene.x180_NavZoneDefinition.x08_NavCells));
                    return(true);
                }
            }

            return(false);
        }