001 package components;
002
003 import physics3d.Vect3;
004
005 /**
006 * GameSettings is a mutable object that holds gamesettings
007 * @specfield gravity
008 * @specfield mu
009 * @specfield mu2
010 * @specfield fps
011 */
012
013 /*
014 * Abstraction Function
015 * AF(r) = a GameSettings object, gs, such that
016 * gs.gravity = r.gravity
017 * gs.mu = r.mu
018 * gs.mu2 = this.mu2
019 * gs.fps = this.fps
020 */
021
022 /*
023 * Rep Invariant
024 * gravity != null
025 */
026
027 public class GameSettings {
028
029 //fields
030 private Vect3 gravity;
031 private double mu;
032 private double mu2;
033 private int fps;
034
035 public GameSettings() {
036 gravity = new Vect3(0,25,0);
037 mu = 0.025;
038 mu2 = 0.025;
039 fps = 30; //frames per second
040 }
041
042 /**
043 * @return the frames per second
044 */
045 public int getFPS() {
046 return fps;
047 }
048
049 /**
050 * @param fps is the frames per second to set
051 * @effects sets the frames per second
052 */
053 public void setFPS(int fps) {
054 this.fps = fps;
055 }
056
057 /**
058 * @return the gravity
059 */
060 public Vect3 getGravity() {
061 return gravity;
062 }
063
064 /**
065 * @require gravity != null
066 */
067 public void setGravity(Vect3 gravity) {
068 this.gravity = gravity;
069 }
070
071 /**
072 * @return the mu
073 */
074 public double getMu() {
075 return mu;
076 }
077
078 /**
079 * @param mu the mu to set
080 */
081 public void setMu(double mu) {
082 this.mu = mu;
083 }
084
085 /**
086 * @return the mu2
087 */
088 public double getMu2() {
089 return mu2;
090 }
091
092 /**
093 * @param mu2 the mu2 to set
094 */
095 public void setMu2(double mu2) {
096 this.mu2 = mu2;
097 }
098 }