PaintOperation class
Пакет: com.hypixel.hytale.builtin.buildertools.tooloperations
Файл: com/hypixel/hytale/builtin/buildertools/tooloperations/PaintOperation.java
extends: ToolOperation
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
Transform |
brushRotation |
|
|
var1 |
|
|
var2 |
|
|
var3 |
|
Vector3i |
var4 |
|
UUIDComponent |
var6 |
|
PrototypePlayerBuilderToolSettings |
var7 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.interactionType == InteractionType.Primary) |
|
|
if if(var2 >= 0 && var2 < 320) |
abstract |
|
super super(var1, var4, var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.tooloperations;
class="kw">import com.hypixel.hytale.builtin.buildertools.PrototypePlayerBuilderToolSettings;
class="kw">import com.hypixel.hytale.builtin.buildertools.tooloperations.transform.Transform;
class="kw">import com.hypixel.hytale.builtin.buildertools.utils.Material;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.block.BlockUtil;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.packets.buildertools.BuilderToolOnUseInteraction;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class PaintOperation class="kw">extends ToolOperation {
class="kw">private class="kw">final Transform brushRotation;
class="kw">private class="kw">final BlockPattern effectivePattern;
class="kw">private LongOpenHashSet packedPlacedBlockPositions;
class="kw">public PaintOperation(
@Nonnull Ref<EntityStore> var1,
@Nonnull Player var2,
@Nonnull PlayerRef var3,
@Nonnull BuilderToolOnUseInteraction var4,
@Nonnull ComponentAccessor<EntityStore> var5
) {
super(var1, var4, var5);
if (this.interactionType == InteractionType.Primary) {
this.effectivePattern = BlockPattern.EMPTY;
} else if (this.pattern.equals(BlockPattern.EMPTY)) {
this.effectivePattern = BlockPattern.parse("Rock_Stone");
} else {
this.effectivePattern = this.pattern;
}
UUIDComponent var6 = var5.getComponent(var1, UUIDComponent.getComponentType());
assert var6 != null;
PrototypePlayerBuilderToolSettings var7 = ToolOperation.PROTOTYPE_TOOL_SETTINGS.get(var6.getUuid());
this.packedPlacedBlockPositions = var7.addIgnoredPaintOperation();
this.brushRotation = this.getBrushRotation(var5);
}
@Override
class="kw">protected boolean executeBlock(int var1, int var2, int var3) {
Vector3i var4 = new Vector3i(var1 - this.currentCenterX, var2 - this.currentCenterY, var3 - this.currentCenterZ);
this.brushRotation.apply(var4);
var1 = this.currentCenterX + var4.x;
var2 = this.currentCenterY + var4.y;
var3 = this.currentCenterZ + var4.z;
if (var2 >= 0 && var2 < 320) {
if (this.edit.getBlock(var1, var2, var3) == 0) {
this.packedPlacedBlockPositions.add(BlockUtil.pack(var1, var2, var3));
}
if (this.random.nextInt(100) <= this.density) {
this.edit.setMaterialWithFiller(var1, var2, var3, Material.fromPattern(this.effectivePattern, this.random));
}
class="kw">return true;
} else {
class="kw">return true;
}
}
}