コード例 #1
0
 public virtual void Init(MyObjectBuilder_AiTarget builder)
 {
     this.m_currentTarget = builder.CurrentTarget;
     this.m_targetEntity  = null;
     if (builder.EntityId == null)
     {
         this.m_currentTarget = MyAiTargetEnum.NO_TARGET;
     }
     else if (!Sandbox.Game.Entities.MyEntities.TryGetEntityById(builder.EntityId.Value, out this.m_targetEntity, false))
     {
         this.m_currentTarget = MyAiTargetEnum.NO_TARGET;
     }
     this.m_targetCube = builder.TargetCube;
     this.SetMTargetPosition(builder.TargetPosition);
     this.m_compoundId = builder.CompoundId;
     if (builder.UnreachableEntities != null)
     {
         foreach (MyObjectBuilder_AiTarget.UnreachableEntitiesData data in builder.UnreachableEntities)
         {
             VRage.Game.Entity.MyEntity entity = null;
             if (Sandbox.Game.Entities.MyEntities.TryGetEntityById(data.UnreachableEntityId, out entity, false))
             {
                 this.m_unreachableEntities.Add(entity, MySandboxGame.TotalGamePlayTimeInMilliseconds + data.Timeout);
             }
         }
     }
 }
コード例 #2
0
        public virtual MyObjectBuilder_AiTarget GetObjectBuilder()
        {
            long?nullable1;
            MyObjectBuilder_AiTarget target = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_AiTarget>();

            if (this.m_targetEntity != null)
            {
                nullable1 = new long?(this.m_targetEntity.EntityId);
            }
            else
            {
                nullable1 = null;
            }
            target.EntityId            = nullable1;
            target.CurrentTarget       = this.m_currentTarget;
            target.TargetCube          = this.m_targetCube;
            target.TargetPosition      = this.m_targetPosition;
            target.CompoundId          = this.m_compoundId;
            target.UnreachableEntities = new List <MyObjectBuilder_AiTarget.UnreachableEntitiesData>();
            foreach (KeyValuePair <VRage.Game.Entity.MyEntity, int> pair in this.m_unreachableEntities)
            {
                MyObjectBuilder_AiTarget.UnreachableEntitiesData item = new MyObjectBuilder_AiTarget.UnreachableEntitiesData {
                    UnreachableEntityId = pair.Key.EntityId,
                    Timeout             = pair.Value - MySandboxGame.TotalGamePlayTimeInMilliseconds
                };
                target.UnreachableEntities.Add(item);
            }
            return(target);
        }
コード例 #3
0
        public virtual void Init(MyObjectBuilder_AiTarget builder)
        {
            m_currentTarget = builder.CurrentTarget;

            m_targetEntity = null;
            if (builder.EntityId.HasValue)
            {
                if (!MyEntities.TryGetEntityById(builder.EntityId.Value, out m_targetEntity))
                {
                    m_currentTarget = MyAiTargetEnum.NO_TARGET;
                }
            }
            else
            {
                m_currentTarget = MyAiTargetEnum.NO_TARGET;
            }

            m_targetCube     = builder.TargetCube;
            m_targetPosition = builder.TargetPosition;
            m_compoundId     = builder.CompoundId;

            if (builder.UnreachableEntities != null)
            {
                foreach (var data in builder.UnreachableEntities)
                {
                    MyEntity entity = null;
                    if (MyEntities.TryGetEntityById(data.UnreachableEntityId, out entity))
                    {
                        m_unreachableEntities.Add(entity, MySandboxGame.TotalGamePlayTimeInMilliseconds + data.Timeout);
                    }
                    else
                    {
                        Debug.Assert(false, "Couldn't find entity with given id: " + data.UnreachableEntityId);
                    }
                }
            }
        }
コード例 #4
0
 public abstract void Init(MyObjectBuilder_AiTarget builder);