classpublicPriority 3
PersistentDataOperation
com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.saveandload.PersistentDataOperation
extends SequenceBrushOperation
0
Methods
0
Public Methods
3
Fields
1
Constructors
Constants
BuilderCodec<PersistentDataOperation>CODEC= BuilderCodec.builder(PersistentDataOperation.class, PersistentDataOperation::new)
.append(n...
Constructors
public
PersistentDataOperation()Fields
Public Fields (3)
public
Integer modifierArgpublic
ArgTypes.IntegerOperation operationArgpublic
String variableNameArgInheritance
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.saveandload;
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.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.codec.codecs.EnumCodec;
import com.hypixel.hytale.component.ComponentAccessor;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;
public class PersistentDataOperation extends SequenceBrushOperation {
public static final BuilderCodec<PersistentDataOperation> CODEC = BuilderCodec.builder(PersistentDataOperation.class, PersistentDataOperation::new)
.append(new KeyedCodec<>("StoredName", Codec.STRING), (op, val) -> op.variableNameArg = val, op -> op.variableNameArg)
.documentation("The name of the variable to modify")
.add()
.<ArgTypes.IntegerOperation>append(
new KeyedCodec<>("Operation", new EnumCodec<>(ArgTypes.IntegerOperation.class)), (op, val) -> op.operationArg = val, op -> op.operationArg
)
.documentation("The operation to perform on the variable using the modifier")
.add()
.<Integer>append(new KeyedCodec<>("Modifier", Codec.INTEGER), (op, val) -> op.modifierArg = val, op -> op.modifierArg)
.documentation("The value to modify the variable by")
.add()
.documentation("Store and operate on data that sticks around between executions")
.build();
@Nonnull
public String variableNameArg = "Undefined";
@Nonnull
public ArgTypes.IntegerOperation operationArg = ArgTypes.IntegerOperation.SET;
@Nonnull
public Integer modifierArg = 0;
public PersistentDataOperation() {
super("Persistent Data", "Store and operate on data that sticks around between executions", false);
}
@Override
public void modifyBrushConfig(
@Nonnull Ref<EntityStore> ref,
@Nonnull BrushConfig brushConfig,
@Nonnull BrushConfigCommandExecutor brushConfigCommandExecutor,
@Nonnull ComponentAccessor<EntityStore> componentAccessor
) {
int persistentVariable = brushConfigCommandExecutor.getPersistentVariableOrDefault(this.variableNameArg, 0);
System.out.println(this.variableNameArg + ": " + persistentVariable);
int newValue = this.operationArg.operate(persistentVariable, this.modifierArg);
brushConfigCommandExecutor.setPersistentVariable(this.variableNameArg, newValue);
}
}