public UIFloorPainter(VM vm, World world, UILotControl parent, List<int> parameters) { Pattern = (ushort)parameters[0]; this.vm = vm; World = parent.World; Parent = parent; Commands = new List<VMArchitectureCommand>(); }
public UIWallPainter(VM vm, World world, UILotControl parent, List<int> parameters) { Pattern = (ushort)parameters[0]; this.vm = vm; World = parent.World; Parent = parent; WallCursor = vm.Context.CreateObjectInstance(0x00000439, LotTilePos.OUT_OF_WORLD, tso.world.model.Direction.NORTH); ((ObjectComponent)WallCursor.Objects[0].WorldUI).ForceDynamic = true; Commands = new List<VMArchitectureCommand>(); SetCursorGraphic(2); }
/// <summary> /// Creates a new UILotControl instance. /// </summary> /// <param name="vm">A SimAntics VM instance.</param> /// <param name="World">A World instance.</param> public UILotControl(TSO.Simantics.VM vm, World World) { this.vm = vm; this.World = World; ActiveEntity = vm.Entities.FirstOrDefault(x => x is VMAvatar); MouseEvt = this.ListenForMouse(new Microsoft.Xna.Framework.Rectangle(0, 0, GlobalSettings.Default.GraphicsWidth, GlobalSettings.Default.GraphicsHeight), OnMouse); testimg = new UIImage(); testimg.X = 20; testimg.Y = 20; this.Add(testimg); Queue = new UIInteractionQueue(ActiveEntity); this.Add(Queue); }
public LotDebugScreen() { var lotInfo = XmlHouseData.Parse(GameFacade.GameFilePath("housedata/blueprints/restaurant01_00.xml")); World = new World(GameFacade.Game.GraphicsDevice); GameFacade.Scenes.Add(World); vm = new TSO.Simantics.VM(new VMContext(World)); vm.Init(); var activator = new VMWorldActivator(vm, World); var blueprint = activator.LoadFromXML(lotInfo); World.InitBlueprint(blueprint); vm.Context.Blueprint = blueprint; var sim = activator.CreateAvatar(); //sim.Position = new Vector3(31.5f, 55.5f, 0.0f); sim.Position = new Vector3(26.5f, 41.5f, 0.0f); VMDebug = new UIButton() { Caption = "Simantics", Y = 45, Width = 100, X = GlobalSettings.Default.GraphicsWidth - 110 }; VMDebug.OnButtonClick += new ButtonClickDelegate(VMDebug_OnButtonClick); this.Add(VMDebug); LotController = new UILotControl(vm, World); this.AddAt(0, LotController); ucp = new UIUCP(this); ucp.Y = ScreenHeight - 210; ucp.SetInLot(true); ucp.SetMode(UIUCP.UCPMode.LotMode); ucp.SelectedAvatar = sim; ucp.SetPanel(1); //ucp.ZoomLevel = 1; //ucp.OnZoomChanged += new UCPZoomChangeEvent(ucp_OnZoomChanged); //ucp.OnRotateChanged += new UCPRotateChangeEvent(ucp_OnRotateChanged); this.Add(ucp); }
public UIWallPlacer(VM vm, World world, UILotControl parent, List<int> parameters) { Pattern = (ushort)parameters[0]; Style = (ushort)parameters[1]; if (Style == 1) { DrawPattern = 255; DrawStyle = 255; } else { DrawPattern = Pattern; DrawStyle = Style; } this.vm = vm; World = parent.World; Parent = parent; WallCursor = vm.Context.CreateObjectInstance(0x00000439, LotTilePos.OUT_OF_WORLD, tso.world.model.Direction.NORTH); ((ObjectComponent)WallCursor.Objects[0].WorldUI).ForceDynamic = true; }
public VMContext(World world) { this.World = world; this.Clock = new VMClock(); this.Ambience = new VMAmbientSound(); ObjectsAt = new List<Dictionary<int, List<short>>>(); RandomSeed = (ulong)((new Random()).NextDouble() * UInt64.MaxValue); //when resuming state, this should be set. Clock.TicksPerMinute = 30; //1 minute per irl second AddPrimitive(new VMPrimitiveRegistration(new VMSleep()) { Opcode = 0, Name = "sleep", OperandModel = typeof(VMSleepOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMGenericTSOCall()) { Opcode = 1, Name = "generic_sims_online_call", OperandModel = typeof(VMGenericTSOCallOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMExpression()) { Opcode = 2, Name = "expression", OperandModel = typeof(VMExpressionOperand) }); //TODO: Report Metric AddPrimitive(new VMPrimitiveRegistration(new VMGrab()) { Opcode = 4, Name = "grab", OperandModel = typeof(VMGrabOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMDrop()) { Opcode = 5, Name = "drop", OperandModel = typeof(VMDropOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMChangeSuitOrAccessory()) { Opcode = 6, Name = "change_suit_or_accessory", OperandModel = typeof(VMChangeSuitOrAccessoryOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRefresh()) { Opcode = 7, Name = "refresh", OperandModel = typeof(VMRefreshOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRandomNumber()) { Opcode = 8, Name = "random_number", OperandModel = typeof(VMRandomNumberOperand) }); //TODO: burn //Sims 1.0 tutorial AddPrimitive(new VMPrimitiveRegistration(new VMGetDistanceTo()) { Opcode = 11, Name = "get_distance_to", OperandModel = typeof(VMGetDistanceToOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMGetDirectionTo()) { Opcode = 12, Name = "get_direction_to", OperandModel = typeof(VMGetDirectionToOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMPushInteraction()) { Opcode = 13, Name = "push_interaction", OperandModel = typeof(VMPushInteractionOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMFindBestObjectForFunction()) { Opcode = 14, Name = "find_best_object_for_function", OperandModel = typeof(VMFindBestObjectForFunctionOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMBreakPoint()) { Opcode = 15, Name = "breakpoint", OperandModel = typeof(VMBreakPointOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMFindLocationFor()) { Opcode = 16, Name = "find_location_for", OperandModel = typeof(VMFindLocationForOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMIdleForInput()) { Opcode = 17, Name = "idle_for_input", OperandModel = typeof(VMIdleForInputOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRemoveObjectInstance()) { Opcode = 18, Name = "remove_object_instance", OperandModel = typeof(VMRemoveObjectInstanceOperand) }); //Make new character AddPrimitive(new VMPrimitiveRegistration(new VMRunFunctionalTree()) { Opcode = 20, Name = "run_functional_tree", OperandModel = typeof(VMRunFunctionalTreeOperand) }); //Show string: may be used but no functional result. AddPrimitive(new VMPrimitiveRegistration(new VMLookTowards()) { Opcode = 22, Name = "look_towards", OperandModel = typeof(VMLookTowardsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMPlaySound()) { Opcode = 23, Name = "play_sound", OperandModel = typeof(VMPlaySoundOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRelationship()) { Opcode = 24, Name = "old_relationship", OperandModel = typeof(VMOldRelationshipOperand) //same primitive, different operand }); AddPrimitive(new VMPrimitiveRegistration(new VMTransferFunds()) { Opcode = 25, Name = "transfer_funds", OperandModel = typeof(VMTransferFundsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRelationship()) { Opcode = 26, Name = "relationship", OperandModel = typeof(VMRelationshipOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMGotoRelativePosition()) { Opcode = 27, Name = "goto_relative", OperandModel = typeof(VMGotoRelativePositionOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRunTreeByName()) { Opcode = 28, Name = "run_tree_by_name", OperandModel = typeof(VMRunTreeByNameOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSetMotiveChange()) { Opcode = 29, Name = "set_motive_deltas", OperandModel = typeof(VMSetMotiveChangeOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSysLog()) { Opcode = 30, Name = "syslog", OperandModel = typeof(VMSysLogOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSetToNext()) { Opcode = 31, Name = "set_to_next", OperandModel = typeof(VMSetToNextOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMTestObjectType()) { Opcode = 32, Name = "test_object_type", OperandModel = typeof(VMTestObjectTypeOperand) }); //TODO: find 5 worst motives //TODO: ui effect (used?) AddPrimitive(new VMPrimitiveRegistration(new VMSpecialEffect()) { Opcode = 35, Name = "special_effect", OperandModel = typeof(VMSpecialEffectOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMDialogPrivateStrings()) { Opcode = 36, Name = "dialog_private", OperandModel = typeof(VMDialogStringsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMTestSimInteractingWith()) { Opcode = 37, Name = "test_sim_interacting_with", OperandModel = typeof(VMTestSimInteractingWithOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMDialogGlobalStrings()) { Opcode = 38, Name = "dialog_global", OperandModel = typeof(VMDialogStringsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMDialogSemiGlobalStrings()) { Opcode = 39, Name = "dialog_semiglobal", OperandModel = typeof(VMDialogStringsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMOnlineJobsCall()) { Opcode = 40, Name = "online_jobs_call", OperandModel = typeof(VMOnlineJobsCallOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSetBalloonHeadline()) { Opcode = 41, Name = "set_balloon_headline", OperandModel = typeof(VMSetBalloonHeadlineOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMCreateObjectInstance()) { Opcode = 42, Name = "create_object_instance", OperandModel = typeof(VMCreateObjectInstanceOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMDropOnto()) { Opcode = 43, Name = "drop_onto", OperandModel = typeof(VMDropOntoOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMAnimateSim()) { Opcode = 44, Name = "animate", OperandModel = typeof(VMAnimateSimOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMGotoRoutingSlot()) { Opcode = 45, Name = "goto_routing_slot", OperandModel = typeof(VMGotoRoutingSlotOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSnap()) //not functional right now { Opcode = 46, Name = "snap", OperandModel = typeof(VMSnapOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMReach()) { Opcode = 47, Name = "reach", OperandModel = typeof(VMReachOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMStopAllSounds()) { Opcode = 48, Name = "stop_all_sounds", OperandModel = typeof(VMStopAllSoundsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMNotifyOutOfIdle()) { Opcode = 49, Name = "stackobj_notify_out_of_idle", OperandModel = typeof(VMAnimateSimOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMChangeActionString()) { Opcode = 50, Name = "change_action_string", OperandModel = typeof(VMChangeActionStringOperand) }); //lots of unused primitives. see http://simantics.wikidot.com/wiki:primitives //TODO: Send Maxis Letter AddPrimitive(new VMPrimitiveRegistration(new VMInvokePlugin()) { Opcode = 62, Name = "invoke_plugin", OperandModel = typeof(VMInvokePluginOperand) }); //TODO: Get Terrain Info //UNUSED: Leave Lot and Goto AddPrimitive(new VMPrimitiveRegistration(new VMFindBestAction()) { Opcode = 65, Name = "find_best_action", OperandModel = typeof(VMFindBestActionOperand) }); //TODO: Set Dynamic Object Name //TODO: Inventory Operations }
/// <summary> /// Creates a new WorldState instance. /// </summary> /// <param name="device">A GraphicsDevice used for rendering.</param> /// <param name="worldPxWidth">Width of world in pixels.</param> /// <param name="worldPxHeight">Height of world in pixels.</param> /// <param name="world">A World instance.</param> public WorldState(GraphicsDevice device, float worldPxWidth, float worldPxHeight, World world) { this.Device = device; this.World = world; this.WorldCamera = new WorldCamera(device); WorldSpace = new WorldSpace(worldPxWidth, worldPxHeight, this); Zoom = WorldZoom.Near; Rotation = WorldRotation.TopLeft; Level = 1; }
public VMWorldActivator(VM vm, World world) { this.VM = vm; this.World = world; }
/// <summary> /// Creates a new UILotControl instance. /// </summary> /// <param name="vm">A SimAntics VM instance.</param> /// <param name="World">A World instance.</param> public UILotControl(TSO.Simantics.VM vm, World World) { this.vm = vm; this.World = World; ActiveEntity = vm.Entities.FirstOrDefault(x => x is VMAvatar); MouseEvt = this.ListenForMouse(new Microsoft.Xna.Framework.Rectangle(0, 0, GlobalSettings.Default.GraphicsWidth, GlobalSettings.Default.GraphicsHeight), OnMouse); testimg = new UIImage(); testimg.X = 20; testimg.Y = 20; this.Add(testimg); Queue = new UIInteractionQueue(ActiveEntity); this.Add(Queue); ObjectHolder = new UIObjectHolder(vm, World, this); QueryPanel = new UIQueryPanel(World); QueryPanel.OnSellBackClicked += ObjectHolder.SellBack; QueryPanel.X = 177; QueryPanel.Y = GlobalSettings.Default.GraphicsHeight - 228; this.Add(QueryPanel); vm.OnDialog += vm_OnDialog; }
public WorldState(GraphicsDevice device, float worldPxWidth, float worldPxHeight, World world) { this.Device = device; this.World = world; //this.OrthographicCamera = new OrthographicCamera(device, Vector3.Zero, Vector3.Zero, Vector3.Up); this.WorldCamera = new WorldCamera(device); //OrthographicCamera.AspectRatioMultiplier = 0.96f; //OrthographicCamera.AspectRatioMultiplier = 1.03f; WorldSpace = new WorldSpace(worldPxWidth, worldPxHeight, this); Zoom = WorldZoom.Near; Rotation = WorldRotation.TopRight; }
public LotScreenNew() { var lotInfo = XmlHouseData.Parse(GameFacade.GameFilePath("housedata/blueprints/restaurant07_00.xml")); World = new World(); GameFacade.Scenes.Add(World); vm = new VM(new VMContext(World)); vm.Init(); var activator = new VMWorldActivator(vm, World); var blueprint = activator.LoadFromXML(lotInfo); World.InitBlueprint(blueprint); vm.Context.Blueprint = blueprint; var sim = activator.CreateAvatar(); //sim.Position = new Vector3(31.5f, 55.5f, 0.0f); sim.Position = new Vector3(26.5f, 41.5f, 0.0f); VMDebug = new UIButton() { Caption = "Simantics", Y = 45, Width = 100, X = GlobalSettings.Default.GraphicsWidth - 110 }; VMDebug.OnButtonClick += new ButtonClickDelegate(VMDebug_OnButtonClick); this.Add(VMDebug); //var lotInfo = HouseData.Parse("C:\\restaurant00_00_small.xml"); //for (int i = 1; i < 64; i++) //{ // lotInfo.World.Floors.Add(new HouseDataFloor { // X = 1, // Y = i, // Level = 0, // Value = 9 // }); //} //lotInfo.World.Floors.Add(new HouseDataFloor { // X = 0, Y = 0, // Level = 0, Value = 20 //}); //lotInfo.World.Floors.Add(new HouseDataFloor //{ // X = 63, // Y = 63, // Level = 0, // Value = 40 //}); //lotInfo.World.Floors.Add(new HouseDataFloor //{ // X = 0, // Y = 63, // Level = 0, // Value = 20 //}); //lotInfo.World.Floors.Add(new HouseDataFloor //{ // X = 63, // Y = 0, // Level = 0, // Value = 20 //}); //Renderer = new HouseRenderer(); //Renderer.SetModel(lotInfo); ////Renderer.Position = new Microsoft.Xna.Framework.Vector3(-32.0f, -40.0f, 0.0f); //var scene = new ThreeDScene(); //var focusPoint = Vector3.Zero; //var yValue = (float)Math.Cos(MathHelper.ToRadians(30.0f)) * 96.0f; //var cameraOffset = new Vector3(-96.0f, yValue, 96.0f); //var rotatedOffset = Vector3.Transform(cameraOffset, Microsoft.Xna.Framework.Matrix.CreateRotationY(MathHelper.PiOver2 * 0.5f)); ////rotatedOffset = Vector3.Transform(rotatedOffset, Microsoft.Xna.Framework.Matrix.CreateScale(3f)); ////Renderer.Position = new Vector3(-96.0f, 0.0f, -96.0f); //scene.Camera.Position = cameraOffset;// new Microsoft.Xna.Framework.Vector3(0, 0, 80); //scene.Add(Renderer); //Renderer.Scale = new Vector3(0.005f); //GameFacade.Scenes.AddScene(scene); ucp = new UIUCP(); ucp.Y = ScreenHeight - 210; ucp.OnZoomChanged += new UCPZoomChangeEvent(ucp_OnZoomChanged); ucp.OnRotateChanged += new UCPRotateChangeEvent(ucp_OnRotateChanged); this.Add(ucp); }
public VMContext(World world) { this.World = world; this.Clock = new VMClock(); AddPrimitive(new VMPrimitiveRegistration(new VMGotoRoutingSlot()) { Opcode = 45, Name = "goto_routing_slot", OperandModel = typeof(VMGotoRoutingSlotOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMAnimateSim()) { Opcode = 44, Name = "animate", OperandModel = typeof(VMAnimateSimOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRunTreeByName()) { Opcode = 28, Name = "run_tree_by_name", OperandModel = typeof(VMRunTreeByNameOperand) }); AddPrimitive(new VMPrimitiveRegistration (new VMExpression()) { Opcode = 2, Name = "expression", OperandModel = typeof(VMExpressionOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRandomNumber()) { Opcode = 8, Name = "random_number", OperandModel = typeof(VMRandomNumberOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMPlaySound()) { Opcode = 23, Name = "play_sound", OperandModel = typeof(VMPlaySoundOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSleep()) { Opcode = 0, Name = "sleep", OperandModel = typeof(VMSleepOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMRefresh()) { Opcode = 7, Name = "refresh", OperandModel = typeof(VMRefreshOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMNotifyOutOfIdle()) { Opcode = 49, Name = "stackobj_notify_out_of_idle", OperandModel = typeof(VMAnimateSimOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSetMotiveChange()) { Opcode = 29, Name = "set_motive_deltas", OperandModel = typeof(VMSetMotiveChangeOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMChangeSuitOrAccessory()) { Opcode = 6, Name = "change_suit_or_accessory", OperandModel = typeof(VMChangeSuitOrAccessoryOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMTransferFunds()) { Opcode = 25, Name = "transfer_funds", OperandModel = typeof(VMTransferFundsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSetToNext()) { Opcode = 31, Name = "set_to_next", OperandModel = typeof(VMSetToNextOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMGotoRelativePosition()) { Opcode = 27, Name = "goto_relative", OperandModel = typeof(VMGotoRelativePositionOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMTestObjectType()) { Opcode = 32, Name = "test_object_type", OperandModel = typeof(VMTestObjectTypeOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSpecialEffect()) { Opcode = 35, Name = "special_effect", OperandModel = typeof(VMSpecialEffectOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMSetBalloonHeadline()) { Opcode = 41, Name = "set_balloon_headline", OperandModel = typeof(VMSetBalloonHeadlineOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMDialogPrivateStrings()) { Opcode = 36, Name = "dialog_private", OperandModel = typeof(VMDialogPrivateStringsOperand) }); AddPrimitive(new VMPrimitiveRegistration(new VMStopAllSounds()) { Opcode = 48, Name = "stop_all_sounds", OperandModel = typeof(VMStopAllSoundsOperand) }); }
public UIObjectHolder(VM vm, World World, UILotControl parent) { this.vm = vm; this.World = World; ParentControl = parent; }
public void InitTestLot() { var lotInfo = XmlHouseData.Parse(GameFacade.GameFilePath("housedata/blueprints/restaurant08_00.xml")); World = new World(GameFacade.Game.GraphicsDevice); GameFacade.Scenes.Add(World); vm = new TSO.Simantics.VM(new VMContext(World)); vm.Init(); var activator = new VMWorldActivator(vm, World); var blueprint = activator.LoadFromXML(lotInfo); World.InitBlueprint(blueprint); vm.Context.Blueprint = blueprint; var sim = activator.CreateAvatar(); sim.Position = new Vector3(26.5f, 41.5f, 0.0f); var sim2 = activator.CreateAvatar(); sim2.Position = new Vector3(27.5f, 41.5f, 0.0f); /*for (float x = 30.5f; x < 40.5; x+=1.0f) { for (float y = 42.5f; y < 52.5; y += 1.0f) { var sim3 = activator.CreateAvatar(); sim3.Position = new Vector3(x, y, 0.0f); } }*/ LotController = new UILotControl(vm, World); this.AddAt(0, LotController); vm.Context.Clock.Hours = 6; ucp.SelectedAvatar = sim; ucp.SetInLot(true); if (m_ZoomLevel > 3) World.Visible = false; }
public UIQueryPanel(World world) { World = world; Active = false; Opacity = 0; Visible = false; AdStrings = new string[14]; for (int i = 0; i < 14; i++) { string str = GameFacade.Strings.GetString("206", (i + 4).ToString()); AdStrings[i] = ((i<7)?str.Substring(0,str.Length-2)+"{0}":str) + "\r\n"; } var script = this.RenderScript("querypanel"+((GlobalSettings.Default.GraphicsWidth < 1024)?"":"1024")+".uis"); //NOTE: the background and position of this element changes with the context it is used in. //other elements that are only used for certain modes will be flagged as such with comments. QuerybackPanel = new UIImage(BackgroundImagePanel); QuerybackPanel.Y = 0; QuerybackPanel.BlockInput(); this.AddAt(0, QuerybackPanel); QuerybackCatalog = new UIImage(BackgroundImageCatalog); QuerybackCatalog.Position = new Vector2(-22, 0); QuerybackCatalog.BlockInput(); this.AddAt(1, QuerybackCatalog); QuerybackTrade = new UIImage(BackgroundImageTrade); QuerybackTrade.Y = 0; QuerybackTrade.BlockInput(); this.AddAt(2, QuerybackTrade); //init general tab specific backgrounds DescriptionBackgroundImage = new UIImage(ImageDescriptionBackground); DescriptionBackgroundImage.Position = new Microsoft.Xna.Framework.Vector2(119, 7); this.AddAt(3, DescriptionBackgroundImage); MotivesBackgroundImage = new UIImage(ImageMotivesBackground); MotivesBackgroundImage.Position = new Microsoft.Xna.Framework.Vector2((GlobalSettings.Default.GraphicsWidth < 1024)?395:619, 7); this.AddAt(3, MotivesBackgroundImage); GeneralTabImage = new UIImage(ImageGeneralTab); GeneralTabImage.Position = new Microsoft.Xna.Framework.Vector2((GlobalSettings.Default.GraphicsWidth < 1024) ? 563 : 787, 0); this.AddAt(3, GeneralTabImage); SpecificTabImage = new UIImage(ImageSpecificTab); SpecificTabImage.Position = new Microsoft.Xna.Framework.Vector2((GlobalSettings.Default.GraphicsWidth < 1024) ? 563 : 787, 0); this.AddAt(3, SpecificTabImage); OwnerPriceBack = new UIImage(GeneralOwnerPriceBack); OwnerPriceBack.Position = new Microsoft.Xna.Framework.Vector2((GlobalSettings.Default.GraphicsWidth < 1024) ? 501 : 725, 80); this.AddAt(3, OwnerPriceBack); Thumbnail = new UIImage(); Thumbnail.Position = new Vector2(24, 11); Thumbnail.SetSize(90, 90); this.Add(Thumbnail); DescriptionText.CurrentText = "No Object Selected"; //user should not see this. DescriptionSlider.AttachButtons(DescriptionScrollUpButton, DescriptionScrollDownButton, 1); DescriptionText.AttachSlider(DescriptionSlider); MotivesText.CurrentText = ""; MotivesSlider.AttachButtons(MotivesScrollUpButton, MotivesScrollDownButton, 1); MotivesText.AttachSlider(MotivesSlider); GeneralTabButton.OnButtonClick += new ButtonClickDelegate(GeneralTabButton_OnButtonClick); SpecificTabButton.OnButtonClick += new ButtonClickDelegate(SpecificTabButton_OnButtonClick); SellBackButton.OnButtonClick += new ButtonClickDelegate(SellBackButton_OnButtonClick); Mode = 1; Tab = 0; }
public void InitTestLot(string path) { var lotInfo = XmlHouseData.Parse(path); if (vm != null) CleanupLastWorld(); World = new World(GameFacade.Game.GraphicsDevice); GameFacade.Scenes.Add(World); vm = new TSO.Simantics.VM(new VMContext(World)); vm.Init(); var activator = new VMWorldActivator(vm, World); var blueprint = activator.LoadFromXML(lotInfo); World.InitBlueprint(blueprint); vm.Context.Blueprint = blueprint; var sim = activator.CreateAvatar(); sim.Position = LotTilePos.FromBigTile(56, 33, 1); var sim2 = activator.CreateAvatar(); sim2.Position = LotTilePos.FromBigTile(56, 34, 1); var mailbox = vm.Entities.First(x => (x.Object.OBJ.GUID == 0xEF121974 || x.Object.OBJ.GUID == 0x1D95C9B0)); VMFindLocationFor.FindLocationFor(sim, mailbox, vm.Context); VMFindLocationFor.FindLocationFor(sim2, mailbox, vm.Context); HITVM.Get().PlaySoundEvent("lot_enter"); World.State.CenterTile = new Vector2(sim.VisualPosition.X, sim.VisualPosition.Y); LotController = new UILotControl(vm, World); this.AddAt(0, LotController); vm.Context.Clock.Hours = 10; ucp.SelectedAvatar = sim; ucp.SetInLot(true); if (m_ZoomLevel > 3) World.Visible = false; ZoomLevel = 1; }