protected virtual void OnSceneGUI() { PointContainer myTarget = (PointContainer)target; if (myTarget.points.Count <= 0) { return; } EditorGUI.BeginChangeCheck(); Vector3 newTargetPosition = Vector3.zero; if (myTarget.activeId >= 0 && myTarget.activeId < myTarget.points.Count) { newTargetPosition = Handles.PositionHandle(myTarget.transform.position + myTarget.points[myTarget.activeId].LocalPosition, Quaternion.identity); } if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(myTarget, "Move Point"); myTarget.points[myTarget.activeId].LocalPosition = newTargetPosition - myTarget.transform.position; } for (int i = 0; i < myTarget.points.Count; i++) { Handles.color = (i == myTarget.activeId) ? new Color(0, 1, 0, .4f) : new Color(1, .5f, 0, .4f); float radius = (myTarget.points[i].GetPointInRadius) ? myTarget.points[i].Radius : .5f; Handles.DrawSolidDisc(myTarget.transform.position + myTarget.points[i].LocalPosition, Vector3.up, radius); Handles.color = Color.black; Handles.Label(myTarget.transform.position + myTarget.points[i].LocalPosition, i.ToString()); } }
public Window() { InitializeComponent(); InfoVersion.Text = Core.Version; ConsoleOutput.Font = new System.Drawing.Font(Core.Fonts.Families[0], 10f); Package[] installedPackages = Workshop.GetInstalled(); installedPackages.ToList().ForEach(x => { Dictionary <string, string> packageInfo = x.GetInfo(); PackageInfo p = new PackageInfo(); p.NameLabel.Text = packageInfo["Name"]; p.AuthorLabel.Text = packageInfo["Authors"]; p.DescLabel.Text = packageInfo["Description"]; p.Package = x; p.Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left; InstalledPackagesList.Controls.Add(p); p.RunButton.Click += (o, e) => { x.Run(true); }; }); var hoverColor = new ColorContainer(0, 0, 0); var cursorPos = new PointContainer(0, 0); var timer = new System.Timers.Timer(); timer.Interval = 1000; timer.Elapsed += (s, a) => { if (this == null) { return; } cursorPos = InputWrapper.GetCursorPos(); hoverColor = ScreenWrapper.GetPixels(cursorPos.X, cursorPos.Y, 1, 1)[0][0]; Invoke(new Action(() => { if (IsDisposed) { return; } ColorDisplay.Text = $"R: {hoverColor.R} G: {hoverColor.G} B: {hoverColor.B}"; CursorPosDisplay.Text = $"X: {cursorPos.X} Y: {cursorPos.Y}"; })); }; timer.Start(); }
public void RemoveWorks() { var point = Point.TryCreate(0, 0); var pointContainer = new PointContainer(5); pointContainer.Add(point); pointContainer.Remove(point); Assert.That(pointContainer.Count(), Is.EqualTo(0)); }
private void Awake() { PointContainer = FindObjectOfType <PointContainer>(); PointContainer.SelectPoint(PointContainer.Points[0]); _lineRenderer = GetComponent <LineRenderer>(); _selectedDot = PointContainer.selectedPoint; _targetDot = PointContainer.Points[1]; _lineRenderer.SetPosition(0, PointContainer.Points[0].position); }
public void CantAddDuplicate() { var point = Point.TryCreate(0, 0); var pointContainer = new PointContainer(5); pointContainer.Add(point); Assert.Throws <ArgumentException>(() => pointContainer.Add(point)); Assert.That(pointContainer.Count(), Is.EqualTo(1)); }
public void Start() { _pointContainerObject = pointContainer.GetComponent <PointContainer>(); _vPointContainerObject = vPointContainer.GetComponent <VPointContainer>(); _aPointContainerObject = aPointContainer.GetComponent <APointContainer>(); labelInput.onValueChanged.AddListener((text) => new LabelValidator(labelInput).OnValueChanged()); propertiesMenu.SetActive(false); }
private void SelectionCheck() { PointContainer myTarget = (PointContainer)target; //If the target has been deleted by the time this delegate gets called then don't run the following code if (myTarget != null) { Tools.current = (Selection.activeGameObject == myTarget.gameObject) ? Tool.None : Tool.Move; } }
public void AddWorks() { var point = Point.TryCreate(5, 55); var pointContainer = new PointContainer(5); Assert.That(pointContainer.Count(), Is.EqualTo(0)); pointContainer.Add(point); Assert.That(pointContainer.Count(), Is.EqualTo(1)); Assert.That(pointContainer.Single().X, Is.EqualTo(5)); Assert.That(pointContainer.Single().Y, Is.EqualTo(55)); }
static void Construct(GridPoint point, PointContainer container) { IConstructable c = task as IConstructable; if (c != null) { c.ElementContainer = container; c.Start(); Remove(); } }
public override void OnInspectorGUI() { //Create a target to grab data from PointContainer myTarget = (PointContainer)target; //This makes sure that the active id is not out of bounds of the points array if (myTarget.activeId >= myTarget.points.Count) { myTarget.activeId = Mathf.Clamp(myTarget.points.Count - 1, 0, myTarget.points.Count); } GUILayout.Label("Tools"); EditorGUILayout.BeginVertical("box"); if (GUILayout.Button("Add New Point")) { Vector3 startPoint = (myTarget.points.Count > 0) ? myTarget.points[myTarget.activeId].LocalPosition : Vector3.zero; myTarget.AddPoint(1, startPoint); myTarget.activeId = myTarget.points.Count; } if (GUILayout.Button("Snap All To Ground")) { for (int i = 0; i < myTarget.points.Count; i++) { myTarget.SnapToGround(i); } } //Change colour of points based on selected point GUI.color = (Tools.current == Tool.None) ? Color.red : Color.green; GUI.color = Color.white; EditorGUILayout.EndVertical(); GUILayout.Label("Points"); EditorGUILayout.BeginVertical("box"); //If we have active points then update the UI with their editors if (myTarget.points.Count > 0) { for (int i = 0; i < myTarget.points.Count; i++) { DrawPoint(i, myTarget); } } EditorGUILayout.EndVertical(); }
public override void InvokeCull() { if (dying) { return; } ctr.Deactivate(); if (endpt.exists) { endpt.beh !.InvokeCull(); endpt = new PointContainer(null); } base.InvokeCull(); }
private void Draw(PointContainer pointContainer) { pointContainer.Position = DrawPositionHandle(pointContainer.Position); Handles.Label(pointContainer.Position, pointContainer.gameObject.name); if (!pointContainer.IsLeaf) { foreach (var child in pointContainer.point.children) { Handles.DrawLine(pointContainer.point.point, child.point.point); Draw(child); } } else if (pathController.wrapPath) { Handles.DrawLine(pointContainer.point.point, pathController.path.First.point); } }
private void Initialize(bool isNew, BehaviorEntity?parent, Movement movement, ParametricInfo pi, SOPlayerHitbox _target, float cold, float hot, BEHStyleMetadata style, ref RealizedLaserOptions options) { pi.ctx.laserController = ctr; ctr.SetYScale(options.yScale * defaultWidthMultiplier); //Needs to be done before Colorize sets first frame base.Initialize(style, options.AsBEH, parent, movement, pi, _target, out _); // Call after Awake/Reset if (options.endpoint != null) { var beh = BEHPooler.INode(Movement.None, new ParametricInfo(Vector2.zero, bpi.index), Vector2.right, options.endpoint); endpt = new PointContainer(beh); ctr.SetupEndpoint(endpt); } else { ctr.SetupEndpoint(new PointContainer(null)); } ctr.Initialize(this, config, style.RecolorOrThrow.material, isNew, bpi, ref options); SFXService.Request(options.firesfx); SetColdHot(cold, hot, options.hotsfx, options.repeat); ctr.Activate(); //This invokes UpdateMesh }
public void PointContainerSavingAndRetrieving() { var rep = new PointContainerRepository("test"); rep.CleanAllDb(); var cntnr = new PointContainer(); cntnr.Add(Point.TryCreate(5, 0)); cntnr.Add(Point.TryCreate(5, 1)); cntnr.Add(Point.TryCreate(5, 2)); cntnr.Add(Point.TryCreate(5, 3)); cntnr.Add(Point.TryCreate(5, 4)); cntnr.Add(Point.TryCreate(5, 5)); cntnr.Add(Point.TryCreate(5, 6)); cntnr.Add(Point.TryCreate(5, 7)); cntnr.Add(Point.TryCreate(5, 8)); cntnr.Add(Point.TryCreate(5, 9)); Assert.That(rep.GetNames().Length, Is.EqualTo(0)); rep.Save("testName", cntnr); Assert.That(rep.GetNames().Length, Is.EqualTo(1)); Assert.That(rep.GetNames().Single(), Is.EqualTo("testName")); var loadedRep = rep.GetByName("testName").ToArray(); Assert.That(loadedRep.Length, Is.EqualTo(10)); Assert.That(loadedRep[0], Is.EqualTo(Point.TryCreate(5, 0))); Assert.That(loadedRep[1], Is.EqualTo(Point.TryCreate(5, 1))); Assert.That(loadedRep[2], Is.EqualTo(Point.TryCreate(5, 2))); Assert.That(loadedRep[3], Is.EqualTo(Point.TryCreate(5, 3))); Assert.That(loadedRep[4], Is.EqualTo(Point.TryCreate(5, 4))); Assert.That(loadedRep[5], Is.EqualTo(Point.TryCreate(5, 5))); Assert.That(loadedRep[6], Is.EqualTo(Point.TryCreate(5, 6))); Assert.That(loadedRep[7], Is.EqualTo(Point.TryCreate(5, 7))); Assert.That(loadedRep[8], Is.EqualTo(Point.TryCreate(5, 8))); Assert.That(loadedRep[9], Is.EqualTo(Point.TryCreate(5, 9))); }
// Update is called once per frame void Update() { //if (racingLine == null) //racingLine = new TrackTile[RaceSettings.trackData.trackData.tilesMapped.Count]; if (cpHit.crash) ClearRacingLine(); RaycastHit hit; if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0f, 1 << LayerMask.NameToLayer("Track"))) { TrackTile newTile = TileFromTriangleIndex(hit.triangleIndex, RaceSettings.trackData.trackData.tiles); if (newTile != currentTile) { TrackTile start = new TrackTile(); start.position = transform.position; //racingLine[newTile.index] = start; Point p = new Point(); p.index = start.index; p.point = start.position; racingLine.Add(p); //Debug.DrawLine(racingLine[currentTile.index].position, racingLine[newTile.index].position, Color.cyan); currentTile = newTile; //Debug.Log(currentTile.index); } // Pintar la linea de carrea actual for (int i=0; i < racingLine.Count - 1; i++) { Point next = FindNextTile(racingLine, i + 1); if (racingLine[i] != null && next != null) Debug.DrawLine(racingLine[i].point, next.point, Color.magenta); } // Pintar la mejor linea de carrera for (int i = 0; i < bestLine.Count - 1; i++) { Debug.DrawLine(bestLine[i].point, bestLine[i + 1].point, Color.black); } // Guardar linea de carrera if (ship.currentLap != lap) { // Si el tiempo de la vuelta actual es el mejor if (ship.bestLap < bestLap) { XmlSerializer serializer = new XmlSerializer(typeof(PointContainer)); Debug.Log(Application.dataPath); FileStream stream = new FileStream(Application.dataPath + "/racinline.xml", FileMode.Create); PointContainer pc = new PointContainer(); pc.Points = racingLine; serializer.Serialize(stream, pc); stream.Close(); Debug.Log("FIN!" + racingLine.Count); bestLine = racingLine; bestLap = ship.bestLap; } lap = ship.currentLap; ClearRacingLine(); } } }
/// <summary> /// Emulate mouse button release. /// </summary> /// <param name="button">Number of mouse button to emulate.</param> public static void SendMouseUpEvent(int button, PointContainer pos) => Native.API.SendMouseUp(button, pos);
public PointInfo(PointContainer item) { Item = item; }
public MouseEnterPointEvent(PointContainer point) : base(point) { }
private void Awake() { _pointContainer = PointContainer.GetComponent <PointContainer>(); }
private void DrawPoint(int id, PointContainer target) { EditorGUILayout.BeginVertical("box"); EditorGUILayout.BeginHorizontal(); GUI.color = (id == target.activeId) ? Color.green : Color.white; if (GUILayout.Button(string.Format("Select Point {0}", id))) { target.activeId = id; } GUI.color = Color.white; EditorGUILayout.BeginVertical("box"); EditorGUILayout.BeginHorizontal(); GUILayout.Label("X"); target.points[id].LocalPosition.x = EditorGUILayout.FloatField(target.points[id].LocalPosition.x); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Y"); target.points[id].LocalPosition.y = EditorGUILayout.FloatField(target.points[id].LocalPosition.y); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Z"); target.points[id].LocalPosition.z = EditorGUILayout.FloatField(target.points[id].LocalPosition.z); EditorGUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); if (target.points[id].GetPointInRadius) { EditorGUILayout.BeginVertical("box"); GUILayout.Label("Radius"); target.points[id].Radius = EditorGUILayout.Slider(target.points[id].Radius, .1f, 10f); EditorGUILayout.EndVertical(); } if (GUILayout.Button("Snap To Ground")) { target.SnapToGround(id); } GUI.color = Color.red; if (GUILayout.Button("X")) { target.RemovePoint(id); } GUI.color = Color.white; EditorGUILayout.EndHorizontal(); target.points[id].GetPointInRadius = EditorGUILayout.Toggle("Get random point within radius", target.points[id].GetPointInRadius); EditorGUILayout.EndVertical(); SceneView.RepaintAll(); }
public ClickPointEvent(PointContainer point) { Container = point; Point = Container.Point; }
public void CantAddAfterMaxCapacity() { var pointContainer = new PointContainer(0); Assert.Throws <InvalidOperationException>(() => pointContainer.Add(Point.TryCreate(0, 0))); }