- type: entity
  id: ResearchAndDevelopmentServer
  parent: BaseConstructibleDynamic
  name: "R&D server"
  description: 'Thats a R&D server.'
  components:
  - type: Sprite
    sprite: Constructible/Power/server.rsi
    state: server
  - type: InteractionOutline
  - type: Physics
    bodyType: Static
    fixtures:
    - shape:
        !type:PhysShapeAabb {}
      mass: 25
      mask:
        - SmallImpassable
      layer:
        - Opaque
        - MobImpassable
  - type: ResearchServer
  - type: TechnologyDatabase
  - type: PowerReceiver
    powerLoad: 200
    priority: Low

- type: entity
  id: BaseResearchAndDevelopmentPointSource
  parent: BaseConstructibleDynamic
  name: "base R&D point source"
  # We should make this abstract once there are actual point sources.
  components:
  - type: Sprite
    sprite: Constructible/Power/rndpointsource.rsi
    layers:
    - state: rndpointsource-off
    - state: rndpointsource
      shader: unshaded
      map: ["enum.PowerDeviceVisualLayers.Powered"]
  - type: InteractionOutline
  - type: Physics
    bodyType: Static
    fixtures:
    - shape:
        !type:PhysShapeAabb {}
      mass: 25
      mask:
        - SmallImpassable
      layer:
        - Opaque
        - MobImpassable
  - type: ResearchPointSource
    pointspersecond: 100
    active: true
  - type: UserInterface
    interfaces:
    - key: enum.ResearchClientUiKey.Key
      type: ResearchClientBoundUserInterface
  - type: Appearance
    visuals:
    - type: PowerDeviceVisualizer
  - type: PowerReceiver
