Beispiel #1
0
        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];
            }
        }
Beispiel #2
0
        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;
        }