/** * Applies gravity on Y axis to Entity. * * @author Daan van Yperen * @see net.mostlyoriginal.api.component.physics.Gravity */ @Wire public class GravitySystem extends IteratingSystem { public static final int GRAVITY_FACTOR = 50; ComponentMapper<Physics> pm; ComponentMapper<Gravity> gm; public GravitySystem() { super(Aspect.all(Gravity.class, Physics.class)); } @Override protected void process(int e) { final Physics physics = pm.get(e); final Gravity gravity = gm.get(e); physics.vy += gravity.y * GRAVITY_FACTOR * world.delta; physics.vx += gravity.x * GRAVITY_FACTOR * world.delta; } }
/** * Set {@code @Wire} annotation value for cached class. */ private void setWireAnnotation(CachedClass cachedClass, Wire wireAnnotation) { cachedClass.wireType = WireType.WIRE; cachedClass.wireAnnotation = wireAnnotation; cachedClass.failOnNull = wireAnnotation.failOnNull(); cachedClass.injectInherited = wireAnnotation.injectInherited(); }
public CachedField getCachedField(Field field) { CachedField cachedField = namedWireCache.get(field); if (cachedField == null) { if (field.isAnnotationPresent(Wire.class)) { final Wire wire = field.getAnnotation(Wire.class); cachedField = new CachedField(field, WireType.WIRE, wire.name(), wire.failOnNull()); } else if (field.isAnnotationPresent(SkipWire.class)) { cachedField = new CachedField(field, WireType.SKIPWIRE, null, false); } else { cachedField = new CachedField(field, WireType.IGNORED, null, false); } namedWireCache.put(field, cachedField); } return cachedField; }
public CachedField getCachedField(Field field) { CachedField cachedField = namedWireCache.get(field); if (cachedField == null) { if (field.isAnnotationPresent(Wire.class)) { final Wire wire = field.getAnnotation(Wire.class); cachedField = new CachedField(field, WireType.WIRE, wire.name(), wire.failOnNull()); } else if (field.isAnnotationPresent(SkipWire.class)) { cachedField = new CachedField(field, WireType.SKIPWIRE, null, false); } else { cachedField = new CachedField(field, WireType.IGNORED, null, false); } namedWireCache.put(field, cachedField); } return cachedField; }
/** * Subscribe entities that are close to any of the players entities. * <p/> * Needs to be wired up by Artemis. Depends on player manager. * * @author Daan van Yperen * @todo would probably better to do this differently, by player observers or something. Keep things simple for now. */ @Wire public class ProximitySubscribeStrategy implements SubscribeStrategy<String> { protected PlayerManager playerManager; @Override public boolean inScope(String player, Entity e) { ImmutableBag<Entity> entitiesOfPlayer = playerManager.getEntitiesOfPlayer(player); for (int i = 0, s = entitiesOfPlayer.size(); i < s; i++) { } return false; } }
/** * Set {@code @Wire} annotation value for cached class. */ private void setWireAnnotation(CachedClass cachedClass, Wire wireAnnotation) { cachedClass.wireType = WireType.WIRE; cachedClass.wireAnnotation = wireAnnotation; cachedClass.failOnNull = wireAnnotation.failOnNull(); cachedClass.injectInherited = wireAnnotation.injectInherited(); }
/** * Perform scheduled actions. * * @author Daan van Yperen * @see Schedule */ @Wire public class SchedulerSystem extends EntityProcessingSystem { protected M<Schedule> mSchedule; public SchedulerSystem() { super(Aspect.all(Schedule.class)); } @Override protected void process(Entity e) { ParallelOperation operation = mSchedule.get(e).operation; if ( operation.process(world.delta, e) ) { // Done. return schedule to pool. mSchedule.remove(e); } } }
/** * Lock camera center on camera entity. * * @author Daan van Yperen * @see net.mostlyoriginal.api.component.camera.Camera */ @Wire public class EntityCameraSystem extends EntityProcessingSystem { private ComponentMapper<Pos> pm; private CameraSystem cameraSystem; public EntityCameraSystem() { super(Aspect.getAspectForAll(Pos.class, Camera.class)); } @Override protected void process(Entity e) { final Pos pos = pm.get(e); cameraSystem.camera.position.x = (int)(pos.x); cameraSystem.camera.position.y = (int)(pos.y); cameraSystem.camera.update(); } }
/** * Perform scheduled actions. * * @author Daan van Yperen * @see Schedule */ @Wire public class SchedulerSystem extends EntityProcessingSystem { protected M<Schedule> mSchedule; public SchedulerSystem() { super(Aspect.all(Schedule.class)); } @Override protected void process(Entity e) { ParallelOperation operation = mSchedule.get(e).operation; if ( operation.process(world.delta, e) ) { // Done. return schedule to pool. mSchedule.remove(e); } } }
/** * Applies gravity on Y axis to Entity. * * @author Daan van Yperen * @see net.mostlyoriginal.api.component.physics.Gravity */ @Wire public class GravitySystem extends IteratingSystem { public static final int GRAVITY_FACTOR = 50; ComponentMapper<Physics> pm; ComponentMapper<Gravity> gm; public GravitySystem() { super(Aspect.all(Gravity.class, Physics.class)); } @Override protected void process(int e) { final Physics physics = pm.get(e); final Gravity gravity = gm.get(e); physics.vy += gravity.y * GRAVITY_FACTOR * world.delta; physics.vx += gravity.x * GRAVITY_FACTOR * world.delta; } }
@Wire public class MouseCursorSystem extends IteratingSystem {
@Wire public class MouseCursorSystem extends EntityProcessingSystem {
@Wire public class EntityCameraSystem extends IteratingSystem {
@Wire public class MouseCursorSystem extends IteratingSystem {
@Wire public class ExtendedComponentMapperManager extends Manager {
@Wire public class AimSystem extends EntityProcessingSystem {
@Wire public class InbetweenSystem extends EntityProcessingSystem {
@Wire public class EntityCameraSystem extends IteratingSystem {
@Wire public class InbetweenSystem extends IteratingSystem {
@Wire public class InbetweenSystem extends IteratingSystem {