SetWeatherEffect class

Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin

Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/SetWeatherEffect.java

extends: TriggerEffect

Поля (22)

МодификаторыТипИмя
return
return
return
return
return
return
return
return
return
World var10
WeatherResource var11
World var12
Store var2
PlayerRef var3
WeatherTracker var4
int var4
int var5
TransformComponent var5
int var6
int var7
WeatherResource var8
WeatherResource var9

Методы (16)

МодификаторыВозвратСигнатура
if if(this.playerOnly)
if if(var3 == null)
if if(var4 == null)
if if(var11 != null)
if if(var6 != Integer.MIN_VALUE && var6 != 0)
if if(this.weatherId == null)
if if(var5 == Integer.MIN_VALUE)
if if(var8 != null)
if if(var10 != null)
if if(this.weatherId == null)
if if(var7 == Integer.MIN_VALUE)
if if(var9 == null)
if if(var12 != null)
if if(var4 != 0)
if if(var5 != null)
static int resolveResetWeatherIndexint resolveResetWeatherIndex(@Nonnull Store<EntityStore> var0, @Nonnull TriggerContext var1, @Nonnull WeatherTracker var2, @Nonnull WeatherResource var3)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.triggervolumes.effect.builtin;

class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerContext;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEventType;
class="kw">import com.hypixel.hytale.builtin.weather.components.WeatherTracker;
class="kw">import com.hypixel.hytale.builtin.weather.resources.WeatherResource;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.asset.type.weather.config.Weather;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class SetWeatherEffect class="kw">extends TriggerEffect {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<SetWeatherEffect> CODEC = BuilderCodec.builder(SetWeatherEffect.class, SetWeatherEffect::new, BASE_CODEC)
      .append(new KeyedCodec<>("Weather", Codec.STRING), (var0, var1) -> var0.weatherId = var1, var0 -> var0.weatherId)
      .add()
      .append(new KeyedCodec<>("PlayerOnly", Codec.BOOLEAN, false), (var0, var1) -> var0.playerOnly = var1, var0 -> var0.playerOnly)
      .add()
      .append(new KeyedCodec<>("ResetWeather", Codec.BOOLEAN, false), (var0, var1) -> var0.resetWeather = var1, var0 -> var0.resetWeather)
      .add()
      .build();
   @Nullable
   class="kw">private String weatherId;
   class="kw">private boolean playerOnly = true;
   class="kw">private boolean resetWeather;

   class="kw">public SetWeatherEffect() {
   }

   @Override
   class="kw">public void execute(@Nonnull TriggerContext var1) {
      Store var2 = var1.getStore();
      if (this.playerOnly) {
         PlayerRef var3 = var2.getComponent(var1.getEntityRef(), PlayerRef.getComponentType());
         if (var3 == null) {
            class="kw">return;
         }

         WeatherTracker var4 = var2.getComponent(var1.getEntityRef(), WeatherTracker.getComponentType());
         if (var4 == null) {
            class="kw">return;
         }

         if (var1.getEventType() == TriggerEventType.EXIT && this.resetWeather) {
            var4.clearOverrideWeatherIndex();
            WeatherResource var11 = var2.getResource(WeatherResource.getResourceType());
            if (var11 != null) {
               int var6 = resolveResetWeatherIndex(var2, var1, var4, var11);
               if (var6 != Integer.MIN_VALUE && var6 != 0) {
                  var4.sendWeatherIndex(var3, var6, 2.0F);
               }
            }

            class="kw">return;
         }

         if (this.weatherId == null) {
            class="kw">return;
         }

         int var5 = Weather.getAssetMap().getIndex(this.weatherId);
         if (var5 == Integer.MIN_VALUE) {
            class="kw">return;
         }

         var4.setOverrideWeatherIndex(var5);
         var4.sendWeatherIndex(var3, var5, 2.0F);
      } else {
         if (var1.getEventType() == TriggerEventType.EXIT && this.resetWeather) {
            if (var1.getVolume().getTrackedEntities().isEmpty()) {
               WeatherResource var8 = var2.getResource(WeatherResource.getResourceType());
               if (var8 != null) {
                  var8.setForcedWeather(null);
                  World var10 = var2.getExternalData().getWorld();
                  if (var10 != null) {
                     var10.getWorldConfig().setForcedWeather(null);
                     var10.getWorldConfig().markChanged();
                  }
               }
            }

            class="kw">return;
         }

         if (this.weatherId == null) {
            class="kw">return;
         }

         int var7 = Weather.getAssetMap().getIndex(this.weatherId);
         if (var7 == Integer.MIN_VALUE) {
            class="kw">return;
         }

         WeatherResource var9 = var2.getResource(WeatherResource.getResourceType());
         if (var9 == null) {
            class="kw">return;
         }

         var9.setForcedWeather(this.weatherId);
         World var12 = var2.getExternalData().getWorld();
         if (var12 != null) {
            var12.getWorldConfig().setForcedWeather(this.weatherId);
            var12.getWorldConfig().markChanged();
         }
      }
   }

   class="kw">private class="kw">static int resolveResetWeatherIndex(
      @Nonnull Store<EntityStore> var0, @Nonnull TriggerContext var1, @Nonnull WeatherTracker var2, @Nonnull WeatherResource var3
   ) {
      int var4 = var3.getForcedWeatherIndex();
      if (var4 != 0) {
         class="kw">return var4;
      }

      TransformComponent var5 = var0.getComponent(var1.getEntityRef(), TransformComponent.getComponentType());
      if (var5 != null) {
         var2.updateEnvironment(var5, var0);
      }

      class="kw">return var3.getWeatherIndexForEnvironment(var2.getEnvironmentId());
   }
}