Exemple #1
0
 public void Cleanup()
 {
   if(_sim != null) {
     _sim.Disconnect();
     _sim = null;
   }
 }
Exemple #2
0
    /// <summary>First half builds the ring, second half tests the connection handler...</summary>
    public void RingTest() {
      Parameters p = new Parameters("Test", "Test");
      string[] args = "-b=.2 -c --secure_senders -s=50".Split(' ');
      Assert.AreNotEqual(-1, p.Parse(args), "Unable to parse" + p.ErrorMessage);
      Simulator sim = new Simulator(p);
      _sim = sim;
      Assert.IsTrue(sim.Complete(true), "Simulation failed to complete the ring");

      SimpleTimer.RunSteps(fifteen_mins, false);
      var nm0 = sim.TakenIDs.Values[0];
      int idx = 1;
      NodeMapping nm1 = null;
      do {
        nm1 = sim.TakenIDs.Values[idx++];
      } while(Simulator.AreConnected(nm0.Node, nm1.Node) && idx < sim.TakenIDs.Count);

      Assert.IsFalse(Simulator.AreConnected(nm0.Node, nm1.Node), "Sanity check");
      var ptype = new PType("chtest");
      var ch0 = new ConnectionHandler(ptype, (StructuredNode) nm0.Node);
      var ch1 = new ConnectionHandler(ptype, (StructuredNode) nm1.Node);
      ConnectionHandlerTest(nm0.Node, nm1.Node, ch0, ch1);

      SimpleTimer.RunSteps(fifteen_mins * 2, false);

      Assert.IsFalse(Simulator.AreConnected(nm0.Node, nm1.Node), "Sanity check0");
      ptype = new PType("chtest1");
      ch0 = new SecureConnectionHandler(ptype, (StructuredNode) nm0.Node, nm0.Sso);
      ch1 = new SecureConnectionHandler(ptype, (StructuredNode) nm1.Node, nm1.Sso);
      ConnectionHandlerTest(nm0.Node, nm1.Node, ch0, ch1);
    }
        public static UtilityFuncLib LoadUtilityFuncLib(string file, Simulator sim)
        {
            Assembly utilFile;
            UtilityFuncLib lib;

            try
            {
                utilFile = Assembly.LoadFrom(file);
                Type mainType;

                foreach (Type t in utilFile.GetTypes())
                {
                    if (t.Name == "UtilityFuncMain")
                    {
                        mainType = t;

                        lib = (UtilityFuncLib)Activator.CreateInstance(mainType, sim);

                        return lib;
                    }
                }
            }
            catch (ApplicationException ex)
            {
                // Error loading utility func library
            }

            return null;
        }
Exemple #4
0
        public static ObjectGuid CreateBookWrittenCallback(object customData, ref Simulator.ObjectInitParameters initData, Quality quality)
        {
            BookWrittenData data = customData as BookWrittenData;
            if (data == null) return ObjectGuid.InvalidObjectGuid;

            try
            {
                Notify(data.Title);

                BookWritten book = GlobalFunctions.CreateObjectOutOfWorld("BookWritten") as BookWritten;
                if (book == null)
                {
                    return ObjectGuid.InvalidObjectGuid;
                }

                book.InitBookCommon(data);

                return book.ObjectId;
            }
            catch(Exception e)
            {
                Common.Exception(data.ID, e);
                return ObjectGuid.InvalidObjectGuid;
            }
        }
 private void Objects_OnObjectUpdated(Simulator simulator, ObjectUpdate update, ulong regionHandle, ushort timeDilation)
 {
     if (startTime == 0) return;
     if (update.LocalID == Client.Self.LocalID)
     {
         XYMovement();
         ZMovement();
         if (Client.Self.Movement.AtPos || Client.Self.Movement.AtNeg)
         {
             Client.Self.Movement.TurnToward(target);
             Debug("Flyxy ");
         }
         else if (Client.Self.Movement.UpPos || Client.Self.Movement.UpNeg)
         {
             Client.Self.Movement.TurnToward(target);
             //Client.Self.Movement.SendUpdate(false);
             Debug("Fly z ");
         }
         else if (Vector3.Distance(target, Client.Self.SimPosition) <= 2.0)
         {
             EndFlyto();
             Debug("At Target");
         }
     }
     if (Environment.TickCount - startTime > duration)
     {
         EndFlyto();
         Debug("End Flyto");
     }
 }
 public InfiniteWave(Simulator simulator, DescriptorInfiniteWaves descriptor)
 {
     Simulator = simulator;
     Descriptor = descriptor;
     NbWavesAsked = 0;
     ActualDifficulty = Descriptor.StartingDifficulty - Descriptor.DifficultyIncrement;
 }
Exemple #7
0
 private static IGameObject CreateObjectWithOverrides(ulong instance, ProductVersion version, Vector3 initPos, int level, Vector3 initFwd, Hashtable overrides, Simulator.ObjectInitParameters initData)
 {
     GlobalFunctions.FillInInitData(initPos, level, initFwd, ref initData);
     IGameObject createdObject = CreateObjectInternal(instance, version, overrides, initData);
     GlobalFunctions.CheckForFailure(createdObject, "Missing object resource instance " + instance + Common.NewLine);
     return createdObject;
 }
Exemple #8
0
        public Ai(Simulator simulator)
        {
            this.simulator = simulator;
            this.ticks = simulator.Ticks;
            kruispunten = new List<IKruispuntType>();

            // maak een initial state aan
            foreach (IKruispunt kruispunt in this.simulator.Kruispunten)
            {
                if (kruispunt is Type1)
                {
                    kruispunten.Add(new KruispuntType1(kruispunt, simulator));
                }

                else if (kruispunt is Type2)
                {
                    kruispunten.Add(new KruispuntType2(kruispunt, simulator));
                }

                else if (kruispunt is Type3)
                {
                    kruispunten.Add(new KruispuntType3(kruispunt, simulator));
                }

                else if (kruispunt is Type4)
                {
                    kruispunten.Add(new KruispuntType4(kruispunt, simulator));
                }
            }

            // register event handlers
            this.simulator.postSimulate += new EventHandler(simulator_postSimulate);
            this.simulator.preSimulate += new EventHandler(simulator_preSimulate);
        }
 public StandardInteractionProvider(Simulator simulator, AbstractWindowsEnvironment environmentInterface,
     out Action cancelCallback)
 {
     this.simulator = simulator;
     this.environmentInterface = environmentInterface;
     cancelCallback = HandleCancelCallback;
 }
Exemple #10
0
        static void Main(string[] args)
        {
            var limitOrderBook = new StandardLimitOrderBook();
            var commsModule = SignalRCommunicationsHandler.Instance;
            var simulator = new Simulator(limitOrderBook, commsModule, commsModule);

            System.Console.ReadKey();
        }
        public void ShouldFinishWithInactiveMatch()
        {
            var match = A.Match.Build();
            var simulator = new Simulator(randomizer);
            simulator.Play(match);

            Assert.That(match.IsActive, Is.False);
        }
Exemple #12
0
 public SimulatorSpell (Simulator sim, string name)
     : base(name)
 {
     Contract.Requires(sim != null);
     Contract.Requires(!string.IsNullOrEmpty(name));
     
     Sim = sim;
 }
        public void ShouldFinishWithConclusiveMatch()
        {
            var match = A.Match.Build();
            var simulator = new Simulator(randomizer);
            simulator.Play(match);

            Assert.That(match.IsConclusive, Is.True);
        }
 public SimulatorInputInterface(Simulator.OurSimulator os)
     : base()
 {
     //For conversion into controller units
     worldWidth = (os.Algo.dim[0] * 100) / this.scale;
     worldHeight = (os.Algo.dim[1] * 100) / this.scale;
     this.os = os;
 }
Exemple #15
0
//    [Test]
    public void CompleteTheDtlsRing() {
      Parameters p = new Parameters("Test", "Test");
      string[] args = "-b=.2 --dtls -c --secure_edges -s=25".Split(' ');
      Assert.AreNotEqual(-1, p.Parse(args), "Unable to parse" + p.ErrorMessage);;
      Simulator sim = new Simulator(p);
      Assert.IsTrue(sim.Complete(true), "Simulation failed to complete the ring");
      sim.Disconnect();
    }
        public void ShouldGenerateMatchResult()
        {
            var match = A.Match.Build();
            var simulator = new Simulator(randomizer);
            var result = simulator.Play(match);

            Assert.That(result, Is.Not.Null);
        }
Exemple #17
0
        public StimuliForm()
        {
            InitializeComponent();
            this.FormClosed += StimuliForm_FormClosed;

            this.simulator = SimulatorAccessor.simulator;

            Refresh();
        }
Exemple #18
0
 void Network_OnCurrentSimChanged(Simulator PreviousSimulator)
 {
     GridRegion region;
     if (Client.Grid.GetGridRegion(Client.Network.CurrentSim.Name, GridLayerType.Objects, out region))
     {
         _MapImageID = region.MapImageID;
         Client.Assets.RequestImage(_MapImageID, ImageType.Baked);
     }
 }
Exemple #19
0
        private void UpdateMiniMap(Simulator sim)
        {
            if (this.InvokeRequired) this.BeginInvoke((MethodInvoker)delegate { UpdateMiniMap(sim); });
            else
            {
                Bitmap bmp = new Bitmap(256, 256);
                Graphics g = Graphics.FromImage(bmp);
                //SolidBrush brush = new SolidBrush(Color.FromArgb(90, 32, 32, 32));

                g.Clear(this.BackColor);

                g.FillRectangle(Brushes.White, 0f, 0f, 256f, 256f);

                if (sim.PositionIndexYou == -1 || sim.PositionIndexYou >= sim.AvatarPositions.Count) return;

                int i = 0;

                Vector3 myPos = sim.AvatarPositions[sim.PositionIndexYou];

                _Client.Network.CurrentSim.AvatarPositions.ForEach(delegate(Vector3 pos)
                {
                    int x = (int)pos.X;
                    int y = 255 - (int)pos.Y;
                    if (i == _Client.Network.CurrentSim.PositionIndexYou)
                    {
                        g.FillEllipse(Brushes.PaleGreen, x - 5, y - 5, 10, 10);
                        g.DrawEllipse(Pens.Green, x - 5, y - 5, 10, 10);
                    }
                    else
                    {
                        if (myPos.Z - (pos.Z * 4) > 5)
                        {
                            Point[] points = new Point[3] { new Point(x - 6, y - 6), new Point(x + 6, y - 6), new Point(x, y + 6) };
                            g.FillPolygon(Brushes.Red, points);
                            g.DrawPolygon(Pens.DarkRed, points);
                        }

                        else if (myPos.Z - (pos.Z * 4) < -5)
                        {
                            Point[] points = new Point[3] { new Point(x - 6, y + 6), new Point(x + 6, y + 6), new Point(x, y - 6) };
                            g.FillPolygon(Brushes.Red, points);
                            g.DrawPolygon(Pens.DarkRed, points);
                        }

                        else
                        {
                            g.FillEllipse(Brushes.Red, x - 5, y - 5, 10, 10);
                            g.DrawEllipse(Pens.DarkRed, x - 5, y - 5, 10, 10);
                        }
                    }
                    i++;
                });

                g.DrawImage(bmp, 0, 0);
                this.Image = bmp;
            }
        }
	public void Start () {
		cam = Camera.main;
		var simu = FindObjectOfType(typeof(RVOSimulator)) as RVOSimulator;
		if (simu == null) {
			this.enabled = false;
			throw new System.Exception("No RVOSimulator in the scene. Please add one");
		}

		sim = simu.GetSimulator();
	}
        public TFormRegeling1()
        {
            InitializeComponent();

            simulator = new Simulator();

            postSimulateEvent = new EventHandler(simulator_postSimulate);

            simulator.postSimulate += postSimulateEvent;
        }
        public SpaceshipSpaceship(Simulator simulator)
            : base(simulator)
        {
            BuyPrice = 50;
            SfxOut = "sfxPowerUpDoItYourselfOut";
            SfxIn = "sfxPowerUpDoItYourselfIn";
            ShowTrail = true;

            Weapon = new BasicBulletWeapon(Simulator, this, 100, 1);
        }
