public void addComponent(MultiblockComponent component){
  if (getComponentForLocation(component.getRelativePosition()) != null)   throw new IllegalArgumentException("Location in multiblock already occupied");
  components.add(component);
  changeAxisForNewComponent(component.getRelativePosition());
  calculateCostForNewComponent(component);
  addComponentToLocationCache(component);
}

public void addComponent ( MultiblockComponent component ) { if ( getComponentForLocation ( component . getRelativePosition ( ) ) != null ) throw new IllegalArgumentException ( "Location in multiblock already occupied" ) ; components . add ( component ) ; changeAxisForNewComponent ( component . getRelativePosition ( ) ) ; calculateCostForNewComponent ( component ) ; addComponentToLocationCache ( component ) ; }
adds a multiblock component to this multiblock . the component ' s x y z coords should be pivoted to the center of the structure .
