Make biome changes undoable

This commit is contained in:
Brokkonaut
2019-01-21 19:07:29 +01:00
parent ba8bde0b35
commit 432a201266
2 changed files with 106 additions and 0 deletions

View File

@ -24,13 +24,16 @@ import static com.google.common.base.Preconditions.checkNotNull;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.entity.BaseEntity;
import com.sk89q.worldedit.entity.Entity;
import com.sk89q.worldedit.history.change.BiomeChange;
import com.sk89q.worldedit.history.change.BlockChange;
import com.sk89q.worldedit.history.change.EntityCreate;
import com.sk89q.worldedit.history.change.EntityRemove;
import com.sk89q.worldedit.history.changeset.ChangeSet;
import com.sk89q.worldedit.math.BlockVector2;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.regions.Region;
import com.sk89q.worldedit.util.Location;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockStateHolder;
@ -65,6 +68,13 @@ public class ChangeSetExtent extends AbstractDelegateExtent {
return super.setBlock(location, block);
}
@Override
public boolean setBiome(BlockVector2 position, BaseBiome biome) {
BaseBiome previous = getBiome(position);
changeSet.add(new BiomeChange(position, previous, new BaseBiome(biome)));
return super.setBiome(position, biome);
}
@Nullable
@Override
public Entity createEntity(Location location, BaseEntity state) {