RotateOperation class
Пакет: com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.transforms
Файл: com/hypixel/hytale/builtin/buildertools/scriptedbrushes/operations/sequential/transforms/RotateOperation.java
extends: SequenceBrushOperation
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
HytaleLogger |
LOGGER |
|
OffsetCenter,
ClickCenter, |
Player |
|
|
return |
|
TransformComponent |
var5 |
|
Vector3d |
var6 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
RotationOrigin RotationOrigin() |
|
|
if if(this.rotationOriginArg == RotateOperation.RotationOrigin.OffsetCenter) |
|
|
if if(var5 == null) |
abstract |
|
super super("Rotation", "Changes the orientation of the brush shape with a rotation", false) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.transforms;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfig;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfigCommandExecutor;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
class="kw">import com.hypixel.hytale.builtin.buildertools.tooloperations.transform.Rotate;
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.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.protocol.Rotation;
class="kw">import com.hypixel.hytale.protocol.packets.buildertools.BrushAxis;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class RotateOperation class="kw">extends SequenceBrushOperation {
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
class="kw">public class="kw">static class="kw">final BuilderCodec<RotateOperation> CODEC = BuilderCodec.builder(RotateOperation.class, RotateOperation::new)
.append(new KeyedCodec<>("RotationAxis", new EnumCodec<>(BrushAxis.class)), (var0, var1) -> var0.rotationAxisArg = var1, var0 -> var0.rotationAxisArg)
.add()
.append(new KeyedCodec<>("RotationAngle", new EnumCodec<>(Rotation.class)), (var0, var1) -> var0.rotationAngleArg = var1, var0 -> var0.rotationAngleArg)
.add()
.append(
new KeyedCodec<>("RotationOrigin", new EnumCodec<>(RotateOperation.RotationOrigin.class)),
(var0, var1) -> var0.rotationOriginArg = var1,
var0 -> var0.rotationOriginArg
)
.add()
.documentation("Rotates the brush based on axis, angle, and origin")
.build();
@Nonnull
class="kw">public Rotation rotationAngleArg = Rotation.None;
@Nonnull
class="kw">public BrushAxis rotationAxisArg = BrushAxis.None;
@Nonnull
class="kw">public RotateOperation.RotationOrigin rotationOriginArg = RotateOperation.RotationOrigin.OffsetCenter;
class="kw">public RotateOperation() {
super("Rotation", "Changes the orientation of the brush shape with a rotation", false);
}
@Override
class="kw">public void modifyBrushConfig(
@Nonnull Ref<EntityStore> var1, @Nonnull BrushConfig var2, @Nonnull BrushConfigCommandExecutor var3, @Nonnull ComponentAccessor<EntityStore> var4
) {
if (this.rotationOriginArg == RotateOperation.RotationOrigin.OffsetCenter) {
var2.setTransformOrigin(var2.getOriginAfterOffset());
} else if (this.rotationOriginArg == RotateOperation.RotationOrigin.ClickCenter) {
var2.setTransformOrigin(var2.getExecutionOrigin());
} else if (this.rotationOriginArg == RotateOperation.RotationOrigin.Player) {
TransformComponent var5 = var4.getComponent(var1, TransformComponent.getComponentType());
if (var5 == null) {
var2.setErrorFlag("Could not get the player's position.");
class="kw">return;
}
Vector3d var6 = var5.getPosition();
var2.setTransformOrigin(new Vector3i(MathUtil.floor(var6.x()), MathUtil.floor(var6.y()), MathUtil.floor(var6.z())));
}
var2.setTransform(Rotate.forAxisAndAngle(this.rotationAxisArg, this.rotationAngleArg));
}
class="kw">public enum RotationOrigin {
OffsetCenter,
ClickCenter,
Player;
RotationOrigin() {
}
}
}