Exemple #23
0
 public Ability(Simulator sim, string name, 
                 Func<TimeSpan> cooldown = null,
                 Func<TimeSpan> gcd = null,
                 Func<bool> isUsable = null)
     : base(sim, name)
 {
     _cooldown = cooldown ?? (() => TimeSpan.Zero);
     _gcd = gcd ?? (() => TimeSpan.FromSeconds(1.5));
     _isUsable = isUsable ?? (() => true);
 }
 public AutoAttack (Simulator sim, Func<TimeSpan> swingTimer)
 {
     Contract.Requires(sim != null);
     Contract.Requires(swingTimer != null);
     
     Sim = sim;
     _swingTimer = swingTimer;
     
     NextSwing = TimeSpan.Zero;
 }
        public static void Main(string[] args)
        {
            Util.waitTerminationCodeAsync("szx");

            Simulator simulator = new Simulator(
                Util.readJsonFile<Misson>(Simulator.DefaultMissionPath));

            simulator.launch();

            //Util.waitTerminationCode("szx");zd
        }
Exemple #26
0
    public void Awake()
    {
        tr = transform;

        RVOSimulator sim = FindObjectOfType(typeof(RVOSimulator)) as RVOSimulator;
        if (sim == null) {
            Debug.LogError ("No RVOSimulator component found in the scene. Please add one.");
            return;
        }
        simulator = sim.GetSimulator ();
    }
Exemple #27
0
        public ProcessControlForm()
        {
            InitializeComponent();
            this.FormClosed += ProcessControlForm_FormClosed;

            simulator = SimulatorAccessor.simulator;
            newProcess = new Process();

            ProcessRefresh();
            ControlRefresh();
            OrderRefresh();
        }
Exemple #28
0
		public void ShouldConfigureItself()
		{
			var simulator = new Simulator(_model);

			simulator.Simulate(TimeSpan.FromSeconds(1));

			foreach (var robot in _model.Robots)
				robot.RequiresReconfiguration().Should().BeFalse();

			foreach (var cart in _model.Carts)
				cart.RequiresReconfiguration().Should().BeFalse();
		}
        public void ShouldPlayExtraTimeWhenInconclusive()
        {
            var randomizerStub = mocks.Create<MatchRandomizer>(MockBehavior.Loose, new StaticRandomGenerator());
            randomizerStub.Setup(r => r.TryShoot(It.IsAny<double>(), It.IsAny<double>(), It.IsAny<double>())).Returns(ShotResult.Missed);
            MatchRandomizer.Current = randomizerStub.Object;

            var match = A.Match.WithExtraTimeRequired().Build();
            var simulator = new Simulator(randomizerStub.Object);
            simulator.Play(match);

            Assert.That(match.Length, Is.EqualTo(120));
        }
Exemple #30
0
 protected Result Normal()
 {
   var rstart = System.DateTime.UtcNow;
   var vstart = DateTime.UtcNow;
   Simulator sim = new Simulator(_parameters);
   sim.Complete(true);
   SimpleTimer.RunSteps(3600000);
   long memory = GC.GetTotalMemory(true);
   long time = (System.DateTime.UtcNow - rstart).Ticks / TimeSpan.TicksPerMillisecond;
   long throughput = (long) (SimulationEdgeListener.TotalDataTransferred() /
       (DateTime.UtcNow - vstart).TotalSeconds);
   sim.Disconnect();
   return new Result(memory, time, throughput);
 }
Exemple #31
0
            //define the function that can launch the random process
            public double[] GetSimulations(double SO, double K, double sigma, double r, double T, Int32 StepNum, Int32 TrailNum, double[,] Randoms, int Anti, double Divident, int DeltaBase, int MultiThread)
            {   //utilize the simulate method to get results
                double[] Result = Simulator.Simulate(SO, K, sigma, r, T, StepNum, TrailNum, Randoms, Anti, Divident, DeltaBase, MultiThread);

                return(Result);
            }
        private void SetPerms(Simulator CurrentSim, List <uint> localIDs, PermissionWho who, PermissionMask Perms,
                              bool tf)
        {
            try
            {
                if (!skipPerms)
                {
                    PermCount = 0;

                    if ((Perms & PermissionMask.Modify) == PermissionMask.Modify)
                    {
                        Client.Objects.SetPermissions(CurrentSim, localIDs, who, PermissionMask.Modify,
                                                      tf);
                    }
                    PermsSent = true;

                    //  if (!GotPermissionsEvent.WaitOne(1000 * 30, false))
                    //     return Failure("failed to set the modify bit, permissions in an unknown state";

                    PermCount = 0;
                    if ((Perms & PermissionMask.Copy) == PermissionMask.Copy)
                    {
                        Client.Objects.SetPermissions(CurrentSim, localIDs, who, PermissionMask.Copy,
                                                      tf);
                    }

                    PermsSent = true;

                    //  if (!GotPermissionsEvent.WaitOne(1000 * 30, false))
                    //   return Failure("failed to set the copy bit, permissions in an unknown state";

                    PermCount = 0;
                    if ((Perms & PermissionMask.Transfer) == PermissionMask.Transfer)
                    {
                        Client.Objects.SetPermissions(CurrentSim, localIDs, who, PermissionMask.Transfer,
                                                      tf);
                    }

                    PermsSent = true;

                    PermCount = 0;
                    if ((Perms & PermissionMask.Move) == PermissionMask.Move)
                    {
                        Client.Objects.SetPermissions(CurrentSim, localIDs, who, PermissionMask.Transfer,
                                                      tf);
                    }

                    PermsSent = true;
                }

                /*
                 * else
                 * {
                 *  Client.Objects.SetPermissions(CurrentSim, localIDs, PermissionWho.Owner, PermissionMask.All, true);
                 *  Client.Objects.SetPermissions(CurrentSim, localIDs, PermissionWho.Group, PermissionMask.Modify, true);
                 *  Client.Objects.SetPermissions(CurrentSim, localIDs, PermissionWho.Group, PermissionMask.All, true);
                 * }
                 * //  if (!GotPermissionsEvent.WaitOne(1000 * 30, false))
                 * //    return Failure("failed to set the transfer bit, permissions in an unknown state";
                 */
            }
            catch (Exception e)
            {
                DLRConsole.DebugWriteLine("ERROR {0}", e);
            }
        }
        public override CmdResult ExecuteRequest(CmdRequest args)
        {
            //opensim drew this line because of clients might be hardcoded to only support 255? or was this trying to copy linden?
            try
            {
                //Client.Objects.OnObjectProperties += callback;
                int              argsUsed;
                Simulator        CurSim     = TryGetSim(args, out argsUsed) ?? Client.Network.CurrentSim;
                UUID             groupID    = UUID.Zero;
                Simulator        CurrentSim = CurSim;
                Permissions      AddPerms   = new Permissions();
                Permissions      SubPerms   = new Permissions();
                bool             doTaskInv  = false;
                List <Primitive> TaskPrims  = new List <Primitive>();
                List <uint>      localIDs   = new List <uint>();

                // Reset class-wide variables
                PermsSent = false;
                Objects.Clear();
                PermCount = 0;
                bool oneAtATime = false;

                if (args.Length < 3)
                {
                    return(ShowUsage());
                }

                if (!UUIDTryParse(args, 0, out groupID, out argsUsed))
                {
                    return(ShowUsage());
                }

                args.AdvanceArgs(argsUsed);
                List <SimObject> PS = WorldSystem.GetSingleArg(args, out argsUsed);
                if (IsEmpty(PS))
                {
                    return(Failure("Cannot find objects from " + args.str));
                }

                PermissionWho who = 0;

                bool deed = false;
                for (int i = argsUsed; i < args.Length; i++)
                {
                    bool           add      = true;
                    bool           setPerms = false;
                    string         arg      = args[i];
                    int            whoint   = (int)who;
                    PermissionMask Perms    = PermsAdd[whoint];
                    if (arg.StartsWith("+"))
                    {
                        arg = arg.Substring(1);
                    }
                    else if (arg.StartsWith("-"))
                    {
                        arg   = arg.Substring(1);
                        add   = false;
                        Perms = PermsSub[whoint];
                    }

                    switch (arg.ToLower())
                    {
                    // change owner referall
                    case "who":
                        who = 0;
                        break;

                    case "o":
                        who |= PermissionWho.Owner;
                        break;

                    case "g":
                        who |= PermissionWho.Group;
                        break;

                    case "e":
                        who |= PermissionWho.Everyone;
                        break;

                    case "n":
                        who |= PermissionWho.NextOwner;
                        break;

                    case "a":
                        who = PermissionWho.All;
                        break;

                    // change perms for owner
                    case "copy":
                        Perms   |= PermissionMask.Copy;
                        setPerms = true;
                        break;

                    case "mod":
                        Perms   |= PermissionMask.Modify;
                        setPerms = true;
                        break;

                    case "xfer":
                        Perms   |= PermissionMask.Transfer;
                        setPerms = true;
                        break;

                    case "all":
                        Perms   |= PermissionMask.All;
                        setPerms = true;
                        break;

                    case "dmg":
                        Perms   |= PermissionMask.Damage;
                        setPerms = true;
                        break;

                    case "move":
                        Perms   |= PermissionMask.Move;
                        setPerms = true;
                        break;

                    // dont change perms at all
                    case "noperms":
                        skipPerms = true;
                        break;

                    // deed (implies will use group)
                    case "deed":
                        deed = true;
                        break;

                    // set object group
                    case "group":
                        i++;
                        setGroup = true;
                        groupID  = Client.GroupName2UUID(args[i]);
                        break;

                    case "task":
                        doTaskInv = true;
                        break;

                    case "incr":
                        oneAtATime = true;
                        break;

                    default:
                        return(ShowUsage());
                    }
                    if (setPerms)
                    {
                        skipPerms = false;
                        if (add)
                        {
                            PermsAdd[whoint] = Perms;
                        }
                        else
                        {
                            PermsSub[whoint] = Perms;
                        }
                    }
                }
                ulong CurrentSimHandle = CurrentSim.Handle;
                foreach (SimObject o in PS)
                {
                    if (o is SimAvatar)
                    {
                        continue;
                    }
                    if (o.RegionHandle != CurrentSimHandle)
                    {
                        continue;
                    }
                    // Find the requested prim
                    Primitive rootPrim = o.Prim;
                    if (rootPrim == null)
                    {
                        continue;
                    }
                    localIDs.Add(rootPrim.LocalID);
                    Objects[rootPrim.ID] = rootPrim;
                    if (doTaskInv)
                    {
                        TaskPrims.Add(rootPrim);
                    }

                    continue;
                    ;
                    UUID rootID = UUID.Zero;
                    if (rootPrim == null)
                    {
                        return(Failure("Cannot find requested prim " + rootID.ToString()));
                    }
                    else
                    {
                        WriteLine("Found requested prim " + rootPrim.ID.ToString(), Client);
                    }

                    if (rootPrim.ParentID != 0)
                    {
                        // This is not actually a root prim, find the root
                        if (!CurrentSim.ObjectsPrimitives.TryGetValue(rootPrim.ParentID, out rootPrim))
                        {
                            return(Failure("Cannot find root prim for requested object"));
                        }
                        else
                        {
                            WriteLine("Set root prim to " + rootPrim.ID.ToString(), Client);
                        }
                    }

                    List <Primitive> childPrims;
                    // Find all of the child objects linked to this root
                    childPrims =
                        CurrentSim.ObjectsPrimitives.FindAll(
                            delegate(Primitive prim) { return(prim.ParentID == rootPrim.LocalID); });

                    // Build a dictionary of primitives for referencing later
                    // Objects[rootPrim.ID] = rootPrim;
                    for (int i = 0; i < childPrims.Count; i++)
                    {
                        Objects[childPrims[i].ID] = childPrims[i];
                    }

                    // Build a list of all the localIDs to set permissions for
                    localIDs.Add(rootPrim.LocalID);
                    for (int i = 0; i < childPrims.Count; i++)
                    {
                        localIDs.Add(childPrims[i].LocalID);
                    }

                    if (doTaskInv)
                    {
                        TaskPrims.AddRange(childPrims);
                        TaskPrims.Add(rootPrim);
                    }
                }

                WriteLine("Using PermissionMask: +" + PermsAdd.ToString() + " -" + PermsSub.ToString(), Client);


                // Go through each of the three main permissions and enable or disable them

                #region Set Linkset Permissions

                if (oneAtATime)
                {
                    List <uint> smallList = new List <uint>();
                    foreach (var o in Objects.Values)
                    {
                        if (o.OwnerID == Client.Self.AgentID)
                        //if (o.GroupID!=groupID)
                        {
                            if (doTaskInv)
                            {
                                TaskPrims.Add(o);
                            }
                            smallList.Clear();
                            smallList.Add(o.LocalID);
                            SetDeed(CurrentSim, smallList, groupID, deed);
                        }
                    }
                }
                else
                {
                    if (localIDs.Count < 50)
                    {
                        SetDeed(CurrentSim, localIDs, groupID, deed);
                    }
                    else
                    {
                        List <uint> smallList = new List <uint>();
                        while (localIDs.Count > 0)
                        {
                            if (localIDs.Count < 50)
                            {
                                SetDeed(CurrentSim, localIDs, groupID, deed);
                                break;
                            }
                            smallList.Clear();
                            smallList.AddRange(localIDs.GetRange(0, 50));
                            SetDeed(CurrentSim, smallList, groupID, deed);
                            localIDs.RemoveRange(0, 50);
                        }
                    }
                }

                #endregion Set Linkset Permissions

                // Check each prim for task inventory and set permissions on the task inventory
                int taskItems = 0;
                if (doTaskInv)
                {
                    foreach (Primitive prim in TaskPrims)
                    {
                        if ((prim.Flags & PrimFlags.InventoryEmpty) == 0)
                        {
                            List <InventoryBase> items = Client.Inventory.GetTaskInventory(prim.ID, prim.LocalID, 1000 * 10);

                            if (items != null)
                            {
                                for (int i = 0; i < items.Count; i++)
                                {
                                    if (!(items[i] is InventoryFolder))
                                    {
                                        InventoryItem item = (InventoryItem)items[i];

                                        // prev and not (W or All)
                                        item.Permissions.GroupMask &=
                                            ~(PermsSub[(int)PermissionWho.Group] | PermsSub[(int)PermissionWho.All]);
                                        item.Permissions.OwnerMask &=
                                            ~(PermsSub[(int)PermissionWho.Owner] | PermsSub[(int)PermissionWho.All]);
                                        item.Permissions.NextOwnerMask &=
                                            ~(PermsSub[(int)PermissionWho.NextOwner] |
                                              PermsSub[(int)PermissionWho.All]);
                                        item.Permissions.EveryoneMask &=
                                            ~(PermsSub[(int)PermissionWho.Everyone] | PermsSub[(int)PermissionWho.All]);

                                        // prev and (W or All)
                                        item.Permissions.GroupMask |= PermsAdd[(int)PermissionWho.Group] |
                                                                      PermsAdd[(int)PermissionWho.All];
                                        item.Permissions.OwnerMask |= PermsAdd[(int)PermissionWho.Owner] |
                                                                      PermsAdd[(int)PermissionWho.All];
                                        item.Permissions.NextOwnerMask |= PermsAdd[(int)PermissionWho.NextOwner] |
                                                                          PermsAdd[(int)PermissionWho.All];
                                        item.Permissions.EveryoneMask |= PermsAdd[(int)PermissionWho.Everyone] |
                                                                         PermsAdd[(int)PermissionWho.All];

                                        Client.Inventory.UpdateTaskInventory(prim.LocalID, item);
                                        ++taskItems;
                                    }
                                }
                            }
                        }
                    }
                }

                return
                    (Success("Using PermissionMask: +" + PermsAdd.ToString() + " -" + PermsSub.ToString() + " on " +
                             Objects.Count + " objects and " + taskItems + " inventory items"));
            }
            finally
            {
                // Client.Objects.OnObjectProperties -= callback;
            }
        }
