Add block registration to Forge WorldEdit.

This commit is contained in:
Matthew Miller 2018-01-03 17:18:43 +10:00
parent 3aff57d071
commit d12ad2548a
2 changed files with 49 additions and 0 deletions

View File

@ -21,6 +21,7 @@
import com.sk89q.jnbt.CompoundTag;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.type.BlockType;
import com.sk89q.worldedit.extent.Extent;
import static com.google.common.base.Preconditions.checkNotNull;
@ -49,6 +50,22 @@ public class LazyBlock extends BaseBlock {
* @param extent the extent to later load the full block data from
* @param position the position to later load the full block data from
*/
public LazyBlock(BlockType type, Extent extent, Vector position) {
super(type);
checkNotNull(extent);
checkNotNull(position);
this.extent = extent;
this.position = position;
}
/**
* Create a new lazy block.
*
* @param type the block type
* @param extent the extent to later load the full block data from
* @param position the position to later load the full block data from
*/
@Deprecated
public LazyBlock(int type, Extent extent, Vector position) {
super(type);
checkNotNull(extent);
@ -65,6 +82,24 @@ public LazyBlock(int type, Extent extent, Vector position) {
* @param extent the extent to later load the full block data from
* @param position the position to later load the full block data from
*/
@Deprecated
public LazyBlock(BlockType type, int data, Extent extent, Vector position) {
super(type, data);
checkNotNull(extent);
checkNotNull(position);
this.extent = extent;
this.position = position;
}
/**
* Create a new lazy block.
*
* @param type the block type
* @param data the data value
* @param extent the extent to later load the full block data from
* @param position the position to later load the full block data from
*/
@Deprecated
public LazyBlock(int type, int data, Extent extent, Vector position) {
super(type, data);
checkNotNull(extent);
@ -83,6 +118,11 @@ public void setData(int data) {
throw new UnsupportedOperationException("This object is immutable");
}
@Override
public void setType(BlockType type) {
throw new UnsupportedOperationException("This object is immutable");
}
@Override
public CompoundTag getNbtData() {
if (!loaded) {

View File

@ -19,6 +19,8 @@
package com.sk89q.worldedit.forge;
import net.minecraft.block.Block;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import org.apache.logging.log4j.Logger;
import com.google.common.base.Joiner;
@ -54,8 +56,11 @@
import net.minecraftforge.fml.common.event.FMLServerStoppingEvent;
import net.minecraftforge.fml.common.eventhandler.Event.Result;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.block.BlockType;
import static com.google.common.base.Preconditions.checkNotNull;
import static net.minecraft.block.Block.REGISTRY;
/**
* The Forge implementation of WorldEdit.
@ -121,6 +126,10 @@ public void serverAboutToStart(FMLServerAboutToStartEvent event) {
} else {
this.provider = new ForgePermissionsProvider.VanillaPermissionsProvider(platform);
}
for (Block block : REGISTRY) {
com.sk89q.worldedit.blocks.type.BlockTypes.registerBlock(new com.sk89q.worldedit.blocks.type.BlockType(REGISTRY.getNameForObject(block).toString()));
}
}
@EventHandler