Esempio n. 1
0
        /// <summary>
        /// Spawns a new entity
        /// </summary>
        /// <typeparam name="T"> </typeparam>
        /// <param name="entityName"> </param>
        /// <param name="pos">        </param>
        /// <param name="rot">        </param>
        /// <param name="scale">      </param>
        /// <param name="autoInit">   </param>
        /// <param name="flags">      </param>
        /// <returns> </returns>
        public static T Spawn <T>(string entityName, Vector3?pos = null, Quaternion?rot = null, Vector3?scale = null,
                                  bool autoInit = true, EntityFlags flags = EntityFlags.CastShadow, params object[] args) where T : Entity, new()
        {
            var entity = Spawn(entityName, typeof(T).Name, pos, rot, scale, autoInit, flags, args);

            if (entity == null)
            {
                return(null);
            }

            var entityT = entity as T;

            if (entityT == null)
            {
                Debug.LogAlways("[Entity.Spawn<T>] Spawn was successful, but type could not be casted to type {0}", typeof(T).Name);
            }

            return(entityT);
        }
Esempio n. 2
0
        void IChannelToClientZone.Spawn(int entityId, Type protoType, int ownerId, EntityFlags flags,
                                        ISpawnPayload payload)
        {
            var entity = _entityFactory.Create(protoType);

            entity.Id        = entityId;
            entity.ProtoType = protoType;
            entity.Zone      = this;
            entity.OwnerId   = ownerId;
            entity.Flags     = flags;

            if (payload != null)
            {
                payload.Notify(entity);
            }

            _entityMap.Add(entityId, entity);

            entity.OnSpawn();
            EntitySpawned?.Invoke(entity);
        }
Esempio n. 3
0
        public bool Equals(Vehicle other)
        {
            if (other == null)
            {
                return(false);
            }

            return(Type.Equals(other.Type) &&
                   ModelIndex.Equals(other.ModelIndex) &&
                   Handle.Equals(other.Handle) &&
                   Matrix.Equals(other.Matrix) &&
                   EntityType.Equals(other.EntityType) &&
                   EntityStatus.Equals(other.EntityStatus) &&
                   EntityFlags.Equals(other.EntityFlags) &&
                   AutoPilot.Equals(other.AutoPilot) &&
                   Color1.Equals(other.Color1) &&
                   Color2.Equals(other.Color2) &&
                   AlarmState.Equals(other.AlarmState) &&
                   MaxNumPassengers.Equals(other.MaxNumPassengers) &&
                   Field1D0h.Equals(other.Field1D0h) &&
                   Field1D4h.Equals(other.Field1D4h) &&
                   Field1D8h.Equals(other.Field1D8h) &&
                   Field1DCh.Equals(other.Field1DCh) &&
                   SteerAngle.Equals(other.SteerAngle) &&
                   GasPedal.Equals(other.GasPedal) &&
                   BrakePedal.Equals(other.BrakePedal) &&
                   CreatedBy.Equals(other.CreatedBy) &&
                   IsLawEnforcer.Equals(other.IsLawEnforcer) &&
                   IsLockedByScript.Equals(other.IsLockedByScript) &&
                   IsEngineOn.Equals(other.IsEngineOn) &&
                   IsHandbrakeOn.Equals(other.IsHandbrakeOn) &&
                   LightsOn.Equals(other.LightsOn) &&
                   HasFreebies.Equals(other.HasFreebies) &&
                   Health.Equals(other.Health) &&
                   CurrentGear.Equals(other.CurrentGear) &&
                   ChangeGearTime.Equals(other.ChangeGearTime) &&
                   TimeOfDeath.Equals(other.TimeOfDeath) &&
                   BombTimer.Equals(other.BombTimer) &&
                   DoorLock.Equals(other.DoorLock));
        }
Esempio n. 4
0
 public void AddComponent(Entity entity, EntityFlags flag)
 {
     flags[entity.id] |= flag;
 }