Exemple #34
0
 void Grid_OnCoarseLocationUpdate(Simulator sim, List <UUID> newEntries, List <UUID> removedEntries)
 {
     UpdateMiniMap(sim);
 }
Exemple #35
0
 protected abstract void Run([NotNull] Simulator sim);
Exemple #36
0
        static void Main(string[] args)
        {
            INBAContext     db = new NBAContext();
            IUnitOfWork     uw = new UnitOfWork(db);
            IGetStatMethods _getStatMethods = new GetStatMethods(db);
            IStatScraper    _statScraper    = new Api.Entities.StatScraper(db, uw, _getStatMethods);
            IStatCalculator _statCalculator = new StatCalculator(db, _getStatMethods);
            ISimulator      _simulator      = new Simulator(_statCalculator, _getStatMethods);
            IPredictor      _predictor      = new Predictor(db, uw, _getStatMethods, _simulator, _statScraper);
            //for (int i = 200; i < 707; i++)
            //{
            //    IPredictor predictor=new Predictor(_getStatMethods,_simulator,_statScraper);
            //    predictor.PredictQuarter(1,i);
            //}
            //for (int i = 708; i < 972; i++)
            //{
            //    IPredictor predictor = new Predictor(_getStatMethods, _simulator, _statScraper);
            //    predictor.PredictQuarter(1, i);
            //}
            //QuarterPredictions quarter1 = _simulator.QuarterSimulator(Team.MemphisGrizzlies, Team.LosAngelesLakers, 1, 87);
            //QuarterPredictions quarter2 = _simulator.QuarterSimulator(Team.MemphisGrizzlies, Team.LosAngelesLakers, 2, 87);
            //QuarterPredictions quarter3 = _simulator.QuarterSimulator(Team.MemphisGrizzlies, Team.LosAngelesLakers, 3, 87);
            //QuarterPredictions quarter4 = _simulator.QuarterSimulator(Team.MemphisGrizzlies, Team.LosAngelesLakers, 4, 87);

            ////FullStatScraper

            //List<GameTime> gamesPlayed = _statScraper.GetListOfGamesPlayed();


            //using (var driver = new ChromeDriver())
            //{

            //    driver.Manage().Window.Maximize();
            //    driver.Navigate().GoToUrl("https://www.nba.com/schedule");
            //    Thread.Sleep(2000);
            //    driver.FindElementByXPath("/html/body/div[2]/div[3]/div/div/div[2]/div/div/button").Click();
            //    foreach (var game in gamesPlayed)
            //    {
            //        if (game.GameNo == 16 || game.GameNo == 145 || game.GameNo == 154 || game.GameNo == 160 || game.GameNo == 166 || game.GameNo == 167 || game.GameNo == 171 || game.GameNo == 179 || game.GameNo == 183 || game.GameNo == 185 || game.GameNo == 194 || game.GameNo == 197 || game.GameNo == 199 || game.GameNo == 204 || game.GameNo == 215 || game.GameNo == 225 || game.GameNo == 235 || game.GameNo == 240 || game.GameNo == 255 || game.GameNo == 263 || game.GameNo == 264 || game.GameNo == 278 || game.GameNo == 321 || game.GameNo == 362 || game.GameNo == 428 || game.GameNo == 434 || game.GameNo == 435 || game.GameNo == 442 || game.GameNo == 448)
            //            continue;
            //        if (_statScraper.DoesGameExist(game.GameNo))
            //            continue;
            //        try
            //        {
            //            driver.Navigate().GoToUrl("https://www.nba.com/game/002200" + (game.GameNo).ToString("0000"));
            //            FullSeason stat = _statScraper.GameScraper(driver, game.GameNo);
            //            List<PlayerStats> stats = _statScraper.PlayerStatScraper(driver, game.GameNo);
            //            List<FullSeasonQuarters> quarters = new List<FullSeasonQuarters>();
            //            for (int l = 1; l < 5; l++)
            //            {
            //                FullSeasonQuarters quarter = _statScraper.QuarterScraper(driver, game.GameNo, l);
            //                quarters.Add(quarter);
            //            }
            //            _statScraper.AddStatGame(stat);
            //            _statScraper.AddPlayerStatList(stats);
            //            foreach (var quarter in quarters)
            //            {
            //                if (quarter.HomePoints > 50 || quarter.HomePoints < 10 || quarter.AwayPoints > 50 ||
            //                    quarter.AwayPoints < 10)
            //                {
            //                    return;
            //                }
            //                _statScraper.AddStatQuarter(quarter);
            //            }
            //        }
            //        catch (Exception)
            //        {

            //        }
            //    }
            //}

            ////Quarter Predictor

            //List<GameTime> gamesToBePlayed = _statScraper.GetListOfGamesToBePlayed();
            //foreach (var game in gamesToBePlayed)
            //{
            //    if (_statScraper.DoesQuarterPredictionExist(game.GameNo) || game.GameNo == 428 || game.GameNo == 434 || game.GameNo == 435 || game.GameNo == 442 || game.GameNo == 448)
            //    {
            //        continue;
            //    }
            //    for (int j = 1; j < 5; j++)
            //    {
            //        try
            //        {
            //            QuarterPredictions quarter = _simulator.QuarterSimulator(game.HomeTeam, game.AwayTeam, j, game.GameNo);
            //            _statScraper.AddQuarterPrediction(quarter);
            //        }
            //        catch (Exception)
            //        {

            //        }
            //    }
            //}

            ////Game Predictor

            //foreach (var game in gamesToBePlayed)
            //{
            //    if (_statScraper.DoesGamePredictionExist(game.GameNo) || game.GameNo == 428 || game.GameNo == 434 || game.GameNo == 435 || game.GameNo == 442 || game.GameNo == 448)
            //    {
            //        continue;
            //    }
            //    GamePredictions gamePrediction = _simulator.FullMatchSimulator(game.HomeTeam, game.AwayTeam, game.GameNo);
            //    _statScraper.AddGamePrediction(gamePrediction);
            //}

            ////FullGame Date Scraper

            //int i = 22;
            //int k = 9;
            //for (; i < 23; i++)
            //{
            //    using (var driver = new ChromeDriver())
            //    {
            //        for (; k < 25; k++)
            //        {
            //            if (game.GameNo >= 563)
            //                return;
            //            try
            //            {
            //                GameTime time = _statScraper.DateScraper(driver, game.GameNo,
            //                    "https://www.nba.com/game/002200" + (game.GameNo).ToString("0000"));
            //                _statScraper.AddGameTime(time);
            //            }
            //            catch (Exception)
            //            {
            //                k--;
            //            }
            //        }
            //    }
            //    k = 0;
            //}

            ////Quarters

            //List<GameTime> games = _statScraper.GetListOfGamesPlayed();

            //using (var driver = new ChromeDriver())
            //{
            //    driver.Manage().Window.Maximize();
            //    driver.Navigate().GoToUrl("https://www.nba.com/schedule");
            //    Thread.Sleep(2000);
            //    driver.FindElementByXPath("/html/body/div[2]/div[3]/div/div/div[2]/div/div/button").Click();
            //    Thread.Sleep(1000);
            //    foreach (var game in games)
            //    {
            //        if (_statScraper.DoesQuarterExist(game.GameNo))
            //            continue;
            //        if (game.GameNo == 16 || game.GameNo == 145 || game.GameNo == 154 || game.GameNo == 160 || game.GameNo == 166 || game.GameNo == 167 || game.GameNo == 171 || game.GameNo == 179 || game.GameNo == 183 || game.GameNo == 185 || game.GameNo == 194 || game.GameNo == 197 || game.GameNo == 199 || game.GameNo == 204 || game.GameNo == 215 || game.GameNo == 225 || game.GameNo == 235 || game.GameNo == 240 || game.GameNo == 255 || game.GameNo == 263 || game.GameNo == 264 || game.GameNo == 278 || game.GameNo == 321)
            //            continue;
            //        driver.Navigate().GoToUrl("https://www.nba.com/game/002200" + (game.GameNo).ToString("0000") + "/box-score");
            //        List<FullSeasonQuarters> season = new List<FullSeasonQuarters>();
            //        for (int l = 1; l < 5; l++)
            //        {
            //            try
            //            {
            //
            //            }
            //            catch (Exception)
            //            {
            //                l--;
            //            }
            //        }

            //    }
            //}

            ////PlayerInfoScraper
            //using (var driver = new ChromeDriver())
            //{
            //    driver.Manage().Window.Maximize();
            //    List<Players> players = _statScraper.PlayerInfoScraper(driver, 1, 508);
            //    _statScraper.AddPlayerInfoList(players);
            //}

            ////GameTimeUpdate

            //for (int j = 0; j < 6; j++)
            //{
            //    using (var driver = new ChromeDriver())
            //    {
            //        for (int i = 1; i <= 100; i++)
            //        {
            //            if (j * 100 + i == 16)
            //                continue;
            //            if (j * 100 + i < 133)
            //            {
            //                GameTime game = db.GameTime.Find(j * 100 + i);
            //                if (game.GameDate < DateTime.Now.AddHours(-8))
            //                {
            //                    continue;
            //                }
            //                driver.Navigate().GoToUrl("https://www.nba.com/game/002200" + (j * 100 + i).ToString("0000") + "/box-score");
            //                if (i == 1)
            //                {
            //                    Thread.Sleep(1000);
            //                    driver.FindElementByXPath("/html/body/div[3]/div[3]/div/div/div[2]/div/div/button").Click();
            //                }
            //                game.AwayTeam = _statScraper.GetTeamEnumByTeamName(driver
            //                    .FindElementByXPath("/html/body/div[1]/div[2]/div[5]/section[2]/div[1]/h1/span").Text.Replace(" ", "").ToUpper().Replace('İ', 'I'));
            //                game.HomeTeam = _statScraper.GetTeamEnumByTeamName(driver
            //                    .FindElementByXPath("/html/body/div[1]/div[2]/div[5]/section[3]/div[1]/h1/span").Text.Replace(" ", "").ToUpper().Replace('İ', 'I'));
            //                uw.Commit();
            //            }
            //            else
            //            {

            //                GameTime game = db.GameTime.Find(j * 100 + i);
            //                driver.Navigate().GoToUrl("https://www.nba.com/game/002200" + (j * 100 + i).ToString("0000"));
            //                if (i == 1)
            //                {
            //                    Thread.Sleep(1000);
            //                    driver.FindElementByXPath("/html/body/div[3]/div[3]/div/div/div[2]/div/div/button").Click();
            //                }

            //                string teams = null;
            //                while (teams==null)
            //                {
            //                    try
            //                    {
            //                        teams = driver
            //                            .FindElementByXPath("/html/body/div[1]/div[2]/section/div[1]/div[5]/div/div[2]/h1")
            //                            .Text;
            //                    }
            //                    catch (Exception e)
            //                    {
            //                        driver.Navigate().Refresh();
            //                    }
            //                }
            //                string away = teams.Substring(0, teams.IndexOf('@') - 1).ToUpper().Replace('İ', 'I').Replace(" ","");
            //                string home = teams.Substring(teams.IndexOf('@') + 2).ToUpper().Replace('İ', 'I').Replace(" ", "");
            //                game.AwayTeam = _statScraper.GetTeamEnumByTeamMascotName(away);
            //                game.HomeTeam = _statScraper.GetTeamEnumByTeamMascotName(home);
            //                uw.Commit();
            //            }
            //        }
            //    }
            //}

            ////FullGame 19-20

            //int i = 0;
            //int k = 1;
            //try
            //{
            //    int gameNo = _getStatMethods.GetLatestGameNoFullSeason1920();
            //    i = gameNo / 25;
            //    k = gameNo % 25 + 1;
            //}
            //catch (Exception)
            //{

            //}
            //for (; i < 39; i++)
            //{
            //    using (var driver = new ChromeDriver())
            //    {
            //        driver.Manage().Window.Maximize();
            //        driver.Navigate().GoToUrl("https://www.nba.com/schedule");
            //        Thread.Sleep(2000);
            //        driver.FindElementByXPath("/html/body/div[2]/div[3]/div/div/div[2]/div/div/button").Click();
            //        if (game.GameNo >= 971)
            //            return;
            //        for (; k < 25; k++)
            //        {
            //            if (game.GameNo >= 971)
            //                return;
            //            if (game.GameNo == 707)
            //                continue;
            //            try
            //            {
            //                FullSeason19_20 stat = _statScraper.GameScraper1920(driver, game.GameNo,
            //                    "https://www.nba.com/game/002190" + (game.GameNo).ToString("0000"));
            //                _statScraper.AddStatGame(stat);
            //            }
            //            catch (Exception)
            //            {
            //                k--;
            //            }
            //        }
            //    }
            //    k = 0;
            //}

            ////FullSeasonQuarters 19-20

            //int i = 0;
            //int k = 1;
            //int j = 1;
            //try
            //{
            //    int quarterNo = _getStatMethods.GetLatestQuarterNoFullSeasonQuarters1920();
            //    int gameNo = _getStatMethods.GetLatestGameNoFullSeasonQuarters1920();
            //    if (quarterNo == 4)
            //    {
            //        j = 0;
            //        gameNo += 1;
            //        quarterNo = 0;
            //    }
            //    i = gameNo / 25;
            //    k = gameNo % 25;
            //    j = quarterNo + 1;
            //}
            //catch (Exception)
            //{

            //}
            //for (; i < 39; i++)
            //{
            //    using (var driver = new ChromeDriver())
            //    {
            //        driver.Manage().Window.Maximize();
            //        driver.Navigate().GoToUrl("https://www.nba.com/schedule");
            //        Thread.Sleep(2000);
            //        driver.FindElementByXPath("/html/body/div[2]/div[3]/div/div/div[2]/div/div/button").Click();
            //        driver.Manage().Window.Minimize();
            //        if (game.GameNo >= 971)
            //            return;
            //        for (; k < 25; k++)
            //        {
            //            if (game.GameNo >= 971)
            //                return;
            //            if (game.GameNo == 707)
            //                continue;
            //            try
            //            {
            //                driver.Navigate().GoToUrl("https://www.nba.com/game/002190" + (game.GameNo).ToString("0000") + "/box-score");
            //                List<FullSeasonQuarters19_20> stats = new List<FullSeasonQuarters19_20>();
            //                for (; j < 5; j++)
            //                {
            //                    FullSeasonQuarters19_20 stat = _statScraper.QuarterScraper1920(driver, game.GameNo, j);
            //                    stats.Add(stat);
            //                }

            //                foreach (var stat in stats)
            //                {
            //                    _statScraper.AddStatQuarter(stat);
            //                }
            //                j = 1;
            //            }
            //            catch (Exception)
            //            {
            //                k--;
            //            }
            //        }
            //    }
            //    k = 0;
            //}

            ////FullSeasonQuarters 19-20 Add-ons

            //List<int> games = new List<int>();
            //List<int> quarters = new List<int>();
            //for (int l = 1; l < 971; l++)
            //{
            //    if (l == 707)
            //    {
            //        continue;
            //    }
            //    for (int m = 1; m < 5; m++)
            //    {
            //        if (!_getStatMethods.QuarterExist1920(l, m))
            //        {
            //            games.Add(l);
            //            quarters.Add(m);
            //        }
            //    }
            //}

            //using (var driver = new ChromeDriver())
            //{
            //    driver.Manage().Window.Maximize();
            //    driver.Navigate().GoToUrl("https://www.nba.com/schedule");
            //    Thread.Sleep(2000);
            //    driver.FindElementByXPath("/html/body/div[2]/div[3]/div/div/div[2]/div/div/button").Click();
            //    for (int l = 0; l < games.Count; l++)
            //    {
            //        FullSeasonQuarters19_20 stat = _statScraper.QuarterScraper1920(driver, games[l], quarters[l]);
            //        _statScraper.AddStatQuarter(stat);
            //    }
            //}

            ////CoEfficientOptimizerGame

            //for (int i = 0; i < 6561; i++)
            //{
            //    _predictor.CoefficientOptimizerGame(i);
            //}

            ////CoEfficientOptimizerQuarter

            //for (int i = 0; i < 6561; i++)
            //{
            //    _predictor.CoefficientOptimizerQuarter(i);
            //}
        }
