Make biome changes undoable

This commit is contained in:
Brokkonaut
2019-01-21 19:07:29 +01:00
committed by IronApollo
parent 0b9607affd
commit 2bae161e5c
2 changed files with 107 additions and 0 deletions

View File

@ -28,15 +28,19 @@ import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.world.block.BaseBlock;
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 javax.annotation.Nullable;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import java.util.ArrayList;
@ -70,6 +74,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) {