public void PopulateList(FAMI family)
        {
            var world = new FSO.LotView.World(GameFacade.GraphicsDevice);

            world.Initialize(GameFacade.Scenes);
            var context = new VMContext(world);
            var vm      = new VM(context, new VMServerDriver(new VMTS1GlobalLinkStub()), new VMNullHeadlineProvider());

            vm.Init();
            var blueprint = new Blueprint(1, 1);

            //world.InitBlueprint(blueprint);
            context.Blueprint    = blueprint;
            context.Architecture = new VMArchitecture(1, 1, blueprint, vm.Context);

            int i     = 0;
            var baseX = 0;

            foreach (var sim in family.FamilyGUIDs)
            {
                var fam = vm.Context.CreateObjectInstance(sim, LotTilePos.OUT_OF_WORLD, Direction.NORTH, true).BaseObject;
                var btn = new UIAvatarSelectButton(UIIconCache.GetObject(fam));
                btn.Opacity = 1f;
                var id = i;
                btn.Name = fam.Name;
                btn.X    = baseX + (i++) * 100;
                btn.Y    = 0;
                btn.DeregisterHandler();
                Btns.Add(btn);
                Add(btn);
                fam.Delete(true, vm.Context);
            }
            world.Dispose();
        }
Пример #2
0
        public void InitAvatarList(uint[] guids, VM vm)
        {
            int i = 0;

            foreach (var btn in Btns)
            {
                Remove(btn);
            }
            Btns.Clear();

            i = 0;
            var baseX = MaxWidth / 2 - (guids.Length - 1) * 50;

            foreach (var sim in guids)
            {
                var fam = vm.Context.CreateObjectInstance(sim, LotTilePos.OUT_OF_WORLD, Direction.NORTH).BaseObject;
                fam.Tick();
                var btn = new UIAvatarSelectButton(UIIconCache.GetObject(fam));
                btn.Opacity = 1f;
                var id = i;
                btn.Name = fam.Name;
                btn.X    = baseX + (i++) * 100;
                btn.Y    = 88;
                btn.DeregisterHandler();
                Btns.Add(btn);
                Add(btn);
                fam.Delete(true, vm.Context);
            }
        }
Пример #3
0
        public UISwitchAvatarPanel(TS1GameScreen screen)
        {
            Game = screen;
            Bg   = Content.Get().CustomUI.Get("pswitch_bg.png").Get(GameFacade.GraphicsDevice);

            var familyMembers = Game.vm.Context.ObjectQueries.Avatars.Where(x => ((VMAvatar)x).GetPersonData(FSO.SimAntics.Model.VMPersonDataVariable.TS1FamilyNumber) == (Game.vm.CurrentFamily.ChunkID));
            int i             = 0;

            foreach (var fam in familyMembers)
            {
                var btn = new UIAvatarSelectButton(UIIconCache.GetObject(fam));
                if (fam.PersistID > 0)
                {
                    btn.Outlined = true;
                }
                btn.Opacity = 0f;
                var id = fam.ObjectID;
                btn.OnButtonClick += (b) => { Select(id); };
                btn.Y              = 64;
                GameFacade.Screens.Tween.To(btn, 0.3f, new Dictionary <string, float>()
                {
                    { "X", 185 + (i++) * 100 }, { "Opacity", 1f }
                }, TweenQuad.EaseOut);
                Add(btn);
            }
        }
Пример #4
0
        public UISwitchAvatarPanel(TS1GameScreen screen)
        {
            Game = screen;
            Bg   = Content.Get().CustomUI.Get("pswitch_bg.png").Get(GameFacade.GraphicsDevice);

            var familyMembers = Game.vm.Context.ObjectQueries.Avatars.Where(x => Game.vm.TS1State.CurrentFamily.RuntimeSubset.Contains(x.Object.OBJ.GUID));
            int i             = 0;

            foreach (var fam in familyMembers)
            {
                var btn = new UIAvatarSelectButton(UIIconCache.GetObject(fam));
                btn.Name = fam.Name;
                if (fam.PersistID > 0)
                {
                    btn.Outlined = true;
                }
                btn.Opacity = 0f;
                var id = fam.ObjectID;
                btn.OnButtonClick += (b) => { Select(id); };
                btn.Y              = 54;
                GameFacade.Screens.Tween.To(btn, 0.3f, new Dictionary <string, float>()
                {
                    { "X", 185 + (i++) * 100 }, { "Opacity", 1f }
                }, TweenQuad.EaseOut);
                Add(btn);
            }
        }
Пример #5
0
        public override void Update(UpdateState state)
        {
            base.Update(state);
            var sel = Game.SelectedAvatar;

            MotiveLevel = (sel?.GetMotiveData(FSO.SimAntics.Model.VMMotive.Mood) ?? 0) / 100f;

            if (Avatar != sel)
            {
                Avatar     = sel;
                AvatarHead = (Avatar == null)?null:UIIconCache.GenHeadTex(Avatar);
            }
        }
