1package com.fs.starfarer.api.util;
3import java.util.Iterator;
4import java.util.LinkedHashMap;
9 public static class ShiftData2 {
13 public boolean nudged;
20 protected Map<Object, ShiftData2>
data =
new LinkedHashMap<Object, ShiftData2>();
38 return !
data.isEmpty();
53 public void shift(Object source,
float to,
float durIn,
float durOut,
float shift) {
54 ShiftData2 sd =
data.get(source);
56 sd =
new ShiftData2();
57 sd.fader =
new FaderUtil(0, durIn, durOut);
69 Iterator<ShiftData2> iter =
data.values().iterator();
70 while (iter.hasNext()) {
71 ShiftData2 sd = iter.next();
72 if (!sd.nudged) sd.fader.
fadeOut();
89 float totalWeight = 0f;
90 for (ShiftData2 sd :
data.values()) {
91 float progress = sd.fader.getBrightness();
93 totalWeight += progress;
98 if (totalWeight <= 0) {
105 for (ShiftData2 sd :
data.values()) {
106 float progress = sd.fader.getBrightness();
109 result += (sd.to -
base) * sd.shift * progress / (totalWeight - progress + 1f);
120 if (
data.containsKey(key)) {
121 return data.get(key).fader.getBrightness();
126 public static void main(String[] args) {
129 for (
int i = 0; i < 10; i++) {
130 c.
shift(
"c1", 25f, 1f, 1f, 1f);
131 c.
shift(
"c2", 20f, 1f, 1f, 1f);
135 System.out.println(c.
getCurr());
void advance(float amount)
void setBounceDown(boolean bounceDown)
FaderUtil setDuration(float in, float out)
void setUseSquareOfProgress(boolean useSquareOfProgress)
void shift(Object source, float to, float durIn, float durOut, float shift)
void advance(float amount)
static void main(String[] args)
Map< Object, ShiftData2 > data
ValueShifterUtil(float base)
transient float averageShift
boolean useSquareOfProgress
float getShiftProgress(Object key)
boolean isUseSquareOfProgress()