コード例 #1
0
        private void ChildUpdateOnPositionChange(IObject own)
        {
            AgentCircuit c;

            if (Circuits.TryGetValue(SceneID, out c))
            {
                var scene = c.Scene;
                if (scene != null)
                {
                    foreach (var kvp in ActiveChilds)
                    {
                        var m = new ChildAgentPositionUpdate
                        {
                            AgentID        = ID,
                            AgentPosition  = GlobalPosition,
                            AgentVelocity  = Velocity,
                            ChangedGrid    = false,
                            AtAxis         = CameraAtAxis,
                            Center         = CameraPosition,
                            LeftAxis       = CameraLeftAxis,
                            RegionLocation = scene.GridPosition,
                            SessionID      = SessionID,
                            Size           = Size,
                            UpAxis         = CameraUpAxis
                        };
                        var childUpdater = kvp.Value.ChildAgentUpdateService;
                        childUpdater?.SendMessage(m);
                    }
                }
            }
        }
コード例 #2
0
        public void HandleAgentAnimation(Message m)
        {
            var            req = (AgentAnimation)m;
            SceneInterface scene;
            AgentCircuit   circuit;

            if (!Circuits.TryGetValue(m.CircuitSceneID, out circuit))
            {
                return;
            }

            scene = circuit.Scene;
            if (scene == null)
            {
                return;
            }
            AssetServiceInterface sceneAssetService = scene.AssetService;

            if (sceneAssetService == null)
            {
                return;
            }

            AssetMetadata metadata;

            foreach (var e in req.AnimationEntryList)
            {
                if (e.StartAnim)
                {
                    if (!sceneAssetService.Metadata.TryGetValue(e.AnimID, out metadata))
                    {
                        AssetData data;
                        if (AssetService.TryGetValue(e.AnimID, out data))
                        {
                            sceneAssetService.Store(data);
                            if (data.Type != AssetType.Animation)
                            {
                                /* ignore non-animation content here */
                                continue;
                            }
                        }
                        else
                        {
                            /* asset not there so ignore */
                            continue;
                        }
                    }
                    else if (metadata.Type != AssetType.Animation)
                    {
                        /* ignore non-animation content here */
                        continue;
                    }
                    PlayAnimation(e.AnimID, UUID.Zero);
                }
                else
                {
                    StopAnimation(e.AnimID, UUID.Zero);
                }
            }
        }
コード例 #3
0
        private void RunHowLongTestFor(string[] connects, string[] costs, int expected, string assertMsg)
        {
            Circuits target = new Circuits();
            int      actual;

            actual = target.howLong(connects, costs);
            Assert.AreEqual(expected, actual, assertMsg);
        }
コード例 #4
0
ファイル: InputReader.cs プロジェクト: fullmetalfelix/vafmpro
        static bool ReadCantilever()
        {

            myCantilever = new Cantilever(); //create a cantilever
            Circuits.Insert(1, myCantilever); //insert it in the second place (after timer)

			return myCantilever.ReadCantilever(FileNameMain);
			
		}
コード例 #5
0
ファイル: ViewerAgent.cs プロジェクト: ft-/silversim-testing
        public override void SendKillObject(UUID sceneID)
        {
            AgentCircuit circuit;

            if (Circuits.TryGetValue(sceneID, out circuit))
            {
                circuit.SendKillObject();
            }
        }
コード例 #6
0
ファイル: Delorean.cs プロジェクト: ahk1221/BackToTheFutureV
 public void Dispose()
 {
     if (Vehicle?.GetPedOnSeat(VehicleSeat.Driver) != Game.Player.Character)
     {
         Vehicle?.GetPedOnSeat(VehicleSeat.Driver)?.Delete();
     }
     Circuits?.StopAllHandlers();
     Vehicle?.Delete();
 }
コード例 #7
0
        private void HandleAppearanceUpdate(IAgent agent)
        {
            AgentCircuit circuit;

            if (Circuits.TryGetValue(m_CurrentSceneID, out circuit))
            {
                circuit.Scene.SendAgentAppearanceToAllAgents(this);
            }
        }
