all entity arrays are now two-dimensional (with map index so entities won't be rendered on any map anymore)
This commit is contained in:
@@ -58,10 +58,10 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
|
||||
// ENTITY AND OBJECT
|
||||
public Player player = new Player(this, keyH);
|
||||
public Entity[] obj = new Entity[20];
|
||||
public Entity[] npc = new Entity[10];
|
||||
public Entity[] monster = new Entity[20];
|
||||
public InteractiveTile[] iTile = new InteractiveTile[50];
|
||||
public Entity[][] obj = new Entity[Map.values().length][20];
|
||||
public Entity[][] npc = new Entity[Map.values().length][10];
|
||||
public Entity[][] monster = new Entity[Map.values().length][20];
|
||||
public InteractiveTile[][] iTile = new InteractiveTile[Map.values().length][50];
|
||||
public ArrayList<Entity> projectileList = new ArrayList<>();
|
||||
public ArrayList<Entity> particleList = new ArrayList<>();
|
||||
ArrayList<Entity> entityList = new ArrayList<>();
|
||||
@@ -118,14 +118,14 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
switch(gameState) {
|
||||
case PLAY:
|
||||
player.update();
|
||||
for(Entity entity : npc) if(entity != null) entity.update();
|
||||
for(int i = 0; i < monster.length; i++) {
|
||||
Entity m = monster[i];
|
||||
for(Entity entity : npc[currentMap.getIndex()]) if(entity != null) entity.update();
|
||||
for(int i = 0; i < monster[currentMap.getIndex()].length; i++) {
|
||||
Entity m = monster[currentMap.getIndex()][i];
|
||||
if(m != null) {
|
||||
if(m.alive && !m.dying) m.update();
|
||||
if(!m.alive) {
|
||||
monster[i].checkDrop();
|
||||
monster[i] = null;
|
||||
monster[currentMap.getIndex()][i].checkDrop();
|
||||
monster[currentMap.getIndex()][i] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -143,7 +143,7 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
else particleList.remove(i);
|
||||
}
|
||||
}
|
||||
for(Entity entity : iTile) if(entity != null) entity.update();
|
||||
for(Entity entity : iTile[currentMap.getIndex()]) if(entity != null) entity.update();
|
||||
break;
|
||||
case PAUSE:
|
||||
break;
|
||||
@@ -162,13 +162,13 @@ public class GamePanel extends JPanel implements Runnable {
|
||||
|
||||
// GAME
|
||||
tileM.draw(fg2);
|
||||
for(Entity entity : iTile) if(entity != null) entity.draw(fg2);
|
||||
for(Entity entity : iTile[currentMap.getIndex()]) if(entity != null) entity.draw(fg2);
|
||||
|
||||
// ENTITY RENDER SYSTEM
|
||||
entityList.add(player);
|
||||
for(Entity entity : npc) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : obj) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : monster) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : npc[currentMap.getIndex()]) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : obj[currentMap.getIndex()]) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : monster[currentMap.getIndex()]) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : projectileList) if(entity != null) entityList.add(entity);
|
||||
for(Entity entity : particleList) if(entity != null) entityList.add(entity);
|
||||
entityList.sort(Comparator.comparingInt(o -> o.worldY));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package de.miaurizius.jgame2d.core.handlers;
|
||||
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.enums.Map;
|
||||
import de.miaurizius.jgame2d.entity.item.*;
|
||||
import de.miaurizius.jgame2d.entity.npc.OldManNPC;
|
||||
import de.miaurizius.jgame2d.entity.monster.GreenSlimeMON;
|
||||
@@ -16,86 +17,86 @@ public class AssetSetter {
|
||||
|
||||
public void setObject() {
|
||||
int i = 0;
|
||||
panel.obj[i] = new HeartObj(panel);
|
||||
panel.obj[i].worldX = panel.tileSize*25;
|
||||
panel.obj[i].worldY = panel.tileSize*23;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new HeartObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*25;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*23;
|
||||
i++;
|
||||
|
||||
panel.obj[i] = new CoinObj(panel);
|
||||
panel.obj[i].worldX = panel.tileSize*21;
|
||||
panel.obj[i].worldY = panel.tileSize*19;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new CoinObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*21;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*19;
|
||||
i++;
|
||||
|
||||
panel.obj[i] = new AxeObj(panel);
|
||||
panel.obj[i].worldX = panel.tileSize*33;
|
||||
panel.obj[i].worldY = panel.tileSize*21;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new AxeObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*33;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*21;
|
||||
i++;
|
||||
|
||||
panel.obj[i] = new IronShieldObj(panel);
|
||||
panel.obj[i].worldX = panel.tileSize*35;
|
||||
panel.obj[i].worldY = panel.tileSize*21;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new IronShieldObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*35;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*21;
|
||||
i++;
|
||||
|
||||
panel.obj[i] = new PotionObj(panel);
|
||||
panel.obj[i].worldX = panel.tileSize*22;
|
||||
panel.obj[i].worldY = panel.tileSize*27;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i] = new PotionObj(panel);
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*22;
|
||||
panel.obj[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*27;
|
||||
i++;
|
||||
}
|
||||
|
||||
public void setNPC() {
|
||||
panel.npc[0] = new OldManNPC(panel);
|
||||
panel.npc[0].worldX = panel.tileSize*21;
|
||||
panel.npc[0].worldY = panel.tileSize*21;
|
||||
panel.npc[Map.OVERWORLD.getIndex()][0] = new OldManNPC(panel);
|
||||
panel.npc[Map.OVERWORLD.getIndex()][0].worldX = panel.tileSize*21;
|
||||
panel.npc[Map.OVERWORLD.getIndex()][0].worldY = panel.tileSize*21;
|
||||
}
|
||||
|
||||
public void setMonster() {
|
||||
int i = 0;
|
||||
panel.monster[i] = new GreenSlimeMON(panel);
|
||||
panel.monster[i].worldX = panel.tileSize*23;
|
||||
panel.monster[i].worldY = panel.tileSize*36;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new GreenSlimeMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*23;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*36;
|
||||
|
||||
i++;
|
||||
panel.monster[i] = new GreenSlimeMON(panel);
|
||||
panel.monster[i].worldX = panel.tileSize*23;
|
||||
panel.monster[i].worldY = panel.tileSize*37;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new GreenSlimeMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*23;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*37;
|
||||
|
||||
i++;
|
||||
panel.monster[i] = new GreenSlimeMON(panel);
|
||||
panel.monster[i].worldX = panel.tileSize*24;
|
||||
panel.monster[i].worldY = panel.tileSize*37;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new GreenSlimeMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*24;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*37;
|
||||
|
||||
i++;
|
||||
panel.monster[i] = new GreenSlimeMON(panel);
|
||||
panel.monster[i].worldX = panel.tileSize*34;
|
||||
panel.monster[i].worldY = panel.tileSize*42;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new GreenSlimeMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*34;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*42;
|
||||
|
||||
i++;
|
||||
panel.monster[i] = new GreenSlimeMON(panel);
|
||||
panel.monster[i].worldX = panel.tileSize*38;
|
||||
panel.monster[i].worldY = panel.tileSize*42;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i] = new GreenSlimeMON(panel);
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldX = panel.tileSize*38;
|
||||
panel.monster[Map.OVERWORLD.getIndex()][i].worldY = panel.tileSize*42;
|
||||
}
|
||||
|
||||
public void setITiles() {
|
||||
int i = 0;
|
||||
panel.iTile[i] = new DryTreeTI(panel,27,12);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,28,12);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,29,12);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,30,12);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,31,12);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,32,12);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,33,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,27,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,28,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,29,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,30,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,31,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,32,12);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,33,12);i++;
|
||||
|
||||
panel.iTile[i] = new DryTreeTI(panel,18,40);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,17,40);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,16,40);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,15,40);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,14,40);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,13,40);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,13,41);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,12,41);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,11,41);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,10,41);i++;
|
||||
panel.iTile[i] = new DryTreeTI(panel,10,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,18,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,17,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,16,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,15,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,14,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,13,40);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,13,41);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,12,41);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,11,41);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,10,41);i++;
|
||||
panel.iTile[Map.OVERWORLD.getIndex()][i] = new DryTreeTI(panel,10,40);i++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ public class CollisionHandler {
|
||||
int index = 999;
|
||||
int c = -1;
|
||||
|
||||
for(Entity obj : panel.obj) {
|
||||
for(Entity obj : panel.obj[panel.currentMap.getIndex()]) {
|
||||
c++;
|
||||
if (obj != null) {
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package de.miaurizius.jgame2d.core.handlers;
|
||||
import de.miaurizius.jgame2d.core.GamePanel;
|
||||
import de.miaurizius.jgame2d.core.UI;
|
||||
import de.miaurizius.jgame2d.core.enums.GameState;
|
||||
import de.miaurizius.jgame2d.core.enums.Map;
|
||||
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
@@ -54,7 +55,7 @@ public class KeyHandler implements KeyListener {
|
||||
|
||||
// DEBUG OPTIONS
|
||||
case KeyEvent.VK_T -> debug = !debug;
|
||||
case KeyEvent.VK_R -> panel.tileM.loadMap(panel.currentMap);
|
||||
case KeyEvent.VK_R -> {for(Map m : Map.values()) panel.tileM.loadMap(m);}
|
||||
|
||||
// GAME STATES
|
||||
case KeyEvent.VK_ESCAPE -> {
|
||||
|
||||
Reference in New Issue
Block a user