# Class Component

Namespace
  Awperative

Assembly
  Awperative.dll

The lowest level scripting class in Awperative. Components are scene level and provide access to all scene level methods, can be applied to any docker and inherited Sadly component does not have excessive access to specific types. Anything that inherits Component is built to work in any DockerEntity, which leads to generic Assumptions. If you want to make a body specific or scene specific component both classes are available.

    public abstract class Component

Inheritance
  object
  Component

Derived
  BodyComponent
  SceneComponent

Inherited Members
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

## Properties

### Scene

    public Scene Scene { get; set; }

#### Property Value

Scene

## Methods

### AddBody()

    protected Body AddBody()

#### Returns

Body

### AddBody(Transform)

    protected Body AddBody(Transform __transform)

#### Parameters

`__transform` Transform

#### Returns

Body

### AddComponent<Generic>()

    public Component AddComponent<Generic>() where Generic : Component

#### Returns

Component

#### Type Parameters

`Generic`

### AddComponent<Generic>(object[])

    public Component AddComponent<Generic>(object[] __args) where Generic : Component

#### Parameters

`__args` object[]

#### Returns

Component

#### Type Parameters

`Generic`

### Create()

    public virtual void Create()

### Destroy()

    public virtual void Destroy()

### DestroyBody(Body)

    protected void DestroyBody(Body __body)

#### Parameters

`__body` Body

### Draw(GameTime)

    public virtual void Draw(GameTime __gameTime)

#### Parameters

`__gameTime` GameTime

### GetBodies(string)

    protected Body[] GetBodies(string __tag)

#### Parameters

`__tag` string

#### Returns

Body[]

### GetBody(string)

    protected Body GetBody(string __tag)

#### Parameters

`__tag` string

#### Returns

Body

### GetComponent<Generic>()

    public Component GetComponent<Generic>() where Generic : Component

#### Returns

Component

#### Type Parameters

`Generic`

### GetComponents<Generic>()

    public Component[] GetComponents<Generic>() where Generic : Component

#### Returns

Component[]

#### Type Parameters

`Generic`

### Load()

    public virtual void Load()

### RemoveComponent<Generic>()

    public void RemoveComponent<Generic>() where Generic : Component

#### Type Parameters

`Generic`

### Unload()

    public virtual void Unload()

### Update(GameTime)

    public virtual void Update(GameTime __gameTime)

#### Parameters

`__gameTime` GameTime