コード例 #8
0
ファイル: ViewerAgent.cs プロジェクト: ft-/silversim-testing
        public override void SendUpdateObject(UUID sceneID)
        {
            AgentCircuit circuit;

            if (Circuits.TryGetValue(sceneID, out circuit))
            {
#if DEBUG
                m_Log.DebugFormat("Sending update for {0} at {1}", Owner, sceneID);
#endif
                circuit.Scene?.ScheduleUpdate(GetUpdateInfo(sceneID));
            }
        }
コード例 #9
0
        private void ChildUpdateOnParamChange()
        {
            AgentCircuit c;

            if (Circuits.TryGetValue(SceneID, out c))
            {
                var scene = c.Scene;
                if (scene != null)
                {
                    foreach (var kvp in ActiveChilds)
                    {
                        var m = new ChildAgentUpdate
                        {
                            RegionID       = scene.ID,
                            RegionLocation = scene.GridPosition,
                            AgentID        = ID,
                            SessionID      = SessionID,
                            AgentPosition  = GlobalPosition,
                            AgentVelocity  = Velocity,
                            Center         = CameraPosition,
                            Size           = Size,
                            AtAxis         = CameraAtAxis,
                            LeftAxis       = CameraLeftAxis,
                            UpAxis         = CameraUpAxis,
                            ChangedGrid    = false,
                            Far            = m_DrawDistance,
                            Aspect         = 1,
                            Throttles      = new byte[9],
                            //m.LocomotionState;
                            HeadRotation = HeadRotation,
                            BodyRotation = BodyRotation,
                            ControlFlags = m_ActiveAgentControlFlags,
                            EnergyLevel  = 0,
                            GodLevel     = 0,
                            AlwaysRun    = m_IsRunning,
                            PreyAgent    = UUID.Zero,
                            AgentAccess  = 0,
                            //m.AgentTextures;
                            ActiveGroupID = Group.ID,
                            //m.GroupData;
                            //m.AnimationData;
                            //m_AnimationController.
                            //m.GranterBlock;
                            VisualParams = VisualParams
                        };
                        //m.AgentAccessList;
                        //m.AgentInfo;
                        var childUpdater = kvp.Value.ChildAgentUpdateService;
                        childUpdater?.SendMessage(m);
                    }
                }
            }
        }
コード例 #10
0
        public void HandleAgentDataUpdateRequest(Message m)
        {
            var adur = (AgentDataUpdateRequest)m;

            if (adur.AgentID == ID && adur.SessionID == adur.CircuitSessionID)
            {
                AgentCircuit circuit;
                if (Circuits.TryGetValue(adur.CircuitSceneID, out circuit))
                {
                    SendAgentDataUpdate(circuit);
                }
            }
        }
コード例 #11
0
ファイル: InputReader.cs プロジェクト: fullmetalfelix/vafmpro
        static bool ReadInput()
        {

            if (!File.Exists(FileNameMain))
            {
                Console.WriteLine("FATAL! The input file was not found.");
                return false;
            }
            Console.WriteLine("Opening input file: {0}", FileNameMain);
 

			myScanner = new MainScanner(new string[]{"program","scanner"});
			Circuits.Add(myScanner);
			//Circuits.Insert(2, myScanner);
			
			if (!ReadVariables(FileNameMain, null))
				return false;
			if (!ReadComposAlias(FileNameMain))
				return false;
            if (!ReadCircuits(FileNameMain, null))   //read all the circuits
                return false;
            if (!ReadCantilever()) //read the cantilever (which is a circuit)
                return false;
			if (!ReadOutput())   //now read the output
                return false;
            if (!ReadMainScannerScript()) //read the scanner (which is a circuit)
                return false;
			
			//add all feeds to the global list
			foreach(Circuit listedcirc in Circuits)
				foreach(Channel outchan in listedcirc.Output)
					Program.AllFeeds.Add(outchan.Signal);
			
            //if (!ReadSecondary(FileNameMain, null))   //now read the output
            //    return false;
            if (!ReadConnections(FileNameMain, null)) //and finally the connections
                return false;

			/*
			//makes sure the scanned has the same holder position as the cantilever
			for(int i=0;i<3;i++)
			{
				myScanner.Output[i].Value = HolderPosition[i];
				myCantilever.Input[i].Value = HolderPosition[i];
			}
			 */

            Console.WriteLine("Input file read correctly!\n");

            return true;
        }