Esempio n. 5
0
 /// <summary>
 /// 是否存在状态
 /// </summary>
 /// <param name="sourceState"></param>
 /// <param name="targetState"></param>
 /// <returns></returns>
 public static bool CheckFlags(EntityFlags sourceState, EntityFlags targetState)
 {
     return((sourceState & targetState) == targetState);
 }
Esempio n. 6
0
 /// <summary>
 /// Spawns a new entity
 /// </summary>
 /// <param name="entityName"></param>
 /// <param name="type"></param>
 /// <param name="pos"></param>
 /// <param name="rot"></param>
 /// <param name="scale"></param>
 /// <param name="autoInit"></param>
 /// <param name="flags"></param>
 /// <returns></returns>
 public static EntityBase Spawn(string entityName, Type type, Vec3?pos = null, Quat?rot = null, Vec3?scale = null, bool autoInit = true, EntityFlags flags = EntityFlags.CastShadow, params object[] args)
 {
     return(Spawn(entityName, type.Name, pos, rot, scale, autoInit, flags, args));
 }
Esempio n. 7
0
 public static IEnumerable <T> QueryProximity <T>(BoundingBox bbox, EntityFlags flags = 0) where T : EntityBase
 {
     return(GetEntitiesCommon <T>(NativeEntityMethods.QueryProximity(bbox, typeof(T).Name, flags)));
 }
Esempio n. 8
0
 public void AddEFlags(EntityFlags flags)
 {
 }
Esempio n. 9
0
 internal static extern void SetFlags(IntPtr ptr, EntityFlags name);
 public static extern void SetFlags(IntPtr ptr, EntityFlags name);
Esempio n. 11
0
 public bool HasFlag(EntityFlags flag)
 => _flags.HasFlag(flag);
 /// <remarks/>
 public void RetrieveEntityMetadataAsync(string entityName, EntityFlags flags)
 {
     this.RetrieveEntityMetadataAsync(entityName, flags, null);
 }
Esempio n. 13
0
 public static bool IsSet(this EntityFlags flags, EntityFlags flag)
 {
     return (flags & flag) != 0;
 }
Esempio n. 14
0
 extern public static void SetFlags(IntPtr ptr, EntityFlags name);
Esempio n. 15
0
 public static extern object[] QueryProximity(BoundingBox box, string className, EntityFlags flags);
Esempio n. 16
0
 public Entity(EntityFlags flags)
 {
     id         = latestEntityID++;
     components = new List <IComponent>();
     this.flags = flags;
 }
Esempio n. 17
0
 public Entity RemoveFlag(EntityFlags flag)
 {
     flags &= ~flag;
     return(this);
 }
Esempio n. 18
0
 /// <summary>
 /// Create an Entity with a Sprite and Position. 
 /// </summary>
 /// <param name="sprite">Any initialized Sprite.</param>
 /// <param name="position">Initial Entity position.</param>
 /// <param name="velocity">Initial Entity velocity.</param>
 /// <param name="flags">Any specified set of EntityFlags.</param>
 public Entity(Sprite sprite, Vector2 position, Vector2 velocity, EntityFlags flags)
 {
     Sprite = sprite;
     Initialize();
     Position = position;
     Velocity = velocity;
     Flags = flags;
 }
Esempio n. 19
0
 public void RemoveFlag(EntityFlags flag)
 => _flags ^= flag;
Esempio n. 20
0
 protected void SetFlag(EntityFlags flag)
 {
     flags |= flag;
 }
Esempio n. 21
0
 public bool HasFlags(EntityFlags flag)
 {
     return (Flags & flag) == flag;
 }
Esempio n. 22
0
 public Entity AddFlag(EntityFlags flag)
 {
     flags |= flag;
     return(this);
 }
Esempio n. 23
0
 public bool IsSet(EntityFlags flag)
 {
     return((flags & flag) != 0);
 }