Exemple #37
0
 public static string GetRouteTextureFile(Simulator simulator, TextureFlags textureFlags, string textureName)
 {
     return(GetTextureFile(simulator, textureFlags, simulator.RoutePath + @"\Textures", textureName));
 }
Exemple #38
0
        public void whenPlaceRobot_2Args_ThenExceptionThrown()
        {
            var simulator = new Simulator();

            simulator.Command(Core.Models.CommandEnum.PLACE, "1,5");
        }
Exemple #39
0
        public static TrainCar Load(Simulator simulator, Train train, string wagFilePath, bool initialize = true)
        {
            GenericWAGFile wagFile = SharedGenericWAGFileManager.Get(wagFilePath);
            TrainCar       car;

            if (wagFile.OpenRails != null &&
                wagFile.OpenRails.DLL != null)
            {  // wag file specifies an external DLL
                try
                {
                    // TODO search the path list
                    string   wagFolder = Path.GetDirectoryName(wagFilePath);
                    string   dllPath   = ORTSPaths.FindTrainCarPlugin(wagFolder, wagFile.OpenRails.DLL);
                    Assembly customDLL = Assembly.LoadFrom(dllPath);
                    object[] args      = new object[] { wagFilePath };
                    car = (TrainCar)customDLL.CreateInstance("ORTS.CustomCar", true, BindingFlags.CreateInstance, null, args, null, null);

                    car.Train = train;
                    train.Cars.Add(car);

                    return(car);
                }
                catch (Exception error)
                {
                    Trace.WriteLine(new FileLoadException(wagFile.OpenRails.DLL, error));
                    // on error, fall through and try loading without the custom dll
                }
            }

            if (!wagFile.IsEngine)
            {
                if (wagFilePath.ToLower().Contains("orts_eot"))
                {
                    car = new EOT(simulator, wagFilePath);
                }
                else
                {
                    // its an ordinary MSTS wagon
                    car = new MSTSWagon(simulator, wagFilePath);
                }
            }
            else
            {
                // its an ordinary MSTS engine of some type.
                if (wagFile.Engine.Type == null)
                {
                    throw new InvalidDataException(wagFilePath + "\r\n\r\nEngine type missing");
                }

                switch (wagFile.Engine.Type.ToLower())
                {
                // TODO complete parsing of proper car types
                case "electric": car = new MSTSElectricLocomotive(simulator, wagFilePath); break;

                case "steam": car = new MSTSSteamLocomotive(simulator, wagFilePath); break;

                case "diesel": car = new MSTSDieselLocomotive(simulator, wagFilePath); break;

                case "control": car = new MSTSControlTrailerCar(simulator, wagFilePath); break;

                default: throw new InvalidDataException(wagFilePath + "\r\n\r\nUnknown engine type: " + wagFile.Engine.Type);
                }
            }

            car.Train = train;

            if (car is MSTSWagon wagon)
            {
                wagon.Load();

                if (initialize)
                {
                    wagon.Initialize();
                }
            }

            // Loading is complete, the car can be added to the train
            train.Cars.Add(car);

            return(car);
        }
