1package com.fs.starfarer.api.util;
6 public static enum State {IN, OUT, IDLE};
8 private float currBrightness;
9 private float durationIn, durationOut;
12 private boolean bounceDown =
false;
13 private boolean bounceUp =
false;
15 public FaderUtil(
float currBrightness,
float duration) {
16 this.currBrightness = currBrightness;
17 this.durationIn = duration;
18 this.durationOut = duration;
22 public FaderUtil(
float currBrightness,
float durationIn,
float durationOut) {
23 this.currBrightness = currBrightness;
24 this.durationIn = durationIn;
25 this.durationOut = durationOut;
29 public FaderUtil(
float currBrightness,
float durationIn,
float durationOut,
boolean bounceUp,
boolean bounceDown) {
30 this(currBrightness, durationIn, durationOut);
43 this.bounceDown = bounceDown;
47 this.bounceUp = bounceUp;
52 this.bounceDown =
down;
57 if (bounceDown) state = State.OUT;
58 else state = State.IDLE;
63 if (bounceUp) state = State.IN;
64 else state = State.IDLE;
68 if (durationIn <= 0) {
76 if (durationOut <= 0) {
92 return state == State.OUT;
96 return state == State.IN;
100 return state == State.IDLE;
104 if (state == State.IDLE)
return;
106 if (state == State.IN) {
107 if (currBrightness == 1) {
108 if (bounceDown) state = State.OUT;
109 else state = State.IDLE;
112 float delta =
amount / durationIn;
113 currBrightness += delta;
114 if (currBrightness > 1) {
117 }
else if (state == State.OUT) {
118 if (currBrightness == 0) {
119 if (bounceUp) state = State.IN;
120 else state = State.IDLE;
123 float delta =
amount / durationOut;
124 currBrightness -= delta;
125 if (currBrightness < 0) {
132 this.durationIn = durationIn;
136 this.durationOut = durationOut;
140 this.durationIn =
in;
141 this.durationOut =
out;
146 return currBrightness;
158 this.currBrightness = brightness;
163 return String.format(
"%s, curr: %f, in: %f, out: %f, up: %b, down: %b", state.name(),
164 currBrightness, durationIn, durationOut,
165 bounceUp, bounceDown);
FaderUtil(float currBrightness, float durationIn, float durationOut)
void setBounceUp(boolean bounceUp)
void setState(State state)
void advance(float amount)
void setBounceDown(boolean bounceDown)
FaderUtil setDuration(float in, float out)
FaderUtil(float currBrightness, float durationIn, float durationOut, boolean bounceUp, boolean bounceDown)
FaderUtil(float currBrightness, float duration)
void setBrightness(float brightness)
void setDurationOut(float durationOut)
void setDurationIn(float durationIn)
void setBounce(boolean up, boolean down)