Celestria 1.0.0 - First release!

This commit is contained in:
Martin Prokoph
2022-08-16 12:46:06 +02:00
parent 5d62e8620c
commit ceee3acbe3
7 changed files with 17 additions and 10 deletions

View File

@@ -49,18 +49,18 @@ public class Celestria implements ModInitializer {
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated, registrationEnvironment) -> dispatcher.register(finalized));
ServerTickEvents.END_WORLD_TICK.register(world -> {
if (shootingStarCooldown > 0) --shootingStarCooldown;
if (world.getPlayers().size() > prevPlayerAmount) {
if (world.getPlayers().size() > prevPlayerAmount && CelestriaConfig.enableShootingStars) {
world.getPlayers().forEach(player -> ServerPlayNetworking.send(player, WELCOME_PACKET, new PacketByteBuf(Unpooled.buffer())));
prevPlayerAmount = world.getPlayers().size();
}
if (world.isNight() && world.getMoonPhase() == 0) {
if (world.isNight() && CelestriaConfig.enableInsomnia && world.getMoonPhase() == 0) {
for (ServerPlayerEntity player : world.getPlayers()) {
if (world.random.nextInt(CelestriaConfig.insomniaChance) == 0) {
player.addStatusEffect(new StatusEffectInstance(INSOMNIA, CelestriaConfig.insomniaDuration, 0, true, false, true));
}
}
}
if (world.isNight() && Celestria.shootingStarCooldown <= 0 && world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) {
if (world.isNight() && CelestriaConfig.enableShootingStars && Celestria.shootingStarCooldown <= 0 && world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) {
int x = world.random.nextBetween(100, 150);
int y = world.random.nextInt(360);
int type = world.random.nextInt(3);

View File

@@ -40,7 +40,7 @@ public class CelestriaClient implements ClientModInitializer {
(client, handler, attachedData, packetSender) -> client.execute(() -> CelestriaClient.clientOnlyMode = false));
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (shootingStarProgress > 0) --shootingStarProgress;
if (CelestriaClient.clientOnlyMode && client.world != null) {
if (CelestriaClient.clientOnlyMode && CelestriaConfig.enableShootingStars && client.world != null) {
if (Celestria.shootingStarCooldown > 0) --Celestria.shootingStarCooldown;
if (client.world.isNight() && Celestria.shootingStarCooldown <= 0 && client.world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) {
CelestriaClient.shootingStarX = client.world.random.nextBetween(100, 150);

View File

@@ -7,11 +7,13 @@ import java.util.List;
public class CelestriaConfig extends MidnightConfig {
@Entry public static boolean sendChatMessages = true;
@Entry public static int shootingStarChance = 10000;
@Entry public static boolean enableShootingStars = true;
@Entry public static int shootingStarChance = 20000;
@Entry public static int shootingStarCooldownLength = 1000;
@Entry public static int shootingStarLuckDuration = 1000;
@Entry public static List<String> shootingStarMessages = Lists.newArrayList("celestria.shootingStar.1", "celestria.shootingStar.2", "celestria.shootingStar.3");
@Entry public static boolean enableInsomnia = true;
@Entry public static int insomniaChance = 30000;
@Entry public static int insomniaDuration = 1000;
@Entry public static List<String> shootingStarMessages = Lists.newArrayList("celestria.shootingStar.1", "celestria.shootingStar.2", "celestria.shootingStar.3");
@Entry public static List<String> insomniaMessages = Lists.newArrayList("celestria.insomnia.1", "celestria.insomnia.2");
}

View File

@@ -23,7 +23,7 @@ public abstract class MixinBedBlock {
public void celestria$onBedUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable<ActionResult> cir) {
if (!world.isClient() && player instanceof ServerPlayerEntity serverPlayer && player.hasStatusEffect(Celestria.INSOMNIA)) {
if (CelestriaConfig.sendChatMessages) serverPlayer.sendMessageToClient(Text.literal("§f§l[§7§lC§8§le§7§ll§f§le§7§ls§8§lt§7§lr§f§li§7§la§8§l] ").append(Text.translatable(CelestriaConfig.insomniaMessages.get(world.random.nextInt(CelestriaConfig.insomniaMessages.size())))),false);
cir.setReturnValue(ActionResult.FAIL);
cir.setReturnValue(ActionResult.CONSUME);
}
}
}

View File

@@ -3,6 +3,7 @@ package eu.midnightdust.celestria.render;
import com.mojang.blaze3d.systems.RenderSystem;
import eu.midnightdust.celestria.Celestria;
import eu.midnightdust.celestria.CelestriaClient;
import eu.midnightdust.celestria.config.CelestriaConfig;
import eu.midnightdust.lib.util.MidnightMathUtil;
import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack;
@@ -13,7 +14,7 @@ import net.minecraft.util.math.Vec3f;
public class ShootingStarRenderer {
public void renderShootingStar(ClientWorld world, MatrixStack matrices) {
if (world != null && CelestriaClient.shootingStarProgress > 0) {
if (world != null && CelestriaConfig.enableShootingStars && CelestriaClient.shootingStarProgress > 0) {
world.getProfiler().swap("shooting_star");
matrices.push();
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(MidnightMathUtil.isEven(CelestriaClient.shootingStarType) ? CelestriaClient.shootingStarY + CelestriaClient.shootingStarProgress : CelestriaClient.shootingStarY - CelestriaClient.shootingStarProgress));

View File

@@ -1,10 +1,12 @@
{
"celestria.midnightconfig.title": "Celestria Konfiguration",
"celestria.midnightconfig.sendChatMessages": "Sende Chat Nachrichten bei Events",
"celestria.midnightconfig.enableShootingStars": "Aktiviere Sternschnuppen",
"celestria.midnightconfig.shootingStarChance": "Sternschnuppen-Wahrscheinlichkeit",
"celestria.midnightconfig.shootingStarCooldownLength": "Sternschnuppen Cooldown Länge",
"celestria.midnightconfig.shootingStarLuckDuration": "Sternschnuppen Glück Effektlänge",
"celestria.midnightconfig.shootingStarMessages": "Sternschnuppen-Nachrichten",
"celestria.midnightconfig.enableInsomnia": "Aktiviere Schlaflosigkeit",
"celestria.midnightconfig.insomniaChance": "Schlaflosigkeits-Wahrscheinlichkeit",
"celestria.midnightconfig.insomniaMessages": "Schlaflosigkeits-Nachrichten",
"celestria.midnightconfig.insomniaDuration": "Schlaflosigkeit Effektlänge",
@@ -13,5 +15,5 @@
"celestria.shootingStar.3": "§2♪ Can we pretend that airplanes in the night sky are like shooting stars... ♫\n§3Oh warte, da ist ja eine echte Sternschnuppe!",
"celestria.insomnia.1": "§cDu hast Angst vor dem Vollmond, also kannst du einfach nicht einschlafen...",
"celestria.insomnia.2": "§3Ouuwwwh... Du hörst seltsame Geräusche und kannst deine Augen nicht schließen",
"celestria.mob_effect.insomnia": "Schlaflosigkeit"
"effect.celestria.insomnia": "Schlaflosigkeit"
}

View File

@@ -1,10 +1,12 @@
{
"celestria.midnightconfig.title": "Celestria Config",
"celestria.midnightconfig.sendChatMessages": "Send Chat Messages on Events",
"celestria.midnightconfig.enableShootingStars": "Enable Shooting Stars",
"celestria.midnightconfig.shootingStarChance": "Shooting Star Chance",
"celestria.midnightconfig.shootingStarCooldownLength": "Shooting Star Cooldown Length",
"celestria.midnightconfig.shootingStarLuckDuration": "Shooting Star Luck Duration",
"celestria.midnightconfig.shootingStarMessages": "Shooting Star Messages",
"celestria.midnightconfig.enableInsomnia": "Enable Insomnia",
"celestria.midnightconfig.insomniaChance": "Insomnia Chance",
"celestria.midnightconfig.insomniaMessages": "Insomnia Messages",
"celestria.midnightconfig.insomniaDuration": "Insomnia Effect Duration",
@@ -13,5 +15,5 @@
"celestria.shootingStar.3": "§2♪ Can we pretend that airplanes in the night sky are like shooting stars... ♫\n§3Oh wait, there's a real one!",
"celestria.insomnia.1": "§cYou're afraid of the full moon, so you just can't find no rest...",
"celestria.insomnia.2": "§3Ouuwwwh... You hear strange noises from afar and can't close your eyes",
"celestria.mob_effect.insomnia": "Insomnia"
"effect.celestria.insomnia": "Insomnia"
}