made tetris spectators invisible, added barrier walls to elytra race
This commit is contained in:
parent
55be88b7da
commit
e663f3f105
@ -11,6 +11,7 @@ import eu.mhsl.minenet.minigames.instance.Spawnable;
|
|||||||
import eu.mhsl.minenet.minigames.instance.room.Room;
|
import eu.mhsl.minenet.minigames.instance.room.Room;
|
||||||
import net.minestom.server.MinecraftServer;
|
import net.minestom.server.MinecraftServer;
|
||||||
import net.minestom.server.coordinate.Pos;
|
import net.minestom.server.coordinate.Pos;
|
||||||
|
import net.minestom.server.entity.GameMode;
|
||||||
import net.minestom.server.entity.Player;
|
import net.minestom.server.entity.Player;
|
||||||
import net.minestom.server.event.item.ItemDropEvent;
|
import net.minestom.server.event.item.ItemDropEvent;
|
||||||
import net.minestom.server.event.player.PlayerBlockBreakEvent;
|
import net.minestom.server.event.player.PlayerBlockBreakEvent;
|
||||||
@ -98,7 +99,11 @@ public abstract class Game extends MineNetInstance implements Spawnable {
|
|||||||
public void unload() {
|
public void unload() {
|
||||||
this.onUnload();
|
this.onUnload();
|
||||||
|
|
||||||
getPlayers().forEach(Room::setOwnRoom);
|
getPlayers().forEach(player -> {
|
||||||
|
Room.setOwnRoom(player);
|
||||||
|
player.setGameMode(GameMode.SURVIVAL);
|
||||||
|
player.setInvisible(false);
|
||||||
|
});
|
||||||
|
|
||||||
scheduler().scheduleTask(() -> {
|
scheduler().scheduleTask(() -> {
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ public class ElytraRace extends StatelessGame {
|
|||||||
private final ValeGenerator vale = new ValeGenerator();
|
private final ValeGenerator vale = new ValeGenerator();
|
||||||
|
|
||||||
private final int gameHeight = 0;
|
private final int gameHeight = 0;
|
||||||
|
private final int seaLevel = -55;
|
||||||
private final int ringSpacing = 100;
|
private final int ringSpacing = 100;
|
||||||
private final int ringCount;
|
private final int ringCount;
|
||||||
|
|
||||||
@ -61,7 +62,7 @@ public class ElytraRace extends StatelessGame {
|
|||||||
this.ringCount = ringCount;
|
this.ringCount = ringCount;
|
||||||
|
|
||||||
setGenerator(vale);
|
setGenerator(vale);
|
||||||
vale.setCalculateSeaLevel(point -> -55);
|
vale.setCalculateSeaLevel(point -> seaLevel);
|
||||||
vale.setXShiftMultiplier(integer -> NumberUtil.map(integer, 50, 500, 0, 1));
|
vale.setXShiftMultiplier(integer -> NumberUtil.map(integer, 50, 500, 0, 1));
|
||||||
vale.addMixIn(new PlaneTerrainGenerator(gameHeight, Block.BARRIER));
|
vale.addMixIn(new PlaneTerrainGenerator(gameHeight, Block.BARRIER));
|
||||||
|
|
||||||
@ -105,9 +106,7 @@ public class ElytraRace extends StatelessGame {
|
|||||||
@Override
|
@Override
|
||||||
protected void onLoad(@NotNull CompletableFuture<Void> callback) {
|
protected void onLoad(@NotNull CompletableFuture<Void> callback) {
|
||||||
Point spawnpoint = new Pos(vale.getXShiftAtZ(0), -46, 0);
|
Point spawnpoint = new Pos(vale.getXShiftAtZ(0), -46, 0);
|
||||||
GeneratorUtils.iterateArea(spawnpoint.sub(5, 0, 5), spawnpoint.add(5, 0, 5), point -> {
|
GeneratorUtils.iterateArea(spawnpoint.sub(5, 0, 5), spawnpoint.add(5, 0, 5), point -> setBlock(point, BlockPallet.STREET.rnd()));
|
||||||
setBlock(point, BlockPallet.STREET.rnd());
|
|
||||||
});
|
|
||||||
|
|
||||||
generateRing(ringSpacing);
|
generateRing(ringSpacing);
|
||||||
generateRing(ringSpacing * 2);
|
generateRing(ringSpacing * 2);
|
||||||
@ -194,8 +193,8 @@ public class ElytraRace extends StatelessGame {
|
|||||||
|
|
||||||
Point ringPos = getRingPositionAtZ(zPos);
|
Point ringPos = getRingPositionAtZ(zPos);
|
||||||
GeneratorUtils.iterateArea(
|
GeneratorUtils.iterateArea(
|
||||||
ringPos.sub(100, 0, 0).withY(0), // TODO 0 was before update getDimensionType().getMinY, might not work correctly
|
ringPos.sub(100, 0, 0).withY(0),
|
||||||
ringPos.add(100, 0, 0).withY(gameHeight),
|
ringPos.add(100, 0, 0).withY(seaLevel),
|
||||||
point -> batch.setBlock(point, Block.BARRIER)
|
point -> batch.setBlock(point, Block.BARRIER)
|
||||||
);
|
);
|
||||||
GeneratorUtils.iterateArea(
|
GeneratorUtils.iterateArea(
|
||||||
|
@ -61,9 +61,11 @@ class Tetris extends StatelessGame {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
this.tetrisGames.forEach((player, tetrisGame) -> tetrisGame.loose());
|
this.tetrisGames.forEach((player, tetrisGame) -> {
|
||||||
this.tetrisGames.forEach((player, tetrisGame) -> getScore().insertResult(player, tetrisGame.getScore()));
|
tetrisGame.loose();
|
||||||
this.tetrisGames.forEach((player, tetrisGame) -> tetrisGame.sidebar.removeViewer(player));
|
getScore().insertResult(player, tetrisGame.getScore());
|
||||||
|
tetrisGame.sidebar.removeViewer(player);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -136,6 +138,7 @@ class Tetris extends StatelessGame {
|
|||||||
private void letPlayerLoose(Player player) {
|
private void letPlayerLoose(Player player) {
|
||||||
TetrisGame tetrisGame = this.tetrisGames.get(player);
|
TetrisGame tetrisGame = this.tetrisGames.get(player);
|
||||||
player.setGameMode(GameMode.SPECTATOR);
|
player.setGameMode(GameMode.SPECTATOR);
|
||||||
|
player.setInvisible(true);
|
||||||
getScore().insertResult(player, tetrisGame.getScore());
|
getScore().insertResult(player, tetrisGame.getScore());
|
||||||
|
|
||||||
boolean allGamesLost = this.tetrisGames.values().stream()
|
boolean allGamesLost = this.tetrisGames.values().stream()
|
||||||
|
@ -18,3 +18,4 @@ api:
|
|||||||
|
|
||||||
admins:
|
admins:
|
||||||
- minetec
|
- minetec
|
||||||
|
- 28Pupsi28
|
Loading…
x
Reference in New Issue
Block a user