private void drawNewCustomObservation(DirectObservation observation) { DrawTrack(observation); var track = tracks[observation.Entity]; loadSplatsAt(track.EstimatedPostion, "XMarker_Icon"); DrawTrackLine(track.EstimatedPostion, Schussskizze.PlayerPostion, 0.5f); }
private void onObservationChanded(DirectObservation observation) { determineMostDistance(observation.Entity); Debug.Log("Schussskizze - Observation Changed"); if (OnObservationChanged != null) { OnObservationChanged(observation); } }
private void onObservationRemoved(Observator observer, DirectObservation observation) { //Debug.Log("Schussskizze - Observation removed! Name: " + observation.Entity.Name + " (total: " + playerShip.GetObservationsDirect().Count + ")"); if (observations.Contains(observation)) { //Debug.Log("Observation in list removed!"); //Do nothing } }
private void logObservation(DirectObservation observation) { Debug.Log("Schussskizze - Observation: Name: " + observation.Entity.Name + ", Catagory: " + observation.Entity.Category + "\n" + "Estimated Speed: " + observation.EstimatedVelocity + "\n" + "Estimated Course: " + observation.EstimatedCourse + "\n" + "Estimated Distance: " + observation.EstimatedDistance + "\n" + "Entity Position: " + observation.Entity.transform.position.ToString() + "\n" + "Entity Distance: " + (observation.Entity.transform.position - playerShip.transform.position).magnitude + " meters" + "\n" + "Crew Accuracy: " + playerShip.CrewAccuracy.Value ); }
void DrawTrack(DirectObservation observation) { var known_track = tracks.ContainsKey(observation.Entity); if (known_track) { var last_time = new DateTime(tracks[observation.Entity].LastObservationTime); var time_now = new DateTime(gameTime.StoryTicks); var span = time_now.Subtract(last_time); if (span.TotalSeconds > Schussskizze.TrackPositionUpdateTime) { var track = tracks[observation.Entity]; var current_position = new Vector3( observation.Entity.SandboxEntity.Position.x, observation.Entity.SandboxEntity.Position.y, 0 ); var last_estimate = track.EstimatedPostion; estimatePostion(ref track); DrawTrackLine(last_estimate, track.EstimatedPostion, 1f); track.LastKnowPosition = current_position; track.LastObservationTime = gameTime.StoryTicks; track.Observation = observation; } } else if (!known_track) { var track = new Track(); track.LastObservationTime = gameTime.StoryTicks; track.Observation = observation; track.LastKnowPosition = new Vector3( observation.Entity.SandboxEntity.Position.x, observation.Entity.SandboxEntity.Position.y, 0 ); estimatePostion(ref track); Debug.Log("Track Error: " + track.Error); Debug.Log("Track Estimated Position: " + track.EstimatedPostion); Debug.Log("Track LastKnowPositon: " + track.LastKnowPosition); tracks.Add(observation.Entity, track); loadSplatsAt(track.EstimatedPostion, "EnemyContactPoint"); observation.EstimationChanged += drawNewCustomObservation; } }
private void onObservationAdded(Observator observer, DirectObservation observation) { var cat = observation.Entity.Category; // ignore aircraft for now if (cat == "Aircraft" || cat == "Carrier-Borne Aircraft") { return; } if (observation.Entity.Country.GetRelationWith(playerShip.Country) == Country.Relation.Enemy) { observation.Changed += onObservationChanded; observations.Add(observation); determineMostDistance(observation.Entity); if (OnObservationAdded != null) { OnObservationAdded(observation); } } }
private void onObservationChanged(DirectObservation observation) { DrawTrack(observation); }