Esempio n. 24
0
 public static bool IsSet(this EntityFlags flags, EntityFlags flag)
 {
     return((flags & flag) != 0);
 }
Esempio n. 25
0
 internal static extern object[] QueryProximity(BoundingBox box, string className, EntityFlags flags);
Esempio n. 26
0
 extern internal static object[] QueryProximity(BoundingBox box, string className, EntityFlags flags);
Esempio n. 27
0
 /// <summary>
 /// Spawns a new entity
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="entityName"></param>
 /// <param name="pos"></param>
 /// <param name="rot"></param>
 /// <param name="scale"></param>
 /// <param name="autoInit"></param>
 /// <param name="flags"></param>
 /// <returns></returns>
 public static T Spawn <T>(string entityName, Vec3?pos = null, Quat?rot = null, Vec3?scale = null, bool autoInit = true, EntityFlags flags = EntityFlags.CastShadow) where T : Entity, new()
 {
     return(Spawn(entityName, typeof(T).Name, pos, rot, scale, autoInit, flags) as T);
 }
Esempio n. 28
0
 extern internal static void SetFlags(IntPtr ptr, EntityFlags name);
Esempio n. 29
0
 public static IEnumerable <EntityBase> QueryProximity(BoundingBox bbox, string className, EntityFlags flags = 0)
 {
     return(GetEntitiesCommon <EntityBase>(NativeEntityMethods.QueryProximity(bbox, className, flags)));
 }
Esempio n. 30
0
 public Entity CreateEntity(EntityFlags flags = 0)
 => Entities.AddLast(new Entity(_componentsCollection, flags)).Value;
Esempio n. 31
0
        /// <summary>
        /// Spawns a new entity
        /// </summary>
        /// <param name="entityName"></param>
        /// <param name="className"></param>
        /// <param name="pos"></param>
        /// <param name="rot"></param>
        /// <param name="scale"></param>
        /// <param name="autoInit"></param>
        /// <param name="flags"></param>
        /// <returns></returns>
        public static EntityBase Spawn(string entityName, string className = "Default", Vec3?pos = null, Quat?rot = null, Vec3?scale = null, bool autoInit = true, EntityFlags flags = EntityFlags.CastShadow, params object[] args)
        {
            EntityInitializationParams info;

            var ent = NativeEntityMethods.SpawnEntity(new EntitySpawnParams {
                Name = entityName, Class = className, Pos = pos ?? new Vec3(1, 1, 1), Rot = rot ?? Quat.Identity, Scale = scale ?? new Vec3(1, 1, 1), Flags = flags
            }, autoInit, out info) as Entity;

            if (ent != null)
            {
                ent.OnPostSpawn(args);

                return(ent);
            }
            else if (info.Id != 0)
            {
                return(CreateNativeEntity(info.Id, info.IEntityPtr) as Entity);
            }

            Debug.LogAlways("[Entity.Spawn] Failed to spawn entity of class {0} with name {1}", className, entityName);
            return(null);
        }
Esempio n. 32
0
 public static IEnumerable <Entity> HasFlags(this IEnumerable <Entity> entities, EntityFlags flags)
 => entities.Where(a => a.HasFlag(flags));
Esempio n. 33
0
 /// <summary>
 /// 是否存在其中一个状态
 /// </summary>
 /// <param name="state"></param>
 /// <returns></returns>
 public bool CheckFlagsByOne(EntityFlags state)
 {
     return(CheckFlagsByOne(flags, state));
 }
Esempio n. 34
0
 internal Entity(ComponentsCollection collection, EntityFlags flags)
 {
     _collection = collection;
     _flags      = flags;
 }
Esempio n. 35
0
 public static GameId FromValues(uint id, EntityFlags flags)
 {
     return(new GameId(Bits.Compose((id, 0, 32),
                                    ((ulong)flags, 32, 32))));
 }
Esempio n. 36
0
 public void AddFlag(EntityFlags flag)
 => _flags |= flag;