package com.irtimaled.bbor.client.commands;
+import com.irtimaled.bbor.client.Player;
import com.irtimaled.bbor.client.providers.SpawningSphereProvider;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
+import net.minecraft.client.Minecraft;
import net.minecraft.command.Commands;
import net.minecraft.command.ISuggestionProvider;
import net.minecraft.command.arguments.Vec3Argument;
import net.minecraft.util.math.Vec3d;
+import net.minecraft.world.EnumLightType;
+import net.minecraft.world.World;
public class SpawningSphereCommand {
private static final String COMMAND = "bbor:spawningSphere";
}))
.then(Commands.literal(CALCULATE_SPAWNABLE)
.executes(context -> {
- int count = SpawningSphereProvider.recalculateSpawnableSpacesCount();
+ if(!SpawningSphereProvider.hasSpawningSphereInDimension(Player.getDimensionId())) {
+ CommandHelper.feedback(context, "bbor.commands.spawningSphere.notSet");
+ return 0;
+ }
- String format = count == -1 ? "bbor.commands.spawningSphere.notSet" : "bbor.commands.spawningSphere.calculated";
- CommandHelper.feedback(context, format, String.format("%,d", count));
+ Counts counts = new Counts();
+ World world = Minecraft.getInstance().world;
+ SpawningSphereProvider.calculateSpawnableSpacesCount(pos -> {
+ counts.spawnable++;
+ if(world.getLightFor(EnumLightType.SKY, pos) > 7)
+ counts.nightSpawnable++;
+ });
+ SpawningSphereProvider.setSpawnableSpacesCount(counts.spawnable);
+
+ CommandHelper.feedback(context, "bbor.commands.spawningSphere.calculated",
+ String.format("%,d", counts.spawnable),
+ String.format("%,d", counts.nightSpawnable));
return 0;
}));
commandDispatcher.register(command);
}
+
+ private static class Counts {
+ private int spawnable = 0;
+ private int nightSpawnable = 0;
+
+ }
}