public SpawnTimeoutInfo(MyObjectBuilder_SpaceFaunaComponent.TimeoutInfo info, int currentTime) { TimeoutTime = currentTime + info.Timeout; Position = new Vector3D(info.X, info.Y, info.Z); var planet = MyGamePruningStructure.GetClosestPlanet(Position); AnimalSpawnInfo = MySpaceBotFactory.GetDayOrNightAnimalSpawnInfo(planet, Position); if (AnimalSpawnInfo == null) { TimeoutTime = currentTime; } }
public SpawnTimeoutInfo(MyObjectBuilder_SpaceFaunaComponent.TimeoutInfo info, int currentTime) { TimeoutTime = currentTime + info.Timeout; Position = new Vector3D(info.X, info.Y, info.Z); var planet = MyGravityProviderSystem.GetNearestPlanet(Position); AnimalSpawnInfo = MySpaceBotFactory.GetDayOrNightAnimalSpawnInfo(planet, Position); if (AnimalSpawnInfo == null) { TimeoutTime = currentTime; } }
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); }