Use expression for brush radius

This commit is contained in:
Jesse Boyd
2018-08-22 02:58:10 +10:00
8 changed files with 126 additions and 45 deletions

View File

@ -22,6 +22,9 @@ package com.sk89q.worldedit;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.internal.expression.Expression;
import com.sk89q.worldedit.internal.expression.runtime.Constant;
import com.sk89q.worldedit.internal.expression.runtime.RValue;
import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.blocks.BaseItem;
import com.sk89q.worldedit.entity.Player;
@ -338,6 +341,15 @@ public class WorldEdit {
}
}
public void checkMaxBrushRadius(Expression radius) throws MaxBrushRadiusException {
if (getConfiguration().maxBrushRadius > 0) {
RValue r = radius.getRoot();
if (r instanceof Constant && ((Constant) r).getValue() > getConfiguration().maxBrushRadius) {
throw new MaxBrushRadiusException();
}
}
}
/**
* Get a file relative to the defined working directory. If the specified
* path is absolute, then the working directory is not used.