Exemple #40
0
        private void UpdateMiniMap(Simulator sim)
        {
            if (!this.IsHandleCreated)
            {
                return;
            }

            if (this.InvokeRequired)
            {
                this.BeginInvoke((MethodInvoker) delegate { UpdateMiniMap(sim); });
            }
            else
            {
                if (_MapLayer == null)
                {
                    SetMapLayer(null);
                }

                Bitmap   bmp = (Bitmap)_MapLayer.Clone();
                Graphics g   = Graphics.FromImage(bmp);

                Vector3 myCoarsePos;

                if (!sim.AvatarPositions.TryGetValue(Client.Self.AgentID, out myCoarsePos))
                {
                    return;
                }

                int i = 0;

                lock (_Client.Network.CurrentSim.AvatarPositions.Dictionary)
                {
                    foreach (KeyValuePair <UUID, Vector3> coarse in _Client.Network.CurrentSim.AvatarPositions.Dictionary)
                    {
                        int x = (int)coarse.Value.X;
                        int y = 255 - (int)coarse.Value.Y;
                        if (coarse.Key == Client.Self.AgentID)
                        {
                            g.FillEllipse(Brushes.Yellow, x - 5, y - 5, 10, 10);
                            g.DrawEllipse(Pens.Khaki, x - 5, y - 5, 10, 10);
                        }
                        else
                        {
                            Pen   penColor;
                            Brush brushColor;

                            if (Client.Network.CurrentSim.ObjectsAvatars.Find(delegate(Avatar av) { return(av.ID == coarse.Key); }) != null)
                            {
                                brushColor = Brushes.PaleGreen;
                                penColor   = Pens.Green;
                            }
                            else
                            {
                                brushColor = Brushes.LightGray;
                                penColor   = Pens.Gray;
                            }

                            if (myCoarsePos.Z - coarse.Value.Z > 1)
                            {
                                Point[] points = new Point[3] {
                                    new Point(x - 6, y - 6), new Point(x + 6, y - 6), new Point(x, y + 6)
                                };
                                g.FillPolygon(brushColor, points);
                                g.DrawPolygon(penColor, points);
                            }

                            else if (myCoarsePos.Z - coarse.Value.Z < -1)
                            {
                                Point[] points = new Point[3] {
                                    new Point(x - 6, y + 6), new Point(x + 6, y + 6), new Point(x, y - 6)
                                };
                                g.FillPolygon(brushColor, points);
                                g.DrawPolygon(penColor, points);
                            }

                            else
                            {
                                g.FillEllipse(brushColor, x - 5, y - 5, 10, 10);
                                g.DrawEllipse(penColor, x - 5, y - 5, 10, 10);
                            }
                        }
                        i++;
                    }
                    ;
                }

                g.DrawImage(bmp, 0, 0);
                this.Image = bmp;
            }
        }
Exemple #41
0
        public void whenPlaceRobot_Invalid_Y_ThenExceptionThrown()
        {
            var simulator = new Simulator();

            simulator.Command(Core.Models.CommandEnum.PLACE, "1,b,North");
        }
Exemple #42
0
        public void whenPlaceRobot_Invalid_Direction_ThenExceptionThrown()
        {
            var simulator = new Simulator();

            simulator.Command(Core.Models.CommandEnum.PLACE, "1,2,Test");
        }
Exemple #43
0
        InvokeSaveAsXamlBatchWorkItem(
            Object arg
            )
        {
            try
            {
                // This logic must be mirrored in IsAsyncWorkPending see remarks.

                if (!_serializationOperationCanceled)
                {
                    if (!_isBatchWorkItemInProgress && _batchOperationQueue.Count > 0)
                    {
                        BatchOperationWorkItem batchOperationWorkItem = (BatchOperationWorkItem)_batchOperationQueue.Dequeue();

                        if (batchOperationWorkItem.OperationType == BatchOperationType.batchWrite)
                        {
                            _currentPageXmlWriter = Simulator.SimulateBeginFixedPage();

                            ReachSerializer reachSerializer = GetSerializer(batchOperationWorkItem.SerializedObject);

                            if (reachSerializer != null)
                            {
                                //
                                // Prepare the context that is going to be pushed on the stack
                                //
                                SerializationManagerOperationContextStack
                                    contextStack = new SerializationManagerOperationContextStack(reachSerializer,
                                                                                                 batchOperationWorkItem.SerializedObject);
                                //
                                // At this stage, start calling another method which would peak at the stack
                                //
                                _operationStack.Push(contextStack);

                                PostSerializationTask(new DispatcherOperationCallback(InvokeSaveAsXamlBatchWorkItem));
                            }
                            else
                            {
                                throw new XpsSerializationException(SR.Get(SRID.ReachSerialization_NoSerializer));
                            }
                            _isBatchWorkItemInProgress = true;
                        }
                        else if (batchOperationWorkItem.OperationType == BatchOperationType.batchCommit)
                        {
                            Simulator.EndConfirmToXPSStructure(IsBatchMode);
                            XPSSerializationCompletionMethod();
                        }
                    }
                    else
                    {
                        if (_operationStack.Count > 0)
                        {
                            Object objectOnStack = _operationStack.Pop();

                            if (objectOnStack.GetType() ==
                                typeof(System.Windows.Xps.Serialization.SerializationManagerOperationContextStack))
                            {
                                SerializationManagerOperationContextStack context =
                                    (SerializationManagerOperationContextStack)objectOnStack;

                                context.ReachSerializer.SerializeObject(context.SerializedObject);
                            }
                            else if (typeof(System.Windows.Xps.Serialization.ReachSerializerContext).IsAssignableFrom(objectOnStack.GetType()))
                            {
                                ReachSerializerContext context = (ReachSerializerContext)objectOnStack;
                                context.Serializer.AsyncOperation(context);
                            }
                            PostSerializationTask(new DispatcherOperationCallback(InvokeSaveAsXamlBatchWorkItem));
                        }
                        else
                        {
                            Simulator.SimulateEndFixedPage(_currentPageXmlWriter);
                            _isBatchWorkItemInProgress = false;
                            _currentPageXmlWriter      = null;
                        }
                    }
                }
            }
            catch (Exception e) when(!CriticalExceptions.IsCriticalException(e))
            {
                XpsSerializationCompletedEventArgs args = new XpsSerializationCompletedEventArgs(false, // Indicate that an error happened
                                                                                                 null,
                                                                                                 e);

                _serializationOperationCanceled = true;

                PostSerializationTask(new DispatcherOperationCallback(OnXPSSerializationCompleted), args);
            }

            return(null);
        }
Exemple #44
0
 public static string GetTerrainTextureFile(Simulator simulator, string textureName)
 {
     return(GetTextureFile(simulator, Helpers.TextureFlags.Snow, simulator.RoutePath + @"\TerrTex", textureName));
 }
Exemple #45
0
        public static bool Run(CarUFO.AbductSimA ths)
        {
            if (ths.Target.InUse)
            {
                return(false);
            }

            ths.mNPCAbductor = (ths.SimToAbduct != null);

            if (!ths.mNPCAbductor)
            {
                ths.SimToAbduct = ths.GetSelectedObject() as Sim;
            }

            if (ths.SimToAbduct == null)
            {
                return(false);
            }

            ths.StandardEntry();

            if (!ths.SetupAbductee())
            {
                ths.StandardExit();
                return(false);
            }

            Animation.ForceAnimation(ths.Actor.ObjectId, true);
            Animation.ForceAnimation(ths.Target.ObjectId, true);
            ths.Target.mTakeOffPos = ths.Actor.Position;

            if (!ths.Target.RouteToUFOAndTakeOff(ths.Actor))
            {
                ths.StandardExit();
                return(false);
            }

            Camera.FocusOnGivenPosition(ths.mJig.Position, CarUFO.kAbductLerpParams, true);
            ths.BeginCommodityUpdates();
            bool flag = ths.AbductSim();

            ths.EndCommodityUpdates(true);
            Sim[] sims;

            if (flag)
            {
                EventTracker.SendEvent(EventTypeId.kAbductSimUFO, ths.Actor, ths.SimToAbduct);
                sims = new Sim[] { ths.Actor, ths.SimToAbduct };

                if (ths.mNPCAbductor)
                {
                    ths.DoTimedLoop(AlienUtils.kAbductionLength, ExitReason.None);
                }
            }
            else
            {
                sims = new Sim[] { ths.Actor };
            }

            DateAndTime previous   = SimClock.CurrentTime();
            Vector3     landRefPos = ths.GetLandingRefPos(ths.mNPCAbductor);

            while (!ths.Target.TryLandUFOAndExitSims(sims, landRefPos, true))
            {
                Simulator.Sleep(30u);

                if (SimClock.ElapsedTime(TimeUnit.Minutes, previous) > 30f)
                {
                    ths.Target.ForceExitUFODueToLandingFailure(sims);
                    break;
                }
            }

            ths.mFromInventory = (ths.mFromInventory || ths.mNPCAbductor);

            if (ths.mFromInventory)
            {
                ths.mFromInventory = ths.Actor.Inventory.TryToAdd(ths.Target);
            }

            if (!ths.mFromInventory)
            {
                ths.Target.ParkUFO(ths.Actor.LotHome, ths.Actor);
            }

            if (flag)
            {
                if (ths.mNPCAbductor)
                {
                    if (AlienUtilsEx.IsImpregnationSuccessful(ths.SimToAbduct, ths.Actor))
                    {
                        ths.SimToAbduct.SimDescription.Pregnancy = new Pregnancy(ths.SimToAbduct, ths.Actor.SimDescription);
                        ths.SimToAbduct.TraitManager.AddHiddenElement(AlienUtilsEx.sAlienPregnancy);
                    }

                    ths.SimToAbduct.BuffManager.AddElement(BuffNames.Abducted, Origin.FromAbduction);
                    ThoughtBalloonManager.BalloonData data = new ThoughtBalloonManager.BalloonData(ths.Actor.GetThumbnailKey());
                    data.BalloonType = ThoughtBalloonTypes.kThoughtBalloon;
                    data.LowAxis     = ThoughtBalloonAxis.kDislike;
                    data.Duration    = ThoughtBalloonDuration.Medium;
                    data.mPriority   = ThoughtBalloonPriority.High;
                    ths.SimToAbduct.ThoughtBalloonManager.ShowBalloon(data);
                    ths.SimToAbduct.PlayReaction(AlienUtils.kAbductionReactions[RandomUtil.GetInt(0, AlienUtils.kAbductionReactions.Length - 1)], ReactionSpeed.NowOrLater);
                    ths.SimToAbduct.ShowTNSIfSelectable(CarUFO.LocalizeString(ths.SimToAbduct.IsFemale, "NPCAbductionTNS", new object[] { ths.SimToAbduct.ObjectId }),
                                                        StyledNotification.NotificationStyle.kGameMessagePositive, ObjectGuid.InvalidObjectGuid, ths.SimToAbduct.ObjectId);
                }
                else
                {
                    Sim.ForceSocial(ths.Actor, ths.SimToAbduct, "Reveal Prank", InteractionPriorityLevel.High, true);
                }

                ths.FinishLinkedInteraction(true);
            }

            ths.StandardExit();

            if (flag)
            {
                ths.WaitForSyncComplete();
            }

            return(flag);
        }
