LightingCalculationCommand class

Пакет: com.hypixel.hytale.server.core.command.commands.utility.lighting

Файл: com/hypixel/hytale/server/core/command/commands/utility/lighting/LightingCalculationCommand.java

extends: AbstractWorldCommand

Поля (6)

МодификаторыТипИмя
FLOOD, FULLBRIGHT
break
return
LightingCalculationCommand.LightCalculationType var4
ChunkLightingManager var5
LightCalculation var6

Методы (4)

МодификаторыВозвратСигнатура
LightCalculationType LightCalculationType()
if if(var6 instanceof FullBrightLightCalculation)
abstract super super("calculation", "server.commands.lightingcalculation.desc")
switch switch(var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.commands.utility.lighting;

class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractWorldCommand;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.lighting.ChunkLightingManager;
class="kw">import com.hypixel.hytale.server.core.universe.world.lighting.FloodLightCalculation;
class="kw">import com.hypixel.hytale.server.core.universe.world.lighting.FullBrightLightCalculation;
class="kw">import com.hypixel.hytale.server.core.universe.world.lighting.LightCalculation;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;

class="kw">public class LightingCalculationCommand class="kw">extends AbstractWorldCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_INVALIDATE_LIGHTING = Message.translation("server.commands.invalidatedlighting");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_LIGHTING_CALCULATION_ALREADY_FULLBRIGHT = Message.translation(
      "server.commands.lightingcalculation.alreadyFullBright"
   );
   @Nonnull
   class="kw">private class="kw">final RequiredArg<LightingCalculationCommand.LightCalculationType> calculationTypeArg = this.withRequiredArg(
      "light-calculation",
      "server.commands.lightingcalculation.calculation.desc",
      ArgTypes.forEnum("server.commands.parsing.argtype.enum.name", LightingCalculationCommand.LightCalculationType.class)
   );
   @Nonnull
   class="kw">private class="kw">final FlagArg invalidateFlag = this.withFlagArg("invalidate", "server.commands.lightingcalculation.invalidate.desc");

   class="kw">public LightingCalculationCommand() {
      super("calculation", "server.commands.lightingcalculation.desc");
   }

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      LightingCalculationCommand.LightCalculationType var4 = this.calculationTypeArg.get(var1);
      ChunkLightingManager var5 = var2.getChunkLighting();
      class="kw">switch (var4) {
         case FLOOD:
            var5.setLightCalculation(new FloodLightCalculation(var5));
            var1.sendMessage(Message.translation("server.commands.lightingcalculation.setCalculation").param("calculation", "Flood"));
            break;
         case FULLBRIGHT:
            LightCalculation var6 = var5.getLightCalculation();
            if (var6 class="kw">instanceof FullBrightLightCalculation) {
               var1.sendMessage(MESSAGE_COMMANDS_LIGHTING_CALCULATION_ALREADY_FULLBRIGHT);
               class="kw">return;
            }

            var5.setLightCalculation(new FullBrightLightCalculation(var5, var6));
            var1.sendMessage(
               Message.translation("server.commands.lightcalculation.setCalculationWithDelegate").param("delegate", var6.getClass().getSimpleName())
            );
      }

      if (this.invalidateFlag.get(var1)) {
         var5.invalidateLoadedChunks();
         var1.sendMessage(MESSAGE_COMMANDS_INVALIDATE_LIGHTING);
      }
   }

   class="kw">private enum LightCalculationType {
      FLOOD,
      FULLBRIGHT;

      LightCalculationType() {
      }
   }
}