コード例 #12
0
ファイル: Details.cshtml.cs プロジェクト: Team6App2000/F1CRUD
        public async Task <IActionResult> OnGetAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Circuits = await _context.Circuits.FirstOrDefaultAsync(m => m.circuitId == id);

            if (Circuits == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #13
0
ファイル: Delete.cshtml.cs プロジェクト: Team6App2000/F1CRUD
        public async Task <IActionResult> OnPostAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Circuits = await _context.Circuits.FindAsync(id);

            if (Circuits != null)
            {
                _context.Circuits.Remove(Circuits);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
コード例 #14
0
        public void HandleLandStatRequest(Message m)
        {
            var req = (LandStatRequest)m;

            if (req.CircuitAgentID != req.AgentID ||
                req.CircuitSessionID != req.SessionID)
            {
                return;
            }

            AgentCircuit circuit;

            if (!Circuits.TryGetValue(req.CircuitSceneID, out circuit))
            {
                return;
            }

            SceneInterface scene = circuit.Scene;

            if (scene == null)
            {
                return;
            }

            UGUIWithName agentID = circuit.Agent.NamedOwner;

            if (!scene.IsRegionOwner(agentID) && !scene.IsEstateOwner(agentID) && !scene.IsEstateManager(agentID))
            {
                return;
            }

            switch (req.ReportType)
            {
            case LandStatReportEnum.TopScripts:
                ProcessTopScripts(circuit, scene, req.RequestFlags, req.Filter);
                break;

            case LandStatReportEnum.TopColliders:
                ProcessTopColliders(circuit, scene, req.RequestFlags, req.Filter);
                break;

            default:
                break;
            }
        }
コード例 #15
0
ファイル: ViewerAgent.cs プロジェクト: ft-/silversim-testing
 uint ILocalIDAccessor.this[UUID sceneID]
 {
     get
     {
         AgentCircuit circuit;
         return(Circuits.TryGetValue(sceneID, out circuit) ? circuit.UpdateInfo.LocalID : 0);
     }
     set
     {
         AgentCircuit circuit;
         if (Circuits.TryGetValue(sceneID, out circuit))
         {
             circuit.UpdateInfo.LocalID = value;
         }
         else
         {
             m_Log.DebugFormat("Setting LocalID on agent {0} for region {1} has no circuit", ID, sceneID);
         }
     }
 }
コード例 #16
0
        private void GetPointsForCurrentCircuit()
        {
            _inCode = true;

            try
            {
                if (Circuits != null && Circuits.Any() && CurrentCircuitPosition == -1)
                {
                    CurrentCircuitPosition = 0;
                }
                if (Circuits != null)
                {
                    SelectedCircuit = Circuits[CurrentCircuitPosition];
                }
                RaisePropertyChanged(() => CurrentCircuitPosition);
            }
            catch (Exception e)
            {
            }

            _inCode = false;
        }
コード例 #17
0
        public void HandleRegionHandshakeReply(Message m)
        {
            var          rhr = (Messages.Region.RegionHandshakeReply)m;
            AgentCircuit circuit;

            if (Circuits.TryGetValue(rhr.CircuitSceneID, out circuit))
            {
                var scene = circuit.Scene;
                /* Add our agent to scene */
                scene.SendAllParcelOverlaysTo(this);
                scene.Terrain.UpdateTerrainDataToSingleClient(this);
                scene.Environment.UpdateWindDataToSingleClient(this);
                scene.SendAgentObjectToAllAgents(this);
                scene.SendRegionInfo(this);
                ParcelInfo pinfo;
                if (scene.Parcels.TryGetValue(GlobalPosition, out pinfo))
                {
                    var props = scene.ParcelInfo2ParcelProperties(Owner.ID, pinfo, NextParcelSequenceId, ParcelProperties.RequestResultType.Single);
                    circuit.SendMessage(props);
                }
                circuit.ScheduleFirstUpdate();
            }
        }
コード例 #18
0
        public void HandleAvatarTexturesRequest(Message p)
        {
            var gm = (GenericMessage)p;

            if (gm.AgentID != ID || gm.SessionID != gm.CircuitSessionID || gm.ParamList.Count < 1)
            {
                return;
            }

            UUID avatarId;

            if (!UUID.TryParse(gm.ParamList[0].FromUTF8Bytes(), out avatarId))
            {
                return;
            }

            IAgent         agent;
            AgentCircuit   circuit;
            SceneInterface scene;

            if (!Circuits.TryGetValue(gm.CircuitSceneID, out circuit))
            {
                return;
            }

            scene = circuit.Scene;

            if (scene == null)
            {
                return;
            }

            if (scene.RootAgents.TryGetValue(avatarId, out agent))
            {
                SendMessageAlways(agent.GetAvatarAppearanceMsg(), SceneID);
            }
        }
コード例 #19
0
        public bool TryGetCameraConstraints(Vector3 wantedCamPosition, out Vector4 collisionplane)
        {
            AgentCircuit   circuit;
            SceneInterface scene;

            collisionplane = new Vector4(0.9f, 0.0f, 0.361f, -10000f);
            if (!Circuits.TryGetValue(m_CurrentSceneID, out circuit))
            {
                return(false);
            }
            scene = circuit.Scene;
            if (scene == null)
            {
                return(false);
            }
            IPhysicsScene physicsScene = scene.PhysicsScene;

            if (physicsScene == null)
            {
                return(false);
            }

            RayResult[] results = physicsScene.RayTest(GlobalPosition, wantedCamPosition, RayTestHitFlags.All, 1);
            if (results.Length == 0)
            {
                return(false);
            }

            Vector3 normal = results[0].HitNormalWorld;

            collisionplane.X = normal.X;
            collisionplane.Y = normal.Y;
            collisionplane.Z = normal.Z;
            collisionplane.W = results[0].HitPointWorld.Dot(normal);
            return(true);
        }
コード例 #20
0
        public void HandleCompleteAgentMovement(Message m)
        {
            var          cam = (CompleteAgentMovement)m;
            AgentCircuit circuit;

            if (cam.SessionID != cam.CircuitSessionID ||
                cam.AgentID != cam.CircuitAgentID)
            {
                m_Log.InfoFormat("Unexpected CompleteAgentMovement with invalid details");
            }
            else if (Circuits.TryGetValue(cam.CircuitSceneID, out circuit))
            {
                var scene = circuit.Scene;
                if (scene == null)
                {
                    return;
                }

                /* switch agent region */
                if (m_IsActiveGod && !scene.IsPossibleGod(Owner))
                {
                    /* revoke god powers when changing region and new region has a different owner */
                    var gm = new GrantGodlikePowers
                    {
                        AgentID   = ID,
                        SessionID = circuit.SessionID,
                        GodLevel  = 0,
                        Token     = UUID.Zero
                    };
                    SendMessageIfRootAgent(gm, SceneID);
                    m_IsActiveGod = false;
                }
                SceneID = scene.ID;
                scene.TriggerAgentChangedScene(this);

                if (circuit.LastTeleportFlags.NeedsInitialPosition())
                {
                    try
                    {
                        scene.DetermineInitialAgentLocation(this, circuit.LastTeleportFlags, GlobalPosition, LookAt);
                    }
                    catch
                    {
                        /* TODO: how to do this? */
                        return;
                    }
                }

                var amc = new AgentMovementComplete
                {
                    AgentID        = cam.AgentID,
                    ChannelVersion = VersionInfo.SimulatorVersion,
                    LookAt         = circuit.Agent.LookAt,
                    Position       = GlobalPosition,
                    SessionID      = cam.SessionID,
                    GridPosition   = circuit.Scene.GridPosition,
                    Timestamp      = (uint)Date.GetUnixTime()
                };

                amc.OnSendCompletion += (bool success) =>
                {
                    if (success)
                    {
                        HandleChildAgentChanges(circuit);
                    }
                };
                circuit.SendMessage(amc);

                SendAgentDataUpdate(circuit);
                scene.SendAgentObjectToAllAgents(this);

                var clu = new CoarseLocationUpdate
                {
                    You  = 0,
                    Prey = -1
                };
                var ad = new CoarseLocationUpdate.AgentDataEntry
                {
                    X       = (byte)(uint)GlobalPosition.X,
                    Y       = (byte)(uint)GlobalPosition.Y,
                    Z       = (byte)(uint)GlobalPosition.Z,
                    AgentID = ID
                };
                clu.AgentData.Add(ad);
                circuit.SendMessage(clu);

                scene.Environment.UpdateWindlightProfileToClientNoReset(this);
                scene.Environment.SendSimulatorTimeMessageToClient(this);

                foreach (var action in circuit.m_TriggerOnRootAgentActions)
                {
                    action.TriggerOnRootAgent(ID, scene);
                }
            }
        }
コード例 #21
0
        public CircuitCalculator()
        {
            InitializeComponent();

            #region CIRCUITS
            Circuits.Add(electronicCircuit, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { "Circuit Board", 1 },
                    { "SMD Resistor", 2 },
                    { "1x Red Alloy Wire", 2 },
                    { "Vaccum Tube", 2 }
                }
            });

            Circuits.Add(integratedCircuit, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { "Circuit Board", 1 },
                    { "SMD Resistor", 2 },
                    { "SMD Diode", 2 },
                    { "Fine Copper Wire", 2 },
                    { "Tin Bolt", 2 },
                    { "Integrated Logic Circuit (Wafer-made)", 1 }
                }
            });

            Circuits.Add(goodElectronicCircuit, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { integratedCircuit, 2 },
                    { "Good Circuit Board", 1 },
                    { "SMD Diode", 2 },
                    { "1x Copper Wire", 2 }
                }
            });

            Circuits.Add(goodIntegratedCircuit, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { integratedCircuit, 2 },
                    { "Good Circuit Board", 1 },
                    { "SMD Resistor", 4 },
                    { "SMD Diode", 4 },
                    { "Fine Gold Wire", 4 },
                    { "Silver Bolt", 4 }
                }
            });

            Circuits.Add(advancedCircuit, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { goodIntegratedCircuit, 1 },
                    { "Integrated Logic Circuit (Wafer-made)", 2 },
                    { "Random Access Memory Chip", 2 },
                    { "SMD Transistor", 4 },
                    { "Fine Electrum Wire", 8 },
                    { "Annealed Copper Bolt", 8 }
                }
            });

            Circuits.Add(integratedProcessor, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { "Plastic Circuit Board", 1 },
                    { "Central Processing Unit", 1 },
                    { "SMD Resistor", 4 },
                    { "SMD Capacitor", 4 },
                    { "SMD Transistor", 4 },
                    { "Fine Red Alloy Wire", 4 }
                }
            });

            Circuits.Add(processorAssembly, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { integratedProcessor, 2 },
                    { "Plastic Circuit Board", 1 },
                    { "Small Coil", 4 },
                    { "SMD Capacitor", 8 },
                    { "Random Access Memory Chip", 4 },
                    { "Fine Red Alloy Wire", 4 }
                }
            });

            Circuits.Add(workstation, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { processorAssembly, 2 },
                    { "Plastic Circuit Board", 1 },
                    { "SMD Diode", 4 },
                    { "Random Access Memory Chip", 4 },
                    { "Fine Electrum Wire", 16 },
                    { "Platinum Bolt", 16 }
                }
            });

            Circuits.Add(mainframe, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { workstation, 2 },
                    { "Aluminium Frame Box", 2 },
                    { "Small Coil", 12 },
                    { "SMD Capacitor", 16 },
                    { "Random Access Memory Chip", 16 },
                    { "1x Annealed Copper Wire", 16 },
                }
            });

            Circuits.Add(nanoprocessor, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { "Advanced Circuit Board", 1 },
                    { "ASoC", 1 },
                    { "Fine Electrum Wire", 8 },
                    { "Platinum Bolt", 8 }
                }
            });

            Circuits.Add(nanoprocessorAssembly, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { nanoprocessor, 2 },
                    { "Advanced Circuit Board", 1 },
                    { "Small Coil", 8 },
                    { "SMD Capacitor", 8 },
                    { "Random Access Memory Chip", 8 },
                    { "Fine Electrum Wire", 16 },
                }
            });

            Circuits.Add(eliteNanocomputer, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { nanoprocessorAssembly, 2 },
                    { "Advanced Circuit Board", 1 },
                    { "SMD Diode", 8 },
                    { "NOR Memory Chip", 4 },
                    { "Random Access Memory Chip", 16 },
                    { "Fine Electrum Wire", 16 },
                }
            });

            Circuits.Add(quantumprocessor, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { "More Advanced Circuit Board", 1 },
                    { "ASoC", 1 },
                    { "Fine Electrum Wire", 16 },
                    { "Niobium-Titanum Bolt", 8 }
                }
            });

            Circuits.Add(quantumprocessorAssembly, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { quantumprocessor, 2 },
                    { "Advanced Circuit Board", 1 },
                    { "Small Coil", 12 },
                    { "SMD Capacitor", 16 },
                    { "Random Access Memory Chip", 4 },
                    { "Fine Platinum Wire", 24 },
                }
            });

            Circuits.Add(crystalprocessor, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { "Elite Circuit Board", 1 },
                    { "Crystal SoC", 1 },
                    { "Fine Niobium-Titanum Wire", 8 },
                    { "Yttrium Barium Cuprate Bolt", 8 },
                }
            });

            Circuits.Add(nanoprocessorMainframe, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { eliteNanocomputer, 2 },
                    { "Aluminium Frame Box", 2 },
                    { "Small Coil", 16 },
                    { "SMD Capacitor", 32 },
                    { "Random Access Memory Chip", 16 },
                    { "1x Annealed Copper Wire", 32 }
                }
            });

            Circuits.Add(masterQuantumcomputer, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { quantumprocessorAssembly, 2 },
                    { "More Advanced Circuit Board", 1 },
                    { "NOR Memory Chip", 4 },
                    { "SMD Diode", 8 },
                    { "Random Access Memory Chip", 16 },
                    { "Fine Platinum Wire", 48 }
                }
            });

            Circuits.Add(wetwareprocessor, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { quantumprocessorAssembly, 2 },
                    { "Neuro Processing Unit", 1 },
                    { "Crystal Processing Unit", 1 },
                    { "Nanocomponent Central Processing Unit", 1 },
                    { "SMD Capacitor", 32 },
                    { "SMD Transistor", 32 },
                    { "Fine Yttrium Barium Cuprate Wire", 8 }
                }
            });

            Circuits.Add(crystalprocessorAssembly, new Circuit()
            {
                Components = new Dictionary <string, int>()
                {
                    { crystalprocessor, 2 },
                    { "Elite Circuit Board", 1 },
                    { "Crystal Processing Unit", 1 },
                    { "Small Coil", 24 },
                    { "SMD Capacitor", 32 },
                    { "Random Access Memory Chip", 24 },
                    { "Fine Yttrium Barium Cuprate Wire", 16 }
                }
            });
            #endregion

            int tabIndex     = 0;
            int yOffset      = 0;
            int xOffset      = 10;
            int offsetDelta  = 25;
            int elementWidth = 250;
            foreach (var pair in Circuits)
            {
                if (yOffset > 450)
                {
                    yOffset  = 0;
                    xOffset += elementWidth + 25;
                }
                var label = new Label()
                {
                    Font     = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))),
                    Location = new System.Drawing.Point(xOffset, yOffset),
                    Size     = new System.Drawing.Size(elementWidth, offsetDelta),
                    Text     = pair.Key,
                    TabIndex = tabIndex++,
                };
                Controls.Add(label);
                yOffset += offsetDelta;
                var numeric = new NumericUpDown()
                {
                    Font     = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))),
                    Location = new System.Drawing.Point(xOffset, yOffset),
                    Size     = new System.Drawing.Size(elementWidth, offsetDelta),
                    Name     = pair.Key,
                    TabIndex = tabIndex++,
                    Maximum  = 65536
                };
                Numerics.Add(numeric);
                numeric.ValueChanged += new System.EventHandler(CalculateAllCircuits);
                Controls.Add(numeric);
                yOffset += offsetDelta;
            }
        }