Exemple #46
0
        public Confirmer(Simulator simulator, double defaultDurationS)
        {
            //TODO 2020-01-14 this needs to be synced and moved up to Orts.Common.Enums.CabControl
            Simulator        = simulator;
            DefaultDurationS = defaultDurationS;

            Func <string, string>         GetString           = (value) => Simulator.Catalog.GetString(value);
            Func <string, string, string> GetParticularString = (context, value) => Simulator.Catalog.GetParticularString(context, value);

            // The following list needs to be in the same order as the list above under CabControl
            ConfirmText = new string[][] {
                new string [] { GetString("<none>") }
                // Power
                , new string [] { GetParticularString("NonSteam", "Reverser"), GetString("reverse"), GetString("neutral"), GetString("forward"), null, null, GetString("locked. Close throttle, stop train then re-try.") }
                , new string [] { GetString("Throttle"), null, null, null, GetString("close"), GetString("open"), GetString("locked. Release dynamic brake then re-try.") }
                , new string [] { GetString("Wheel-slip"), GetString("over"), null, GetString("occurring. Tractive power greatly reduced."), null, null, GetString("warning") }
                // Electric power
                , new string [] { GetString("Power"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Pantograph 1"), GetString("lower"), null, GetString("raise") }
                , new string [] { GetString("Pantograph 2"), GetString("lower"), null, GetString("raise") }
                , new string [] { GetString("Pantograph 3"), GetString("lower"), null, GetString("raise") }
                , new string [] { GetString("Pantograph 4"), GetString("lower"), null, GetString("raise") }
                , new string [] { GetString("Circuit breaker"), GetString("open"), null, GetString("close") }
                , new string [] { GetString("Circuit breaker"), GetString("close"), null, GetString("open") }
                , new string [] { GetString("Circuit breaker closing authorization"), GetString("remove"), null, GetString("give") }
                // Diesel power
                , new string [] { GetString("Player Diesel Power"), GetString("off"), null, GetString("on"), null, null, GetString("locked. Close throttle then re-try.") }
                , new string [] { GetString("Helper Diesel Power"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Diesel Tank"), null, null, GetString("re-fueled"), null, GetString("level") }
                , new string [] { GetString("Boiler Water Tank"), null, null, GetString("re-fueled"), null, GetString("level") }
                // Steam power
                , new string [] { GetParticularString("Steam", "Reverser"), GetString("reverse"), GetString("neutral"), GetString("forward"), null, null, GetString("locked. Close throttle, stop train then re-try.") }
                , new string [] { GetString("Regulator"), null, null, null, GetString("close"), GetString("open") }    // Throttle for steam locomotives
                , new string [] { GetString("Injector 1"), GetString("off"), null, GetString("on"), GetString("close"), GetString("open") }
                , new string [] { GetString("Injector 2"), GetString("off"), null, GetString("on"), GetString("close"), GetString("open") }
                , new string [] { GetString("Blowdown Valve"), GetString("close"), null, GetString("open") }
                , new string [] { GetString("Blower"), null, null, null, GetString("decrease"), GetString("increase") }
                , new string [] { GetString("SteamHeat"), null, null, null, GetString("decrease"), GetString("increase") }
                , new string [] { GetString("Damper"), null, null, null, GetString("close"), GetString("open") }
                , new string [] { GetString("Firebox Door"), null, null, null, GetString("close"), GetString("open") }
                , new string [] { GetString("Firing Rate"), null, null, null, GetString("decrease"), GetString("increase") }
                , new string [] { GetString("Manual Firing"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Fire"), null, null, GetString("add shovel-full") }
                , new string [] { GetString("Cylinder Cocks"), GetString("close"), null, GetString("open") }
                , new string [] { GetString("Cylinder Compound"), GetString("close"), null, GetString("open") }
                , new string [] { GetString("LargeEjector"), null, null, null, GetString("decrease"), GetString("increase") }
                , new string [] { GetString("SmallEjector"), null, null, null, GetString("decrease"), GetString("increase") }
                , new string [] { GetString("VacuumExhauster"), GetString("normal"), null, GetString("fast") }
                , new string [] { GetString("Tender"), null, null, GetString("Coal re-filled"), null, GetString("Coal level") }
                , new string [] { GetString("Tender"), null, null, GetString("Water re-filled"), null, GetString("Water level") }
                // General
                , new string [] { GetString("Water Scoop"), GetString("up"), null, GetString("down") }
                // Braking
                , new string [] { GetString("Train Brake"), null, null, null, GetString("release"), GetString("apply") }
                , new string [] { GetString("Engine Brake"), null, null, null, GetString("release"), GetString("apply") }
                , new string [] { GetString("Brakeman Brake"), null, null, null, GetString("release"), GetString("apply") }
                , new string [] { GetString("Dynamic Brake"), GetString("off"), null, GetString("setup"), GetString("decrease"), GetString("increase") }
                , new string [] { GetString("Emergency Brake"), GetString("release"), null, GetString("apply") }
                , new string [] { GetString("Bail Off"), GetString("disengage"), null, GetString("engage") }
                , new string [] { GetString("Brakes"), GetString("initialize"), null, null, null, null, GetString("cannot initialize. Stop train then re-try.") }
                , new string [] { GetString("Handbrake"), GetString("none"), null, GetString("full") }
                , new string [] { GetString("Retainers"), GetString("off"), null, GetString("on"), null, null, null, null, GetString("Exhaust"), GetString("High Pressure"), GetString("Low Pressure"), GetString("Slow Direct") }
                , new string [] { GetString("Brake Hose"), GetString("disconnect"), null, GetString("connect") }
                , new string [] { GetString("Quick Release"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Overcharge"), GetString("off"), null, GetString("on") }
                // Cab Devices
                , new string [] { GetString("Sander"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Alerter"), GetString("acknowledge"), null, GetParticularString("Alerter", "sound") }
                , new string [] { GetString("Horn"), GetString("off"), null, GetParticularString("Horn", "sound") }
                , new string [] { GetString("Whistle"), GetString("off"), null, GetString("blow") }        // Horn for steam locomotives
                , new string [] { GetString("Bell"), GetString("off"), null, GetString("ring") }
                , new string [] { GetString("Headlight"), GetString("off"), GetString("dim"), GetString("bright") }
                , new string [] { GetString("Cab Light"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Wipers"), GetString("off"), null, GetString("on") }
                , new string [] { GetString("Cab"), null, null, GetParticularString("Cab", "change"), null, null, GetString("changing is not available"), GetString("changing disabled. Close throttle, set reverser to neutral, stop train then re-try.") }
                , new string [] { GetString("Odometer"), null, null, GetParticularString("Odometer", "reset"), GetParticularString("Odometer", "counting down"), GetParticularString("Odometer", "counting up") }
                // Train Devices
                , new string [] { GetString("Doors Left"), GetString("close"), null, GetString("open") }
                , new string [] { GetString("Doors Right"), GetString("close"), null, GetString("open") }
                , new string [] { GetString("Mirror"), GetString("retract"), null, GetString("extend") }
                // Track Devices
                , new string [] { GetString("Switch Ahead"), null, null, GetParticularString("Switch", "change"), null, null, GetString("locked. Use Control+M to change signals to manual mode then re-try.") }
                , new string [] { GetString("Switch Behind"), null, null, GetParticularString("Switch", "change"), null, null, GetString("locked. Use Control+M to change signals to manual mode then re-try.") }
                // Simulation
                , new string [] { GetString("Simulation Speed"), GetString("reset"), null, null, GetString("decrease"), GetString("increase") }
                , new string [] { GetString("Uncouple After") }
                , new string [] { GetString("Activity"), GetString("quit"), null, GetString("resume") }
                , new string [] { GetString("Replay"), null, null, null, null, null, GetString("Overriding camera replay. Press Escape to resume camera replay.") }
                , new string [] { GetString("Gearbox"), null, null, null, GetString("down"), GetString("up"), GetString("locked. Use shaft before changing gear.") }
                , new string [] { GetString("Signal mode"), GetString("manual"), null, GetString("auto"), null, null, GetString("locked. Stop train, then re-try.") }
                // Freight Load
                , new string [] { GetString("Wagon"), GetString("Wagon fully unloaded"), null, GetString("Wagon fully loaded"), null, GetString("Freight load") }

                , new string [] { GetString("Cab Radio"), GetString("off"), null, GetString("on") }
            };
            Debug.Assert(ConfirmText.Length == Enum.GetNames(typeof(CabControl)).Length, "Number of entries indexer ConfirmText must match values in CabControl enum.");
        }
        static void Main(string[] args)
        {
            // Create A, B, C, D matrices
            double[,] matrixA = new double[2, 2];
            matrixA[0, 0]     = 1; matrixA[0, 1] = 0;
            matrixA[1, 0]     = 0; matrixA[1, 1] = 1;

            double[,] matrixB = new double[2, 1];
            matrixB[0, 0]     = 1; matrixB[1, 0] = 0;

            double[,] matrixC = new double[1, 2];
            matrixC[0, 0]     = 1; matrixC[0, 1] = 0;

            double[,] matrixD = new double[1, 1];
            matrixD[0, 0]     = 0;

            // Create a continuous time system
            CTModel ctSystem =
                new CTModel(matrixA, matrixB, matrixC, matrixD);

            // Define sampling time
            double ts = 0.01d;


            // Transfer continuous time system to discrete time system
            DTModel dtSystem = ctSystem.ToDiscreteTimeSystem(ts);

            // Define a complex number array
            ComplexNumber[] newPoleLocation = new ComplexNumber[matrixA.GetLength(1)];

            // Place new poles to 0.5 + 0.5j and 0.5 - 0.5j
            newPoleLocation[0] = new ComplexNumber(0.5, 0.5);
            newPoleLocation[1] = new ComplexNumber(0.5, -0.5);

            // Create a state feed back controller
            StateFeedBack stateFeedBack = new StateFeedBack();

            // Calculate state feed back gain
            double[,] Kc = stateFeedBack.PolePlacement(ctSystem, newPoleLocation);
            double[,] Kd = stateFeedBack.PolePlacement(dtSystem, newPoleLocation);

            // Calculate AutoTune state feed back gain
            //double[,] Kc2 = stateFeedBack.CTModelAutoTune(ctSystem);

            //Simulate the closed loop step response
            Simulator simulator = new Simulator();

            simulator.ClosedStepResponse(ctSystem, Kc);
            simulator.ClosedStepResponse(dtSystem, Kd);

            //simulator.ClosedStepResponse(ctSystem, K2);

            // Define a complex number array
            ComplexNumber[] estPoleLocation = new ComplexNumber[matrixA.GetLength(1)];

            // Place poles to 5 + 1j and 5 - 1j
            estPoleLocation[0] = new ComplexNumber(5, 1);
            estPoleLocation[1] = new ComplexNumber(5, -1);

            // Create a state estimator
            StateEstimator stateEstimator = new StateEstimator();

            // Calculate state feed back gain
            double[,] Lc = stateEstimator.Observer(ctSystem, estPoleLocation);
            double[,] Ld = stateEstimator.Observer(dtSystem, estPoleLocation);


            //Simulate the closed loop step response for observer based state feedback system
            simulator.StateFeedBackEstimatorStepResponse(ctSystem, Kc, Lc);
            simulator.StateFeedBackEstimatorStepResponse(dtSystem, Kd, Ld);

            Console.ReadKey();
        }
Exemple #48
0
        static void Main(string[] args)
        {
            #region Load data
            Console.InputEncoding  = Encoding.UTF8;
            Console.OutputEncoding = Encoding.UTF8;
            int nbReplications;                 //Number of replications

            //DomainCreator is an object creating all other objects.
            //It is supposed to be inherited by custom domain implementations.
            //(Example here for a 'basic' domain).
            DomainCreator basicCreator = new BasicCreator();

            //SimulationDataSet is the central class for all simulation data input.
            //It is supposed to be inherited by custom domain implementations.
            SimulationDataSet simulationDataSet;
            try
            {
                nbReplications = args.Length > 0 ? Int32.Parse(args[0]) : 1;
                if (args.Length <= 1)
                {                //Usage 1
                    Console.WriteLine("Load data from standard input…\t({0})",
                                      DateTime.Now.ToString("o", CultureInfo.InvariantCulture));
                    simulationDataSet = basicCreator.LoadSimulationDataSetFromSingleXmlString(Console.In);
                }
                else if (args.Length == 5)
                {                //Usage 2
                    Console.WriteLine("Load data from files…\t({0})",
                                      DateTime.Now.ToString("o", CultureInfo.InvariantCulture));
                    simulationDataSet = basicCreator.LoadSimulationDataSetFromXml(path: args[1], workplaceName: args[2],
                                                                                  scenarioName: args[3], crewName: args[4]);
                }
                else
                {
                    throw new ArgumentException("Invalid number of arguments!");
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e);
                Console.Error.WriteLine();
                Console.Error.WriteLine(Usage);
                return;
            }
            #endregion

            #region Prepare simulation
            Console.WriteLine("Prepare simulation…\t({0})", DateTime.Now.ToString("o", CultureInfo.InvariantCulture));

            //Prepare the simulation input data:
            //For some tasks, automatically create one task instance per crewman.
            simulationDataSet.AutoExpandTasks();                //For some tasks, automatically create one task instance per crewman

            //A dispatcher contains the logic for task dispatch (assignment strategy).
            //It is possible to implement custom dispatchers.
            DomainDispatcher dispatcher = new BasicDispatcher(simulationDataSet);
            dispatcher.OnTaskAssignment += (simulationTime, phase, crewman, task) =>
            {            //Event when a task is assigned to a crewman (task is null when ideling)
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", simulationTime.ToStringUI(), phase, crewman,
                                  task == null ? "-" : task.ToString());
                //Room to do something more with this event…
            };

            //The Simulator class is the simulation engine.
            //This one is _not_ supposed to be inherited.
            var simulator = new Simulator(simulationDataSet);
            simulator.OnErrorMessage         += (text) => Console.Error.WriteLine(text);
            simulator.OnPhaseTransitionBegin += (phase, nextPhase, currentSimulationTime) =>
            {            //Event when starting a transition to the next phase of the scenario
                if (nextPhase == null)
                {
                    Console.WriteLine("{0}\t\tEnd of scenario.", currentSimulationTime.ToStringUI());
                }
                else
                {
                    Console.WriteLine("{0}\t{1}…", currentSimulationTime.ToStringUI(), nextPhase);
                }
                //Room to do something more with this event…
            };
            #endregion

            #region Run simulation
            var stopwatch = Stopwatch.StartNew();
            for (var n = 1; n <= nbReplications; n++)
            {
                Console.WriteLine("Start simulation #{0}:\t{1}, {2}, {3}…\t({4})",
                                  nbReplications, simulationDataSet.Workplace.Name, simulationDataSet.Crew.Name,
                                  simulationDataSet.Scenario.Name, DateTime.Now.ToString("o", CultureInfo.InvariantCulture));
                if (!simulator.Run(timeOrigin: SimulationTime.Zero, domainDispatcher: dispatcher))
                {
                    Console.Error.WriteLine("Error while running simulation {0}!", nbReplications);
                    break;
                }
                Console.WriteLine();
            }
            stopwatch.Stop();
            #endregion

            #region Display some statistics
            Console.WriteLine("==== Example of statistics: cumulated work time ====");
            //Display some basic statistics. It is up to implementors to gather more statistics.
            foreach (var crewman in simulationDataSet.Crew.Values)
            {
                Console.WriteLine("Crewman {0}:\t{1}", crewman, crewman.CumulatedWorkTime.ToStringUI());
            }
            Console.WriteLine();
            #endregion

            #region Display some performance statistics
            Console.WriteLine("==== Performance ====");
            Console.WriteLine("{0}-bit process of '.NET {1}' on '{2}' running '{3}'", Environment.Is64BitProcess ? 64 : 32,
                              Environment.Version, Environment.MachineName, Environment.OSVersion);
            Console.WriteLine("Simulation duration:\t{0}", stopwatch.Elapsed.ToString());
            var process = Process.GetCurrentProcess();
            Console.WriteLine("Total processor time:\t{0}", process.TotalProcessorTime);
            Console.WriteLine("Peak paged memory usage:\t{0}", process.PeakPagedMemorySize64);
            Console.WriteLine("End.\t({0})", DateTime.Now.ToString("o", CultureInfo.InvariantCulture));
            #endregion
        }
        private void BalanceHandler(Packet packet, Simulator simulator)
        {
            string value = ((MoneyBalanceReplyPacket)packet).MoneyData.MoneyBalance.ToString();

            this.BeginInvoke(new StringParamInvoker(UpdateBalance), new object[] { value });
        }
Exemple #50
0
        /// <summary>
        /// Updates the _kinematicSpaceWidth, _kinematicSpaceHeight, minX, maxX, minY, maxY
        /// </summary>
        /// <param name="pmks">The PMKS.</param>
        internal void UpdateRanges(Simulator pmks)
        {
            if (pmks == null)
            {
                return;
            }
            var origMinX = minX = -DisplayConstants.AxesBuffer;
            var origMinY = minY = -DisplayConstants.AxesBuffer;
            var origMaxX = maxX = DisplayConstants.AxesBuffer;
            var origMaxY = maxY = DisplayConstants.AxesBuffer;

            for (int i = 0; i < pmks.NumJoints; i++)
            {
                if (origMinX > pmks.JointParameters.Parameters[0][i, 0])
                {
                    origMinX = pmks.JointParameters.Parameters[0][i, 0];
                }
                if (origMinY > pmks.JointParameters.Parameters[0][i, 1])
                {
                    origMinY = pmks.JointParameters.Parameters[0][i, 1];
                }
                if (origMaxX < pmks.JointParameters.Parameters[0][i, 0])
                {
                    origMaxX = pmks.JointParameters.Parameters[0][i, 0];
                }
                if (origMaxY < pmks.JointParameters.Parameters[0][i, 1])
                {
                    origMaxY = pmks.JointParameters.Parameters[0][i, 1];
                }
            }
            for (int j = 0; j < pmks.JointParameters.Count; j++)
            {
                for (int i = 0; i < pmks.NumJoints; i++)
                {
                    if (minX > pmks.JointParameters.Parameters[j][i, 0])
                    {
                        minX = pmks.JointParameters.Parameters[j][i, 0];
                    }
                    if (minY > pmks.JointParameters.Parameters[j][i, 1])
                    {
                        minY = pmks.JointParameters.Parameters[j][i, 1];
                    }
                    if (maxX < pmks.JointParameters.Parameters[j][i, 0])
                    {
                        maxX = pmks.JointParameters.Parameters[j][i, 0];
                    }
                    if (maxY < pmks.JointParameters.Parameters[j][i, 1])
                    {
                        maxY = pmks.JointParameters.Parameters[j][i, 1];
                    }
                }
            }
            if ((maxX - minX) > 3 * (origMaxX - origMinX))
            {
                _kinematicSpaceWidth = 3 * (origMaxX - origMinX);
                minX = origMinX - (origMaxX - origMinX);
                maxX = origMaxX + (origMaxX - origMinX);
            }
            else
            {
                _kinematicSpaceWidth = (maxX - minX);
            }
            if ((maxY - minY) > 3 * (origMaxY - origMinY))
            {
                _kinematicSpaceHeight = 3 * (origMaxY - origMinY);
                minY = origMinY - (origMaxY - origMinY);
                maxY = origMaxY + (origMaxY - origMinY);
            }
            else
            {
                _kinematicSpaceHeight = (maxY - minY);
            }
        }
Exemple #51
0
        public void whenRobotIsNotPlaced_RunOtherCommand_ThenExceptionThrown()
        {
            var simulator = new Simulator();

            simulator.Command(Core.Models.CommandEnum.MOVE);
        }
Exemple #52
0
        internal void DrawStaticShapes(Simulator pmks, ObservableCollection <JointData> jointData)
        {
            Children.Clear();
            Children.Add(axes);
            initialPositionIcons.Clear();
            for (int index = 0; index < pmks.Joints.Count; index++)
            {
                var                 j                   = pmks.Joints[index];
                var                 isDriver            = (index == App.main.drivingIndex);
                JointData           jointRowData        = (index < jointData.Count) ? jointData[index] : null;
                InputJointBaseShape inputJointBaseShape = null;
                switch (j.TypeOfJoint)
                {
                case JointType.R:
                    inputJointBaseShape =
                        new InputRJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset,
                                             YAxisOffset, j.IsGround, isDriver, index, jointRowData);
                    break;

                case JointType.P:
                    inputJointBaseShape =
                        new InputPJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset,
                                             YAxisOffset, j.SlideAngleInitial, j.IsGround, isDriver, index, jointRowData);
                    break;

                case JointType.RP:
                    inputJointBaseShape =
                        new InputRPJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset,
                                              YAxisOffset, j.SlideAngleInitial, j.IsGround, index, jointRowData);
                    break;

                case JointType.G:
                    inputJointBaseShape = new InputGJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset,
                                                               YAxisOffset, j.SlideAngleInitial, j.IsGround, index, jointRowData);
                    break;
                }
                Children.Add(inputJointBaseShape);
                initialPositionIcons.Add(inputJointBaseShape);
            }
            /* remove old ground shapes */
            Children.Remove(groundLinkShape);
            groundLinkShape = new GroundLinkShape(pmks.GroundLink, XAxisOffset, YAxisOffset, penThick, jointSize,
                                                  DisplayConstants.DefaultBufferRadius / ScaleFactor);
            Children.Add(groundLinkShape);
            /* now add the link shapes */
            for (int i = 0; i < pmks.NumLinks; i++)
            {
                if (!pmks.Links[i].name.Equals("ground"))
                {
                    Children.Add(new LinkShape(i, pmks.Links[i], XAxisOffset, YAxisOffset, penThick, jointSize, null,
                                               DisplayConstants.DefaultBufferRadius / ScaleFactor));
                }
            }
            if (TargetPath != null)
            {
                Children.Remove(TargetPath);
                TargetPath.RenderTransform
                    = new TranslateTransform {
                    X = XAxisOffset, Y = YAxisOffset
                    };
                Children.Add(TargetPath);
            }
        }
Exemple #53
0
            public override bool Run()
            {
                CarService car = ((Definition)base.InteractionDefinition).Car;

                try
                {
                    if (!Actor.HasBeenDestroyed)
                    {
                        bool Ok;
                        if (car != null)
                        {
                            Ok = CarNpcManager.Singleton.DriveAwayInNpcCar(car, Actor, Target);
                            if (Ok)
                            {
                                car.GetOut(Actor);
                            }
                            if (Actor.SimDescription.VirtualLotHome != null)
                            {
                                Sim.MakeSimGoHome(Actor, false);
                                return(true);
                            }
                            if (!Ok)
                            {
                                Ok = WalkOffLot();
                            }
                        }
                        else
                        {
                            if (Actor.SimDescription.VirtualLotHome != null)
                            {
                                Sim.MakeSimGoHome(Actor, false);
                                return(true);
                            }
                            Ok = WalkOffLot();
                        }
                        return(Ok);
                    }
                    return(false);
                }
                finally
                {
                    NiecTask.Perform(delegate {
                        if (car == null || car.Passengers == null)
                        {
                            return;
                        }
                        car.GetOut(Actor);
                        Actor.FadeOut();
                        Sim[] copypa = (Sim[])car.Passengers.Clone();

                        foreach (var item in copypa)
                        {
                            if (item == null)
                            {
                                continue;
                            }
                            //item.AddToWorld();
                            //item.FadeIn();
                            car.GetOut(item);
                            item.FadeOut();
                        }

                        Simulator.Sleep(100);

                        foreach (var item in copypa)
                        {
                            if (item == null)
                            {
                                continue;
                            }
                            item.AddToWorld();
                            item.FadeIn();
                        }

                        if (car != null)
                        {
                            car.Destroy();
                        }
                        Actor.AddToWorld();
                        Actor.FadeIn();
                    });
                }
            }
Exemple #54
0
        public static void SynchronizeListWithCreation <Tdb, TJson>([ItemNotNull][NotNull] ObservableCollection <Tdb> dbitems,
                                                                    [ItemNotNull][NotNull] List <TJson> jsonItems,
                                                                    Func <TJson, Simulator, Tdb> AddNewObjectFromJto, Simulator sim)
            where Tdb : DBBase, IJSonSubElement <TJson> where TJson : IGuidObject
        {
            var        jsonGuids       = jsonItems.Select(x => x.Guid).ToHashSet();
            List <Tdb> dbItemsToRemove = new List <Tdb>();

            foreach (var dbitem in dbitems)
            {
                if (!jsonGuids.Contains(dbitem.RelevantGuid))
                {
                    dbItemsToRemove.Add(dbitem);
                }
            }

            foreach (Tdb dbBase in dbItemsToRemove)
            {
                dbBase.DeleteFromDB();
                dbitems.Remove(dbBase);
            }

            var dbGuids = dbitems.Select(x => x.RelevantGuid).ToHashSet();

            foreach (var jsonItem in jsonItems)
            {
                if (!dbGuids.Contains(jsonItem.Guid))
                {
                    var obj = AddNewObjectFromJto(jsonItem, sim);
                    Logger.Info("Created new object " + jsonItem.Guid + " of type " + typeof(Tdb).Name);
                    obj.SynchronizeDataFromJson(jsonItem, sim);
                    Logger.Info("Synchronized item " + obj.Guid + " of type " + typeof(Tdb).Name);
                }
                else
                {
                    var itemToSync = dbitems.Single(x => x.RelevantGuid == jsonItem.Guid);
                    itemToSync.SynchronizeDataFromJson(jsonItem, sim);
                }
            }
            dbitems.Sort();
        }
Exemple #55
0
 /// <summary>
 /// Initializes all ScriptCore classes that data to the App Domain
 /// and initialize any other static members in Sims3.SimIFace classes.
 /// </summary>
 public static void Initialize()
 {
     if (!sInitialized)
     {
         if (gAnimation == null)
         {
             gAnimation = new Animation();
         }
         if (gAudio == null)
         {
             gAudio = new Audio();
         }
         if (gAutomationUtils == null)
         {
             gAutomationUtils = new AutomationUtils();
         }
         if (gCacheManager == null)
         {
             gCacheManager = new CacheManager();
         }
         if (gCameraController == null)
         {
             gCameraController = new CameraController();
         }
         if (gCASUtils == null)
         {
             gCASUtils = new CASUtils();
         }
         if (gCommandSystem == null)
         {
             gCommandSystem = new CommandSystem();
         }
         if (gCTProductModularObject == null)
         {
             gCTProductModularObject = new CTProductModularObject();
         }
         if (gDataFactory == null)
         {
             gDataFactory = new DataFactory();
         }
         if (gDebugDraw == null)
         {
             gDebugDraw = new DebugDraw();
         }
         if (gDeviceConfig == null)
         {
             gDeviceConfig = new DeviceConfig();
         }
         if (gDownloadContent == null)
         {
             gDownloadContent = new DownloadContent();
         }
         if (gEAText == null)
         {
             gEAText = new EAText();
         }
         if (gEATrace == null)
         {
             gEATrace = new EATrace();
         }
         if (gEventQueueInitializer == null)
         {
             gEventQueueInitializer = new EventQueueInitializer();
         }
         if (gGameUtils == null)
         {
             gGameUtils = new GameUtils();
         }
         if (gLoadSaveManager == null)
         {
             gLoadSaveManager = new LoadSaveManager();
         }
         if (gLocalizedStringService == null)
         {
             gLocalizedStringService = new LocalizedStringService();
         }
         if (gLookAtMgr == null)
         {
             gLookAtMgr = new LookAtMgr();
         }
         if (gNameGuidMapService == null)
         {
             gNameGuidMapService = new NameGuidMapService();
         }
         if (gObjects == null)
         {
             gObjects = new Objects();
         }
         if (gOnlineFeatures == null)
         {
             gOnlineFeatures = new OnlineFeatures();
         }
         //if (gProfilerUtils == null) gProfilerUtils = new ProfilerUtils();
         if (gQueries == null)
         {
             gQueries = new Queries();
         }
         if (gRandom == null)
         {
             gRandom = new ScriptCore.Random();
         }
         if (gReflection == null)
         {
             gReflection = new ScriptCore.Reflection();
         }
         if (gRouteManager == null)
         {
             gRouteManager = new RouteManager();
         }
         if (gSACS == null)
         {
             gSACS = new SACS();
         }
         if (gSimulator == null)
         {
             gSimulator = new Simulator();
         }
         if (gSlots == null)
         {
             gSlots = new Slots();
         }
         if (gSocialFeatures == null)
         {
             gSocialFeatures = new SocialFeatures();
         }
         if (gStopWatch == null)
         {
             gStopWatch = new StopWatch();
         }
         if (gStreamHost == null)
         {
             gStreamHost = new StreamHost();
         }
         if (gSwarm == null)
         {
             gSwarm = new Swarm();
         }
         if (gThumbnailManager == null)
         {
             gThumbnailManager = new ThumbnailManager();
         }
         if (gUIManager == null)
         {
             gUIManager = new UIManager();
         }
         if (gUserToolUtils == null)
         {
             gUserToolUtils = new UserToolUtils();
         }
         if (gVideoRecorder == null)
         {
             gVideoRecorder = new VideoRecorder();
         }
         if (gWorld == null)
         {
             gWorld = new World();
         }
         // Will this still be reached if any of the constructors throw an Exception? Hopefully not
         sInitialized = true;
     }
 }
Exemple #56
0
        internal void DrawDynamicShapes(Simulator pmks, ObservableCollection <JointData> jointData, Slider timeSlider)
        {
            #region draw position, velocity, and acceleration curves

            timeSlider.Maximum        = pmks.EndTime;
            App.main.maxTimeText.Text = timeSlider.Maximum.ToString("F");
            timeSlider.Minimum        = pmks.BeginTime;
            App.main.minTimeText.Text = timeSlider.Minimum.ToString("F");
            var h = (timeSlider.ActualHeight == 0) ? ParentHeight : timeSlider.ActualHeight;
            timeSlider.LargeChange = (timeSlider.Maximum - timeSlider.Minimum) * DisplayConstants.TickDistance / h;
            timeSlider.SmallChange = (timeSlider.Maximum - timeSlider.Minimum) / 1000;
            timeSlider.Value       = 0.0;


            /************ creating the shapes ***************/
            foreach (var child in Children)
            {
                if (child is LinkShape)
                {
                    ((LinkShape)child).SetBindings(timeSlider, pmks, XAxisOffset, YAxisOffset);
                }
            }

            for (int i = 0; i < pmks.NumJoints; i++)
            {
                var jt = pmks.Joints[i];
                if (jt.FixedWithRespectTo(pmks.GroundLink))
                {
                    continue;
                }
                Children.Add(new PositionPath(i, pmks.JointParameters, jointData[i], XAxisOffset, YAxisOffset, pmks.CycleType == CycleTypes.OneCycle,
                                              penThick));
                DynamicJointBaseShape displayJoint;
                switch (jt.TypeOfJoint)
                {
                case JointType.P:
                    var fixedLink = pmks.Joints[i].Link2;
                    displayJoint = new PJointShape(pmks.Joints[i], fixedLink, timeSlider, pmks, jointSize, penThick, XAxisOffset, YAxisOffset);
                    break;

                default: displayJoint = new RJointShape(pmks.Joints[i], timeSlider, pmks, jointSize, penThick, XAxisOffset, YAxisOffset);
                    break;
                }
                if (App.main.drivingIndex == i)
                {
                    displayJoint.Stroke = new SolidColorBrush {
                        Color = Color.FromArgb(180, 40, 255, 0)
                    };
                    displayJoint.StrokeThickness = 30.0;
                }
                Children.Add(displayJoint);
                Children.Add(new AccelerationVector(pmks.Joints[i], timeSlider, pmks, AccelFactor, penThick, XAxisOffset, YAxisOffset, displayJoint, jointData[i]));
                Children.Add(new VelocityVector(pmks.Joints[i], timeSlider, pmks, VelocityFactor, penThick, XAxisOffset, YAxisOffset, displayJoint, jointData[i]));
            }
            /******************************************************************/
            #endregion

            var duration      = new Duration(TimeSpan.FromSeconds(timeSlider.Maximum - timeSlider.Minimum));
            var timeAnimation = new DoubleAnimation
            {
                From           = timeSlider.Minimum,
                To             = timeSlider.Maximum,
                Duration       = duration,
                AutoReverse    = pmks.CycleType != CycleTypes.OneCycle,
                RepeatBehavior = RepeatBehavior.Forever
            };
            animateMechanismStoryBoard = new Storyboard
            {
                Duration       = duration,
                AutoReverse    = pmks.CycleType != CycleTypes.OneCycle,
                RepeatBehavior = RepeatBehavior.Forever
            };
            animateMechanismStoryBoard.Children.Add(timeAnimation);
            Storyboard.SetTarget(timeAnimation, timeSlider);
            Storyboard.SetTargetProperty(timeAnimation, new PropertyPath(RangeBase.ValueProperty));
            if ((bool)App.main.PlayButton.IsChecked)
            {
                animateMechanismStoryBoard.Begin();
            }
        }
Exemple #57
0
        SaveAsXaml(
            Object serializedObject
            )
        {
            if (serializedObject == null)
            {
                throw new ArgumentNullException(nameof(serializedObject));
            }

            if (!XpsSerializationManager.IsSerializedObjectTypeSupported(serializedObject, IsBatchMode))
            {
                throw new XpsSerializationException(SR.Get(SRID.ReachSerialization_NotSupported));
            }

            if (Simulator == null)
            {
                Simulator = new XpsOMHierarchySimulator(this,
                                                        serializedObject);
            }

            if (!IsSimulating)
            {
                Simulator.BeginConfirmToXPSStructure(IsBatchMode);
                IsSimulating = true;
            }

            if (IsBatchMode)
            {
                //
                // Add the Visual received in to the queue
                //
                BatchOperationWorkItem batchOperationWorkItem = new BatchOperationWorkItem(BatchOperationType.batchWrite,
                                                                                           serializedObject);
                _batchOperationQueue.Enqueue(batchOperationWorkItem);
                PostSerializationTask(new DispatcherOperationCallback(InvokeSaveAsXamlBatchWorkItem));
            }
            else
            {
                ReachSerializer reachSerializer = GetSerializer(serializedObject);

                if (reachSerializer != null)
                {
                    //
                    // Prepare the context that is going to be pushed on the stack
                    //
                    SerializationManagerOperationContextStack
                        contextStack = new SerializationManagerOperationContextStack(reachSerializer,
                                                                                     serializedObject);
                    //
                    // At this stage, start calling another method which would peak at the stack
                    //
                    _operationStack.Push(contextStack);

                    PostSerializationTask(new DispatcherOperationCallback(InvokeSaveAsXamlWorkItem));
                }
                else
                {
                    throw new XpsSerializationException(SR.Get(SRID.ReachSerialization_NoSerializer));
                }
            }
        }
Exemple #58
0
        public void whenPlaceRobot_X_OutOfBoundary_ThenExceptionThrown()
        {
            var simulator = new Simulator();

            simulator.Command(Core.Models.CommandEnum.PLACE, "10,2,North");
        }
Exemple #59
0
 public static string GetForestTextureFile(Simulator simulator, string textureName)
 {
     return(GetRouteTextureFile(simulator, Helpers.TextureFlags.Spring | Helpers.TextureFlags.Autumn | Helpers.TextureFlags.Winter | Helpers.TextureFlags.SpringSnow | Helpers.TextureFlags.AutumnSnow | Helpers.TextureFlags.WinterSnow, textureName));
 }
 public MSTSElectricLocomotive(Simulator simulator, string wagFile) :
     base(simulator, wagFile)
 {
     PowerSupply = new ScriptedElectricPowerSupply(this);
 }