Starsector API
Loading...
Searching...
No Matches
BaseDwellerShipPart.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.combat.dweller;
2
3import java.util.LinkedHashSet;
4import java.util.Set;
5
6import java.awt.Color;
7
8import org.lwjgl.util.vector.Vector2f;
9
10import com.fs.starfarer.api.combat.CombatEngineLayers;
11import com.fs.starfarer.api.util.FaderUtil;
12import com.fs.starfarer.api.util.Misc;
13import com.fs.starfarer.api.util.ValueShifterUtil;
14
15public class BaseDwellerShipPart implements DwellerShipPart {
16 public String id;
17 public Set<String> tags = new LinkedHashSet<>();
18 public Vector2f offset;
19 public float facingOffset;
20 public float alphaMult = 1f;
21 public float currBrightness;
23
24 public Color color = Color.white;
25 public boolean additiveBlend = false;
26 public boolean negativeBlend = false;
28
29 public BaseDwellerShipPart(Vector2f offset, float facingOffset) {
30 this.offset = offset;
31 this.facingOffset = facingOffset;
32
33 fader = new FaderUtil(0f, 1f, 1f);
34 fader.fadeIn();
35
37 }
38
51
52 public void setActivated(String ...tags) {
53 for (String tag : tags) {
54 this.tags.add(tag);
55 }
56 }
57
58
59 public void advance(float amount) {
60 fader.advance(amount);
61 brightness.advance(amount);
62
63 float desired = brightness.getCurr();
64 currBrightness = Misc.approach(currBrightness, desired, 1f, 1f, amount);
65 }
66
67 public void render(float entityX, float entityY, float alphaMult, float angle, CombatEngineLayers layer) {
68 alphaMult *= this.alphaMult;
69 alphaMult *= fader.getBrightness();
71
72 Vector2f rot = Misc.rotateAroundOrigin(offset, angle + 90);
73 renderImpl(entityX + rot.x, entityY + rot.y, alphaMult, angle, layer);
74
75 }
76
77 protected void renderImpl(float x, float y, float alphaMult, float angle, CombatEngineLayers layer) {
78
79 }
80
81 @Override
82 public void fadeOut() {
83 fader.fadeOut();
84 }
85 @Override
86 public void fadeIn() {
87 fader.fadeIn();
88 }
89 @Override
91 return fader;
92 }
93 @Override
94 public float getAlphaMult() {
95 return alphaMult;
96 }
97 @Override
98 public void setAlphaMult(float alphaMult) {
99 this.alphaMult = alphaMult;
100 }
101 @Override
102 public String getId() {
103 return id;
104 }
105 public void setId(String id) {
106 this.id = id;
107 }
108 @Override
109 public Set<String> getTags() {
110 return tags;
111 }
112 @Override
113 public void addTag(String tag) {
114 tags.add(tag);
115 }
116 @Override
117 public void removeTag(String tag) {
118 tags.remove(tag);
119
120 }
121 @Override
122 public boolean hasTag(String tag) {
123 return tags.contains(tag);
124 }
125
126 @Override
128 return brightness;
129 }
130 @Override
131 public Color getColor() {
132 return color;
133 }
134 @Override
135 public void setColor(Color color) {
136 this.color = color;
137 }
138
139
140}
141
void render(float entityX, float entityY, float alphaMult, float angle, CombatEngineLayers layer)
void renderImpl(float x, float y, float alphaMult, float angle, CombatEngineLayers layer)
static float approach(float curr, float dest, float minSpeed, float diffSpeedMult, float amount)
Definition Misc.java:2719
static Vector2f rotateAroundOrigin(Vector2f v, float angle)
Definition Misc.java:1205