StandardPhysicsConfig class

Пакет: com.hypixel.hytale.server.core.modules.projectile.config

Файл: com/hypixel/hytale/server/core/modules/projectile/config/StandardPhysicsConfig.java

implements: PhysicsConfig

Поля (6)

МодификаторыТипИмя
com.hypixel.hytale.protocol.PhysicsConfig var1
UUID var6
var6
var6
UUIDComponent var7
BoundingBox var8

Методы (9)

МодификаторыВозвратСигнатура
public int getBounceCountint getBounceCount()
public double getBounceLimitdouble getBounceLimit()
public double getBouncinessdouble getBounciness()
public double getHitWaterImpulseLossdouble getHitWaterImpulseLoss()
public double getRollingFrictionFactordouble getRollingFrictionFactor()
public double getSwimmingDampingFactordouble getSwimmingDampingFactor()
if if(var2 != null)
public boolean isAllowRollingboolean isAllowRolling()
public boolean isSticksVerticallyboolean isSticksVertically()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.projectile.config;

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.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.protocol.PhysicsType;
class="kw">import com.hypixel.hytale.protocol.RotationMode;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.BoundingBox;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class StandardPhysicsConfig class="kw">implements PhysicsConfig {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<StandardPhysicsConfig> CODEC = BuilderCodec.builder(StandardPhysicsConfig.class, StandardPhysicsConfig::new)
      .appendInherited(
         new KeyedCodec<>("Density", Codec.DOUBLE), (var0, var1) -> var0.density = var1, var0 -> var0.density, (var0, var1) -> var0.density = var1.density
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("Gravity", Codec.DOUBLE), (var0, var1) -> var0.gravity = var1, var0 -> var0.gravity, (var0, var1) -> var0.gravity = var1.gravity
      )
      .add()
      .<Double>appendInherited(
         new KeyedCodec<>("Bounciness", Codec.DOUBLE),
         (var0, var1) -> var0.bounciness = var1,
         var0 -> var0.bounciness,
         (var0, var1) -> var0.bounciness = var1.bounciness
      )
      .addValidator(Validators.range(0.0, 1.0))
      .add()
      .appendInherited(
         new KeyedCodec<>("BounceLimit", Codec.DOUBLE),
         (var0, var1) -> var0.bounceLimit = var1,
         var0 -> var0.bounceLimit,
         (var0, var1) -> var0.bounceLimit = var1.bounceLimit
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("BounceCount", Codec.INTEGER),
         (var0, var1) -> var0.bounceCount = var1,
         var0 -> var0.bounceCount,
         (var0, var1) -> var0.bounceCount = var1.bounceCount
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("SticksVertically", Codec.BOOLEAN),
         (var0, var1) -> var0.sticksVertically = var1,
         var0 -> var0.sticksVertically,
         (var0, var1) -> var0.sticksVertically = var1.sticksVertically
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("ComputeYaw", Codec.BOOLEAN),
         (var0, var1) -> var0.computeYaw = var1,
         var0 -> var0.computeYaw,
         (var0, var1) -> var0.computeYaw = var1.computeYaw
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("ComputePitch", Codec.BOOLEAN),
         (var0, var1) -> var0.computePitch = var1,
         var0 -> var0.computePitch,
         (var0, var1) -> var0.computePitch = var1.computePitch
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("RotationMode", new EnumCodec<>(RotationMode.class)),
         (var0, var1) -> var0.rotationMode = var1,
         var0 -> var0.rotationMode,
         (var0, var1) -> var0.rotationMode = var1.rotationMode
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("MoveOutOfSolidSpeed", Codec.DOUBLE),
         (var0, var1) -> var0.moveOutOfSolidSpeed = var1,
         var0 -> var0.moveOutOfSolidSpeed,
         (var0, var1) -> var0.moveOutOfSolidSpeed = var1.moveOutOfSolidSpeed
      )
      .add()
      .<Double>appendInherited(
         new KeyedCodec<>("TerminalVelocityAir", Codec.DOUBLE),
         (var0, var1) -> var0.terminalVelocityAir = var1,
         var0 -> var0.terminalVelocityAir,
         (var0, var1) -> var0.terminalVelocityAir = var1.terminalVelocityAir
      )
      .addValidator(Validators.greaterThan(0.0))
      .add()
      .appendInherited(
         new KeyedCodec<>("DensityAir", Codec.DOUBLE),
         (var0, var1) -> var0.densityAir = var1,
         var0 -> var0.densityAir,
         (var0, var1) -> var0.densityAir = var1.densityAir
      )
      .add()
      .<Double>appendInherited(
         new KeyedCodec<>("TerminalVelocityWater", Codec.DOUBLE),
         (var0, var1) -> var0.terminalVelocityWater = var1,
         var0 -> var0.terminalVelocityWater,
         (var0, var1) -> var0.terminalVelocityWater = var1.terminalVelocityWater
      )
      .addValidator(Validators.greaterThan(0.0))
      .add()
      .appendInherited(
         new KeyedCodec<>("DensityWater", Codec.DOUBLE),
         (var0, var1) -> var0.densityWater = var1,
         var0 -> var0.densityWater,
         (var0, var1) -> var0.densityWater = var1.densityWater
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("HitWaterImpulseLoss", Codec.DOUBLE),
         (var0, var1) -> var0.hitWaterImpulseLoss = var1,
         var0 -> var0.hitWaterImpulseLoss,
         (var0, var1) -> var0.hitWaterImpulseLoss = var1.hitWaterImpulseLoss
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("RotationForce", Codec.DOUBLE),
         (var0, var1) -> var0.rotationForce = var1,
         var0 -> var0.rotationForce,
         (var0, var1) -> var0.rotationForce = var1.rotationForce
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("SpeedRotationFactor", Codec.FLOAT),
         (var0, var1) -> var0.speedRotationFactor = var1,
         var0 -> var0.speedRotationFactor,
         (var0, var1) -> var0.speedRotationFactor = var1.speedRotationFactor
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("SwimmingDampingFactor", Codec.DOUBLE),
         (var0, var1) -> var0.swimmingDampingFactor = var1,
         var0 -> var0.swimmingDampingFactor,
         (var0, var1) -> var0.swimmingDampingFactor = var1.swimmingDampingFactor
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("AllowRolling", Codec.BOOLEAN),
         (var0, var1) -> var0.allowRolling = var1,
         var0 -> var0.allowRolling,
         (var0, var1) -> var0.allowRolling = var1.allowRolling
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("RollingFrictionFactor", Codec.DOUBLE),
         (var0, var1) -> var0.rollingFrictionFactor = var1,
         var0 -> var0.rollingFrictionFactor,
         (var0, var1) -> var0.rollingFrictionFactor = var1.rollingFrictionFactor
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("RollingSpeed", Codec.FLOAT),
         (var0, var1) -> var0.rollingSpeed = var1,
         var0 -> var0.rollingSpeed,
         (var0, var1) -> var0.rollingSpeed = var1.rollingSpeed
      )
      .add()
      .build();
   class="kw">public class="kw">static class="kw">final StandardPhysicsConfig DEFAULT = new StandardPhysicsConfig();
   class="kw">protected class="kw">static class="kw">final double HIT_WATER_IMPULSE_LOSS = 0.2;
   class="kw">protected class="kw">static class="kw">final double ROTATION_FORCE = 3.0;
   class="kw">protected class="kw">static class="kw">final float SPEED_ROTATION_FACTOR = 2.0F;
   class="kw">protected class="kw">static class="kw">final double SWIMMING_DAMPING_FACTOR = 1.0;
   class="kw">protected double density = 700.0;
   class="kw">protected double gravity;
   class="kw">protected double bounciness;
   class="kw">protected int bounceCount = -1;
   class="kw">protected double bounceLimit = 0.4;
   class="kw">protected boolean sticksVertically;
   class="kw">protected boolean computeYaw = true;
   class="kw">protected boolean computePitch = true;
   @Nonnull
   class="kw">protected RotationMode rotationMode = RotationMode.VelocityDamped;
   class="kw">protected boolean allowRolling = false;
   class="kw">protected double rollingFrictionFactor = 0.99;
   class="kw">protected float rollingSpeed = 0.1F;
   class="kw">protected double moveOutOfSolidSpeed;
   class="kw">protected double terminalVelocityAir = 1.0;
   class="kw">protected double densityAir = 1.2;
   class="kw">protected double terminalVelocityWater = 1.0;
   class="kw">protected double densityWater = 998.0;
   class="kw">protected double hitWaterImpulseLoss = 0.2;
   class="kw">protected double rotationForce = 3.0;
   class="kw">protected float speedRotationFactor = 2.0F;
   class="kw">protected double swimmingDampingFactor = 1.0;

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

