public SpawnInfo(MyObjectBuilder_SpaceFaunaComponent.SpawnInfo info, int currentTime) { SpawnTime = currentTime + info.SpawnTime; AbandonTime = currentTime + info.SpawnTime; Position = new Vector3D(info.X, info.Y, info.Z); Planet = MyGamePruningStructure.GetClosestPlanet(Position); SpawnDone = false; }
public SpawnInfo(MyObjectBuilder_SpaceFaunaComponent.SpawnInfo info, int currentTime) { SpawnTime = currentTime + info.SpawnTime; AbandonTime = currentTime + info.SpawnTime; Position = new Vector3D(info.X, info.Y, info.Z); Planet = MyGravityProviderSystem.GetNearestPlanet(Position); SpawnDone = false; }
public override MyObjectBuilder_SessionComponent GetObjectBuilder() { var ob = base.GetObjectBuilder() as MyObjectBuilder_SpaceFaunaComponent; int currentTime = MySandboxGame.TotalGamePlayTimeInMilliseconds; int num = 0; foreach (var info in m_allSpawnInfos) { if (info.SpawnDone) { continue; } num++; } ob.SpawnInfos.Capacity = num; foreach (var info in m_allSpawnInfos) { if (info.SpawnDone) { continue; } var infoBuilder = new MyObjectBuilder_SpaceFaunaComponent.SpawnInfo(); infoBuilder.X = info.Position.X; infoBuilder.Y = info.Position.Y; infoBuilder.Z = info.Position.Z; infoBuilder.AbandonTime = Math.Max(0, info.AbandonTime - currentTime); infoBuilder.SpawnTime = Math.Max(0, info.SpawnTime - currentTime); ob.SpawnInfos.Add(infoBuilder); } ob.TimeoutInfos.Capacity = m_allTimeoutInfos.Count; foreach (var info in m_allTimeoutInfos) { var infoBuilder = new MyObjectBuilder_SpaceFaunaComponent.TimeoutInfo(); infoBuilder.X = info.Position.X; infoBuilder.Y = info.Position.Y; infoBuilder.Z = info.Position.Z; infoBuilder.Timeout = Math.Max(0, info.TimeoutTime - currentTime); ob.TimeoutInfos.Add(infoBuilder); } return(ob); }