/** * Checks if the entity has this type of component. * @param e the entity to check * @return true if the entity has this component type, false if it doesn't. */ public boolean has(Entity e) { return getSafe(e) != null; } }
/** * Fast and safe retrieval of a component for this entity. * If the entity does not have this component then fallback is returned. * * @param entity Entity that should possess the component * @param fallback fallback component to return, or {@code null} to return null. * @return the instance of the component */ public A getSafe(Entity entity, A fallback) { return mapper.getSafe(entity.getId(), fallback); }
/** * Fast and safe retrieval of a component for this entity. * If the entity does not have this component then fallback is returned. * * @param entity Entity that should possess the component * @param fallback fallback component to return, or {@code null} to return null. * @return the instance of the component */ public A getSafe(Entity entity, A fallback) { return mapper.getSafe(entity.getId(), fallback); }
@Override protected void process(int entityId) { Transform transform = mTransform.get(entityId); RigidBody rigidBody = mRigidBody.get(entityId); transform.setPosition(rigidBody.body.getPosition()); // if the entity is Boss, make it drawn on top Enemy enemy = mEnemy.getSafe(entityId); if (enemy != null) { if (enemy.type.startsWith("boss")) { transform.z = -1; } } } }
@Override protected void process(int e) { Pos pos = mPos.get(e); batch.setProjectionMatrix(cameraSystem.camera.combined); batch.begin(); Texture asset = mSpriteAsset.get(e).asset; final Angle angle = mAngle.getSafe(e, this.angle); region.setTexture(asset); region.setRegion(0,0,32,32); final Origin origin = mOrigin.getSafe(e, DEFAULT_ORIGIN); final Size size = mSize.getSafe(e, DEFAULT_SIZE); float ox = size.getX() * origin.getX(); float oy = size.getY() * origin.getY(); batch.draw( region, pos.xy.x - (size.getX() - ox), pos.xy.y - (size.getY() - oy), ox, oy, size.getX(), size.getY(), 1f,1f, angle.rotation); batch.end(); }
@Override protected void process(int e) { Pos pos = mPos.get(e); batch.setProjectionMatrix(cameraSystem.camera.combined); batch.begin(); Texture asset = mSpriteAsset.get(e).asset; final Angle angle = mAngle.getSafe(e, this.angle); region.setTexture(asset); region.setRegion(0,0,32,32); final Origin origin = mOrigin.getSafe(e, DEFAULT_ORIGIN); final Size size = mSize.getSafe(e, DEFAULT_SIZE); float ox = size.getX() * origin.getX(); float oy = size.getY() * origin.getY(); batch.draw( region, pos.xy.x - (size.getX() - ox), pos.xy.y - (size.getY() - oy), ox, oy, size.getX(), size.getY(), 1f,1f, angle.rotation); batch.end(); }