コード例 #22
0
ファイル: Delorean.cs プロジェクト: ahk1221/BackToTheFutureV
 public void Tick()
 {
     Circuits?.Tick();
 }
コード例 #23
0
ファイル: Delorean.cs プロジェクト: ahk1221/BackToTheFutureV
 public void KeyDown(KeyEventArgs e)
 {
     Circuits?.KeyDown(e);
 }
コード例 #24
0
ファイル: InputReader.cs プロジェクト: fullmetalfelix/vafmpro
        static bool ReadOutput()
        {
            string[] words;
            StreamReader reader = new StreamReader(FileNameMain); //reopen the file
            if (!StringReader.FindString("<output>", reader))
            {
                Console.WriteLine("FATAL! Output list is missing.");
                return false;
            }
            Console.WriteLine("\n   Reading output configuration:");

            string line; string[] fields;
            char[] delimiterChars = { ' ', '\t' };

            Out = new Outputter();

            while ((line = reader.ReadLine()) != null) //read each line
            {
                words = StringReader.TrimWords(line.Split(delimiterChars));
                line = line.Trim();
                if (line.StartsWith("<end>"))
                    break;
                if (line.StartsWith("#") || line.Length == 0 || words.Length == 0)
                    continue;

                //read the type and the name

                if (words[0].StartsWith("#"))
                    continue;
                if (words.Length < 3)
                {
                    Console.WriteLine("FATAL! The output format is: filename frequency obj1.cha obj2.chb ...");
                    return false;
                }

                Out.filenames.Add(words[0]);                  //add a filename to the list
                Out.dumpFreq.Add(Convert.ToInt32(words[1]));  //add its dump frequency

                Out.outchannels.Add(new List<string[]>());
                Console.WriteLine("Generatin output file {0}.", words[0]);

                char[] subdels = { '.' };
                for (int i = 0; i < words.Length - 2; i++)
                {
                    fields = StringReader.TrimWords(words[i + 2].Split(subdels));
                    if (fields.Length != 2)
                    {
                        Console.WriteLine("FATAL! The output format is: filename circ1.chA circ2.chB ...");
                        return false;
                    }

                    Circuit c1; Channel v1;
                    if (!Circuit.CheckCircuitChannel(fields, ChannelType.Any, out c1, out v1)) //find the first circuit
                        return false;

                    Out.outchannels[Out.outchannels.Count - 1].Add(fields);
                    Console.WriteLine("  adding channel {0}.{1}", c1.Name, v1.Name);
                }

            }

            Out.InputInit(); //initialize the output
            Circuits.Add(Out);
			
            Console.WriteLine("---Output Read.");
            reader.Dispose();
            return true;
        }
