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)); CommandRegistrationCallback.EVENT.register((dispatcher, dedicated, registrationEnvironment) -> dispatcher.register(finalized));
ServerTickEvents.END_WORLD_TICK.register(world -> { ServerTickEvents.END_WORLD_TICK.register(world -> {
if (shootingStarCooldown > 0) --shootingStarCooldown; 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()))); world.getPlayers().forEach(player -> ServerPlayNetworking.send(player, WELCOME_PACKET, new PacketByteBuf(Unpooled.buffer())));
prevPlayerAmount = world.getPlayers().size(); prevPlayerAmount = world.getPlayers().size();
} }
if (world.isNight() && world.getMoonPhase() == 0) { if (world.isNight() && CelestriaConfig.enableInsomnia && world.getMoonPhase() == 0) {
for (ServerPlayerEntity player : world.getPlayers()) { for (ServerPlayerEntity player : world.getPlayers()) {
if (world.random.nextInt(CelestriaConfig.insomniaChance) == 0) { if (world.random.nextInt(CelestriaConfig.insomniaChance) == 0) {
player.addStatusEffect(new StatusEffectInstance(INSOMNIA, CelestriaConfig.insomniaDuration, 0, true, false, true)); 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 x = world.random.nextBetween(100, 150);
int y = world.random.nextInt(360); int y = world.random.nextInt(360);
int type = world.random.nextInt(3); 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)); (client, handler, attachedData, packetSender) -> client.execute(() -> CelestriaClient.clientOnlyMode = false));
ClientTickEvents.END_CLIENT_TICK.register(client -> { ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (shootingStarProgress > 0) --shootingStarProgress; 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 (Celestria.shootingStarCooldown > 0) --Celestria.shootingStarCooldown;
if (client.world.isNight() && Celestria.shootingStarCooldown <= 0 && client.world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) { if (client.world.isNight() && Celestria.shootingStarCooldown <= 0 && client.world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) {
CelestriaClient.shootingStarX = client.world.random.nextBetween(100, 150); CelestriaClient.shootingStarX = client.world.random.nextBetween(100, 150);

View File

@@ -7,11 +7,13 @@ import java.util.List;
public class CelestriaConfig extends MidnightConfig { public class CelestriaConfig extends MidnightConfig {
@Entry public static boolean sendChatMessages = true; @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 shootingStarCooldownLength = 1000;
@Entry public static int shootingStarLuckDuration = 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 insomniaChance = 30000;
@Entry public static int insomniaDuration = 1000; @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"); @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) { 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 (!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); 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 com.mojang.blaze3d.systems.RenderSystem;
import eu.midnightdust.celestria.Celestria; import eu.midnightdust.celestria.Celestria;
import eu.midnightdust.celestria.CelestriaClient; import eu.midnightdust.celestria.CelestriaClient;
import eu.midnightdust.celestria.config.CelestriaConfig;
import eu.midnightdust.lib.util.MidnightMathUtil; import eu.midnightdust.lib.util.MidnightMathUtil;
import net.minecraft.client.render.*; import net.minecraft.client.render.*;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
@@ -13,7 +14,7 @@ import net.minecraft.util.math.Vec3f;
public class ShootingStarRenderer { public class ShootingStarRenderer {
public void renderShootingStar(ClientWorld world, MatrixStack matrices) { 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"); world.getProfiler().swap("shooting_star");
matrices.push(); matrices.push();
matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(MidnightMathUtil.isEven(CelestriaClient.shootingStarType) ? CelestriaClient.shootingStarY + CelestriaClient.shootingStarProgress : CelestriaClient.shootingStarY - CelestriaClient.shootingStarProgress)); 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.title": "Celestria Konfiguration",
"celestria.midnightconfig.sendChatMessages": "Sende Chat Nachrichten bei Events", "celestria.midnightconfig.sendChatMessages": "Sende Chat Nachrichten bei Events",
"celestria.midnightconfig.enableShootingStars": "Aktiviere Sternschnuppen",
"celestria.midnightconfig.shootingStarChance": "Sternschnuppen-Wahrscheinlichkeit", "celestria.midnightconfig.shootingStarChance": "Sternschnuppen-Wahrscheinlichkeit",
"celestria.midnightconfig.shootingStarCooldownLength": "Sternschnuppen Cooldown Länge", "celestria.midnightconfig.shootingStarCooldownLength": "Sternschnuppen Cooldown Länge",
"celestria.midnightconfig.shootingStarLuckDuration": "Sternschnuppen Glück Effektlänge", "celestria.midnightconfig.shootingStarLuckDuration": "Sternschnuppen Glück Effektlänge",
"celestria.midnightconfig.shootingStarMessages": "Sternschnuppen-Nachrichten", "celestria.midnightconfig.shootingStarMessages": "Sternschnuppen-Nachrichten",
"celestria.midnightconfig.enableInsomnia": "Aktiviere Schlaflosigkeit",
"celestria.midnightconfig.insomniaChance": "Schlaflosigkeits-Wahrscheinlichkeit", "celestria.midnightconfig.insomniaChance": "Schlaflosigkeits-Wahrscheinlichkeit",
"celestria.midnightconfig.insomniaMessages": "Schlaflosigkeits-Nachrichten", "celestria.midnightconfig.insomniaMessages": "Schlaflosigkeits-Nachrichten",
"celestria.midnightconfig.insomniaDuration": "Schlaflosigkeit Effektlänge", "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.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.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.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.title": "Celestria Config",
"celestria.midnightconfig.sendChatMessages": "Send Chat Messages on Events", "celestria.midnightconfig.sendChatMessages": "Send Chat Messages on Events",
"celestria.midnightconfig.enableShootingStars": "Enable Shooting Stars",
"celestria.midnightconfig.shootingStarChance": "Shooting Star Chance", "celestria.midnightconfig.shootingStarChance": "Shooting Star Chance",
"celestria.midnightconfig.shootingStarCooldownLength": "Shooting Star Cooldown Length", "celestria.midnightconfig.shootingStarCooldownLength": "Shooting Star Cooldown Length",
"celestria.midnightconfig.shootingStarLuckDuration": "Shooting Star Luck Duration", "celestria.midnightconfig.shootingStarLuckDuration": "Shooting Star Luck Duration",
"celestria.midnightconfig.shootingStarMessages": "Shooting Star Messages", "celestria.midnightconfig.shootingStarMessages": "Shooting Star Messages",
"celestria.midnightconfig.enableInsomnia": "Enable Insomnia",
"celestria.midnightconfig.insomniaChance": "Insomnia Chance", "celestria.midnightconfig.insomniaChance": "Insomnia Chance",
"celestria.midnightconfig.insomniaMessages": "Insomnia Messages", "celestria.midnightconfig.insomniaMessages": "Insomnia Messages",
"celestria.midnightconfig.insomniaDuration": "Insomnia Effect Duration", "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.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.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.insomnia.2": "§3Ouuwwwh... You hear strange noises from afar and can't close your eyes",
"celestria.mob_effect.insomnia": "Insomnia" "effect.celestria.insomnia": "Insomnia"
} }