mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-07-06 16:27:34 +07:00
Added support for enforcing labels remain within screen bounds
This commit is contained in:
@ -178,6 +178,22 @@ public class RenderSystem extends EntitySystem {
|
||||
return iso;
|
||||
}
|
||||
|
||||
public int getMinX() {
|
||||
return renderMinX;
|
||||
}
|
||||
|
||||
public int getMinY() {
|
||||
return renderMinY;
|
||||
}
|
||||
|
||||
public int getMaxX() {
|
||||
return renderMaxX;
|
||||
}
|
||||
|
||||
public int getMaxY() {
|
||||
return renderMaxY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addedToEngine(Engine engine) {
|
||||
entities = engine.getEntitiesFor(family);
|
||||
|
@ -509,6 +509,7 @@ public class ClientScreen extends ScreenAdapter implements LoadingScreen.Loadabl
|
||||
LabelSystem labelSystem = engine.getSystem(LabelSystem.class);
|
||||
labelSystem.update(0);
|
||||
Array<Actor> labels = labelSystem.getLabels();
|
||||
layoutLabels(labels);
|
||||
for (Actor label : labels) {
|
||||
label.draw(batch, 1);
|
||||
}
|
||||
@ -737,6 +738,16 @@ public class ClientScreen extends ScreenAdapter implements LoadingScreen.Loadabl
|
||||
left = actor;
|
||||
}
|
||||
|
||||
private void layoutLabels(Array<Actor> labels) {
|
||||
for (Actor label : labels) {
|
||||
tmpVec2.x = label.getX();
|
||||
tmpVec2.y = label.getY();
|
||||
tmpVec2.x = MathUtils.clamp(tmpVec2.x, renderer.getMinX(), renderer.getMaxX() - label.getWidth());
|
||||
tmpVec2.y = MathUtils.clamp(tmpVec2.y, renderer.getMinY(), renderer.getMaxY() - label.getHeight());
|
||||
label.setPosition(tmpVec2.x, tmpVec2.y);
|
||||
}
|
||||
}
|
||||
|
||||
public void setDetails(Actor details, Item item, Actor parent, Actor slot) {
|
||||
if (this.details == details) return;
|
||||
this.details = details;
|
||||
|
Reference in New Issue
Block a user