コード例 #25
0
ファイル: ViewerAgent.cs プロジェクト: ft-/silversim-testing
        public override AgentUpdateInfo GetUpdateInfo(UUID sceneID)
        {
            AgentCircuit circuit;

            return(Circuits.TryGetValue(sceneID, out circuit) ? circuit.UpdateInfo : null);
        }
コード例 #26
0
ファイル: InstallBuilder.cs プロジェクト: ckosmic/SiraUtil
 /// <summary>
 /// Prevents the installer from being installed at a destination.
 /// </summary>
 public InstallBuilder ShortCircuitFor(string shortCircuiter)
 {
     Circuits.Add(shortCircuiter);
     return(this);
 }
コード例 #27
0
        private async Task GetCircuitsForCurrentBoard()
        {
            try
            {
                _inCode = true;

                if (Boards != null && Boards.Any() && CurrentBoardPosition == -1)
                {
                    CurrentBoardPosition = 0;
                }

                if (Boards != null)
                {
                    SelectedBoard = Boards[CurrentBoardPosition];
                }
                var result = await _boardsService.GetTestedCircuits(CertificateId, SelectedBoard.BoardId);

                if (!result.Success)
                {
                    Dialogs.Toast(result.Message);
                    return;
                }

                var circuitTest = result.ResultObject as List <CircuitTest>;
                if (circuitTest == null)
                {
                    return;
                }

                CurrentCircuitPosition = 0;
                Circuits.Clear();

                var circuits = new List <CircuitTest>();

                if (SelectedBoard.BoardPhase == "3" || SelectedBoard.BoardPhase == "TP&N")
                {
                    var numberToSkip       = 0;
                    var numbers            = circuitTest.Select(x => x.CircuitReference).Distinct();
                    var threePhaseCircutes = new List <int>();

                    foreach (var number in numbers)
                    {
                        if (circuitTest.Any(x => x.CircuitReference == number && x.CircuitIs3Phase == "Y"))
                        {
                            threePhaseCircutes.Add(number);
                        }
                    }

                    if (!threePhaseCircutes.Any())
                    {
                        circuits.AddRange(circuitTest);
                    }
                    else
                    {
                        foreach (var circuit in circuitTest)
                        {
                            if (circuit.CircuitReference == numberToSkip)
                            {
                                continue;
                            }

                            if (threePhaseCircutes.Contains(circuit.CircuitReference))
                            {
                                if (circuit.CircuitIs3Phase == "Y")
                                {
                                    circuit.NotBelongsToThreePhase = false;
                                    circuit.ThreePhase             = circuit.CircuitReference + SelectedBoard.BoardCircuitPhaseNaming;
                                    circuits.Add(circuit);
                                    numberToSkip = circuit.CircuitReference;
                                }
                                continue;
                            }
                            circuit.NotBelongsToThreePhase = true;
                            circuits.Add(circuit);
                        }
                    }
                }
                else
                {
                    circuits.AddRange(circuitTest);
                }

                Circuits = new ObservableCollectionFast <CircuitTest>(circuits.OrderBy(x => x.ThreePhaseRepresentation));

                //Circuits.AddRange(new List<CircuitTest>(circuitTest.OrderBy(x => x.CircuitIdentity)));

                GetPointsForCurrentCircuit();

                _inCode = false;
            }
            catch (ServiceAuthenticationException e)
            {
                var result = await TryToLogin();

                if (!result)
                {
                    await NavigationService.NavigateToAsync <LoginViewModel>();
                }
                else
                {
                    await GetCircuitsForCurrentBoard();
                }
            }
            catch (Exception e)
            {
                //await ShowErrorAlert(e.Message);
            }
        }
