Android Open Source - mobius Linking System






From Project

Back to project page mobius.

License

The source code is released under:

MIT License

If you think the Android project mobius listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.sgtcodfish.mobiusListing.systems;
/*w w  w.j ava2s . c  om*/
import java.util.ArrayList;

import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.Filter;
import com.artemis.systems.EntityProcessingSystem;
import com.badlogic.gdx.Gdx;
import com.sgtcodfish.mobiusListing.components.Linked;

/**
 * @author Ashley Davis (SgtCoDFish)
 */
public class LinkingSystem extends EntityProcessingSystem {
  private ComponentMapper<Linked>  linkedComponentMapper  = null;

  private ArrayList<Entity>    scheduledForRemoval    = null;

  @SuppressWarnings("unchecked")
  public LinkingSystem() {
    this(Filter.allComponents(Linked.class));
  }

  protected LinkingSystem(Filter filter) {
    super(filter);

    scheduledForRemoval = new ArrayList<Entity>(10);
  }

  @Override
  public void initialize() {
    linkedComponentMapper = world.getMapper(Linked.class);
  }

  @Override
  protected void process(Entity e) {
    Linked link = linkedComponentMapper.get(e);

    link.performer.perform(e);
  }

  @Override
  protected void end() {
    int childCount = 0;

    for (int i = 0; i < scheduledForRemoval.size(); i++) {
      Entity root = scheduledForRemoval.get(i);

      while (linkedComponentMapper.get(root) != null) {
        root = linkedComponentMapper.get(root).child;

        if (!scheduledForRemoval.contains(root)) {
          scheduledForRemoval.add(root);
          childCount++;
        }
      }
    }

    if (scheduledForRemoval.size() > 0) {
      Gdx.app.debug("LINKING_SYSTEM", "Removing " + scheduledForRemoval.size() + " elements, of which "
          + childCount + " were child entities.");
    }

    for (Entity e : scheduledForRemoval) {
      e.deleteFromWorld();
    }

    scheduledForRemoval.clear();

    super.end();
  }

  public void scheduleForRemoval(Entity e) {
    scheduledForRemoval.add(e);
  }
}




Java Source Code List

com.sgtcodfish.mobiusListing.Item.java
com.sgtcodfish.mobiusListing.MobiusListingGame.java
com.sgtcodfish.mobiusListing.TerrainCollisionMap.java
com.sgtcodfish.mobiusListing.WorldConstants.java
com.sgtcodfish.mobiusListing.android.AndroidLauncher.java
com.sgtcodfish.mobiusListing.components.ChildLinked.java
com.sgtcodfish.mobiusListing.components.Collectable.java
com.sgtcodfish.mobiusListing.components.DxLayer.java
com.sgtcodfish.mobiusListing.components.DyLayer.java
com.sgtcodfish.mobiusListing.components.FadableLayer.java
com.sgtcodfish.mobiusListing.components.FocusTaker.java
com.sgtcodfish.mobiusListing.components.InteractableLayer.java
com.sgtcodfish.mobiusListing.components.Interactable.java
com.sgtcodfish.mobiusListing.components.Inventory.java
com.sgtcodfish.mobiusListing.components.Linked.java
com.sgtcodfish.mobiusListing.components.MobiusSprite.java
com.sgtcodfish.mobiusListing.components.MovingLayer.java
com.sgtcodfish.mobiusListing.components.Opacity.java
com.sgtcodfish.mobiusListing.components.PlatformInputListener.java
com.sgtcodfish.mobiusListing.components.PlatformSprite.java
com.sgtcodfish.mobiusListing.components.PlayerInputListener.java
com.sgtcodfish.mobiusListing.components.PlayerSprite.java
com.sgtcodfish.mobiusListing.components.PlayerState.java
com.sgtcodfish.mobiusListing.components.Position.java
com.sgtcodfish.mobiusListing.components.Solid.java
com.sgtcodfish.mobiusListing.components.StaticSprite.java
com.sgtcodfish.mobiusListing.components.TiledRenderable.java
com.sgtcodfish.mobiusListing.components.Velocity.java
com.sgtcodfish.mobiusListing.desktop.DesktopLauncher.java
com.sgtcodfish.mobiusListing.levels.LevelEntityFactory.java
com.sgtcodfish.mobiusListing.player.HumanoidAnimationState.java
com.sgtcodfish.mobiusListing.player.PlayerConstants.java
com.sgtcodfish.mobiusListing.player.PlayerEntityFactory.java
com.sgtcodfish.mobiusListing.systems.AudioSystem.java
com.sgtcodfish.mobiusListing.systems.CollisionBoxRenderingDebugSystem.java
com.sgtcodfish.mobiusListing.systems.FocusTakerSystem.java
com.sgtcodfish.mobiusListing.systems.LevelAdvanceSystem.java
com.sgtcodfish.mobiusListing.systems.LinkingSystem.java
com.sgtcodfish.mobiusListing.systems.MovementSystem.java
com.sgtcodfish.mobiusListing.systems.PlatformInputSystem.java
com.sgtcodfish.mobiusListing.systems.PlayerInputSystem.java
com.sgtcodfish.mobiusListing.systems.SolidProcessingSystem.java
com.sgtcodfish.mobiusListing.systems.SpriteRenderingSystem.java
com.sgtcodfish.mobiusListing.systems.TerrainCollisionBoxRenderingDebugSystem.java
com.sgtcodfish.mobiusListing.systems.TerrainCollisionSystem.java
com.sgtcodfish.mobiusListing.systems.TiledRenderingSystem.java