internal override void SaveState(BinaryWriter writer)
            {
                writer.Write((byte)CommandType.SetSpaceshipControls);

                EntityPointer.Save(shipEntityPointer, writer);

                writer.Write(controls);
            }
        internal void Create(EntityPointer entityPointer, uint owner)
        {
            if (entityPointer.id == 0)
            {
                throw new ArgumentOutOfRangeException(nameof(entityPointer));
            }
            if (!IsDestroyed)
            {
                throw new InvalidOperationException("Entity is already created!");
            }

            Pointer = entityPointer;

            Owner = owner;

            foreach (var component in components)
            {
                component.OnCreate();
            }
        }
        public Entity TryGetEntity(EntityPointer pointer)
        {
            if (pointer.id == 0)
            {
                return(null);
            }

            if (pointer.fastAccessId >= entitiesFastAccessArray.Length)
            {
                return(null);
            }

            var entity = entitiesFastAccessArray[pointer.fastAccessId];

            if (entity == null || entity.Pointer.id != pointer.id)
            {
                return(null);
            }

            return(entity);
        }
Exemple #4
0
        public static void Save(EntityPointer entityPointer, BinaryWriter writer)
        {
            writer.Write(entityPointer.id);

            writer.Write(entityPointer.fastAccessId);
        }
Exemple #5
0
 public bool Equals(EntityPointer obj)
 {
     return(id == obj.id && fastAccessId == obj.fastAccessId);
 }
            internal override void LoadState(BinaryReader reader)
            {
                shipEntityPointer = EntityPointer.Load(reader);

                controls = reader.ReadByte();
            }