-
Notifications
You must be signed in to change notification settings - Fork 114
Fluid Entity Interface
Daan van Yperen edited this page Sep 13, 2016
·
18 revisions
In your systems, statically import com.artemis.E
. This exposes E(entityId)
Fluid interface directly exposes methods to create, remove, and access and alter components it knows about.
Method calls can be chained. E(entityId).pos(5,5).angle(10).anim("monkey")
.
Access component
Pos pos = E(entityId)._pos();
Conventions:
- Returns null if no component exists.
Access component field
given Anim .. { public Cell cell; }
Example:
Cell cell = E(entityId).animCell();
E(entityId).animCell(cell);
Conventions:
- This call creates missing components to avoid NPE checks.
- See internals below for conventions generating field getters/setters.
Access component method
given
class Anim extends Component
{
public Vector getXY() { .. }
public void setXY(int x, int y) { .. }
public void setXY(Vector v) { .. }
}
Example:
e = E(Id);
Vector v2 = e.posXY();
e.posXY(5,5).posXY(new Vector(10,10));
Conventions:
- This call creates missing components to avoid NPE checks.
- See internals below for conventions generating field getters/setters.
Check component exists
E(id).hasPos()
Conventions for components
on component | Exposed as | if missing | comments |
---|---|---|---|
Pos |
E ::pos() |
create | chainable |
Pos |
E ::pos(E e2) |
mirror e2
|
chainable |
Pos |
Pos E::_pos() |
null | Getter. |
Pos.x |
int E::posX() |
create | chainable |
Pos.x |
E E::posX(x) |
create | getter |
public Pos::set(x,y)
|
E E::pos(x,y) |
create | chainable |
public Pos::clear()
|
E E::posClear() |
create | chainable |
public Pos::setX(x)
|
E E::posX(x) |
create | chainable |
public int Pos::getX()
|
int E::posX() |
create | getter |
public Pos::setDepth(z)
|
E E::posDepth(z) |
create | chainable |
public float Pos::getDepth()
|
float E::posDepth() |
create | getter |
Flag (empty) Invisible
|
E ::invisible(boolean create) |
see parameter | components with no public fields and methods are treated as flags. Additional to E::invisible()
|
Flag (empty) Invisible
|
E ::isInvisible() |
- | Returns true if has component `false if not. |
- Overview
- Concepts
- Getting Started
- Using
- More guides
- Plugins
- Game Gallery
- Tools and Frameworks
- API reference