   @Override
   class="kw">public double getGravity() {
      class="kw">return this.gravity;
   }

   @Override
   class="kw">public void apply(
      @Nonnull Holder<EntityStore> var1, @Nullable Ref<EntityStore> var2, @Nonnull Vector3d var3, @Nonnull ComponentAccessor<EntityStore> var4, boolean var5
   ) {
      UUID var6;
      if (var2 != null) {
         UUIDComponent var7 = var4.getComponent(var2, UUIDComponent.getComponentType());
         assert var7 != null;
         var6 = var7.getUuid();
      } else {
         var6 = null;
      }

      BoundingBox var8 = var1.getComponent(BoundingBox.getComponentType());
      assert var8 != null;
      var1.addComponent(StandardPhysicsProvider.getComponentType(), new StandardPhysicsProvider(var8, var6, this, var3, var5));
   }

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.PhysicsConfig toPacket() {
      com.hypixel.hytale.protocol.PhysicsConfig var1 = new com.hypixel.hytale.protocol.PhysicsConfig();
      var1.type = PhysicsType.Standard;
      var1.density = this.density;
      var1.gravity = this.gravity;
      var1.bounciness = this.bounciness;
      var1.bounceCount = this.bounceCount;
      var1.bounceLimit = this.bounceLimit;
      var1.sticksVertically = this.sticksVertically;
      var1.computeYaw = this.computeYaw;
      var1.computePitch = this.computePitch;
      var1.rotationMode = this.rotationMode;
      var1.moveOutOfSolidSpeed = this.moveOutOfSolidSpeed;
      var1.terminalVelocityAir = this.terminalVelocityAir;
      var1.densityAir = this.densityAir;
      var1.terminalVelocityWater = this.terminalVelocityWater;
      var1.densityWater = this.densityWater;
      var1.hitWaterImpulseLoss = this.hitWaterImpulseLoss;
      var1.rotationForce = this.rotationForce;
      var1.speedRotationFactor = this.speedRotationFactor;
      var1.swimmingDampingFactor = this.swimmingDampingFactor;
      var1.allowRolling = this.allowRolling;
      var1.rollingFrictionFactor = this.rollingFrictionFactor;
      var1.rollingSpeed = this.rollingSpeed;
      class="kw">return var1;
   }

   class="kw">public double getBounciness() {
      class="kw">return this.bounciness;
   }

   class="kw">public int getBounceCount() {
      class="kw">return this.bounceCount;
   }

   class="kw">public double getBounceLimit() {
      class="kw">return this.bounceLimit;
   }

   class="kw">public boolean isSticksVertically() {
      class="kw">return this.sticksVertically;
   }

   class="kw">public boolean isAllowRolling() {
      class="kw">return this.allowRolling;
   }

   class="kw">public double getRollingFrictionFactor() {
      class="kw">return this.rollingFrictionFactor;
   }

   class="kw">public double getSwimmingDampingFactor() {
      class="kw">return this.swimmingDampingFactor;
   }

   class="kw">public double getHitWaterImpulseLoss() {
      class="kw">return this.hitWaterImpulseLoss;
   }
}