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 Simantics(VM vm) { this.vm = vm; InitializeComponent(); ActiveEntity = vm.Entities.FirstOrDefault(x => x is VMAvatar); aq = new ActionQueue(); aq.Show(); aq.target = ActiveEntity; }
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 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); 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; } }
/// <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; }
// End Container SLOTs interface public List<VMPieMenuInteraction> GetPieMenu(VM vm, VMEntity caller) { var pie = new List<VMPieMenuInteraction>(); if (TreeTable == null) return pie; for (int i = 0; i < TreeTable.Interactions.Length; i++) { var action = TreeTable.Interactions[i]; bool CanRun = false; if (action.TestFunction != 0 && (((TTABFlags)action.Flags & TTABFlags.Debug) != TTABFlags.Debug)) { caller.ObjectData[(int)VMStackObjectVariable.HideInteraction] = 0; var Behavior = GetBHAVWithOwner(action.TestFunction, vm.Context); CanRun = (VMThread.EvaluateCheck(vm.Context, caller, new VMQueuedAction() { Callee = this, CodeOwner = Behavior.owner, StackObject = this, Routine = vm.Assemble(Behavior.bhav), }) == VMPrimitiveExitCode.RETURN_TRUE); if (caller.ObjectData[(int)VMStackObjectVariable.HideInteraction] == 1) CanRun = false; } else { CanRun = true; } if (CanRun) pie.Add(new VMPieMenuInteraction() { Name = TreeTableStrings.GetString((int)action.TTAIndex), ID = (byte)action.TTAIndex }); } return pie; }
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 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; }