Android Open Source - Station42 Room Resident System






From Project

Back to project page Station42.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...

If you think the Android project Station42 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.station42.optimizations;
//w  ww  .ja v a  2s  .c  o  m
import com.station42.base.Engine;
import com.station42.base.EngineUpdateListener;
import com.station42.base.Entity;
import com.station42.basic.EntityLocation;
import com.station42.world.Room;
import com.station42.world.World;

public class RoomResidentSystem implements EngineUpdateListener {
  Room[][][] rooms;
  @Override
  public void update(Engine engine, float delta) {
    if (rooms == null)
      initializeRoomMap(engine);
    if (rooms != null) { // Initialization succeeded
      for (Room[][] world : rooms) {
        for (Room[] roomRow : world) {
          for (Room room : roomRow) {
            room.clearResidents();
          }
        }
      }
      for (Entity roomEntity : engine.getEntitiesWithComponent(RoomResident.class)) {
        EntityLocation location = roomEntity.getComponent(EntityLocation.class);
        int leftX = (int)((location.getCenterX() - Room.ROOM_SIZE / 2) / Room.ROOM_SIZE);
        int bottomY = (int)((location.getCenterY() - Room.ROOM_SIZE / 2) / Room.ROOM_SIZE);
        int rightX = leftX + 1;
        int topY = bottomY + 1;
        int[] worldIds;
        if (roomEntity.getComponent(World.class) == null)
          worldIds = new int[] { 0, 1};
        else
          worldIds = new int[] { roomEntity.getComponent(World.class).worldId };
        for (int world : worldIds) {
          for (int x = Math.max(leftX, 0);x < rooms[world].length && x <= rightX;x++) {
            for (int y = Math.max(bottomY, 0);y < rooms[world][x].length && y <= topY;y++) {
              rooms[world][x][y].addResident(roomEntity);
            }
          }
        }
      }
    }
  }
  private void initializeRoomMap(Engine engine) {
    int maxX = -1;
    int maxY = -1;
    for (Entity roomEntity : engine.getEntitiesWithComponent(Room.class)) {
      Room room = roomEntity.getComponent(Room.class);
      if (room.bounds.x / Room.ROOM_SIZE > maxX) {
        maxX = (int) (room.bounds.x / Room.ROOM_SIZE);
      }
      if (room.bounds.y / Room.ROOM_SIZE > maxY) {
        maxY = (int) (room.bounds.y / Room.ROOM_SIZE);
      }
    }
    if (maxX != -1 && maxY != -1) {
      rooms = new Room[2][maxX + 1][maxY + 1];
      for (Entity roomEntity : engine.getEntitiesWithComponent(Room.class)) {
        Room room = roomEntity.getComponent(Room.class);
        int roomX = (int) ((room.bounds.x + 5) / Room.ROOM_SIZE);
        int roomY = (int) ((room.bounds.y + 5) / Room.ROOM_SIZE);
        if (rooms[roomEntity.getComponent(World.class).worldId][roomX][roomY] != null)
          throw new RuntimeException("BAD ROOMS!");
        rooms[roomEntity.getComponent(World.class).worldId][roomX][roomY] = room;
      }
    }
  }

}




Java Source Code List

com.station40.game.IOSLauncher.java
com.station40.game.android.AndroidLauncher.java
com.station40.game.android.OuyaMenuScreen.java
com.station40.game.android.OuyaPlayerJoiner.java
com.station40.game.client.HtmlLauncher.java
com.station40.game.desktop.DesktopLauncher.java
com.station42.base.EngineMessageListener.java
com.station42.base.EngineRenderer.java
com.station42.base.EngineUpdateListener.java
com.station42.base.Engine.java
com.station42.base.Entity.java
com.station42.basic.EntityFacing.java
com.station42.basic.EntityLocation.java
com.station42.basic.EntityRenderer.java
com.station42.basic.EntitySprite.java
com.station42.bullet.BulletCollisionSystem.java
com.station42.bullet.BulletRenderer.java
com.station42.bullet.BulletSpawner.java
com.station42.bullet.BulletUpdateSystem.java
com.station42.bullet.Bullet.java
com.station42.death.BulletDamageMessage.java
com.station42.death.BulletDamageSystem.java
com.station42.death.DeathMessage.java
com.station42.death.HealthRenderer.java
com.station42.death.Health.java
com.station42.death.PlayerRespawnSystem.java
com.station42.death.SpawnRoom.java
com.station42.faction.EntityFaction.java
com.station42.game.GameScreen.java
com.station42.game.Levels.java
com.station42.game.MainMenuScreen.java
com.station42.game.MatchSystem.java
com.station42.game.ScoringPortalHackingSystem.java
com.station42.game.ScoringPortalRenderer.java
com.station42.game.ScoringPortal.java
com.station42.game.Station40Game.java
com.station42.hacking.Hackable.java
com.station42.hacking.HackingActionParticles.java
com.station42.hacking.HackingActionRenderer.java
com.station42.hacking.HackingActionUpdater.java
com.station42.hacking.HackingAction.java
com.station42.hacking.HackingSystem.java
com.station42.hacking.HackingUI.java
com.station42.hacking.PlayerHacker.java
com.station42.hopping.HoppingAction.java
com.station42.hopping.HoppingSystem.java
com.station42.hopping.HoppingUI.java
com.station42.hopping.OffensiveHackingSystem.java
com.station42.hopping.PlayerHopper.java
com.station42.input.MouseAndKeyboardController.java
com.station42.loot.HealthBoost.java
com.station42.loot.LootDropSystem.java
com.station42.loot.LootDrop.java
com.station42.loot.LootPickupSystem.java
com.station42.loot.Loot.java
com.station42.loot.Looter.java
com.station42.loot.PointBoost.java
com.station42.loot.SpeedBoost.java
com.station42.loot.WorldSwap.java
com.station42.optimizations.CroppingHelper.java
com.station42.optimizations.RoomResidentSystem.java
com.station42.optimizations.RoomResident.java
com.station42.player.PlayerTrackingCameraSystem.java
com.station42.player.mouse.EntityMouseState.java
com.station42.player.mouse.PlayerActionStateSetter.java
com.station42.player.mouse.PlayerClientGunSystem.java
com.station42.player.mouse.PlayerControllerMouseStateSetter.java
com.station42.player.mouse.PlayerGunSystem.java
com.station42.player.mouse.PlayerMouseStateSetter.java
com.station42.player.move.EntityMoveState.java
com.station42.player.move.PlayerControllerMoveStateSetter.java
com.station42.player.move.PlayerMoveStateSetter.java
com.station42.player.move.PlayerWalker.java
com.station42.sentries.FactionSentrySystem.java
com.station42.sentries.SentryHackingSystem.java
com.station42.sentries.SentrySpawner.java
com.station42.sentries.Sentry.java
com.station42.server.BulletRequest.java
com.station42.server.ProtocolSetup.java
com.station42.server.Station40Client.java
com.station42.server.Station40Server.java
com.station42.server.serializers.EntitySerializer.java
com.station42.world.RoomRenderer.java
com.station42.world.Room.java
com.station42.world.WallCollisionSystem.java
com.station42.world.WallRenderer.java
com.station42.world.Wall.java
com.station42.world.WorldUI.java
com.station42.world.World.java