Package com.szuppe.jakub.config.model

Source Code of com.szuppe.jakub.config.model.PaddleConfig

/**
*
*/
package com.szuppe.jakub.config.model;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import com.szuppe.jakub.common.Acceleration2D;
import com.szuppe.jakub.common.Coordinates2D;
import com.szuppe.jakub.common.SpeedVector2D;

/**
* Konfiguracja platformy.
*
* @author Jakub Szuppe <j.szuppe at gmail.com>
*
*/
public class PaddleConfig
{
  /** Współrzędne wierzchołków platformy na starcie. */
  private final List<Coordinates2D>  verticesList;
  /** Energia wyrażona w prędkości, którą dostaje platforma, gdy ją przyspieszamy. */
  private final SpeedVector2D      absStepSpeed;
  /** Maksymalna prędkość. */
  private final SpeedVector2D      maxAbsSpeed;
  /** Opóźnienie platformy. */
  private final Acceleration2D    absRetardation;

  /**
   * Tworzy konfiguracje platformy zgodnie
   * z podanymi wartościami.
   *
   * @param verticesList - startowe współrzędne wierzchołków platformy.
   * @param absStepSpeed - energia wyrażona w prędkości, którą dostaje platforma, gdy ją
   *            przyspieszamy.
   * @param maxAbsSpeed - maksymalna prędkość platformy.
   * @param absRetardation - opóźnienie platformy.
   */
  public PaddleConfig(final List<Coordinates2D> verticesList,
      final SpeedVector2D absStepSpeed, final SpeedVector2D maxAbsSpeed,
      final Acceleration2D absRetardation)
  {
    this.verticesList = verticesList;
    this.absStepSpeed = absStepSpeed;
    this.maxAbsSpeed = maxAbsSpeed;
    this.absRetardation = absRetardation;
  }

  /**
   * Tworzy kopie podanej konfiguracji.
   *
   * @param paddleConfig - konfiguracja platformy.
   */
  public PaddleConfig(PaddleConfig paddleConfig)
  {
    this(paddleConfig.getStartVertices(), paddleConfig.getAbsStepSpeed(),
        paddleConfig.getMaxAbsSpeed(), paddleConfig.getAbsRetardation());
  }

  /**
   * @return Współrzędne wierzchołków platformy na starcie.
   */
  public List<Coordinates2D> getStartVertices()
  {
    return Collections.unmodifiableList(new LinkedList<>(verticesList));
  }

  /**
   * @return Energię wyrażona w prędkości, którą dostaje platforma, gdy ją
   *         przyspieszamy.
   */
  public SpeedVector2D getAbsStepSpeed()
  {
    return new SpeedVector2D(absStepSpeed);
  }

  /**
   * @return Maksymalną prędkość platformy.
   */
  public SpeedVector2D getMaxAbsSpeed()
  {
    return new SpeedVector2D(maxAbsSpeed);
  }

  /**
   * @return Opóźnienie platformy.
   */
  public Acceleration2D getAbsRetardation()
  {
    return new Acceleration2D(absRetardation);
  }

}
TOP

Related Classes of com.szuppe.jakub.config.model.PaddleConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.