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(); }
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); } }
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); } }
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); } }
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); } }
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; }
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); }
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); } }
public void UpdateInteractionIcon() { UI.Icon = UIIconCache.GetObject(IconOwner); }