Skip to content

Commit

Permalink
some fixes, code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
Ikos3k committed Mar 18, 2021
1 parent 3dd510e commit c315ee8
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 47 deletions.
2 changes: 1 addition & 1 deletion src/main/java/me/ANONIMUS/game/BabaIsYou.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public void render(GameContainer gameContainer, Graphics graphics) {

if(guiManager.getCurrentGui() != null) {
guiManager.render(graphics);
graphics.setColor(Color.white);
}
graphics.setColor(Color.white);
}
}
2 changes: 0 additions & 2 deletions src/main/java/me/ANONIMUS/game/gui/Gui.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
import org.newdawn.slick.SlickException;

public interface Gui {
void init();

void render(Graphics graphics, GameContainer container, BabaIsYou app);

void tick(GameContainer container, int delta, BabaIsYou app) throws SlickException;
Expand Down
3 changes: 0 additions & 3 deletions src/main/java/me/ANONIMUS/game/gui/GuiManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@ public GuiManager(GameContainer container, BabaIsYou app) {

public void setCurrentGui(Gui gui) {
this.gui = gui;
if(gui != null) {
this.gui.init();
}
}

public Gui getCurrentGui() {
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/me/ANONIMUS/game/gui/impl/GuiInGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@
import org.newdawn.slick.geom.Vector2f;

public class GuiInGame implements Gui {
private ButtonRender QUIT;
private ButtonRender BACK;
private final ButtonRender QUIT;
private final ButtonRender BACK;

@Override
public void init() {
public GuiInGame() {
this.BACK = new ButtonRender(new Vector2f(Display.getWidth() / 2, Display.getHeight() / 2 - 30), "BACK", 180, 60);
this.QUIT = new ButtonRender(new Vector2f(Display.getWidth() / 2, Display.getHeight() / 2 + 50), "QUIT", 180, 60);
}
Expand Down
16 changes: 6 additions & 10 deletions src/main/java/me/ANONIMUS/game/level/Level.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,14 @@ public void readRules() {
rules.clear();

blocks.stream().filter(block -> block.getType() == BlockType.IS_TEXT).forEach(block -> {
getBlocksByPosition(block.getPosition().getX() - 1, block.getPosition().getY()).forEach(left -> getBlocksByPosition(block.getPosition().getX() + 1, block.getPosition().getY()).forEach(right -> {
if(left.getType().isSelector() && right.getType().isSelector() || left.getType().isSelector() && right.getType().isAction()) {
addRule(left.getType(), right.getType());
left.setActive(true); block.setActive(true); right.setActive(true);
}
getBlocksByPosition(block.getPosition().getX() - 1, block.getPosition().getY()).forEach(left -> getBlocksByPosition(block.getPosition().getX() + 1, block.getPosition().getY()).stream().filter(right -> left.getType().isSelector() && right.getType().isSelector() || left.getType().isSelector() && right.getType().isAction()).forEach(right -> {
addRule(left.getType(), right.getType());
left.setActive(true); block.setActive(true); right.setActive(true);
}));

getBlocksByPosition(block.getPosition().getX(), block.getPosition().getY() - 1).forEach(up -> getBlocksByPosition(block.getPosition().getX(), block.getPosition().getY() + 1).forEach(down -> {
if(up.getType().isSelector() && down.getType().isSelector() || up.getType().isSelector() && down.getType().isAction()) {
addRule(up.getType(), down.getType());
up.setActive(true); block.setActive(true); down.setActive(true);
}
getBlocksByPosition(block.getPosition().getX(), block.getPosition().getY() - 1).forEach(up -> getBlocksByPosition(block.getPosition().getX(), block.getPosition().getY() + 1).stream().filter(down -> up.getType().isSelector() && down.getType().isSelector() || up.getType().isSelector() && down.getType().isAction()).forEach(down -> {
addRule(up.getType(), down.getType());
up.setActive(true); block.setActive(true); down.setActive(true);
}));
});
}
Expand Down
52 changes: 25 additions & 27 deletions src/main/java/me/ANONIMUS/game/scene/impl/PlayScene.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,38 +50,36 @@ public void tick(GameContainer container, int delta, BabaIsYou app) {
}

private void move(BabaIsYou app, Direction direction) {
level.getBlocks().forEach(block -> {
if (level.hasRule(block.getType(), BlockType.YOU)) {
List<BlockRender> pushBlocks = new ArrayList<>();
level.getBlocks().stream().filter(block -> level.hasRule(block.getType(), BlockType.YOU)).forEach(block -> {
List<BlockRender> pushBlocks = new ArrayList<>();

Vector2f pos = direction.getPos().copy();
while (level.getBlockByPosition(block.getPosition().getX() + pos.getX(), block.getPosition().getY() + pos.getY()) != null) {
AtomicBoolean i = new AtomicBoolean(false);
Vector2f pos = direction.getPos().copy();
while (level.getBlockByPosition(block.getPosition().getX() + pos.getX(), block.getPosition().getY() + pos.getY()) != null) {
AtomicBoolean i = new AtomicBoolean(false);

level.getBlocksByPosition(block.getPosition().getX() + pos.getX(), block.getPosition().getY() + pos.getY()).stream().filter(blockRender -> canPush(blockRender, pos)).forEach(blockRender -> {
pushBlocks.add(blockRender);
i.set(true);
});
level.getBlocksByPosition(block.getPosition().getX() + pos.getX(), block.getPosition().getY() + pos.getY()).stream().filter(blockRender -> canPush(blockRender, direction.getPos())).forEach(blockRender -> {
pushBlocks.add(blockRender);
i.set(true);
});

if (!i.get()) { break; }
pos.add(direction.getPos());
}
if (!i.get()) { break; }
pos.add(direction.getPos());
}

pushBlocks.forEach(blockRender -> blockRender.getPosition().add(direction.getPos().copy()));

BlockRender blockRender = level.getBlockByPosition(block.getPosition().getX() + direction.getPos().getX(), block.getPosition().getY() + direction.getPos().getY());
if(blockRender == null || (!blockRender.getType().isPush() && !level.hasRule(blockRender.getType(), BlockType.PUSH) && !level.hasRule(blockRender.getType(), BlockType.STOP))) {
block.getPosition().add(direction.getPos());
if(blockRender != null) {
if(level.hasRule(blockRender.getType(), BlockType.WIN)) {
if(app.getLevelManager().getNext(level.getName()) != null) {
app.getSceneManager().setCurrentScene(new PlayScene(app.getLevelManager().getNext(level.getName())));
} else {
app.getSceneManager().setCurrentScene(new MainScene());
}
} else if(level.hasRule(blockRender.getType(), BlockType.HOT) || level.hasRule(blockRender.getType(), BlockType.DEFEAT)) {
level.restartLevel();
pushBlocks.forEach(blockRender -> blockRender.getPosition().add(direction.getPos()));

BlockRender blockRender = level.getBlockByPosition(block.getPosition().getX() + direction.getPos().getX(), block.getPosition().getY() + direction.getPos().getY());
if(blockRender == null || (!blockRender.getType().isPush() && !level.hasRule(blockRender.getType(), BlockType.PUSH) && !level.hasRule(blockRender.getType(), BlockType.STOP))) {
block.getPosition().add(direction.getPos());
if(blockRender != null) {
if(level.hasRule(blockRender.getType(), BlockType.WIN)) {
if(app.getLevelManager().getNext(level.getName()) != null) {
app.getSceneManager().setCurrentScene(new PlayScene(app.getLevelManager().getNext(level.getName())));
} else {
app.getSceneManager().setCurrentScene(new MainScene());
}
} else if(level.hasRule(blockRender.getType(), BlockType.HOT) || level.hasRule(blockRender.getType(), BlockType.DEFEAT)) {
level.restartLevel();
}
}
}
Expand Down

0 comments on commit c315ee8

Please sign in to comment.