Пример #6
0
        public UIRelationshipDisplay(int nidFrom, int nid, VM curVM) : base()
        {
            NameLabel = new UILabel();
            NameLabel.CaptionStyle       = NameLabel.CaptionStyle.Clone();
            NameLabel.CaptionStyle.Color = UIStyle.Current.Text;
            NameLabel.CaptionStyle.Size  = 10;
            NameLabel.Wrapped            = true;
            NameLabel.Size      = new Vector2(80, 33);
            NameLabel.Position  = new Vector2(5, 5);
            NameLabel.Alignment = TextAlignment.Middle | TextAlignment.Center;
            Add(NameLabel);

            Bar1          = new UIMotiveBar();
            Bar1.ScaleX   = Bar1.ScaleY = 0.5f;
            Bar1.Position = new Vector2(8, 94);
            Add(Bar1);

            Bar2          = new UIMotiveBar();
            Bar2.ScaleX   = Bar2.ScaleY = 0.5f;
            Bar2.Position = new Vector2(8, 106);
            Add(Bar2);

            ItemBg = Content.Get().CustomUI.Get("inv_item.png").Get(GameFacade.GraphicsDevice);

            var neighbourhood = Content.Get().Neighborhood;
            var n             = neighbourhood.GetNeighborByID((short)nid);
            var obj           = Content.Get().WorldObjects.Get(n.GUID);

            if (obj != null)
            {
                var aobj = curVM.Context.CreateObjectInstance(n.GUID, LotTilePos.OUT_OF_WORLD, Direction.NORTH, true);
                Item = UIIconCache.GetObject(aobj.BaseObject);
                aobj.Delete(curVM.Context);
                var ctss = obj.Resource.Get <CTSS>(obj.OBJ.CatalogStringsID);
                //todo: family name
                NameLabel.Caption = ctss?.GetString(0) ?? obj.OBJ.ChunkLabel;
            }
            NIDF = nidFrom;
            NID  = nid;
        }
Пример #7
0
        public override Texture2D GetIcon(GraphicsDevice gd, int store)
        {
            var icon = new Texture2D(gd, 0, 0);

            if (Avatar.Head == null && Avatar.Body == null)
            {
                return(null);
            }
            Outfit ThumbOutfit  = (Avatar.Head == null) ? Avatar.Body : Avatar.Head;
            var    AppearanceID = ThumbOutfit.GetAppearance(Avatar.Appearance);
            var    Appearance   = FSO.Content.Content.Get().AvatarAppearances.Get(AppearanceID);

            if (IsPet)
            {
                icon = UIIconCache.GetObject(this);
            }
            else
            {
                icon = FSO.Content.Content.Get().AvatarThumbnails.Get(Appearance.ThumbnailTypeID, Appearance.ThumbnailFileID).Get(gd);
            }


            return(icon);
        }
Пример #8
0
        public void InitAvatarList()
        {
            int i = 0;

            foreach (var btn in Btns)
            {
                Remove(btn);
            }
            Btns.Clear();

            i = 0;
            var baseX = UIScreen.Current.ScreenWidth / 2 - (Avatars.Count()) * 50;

            foreach (var fam in Avatars)
            {
                var btn = new UIAvatarSelectButton(UIIconCache.GetObject(fam));
                btn.Opacity = 1f;
                var id = i;
                btn.OnButtonClick += (b) => { Select(id); };
                btn.Name           = fam.Name;
                btn.X              = baseX + (i++) * 100;
                btn.Y              = 50;
                Btns.Add(btn);
                Add(btn);
            }
            var btn2 = new UIAvatarSelectButton(Content.Get().CustomUI.Get("cas_new_plus.png").Get(GameFacade.GraphicsDevice));

            btn2.Opacity = 1f;
            var id2 = i;

            btn2.OnButtonClick += (b) => { Select(id2); };
            btn2.X              = baseX + (i++) * 100;
            btn2.Y              = 50;
            Btns.Add(btn2);
            Add(btn2);
        }
        private void NeighbourList_OnSelectionChange(int obj)
        {
            if (Icon != null)
            {
                Remove(Icon); Icon = null;
            }
            if (obj == -1)
            {
                SelectedNeighbour   = -1;
                CallButton.Disabled = true;
            }
            else
            {
                SelectedNeighbour   = NeighborsByFamilyID.ElementAt(SelectedFamily).Value[obj];
                CallButton.Disabled = false;

                var guid = Content.Get().Neighborhood.GetNeighborByID(SelectedNeighbour).GUID;
                var temp = VM.Context.CreateObjectInstance(guid, LotTilePos.OUT_OF_WORLD, Direction.NORTH, true);
                Icon          = new UIAvatarSelectButton(UIIconCache.GetObject(temp.BaseObject));
                Icon.Position = new Microsoft.Xna.Framework.Vector2(892, 60);
                Add(Icon);
                temp.Delete(VM.Context);
            }
        }
Пример #10
0
 public void UpdateInteractionIcon()
 {
     UI.Icon = UIIconCache.GetObject(IconOwner);
 }