public Cluster(IMyEntity master, Builder_Cluster builder) { this.m_logger = new Logger(GetType().Name); this.Master = master; this.MinOffMult = builder.MinOffMult; this.OffsetMulti = builder.OffsetMulti; this.masterVelocity = master.Physics.LinearVelocity; this.Slaves = new List<IMyEntity>(builder.Slaves.Length); this.SlaveOffsets = new List<Vector3>(builder.Slaves.Length); for (int index = 0; index < builder.Slaves.Length; index++) { IMyEntity slave; if (!MyAPIGateway.Entities.TryGetEntityById(builder.Slaves[index], out slave)) { m_logger.alwaysLog("Failed to get slave for " + builder.Slaves[index], Logger.severity.WARNING); continue; } this.Slaves[index] = slave; this.SlaveOffsets[index] = builder.SlaveOffsets[index]; } }
public Builder_Cluster GetBuilder() { Builder_Cluster result = new Builder_Cluster() { SlaveOffsets = SlaveOffsets.ToArray(), MinOffMult = MinOffMult, OffsetMulti = OffsetMulti, }; result.Slaves = new long[Slaves.Count]; for (int index = 0; index < Slaves.Count; index++) result.Slaves[index] = Slaves[index].EntityId; return result; }