HyCodeYourTale
classpublicPriority 3

DimensionsOperation

com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.dimensions.DimensionsOperation

extends SequenceBrushOperation

0

Methods

0

Public Methods

0

Fields

1

Constructors

Constants

BuilderCodec<DimensionsOperation>CODEC= BuilderCodec.builder(DimensionsOperation.class, DimensionsOperation::new) .append(new Keyed...

Constructors

public
DimensionsOperation()

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.dimensions;

import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfig;
import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfigCommandExecutor;
import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.component.ComponentAccessor;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.math.util.MathUtil;
import com.hypixel.hytale.server.core.command.system.arguments.types.RelativeInteger;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;

public class DimensionsOperation extends SequenceBrushOperation {
   public static final BuilderCodec<DimensionsOperation> CODEC = BuilderCodec.builder(DimensionsOperation.class, DimensionsOperation::new)
      .append(new KeyedCodec<>("Width", RelativeInteger.CODEC), (op, val) -> op.widthArg = val, op -> op.widthArg)
      .documentation("Sets the width of the brush to the specified amount, optionally relative to the existing amount when using prefixing with tilde")
      .add()
      .<RelativeInteger>append(new KeyedCodec<>("Height", RelativeInteger.CODEC), (op, val) -> op.heightArg = val, op -> op.heightArg)
      .documentation("Sets the height of the brush to the specified amount, optionally relative to the existing amount when using prefixing with tilde")
      .add()
      .documentation("Set, add, or subtract from the dimensions of the brush area")
      .build();
   @Nonnull
   public RelativeInteger widthArg = new RelativeInteger(3, false);
   @Nonnull
   public RelativeInteger heightArg = new RelativeInteger(3, false);

   public DimensionsOperation() {
      super("Modify Dimensions", "Set, add, or subtract from the dimensions of the brush area", false);
   }

   @Override
   public void modifyBrushConfig(
      @Nonnull Ref<EntityStore> ref,
      @Nonnull BrushConfig brushConfig,
      @Nonnull BrushConfigCommandExecutor brushConfigCommandExecutor,
      @Nonnull ComponentAccessor<EntityStore> componentAccessor
   ) {
      int width = this.widthArg.resolve(brushConfig.getShapeWidth());
      int height = this.heightArg.resolve(brushConfig.getShapeHeight());
      brushConfig.setShapeWidth(MathUtil.clamp(width, 1, 75));
      brushConfig.setShapeHeight(MathUtil.clamp(height, 1, 75));
   }
}