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); }
public static void Save(EntityPointer entityPointer, BinaryWriter writer) { writer.Write(entityPointer.id); writer.Write(entityPointer.fastAccessId); }
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(); }