コード例 #28
0
        public void HandleEstateOwnerMessage(Message m)
        {
            var req = (EstateOwnerMessage)m;

            if (req.SessionID != SessionID ||
                req.AgentID != ID)
            {
                return;
            }

            AgentCircuit circuit;

            if (!Circuits.TryGetValue(req.CircuitSceneID, out circuit))
            {
                return;
            }

            if (!circuit.Scene.IsEstateManager(Owner) && circuit.Scene.Owner != Owner)
            {
                /* only RO, EO and EM allowed behind */
                /* some messages later will be limited further */
                return;
            }

            switch (req.Method)
            {
            case "getinfo":
                EstateOwner_GetInfo(circuit, req);
                break;

            case "setregioninfo":
                EstateOwner_SetRegionInfo(circuit, req);
                break;

#if TEXTUREBASE
            case "texturebase":
                break;
#endif

            case "texturedetail":
                EstateOwner_TextureDetail(circuit, req);
                break;

            case "textureheights":
                EstateOwner_TextureHeights(circuit, req);
                break;

            case "texturecommit":
                EstateOwner_TextureCommit(circuit, req);
                break;

            case "setregionterrain":
                EstateOwner_SetRegionTerrain(circuit, req);
                break;

            case "restart":
                EstateOwner_Restart(circuit, req);
                break;

            case "estatechangecovenantid":
                if (!circuit.Scene.IsEstateManager(Owner))
                {
                    /* only EO and EM */
                    return;
                }
                EstateOwner_EstateChangeCovenantId(circuit, req);
                break;

            case "estateaccessdelta":
                if (!circuit.Scene.IsEstateManager(Owner))
                {
                    /* only EO and EM */
                    return;
                }
                EstateOwner_EstateAccessDelta(circuit, req);
                break;

            case "estateexperiencedelta":
                if (!circuit.Scene.IsEstateManager(Owner))
                {
                    /* only EO and EM */
                    return;
                }
                EstateOwner_EstateExperienceDelta(circuit, req);
                break;

            case "simulatormessage":
                EstateOwner_SimulatorMessage(circuit, req);
                break;

            case "instantmessage":
                EstateOwner_InstantMessage(circuit, req);
                break;

            case "setregiondebug":
                EstateOwner_SetRegionDebug(circuit, req);
                break;

            case "teleporthomeuser":
                EstateOwner_TeleportHomeUser(circuit, req);
                break;

            case "teleporthomeallusers":
                EstateOwner_TeleportHomeAllUsers(circuit, req);
                break;

            case "colliders":
                EstateOwner_Colliders(circuit, req);
                break;

            case "scripts":
                EstateOwner_Scripts(circuit, req);
                break;

            case "terrain":
                EstateOwner_Terrain(circuit, req);
                break;

            case "estatechangeinfo":
                if (!circuit.Scene.IsEstateManager(Owner))
                {
                    /* only EO and EM */
                    return;
                }
                EstateOwner_EstateChangeInfo(circuit, req);
                break;

            case "telehub":
                EstateOwner_Telehub(circuit, req);
                break;

            case "kickestate":
                EstateOwner_KickEstate(circuit, req);
                break;

            default:
                m_Log.DebugFormat("EstateOwnerMessage: Unknown method {0} requested", req.Method);
                break;
            }
        }