public void InitializeLot() { CleanupLastWorld(); if (FSOEnvironment.Enable3D) { World = new FSO.LotView.RC.WorldRC(GameFacade.GraphicsDevice); } else { World = new FSO.LotView.World(GameFacade.GraphicsDevice); } World.Opacity = 1; GameFacade.Scenes.Add(World); var globalLink = new VMTSOGlobalLinkStub(); Driver = new VMServerDriver(globalLink); vm = new VM(new VMContext(World), Driver, new UIHeadlineRendererProvider()); vm.ListenBHAVChanges(); vm.Init(); LotControl = new UILotControl(vm, World); this.AddAt(0, LotControl); Frontend = new UISimitoneFrontend(this); this.Add(Frontend); var time = DateTime.UtcNow; var tsoTime = TSOTime.FromUTC(time); vm.Context.Clock.Hours = tsoTime.Item1; vm.Context.Clock.Minutes = tsoTime.Item2; if (m_ZoomLevel > 3) { World.Visible = false; LotControl.Visible = false; } ZoomLevel = Math.Max(ZoomLevel, 4); if (IDEHook.IDE != null) { IDEHook.IDE.StartIDE(vm); } vm.OnFullRefresh += VMRefreshed; //vm.OnEODMessage += LotControl.EODs.OnEODMessage; vm.OnRequestLotSwitch += VMLotSwitch; vm.OnGenericVMEvent += Vm_OnGenericVMEvent; }
public void InitializeLot(string lotName, bool external) { if (lotName == "") { return; } InitializeLot(); if (!external) { if (!Downtown && ActiveFamily != null) { ActiveFamily.SelectWholeFamily(); vm.ActivateFamily(ActiveFamily); } BlueprintReset(lotName); vm.TSOState.Size = (10) | (3 << 8); vm.Context.UpdateTSOBuildableArea(); vm.MyUID = 1; var settings = GlobalSettings.Default; var myClient = new VMNetClient { PersistID = 1, RemoteIP = "local", AvatarState = new VMNetAvatarPersistState() { Name = settings.LastUser ?? "", DefaultSuits = new VMAvatarDefaultSuits(settings.DebugGender), BodyOutfit = settings.DebugBody, HeadOutfit = settings.DebugHead, PersistID = 1, SkinTone = (byte)settings.DebugSkin, Gender = (short)(settings.DebugGender ? 1 : 0), Permissions = FSO.SimAntics.Model.TSOPlatform.VMTSOAvatarPermissions.Admin, Budget = 1000000 } }; var server = (VMServerDriver)Driver; server.ConnectClient(myClient); GameFacade.Cursor.SetCursor(CursorType.Normal); ZoomLevel = 1; } Frontend = new UISimitoneFrontend(this); this.Add(Frontend); }
public void InitializeLot(VMMarshal marshal) { InitializeLot(); vm.MyUID = 1; vm.Load(marshal); vm.TS1State.ActivateFamily(vm, ActiveFamily); var settings = GlobalSettings.Default; var myClient = new VMNetClient { PersistID = 1, RemoteIP = "local", AvatarState = new VMNetAvatarPersistState() { Name = settings.LastUser ?? "", DefaultSuits = new VMAvatarDefaultSuits(settings.DebugGender), BodyOutfit = settings.DebugBody, HeadOutfit = settings.DebugHead, PersistID = 1, SkinTone = (byte)settings.DebugSkin, Gender = (short)(settings.DebugGender ? 1 : 0), Permissions = FSO.SimAntics.Model.TSOPlatform.VMTSOAvatarPermissions.Admin, Budget = 1000000 } }; var server = (VMServerDriver)Driver; server.ConnectClient(myClient); GameFacade.Cursor.SetCursor(CursorType.Normal); ZoomLevel = 1; Frontend = new UISimitoneFrontend(this); this.Add(Frontend); }
public void InitializeLot(string lotName, bool external) { if (lotName == "" || lotName[0] == '!') { return; } InitializeLot(); if (!external) { if (!Downtown && ActiveFamily != null) { ActiveFamily.SelectWholeFamily(); vm.TS1State.ActivateFamily(vm, ActiveFamily); } BlueprintReset(lotName, null); if (vm.LoadErrors.Count > 0) { GameThread.NextUpdate((state) => ShowLoadErrors(vm.LoadErrors, true)); } vm.MyUID = 1; var settings = GlobalSettings.Default; var myClient = new VMNetClient { PersistID = 1, RemoteIP = "local", AvatarState = new VMNetAvatarPersistState() { Name = settings.LastUser ?? "", DefaultSuits = new VMAvatarDefaultSuits(settings.DebugGender), BodyOutfit = settings.DebugBody, HeadOutfit = settings.DebugHead, PersistID = 1, SkinTone = (byte)settings.DebugSkin, Gender = (short)(settings.DebugGender ? 1 : 0), Permissions = FSO.SimAntics.Model.TSOPlatform.VMTSOAvatarPermissions.Admin, Budget = 1000000 } }; if (Downtown) { var ngbh = Content.Get().Neighborhood; var crossData = ngbh.GameState; var neigh = ngbh.GetNeighborIDForGUID(crossData.DowntownSimGUID); if (neigh != null) { var inv = ngbh.GetInventoryByNID(neigh.Value); if (inv != null) { var hr = inv.FirstOrDefault(x => x.Type == 2 && x.GUID == 7)?.Count ?? 0; var min = inv.FirstOrDefault(x => x.Type == 2 && x.GUID == 8)?.Count ?? 0; Driver.SendCommand(new VMNetSetTimeCmd() { Hours = hr, Minutes = min, }); } } } var server = (VMServerDriver)Driver; server.ConnectClient(myClient); LoadSurrounding(short.Parse(lotName.Substring(lotName.Length - 6, 2))); GameFacade.Cursor.SetCursor(CursorType.Normal); ZoomLevel = 1; } Frontend = new UISimitoneFrontend(this); this.Add(Frontend); }