Merge remote-tracking branch 'refs/remotes/isfawe/new-vector-system' into new-vector-system

This commit is contained in:
IronApollo
2019-01-13 02:00:14 -05:00
214 changed files with 1720 additions and 2063 deletions

View File

@ -24,9 +24,6 @@ import com.sk89q.worldedit.MaxChangedBlocksException;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.blocks.BaseItem;
import com.sk89q.worldedit.blocks.BaseItemStack;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.extension.platform.Platform;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.function.mask.Mask;
@ -36,6 +33,8 @@ import com.sk89q.worldedit.math.Vector3;
import com.sk89q.worldedit.regions.Region;
import com.sk89q.worldedit.util.Direction;
import com.sk89q.worldedit.util.TreeGenerator;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.weather.WeatherType;
/**

View File

@ -84,7 +84,4 @@ public class BaseBiome {
public int hashCode() {
return id;
}
}

View File

@ -19,13 +19,13 @@
package com.sk89q.worldedit.world.biome;
import static com.google.common.base.Preconditions.checkNotNull;
import com.google.common.base.Function;
import com.sk89q.worldedit.world.registry.BiomeRegistry;
import javax.annotation.Nullable;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Returns the name of a biome using a given {@code BiomeRegistry}.
*/

View File

@ -19,6 +19,8 @@
package com.sk89q.worldedit.world.block;
import static com.google.common.base.Preconditions.checkArgument;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.extent.Extent;
@ -103,7 +105,7 @@ public interface BlockType extends FawePattern, Comparable<BlockTypes> {
}
/**
* Gets the properties of this BlockType in a key->property mapping.
* Gets the properties of this BlockType in a {@code key->property} mapping.
*
* @return The properties map
*/
@ -142,7 +144,9 @@ public interface BlockType extends FawePattern, Comparable<BlockTypes> {
*/
@Deprecated
default <V> Property<V> getProperty(String name) {
return getPropertyMap().get(name);
Property<V> property = getPropertyMap().get(name);
checkArgument(property != null, "%s has no property named %s", this, name);
return property;
}
default boolean hasProperty(PropertyKey key) {
@ -150,7 +154,9 @@ public interface BlockType extends FawePattern, Comparable<BlockTypes> {
}
default <V> Property<V> getProperty(PropertyKey key) {
return getPropertyMap().get(key.getId());
Property<V> property = getPropertyMap().get(key.getId());
checkArgument(property != null, "%s has no property named %s", this, key.getId());
return property;
}
/**
@ -167,6 +173,13 @@ public interface BlockType extends FawePattern, Comparable<BlockTypes> {
*/
List<BlockState> getAllStates();
/**
* Gets a state of this BlockType with the given properties.
*
* @return The state, if it exists
*/
BlockState getState(Map<Property<?>, Object> key);
/**
* Gets whether this block type has an item representation.
*

View File

@ -19,6 +19,8 @@
package com.sk89q.worldedit.world.block;
import static com.google.common.base.Preconditions.checkArgument;
import com.boydti.fawe.Fawe;
import com.boydti.fawe.command.SuggestInputParseException;
import com.boydti.fawe.util.MathMan;
@ -219,19 +221,24 @@ public enum BlockTypes implements BlockType {
DARK_PRISMARINE_SLAB,
DARK_PRISMARINE_STAIRS,
DAYLIGHT_DETECTOR,
DEAD_BRAIN_CORAL,
DEAD_BRAIN_CORAL_BLOCK,
DEAD_BRAIN_CORAL_FAN,
DEAD_BRAIN_CORAL_WALL_FAN,
DEAD_BUBBLE_CORAL,
DEAD_BUBBLE_CORAL_BLOCK,
DEAD_BUBBLE_CORAL_FAN,
DEAD_BUBBLE_CORAL_WALL_FAN,
DEAD_BUSH,
DEAD_FIRE_CORAL,
DEAD_FIRE_CORAL_BLOCK,
DEAD_FIRE_CORAL_FAN,
DEAD_FIRE_CORAL_WALL_FAN,
DEAD_HORN_CORAL,
DEAD_HORN_CORAL_BLOCK,
DEAD_HORN_CORAL_FAN,
DEAD_HORN_CORAL_WALL_FAN,
DEAD_TUBE_CORAL,
DEAD_TUBE_CORAL_BLOCK,
DEAD_TUBE_CORAL_FAN,
DEAD_TUBE_CORAL_WALL_FAN,
@ -654,11 +661,6 @@ public enum BlockTypes implements BlockType {
YELLOW_WOOL,
ZOMBIE_HEAD,
ZOMBIE_WALL_HEAD,
DEAD_BRAIN_CORAL,
DEAD_BUBBLE_CORAL,
DEAD_FIRE_CORAL,
DEAD_HORN_CORAL,
DEAD_TUBE_CORAL,
;
@ -825,6 +827,24 @@ public enum BlockTypes implements BlockType {
return IntStream.of(settings.stateOrdinals).filter(i -> i != -1).mapToObj(i -> states[i]).collect(Collectors.toList());
}
public BlockState getState(Map<Property<?>, Object> key) {
int id = getInternalId();
for (Map.Entry<Property<?>, Object> iter : key.entrySet()) {
Property<?> prop = iter.getKey();
Object value = iter.getValue();
/*
* TODO:
* This is likely wrong. The only place this seems to currently (Dec 23 2018)
* be invoked is via ForgeWorld, and value is a String when invoked there...
*/
AbstractProperty btp = settings.propertiesMap.get(prop.getName());
checkArgument(btp != null, "%s has no property named %s", this, prop.getName());
id = btp.modify(id, btp.getValueFor((String)value));
}
return withStateId(id);
}
@Deprecated
public int getMaxStateId() {
return settings.permutations;

View File

@ -245,15 +245,20 @@ public enum ItemTypes implements ItemType {
DARK_PRISMARINE_SLAB,
DARK_PRISMARINE_STAIRS,
DAYLIGHT_DETECTOR,
DEAD_BRAIN_CORAL,
DEAD_BRAIN_CORAL_BLOCK,
DEAD_BRAIN_CORAL_FAN,
DEAD_BUBBLE_CORAL,
DEAD_BUBBLE_CORAL_BLOCK,
DEAD_BUBBLE_CORAL_FAN,
DEAD_BUSH,
DEAD_FIRE_CORAL,
DEAD_FIRE_CORAL_BLOCK,
DEAD_FIRE_CORAL_FAN,
DEAD_HORN_CORAL,
DEAD_HORN_CORAL_BLOCK,
DEAD_HORN_CORAL_FAN,
DEAD_TUBE_CORAL,
DEAD_TUBE_CORAL_BLOCK,
DEAD_TUBE_CORAL_FAN,
DEBUG_STICK,

View File

@ -22,9 +22,10 @@ package com.sk89q.worldedit.world.registry;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.biome.BiomeData;
import javax.annotation.Nullable;
import java.util.List;
import javax.annotation.Nullable;
/**
* Provides information on biomes.
*/
@ -54,4 +55,5 @@ public interface BiomeRegistry {
*/
@Nullable
BiomeData getData(BaseBiome biome);
}

View File

@ -45,4 +45,4 @@ public class BundledBlockRegistry implements BlockRegistry {
return Collections.emptyMap(); // Oof
}
}
}

View File

@ -22,10 +22,11 @@ package com.sk89q.worldedit.world.registry;
import com.sk89q.worldedit.world.biome.BaseBiome;
import com.sk89q.worldedit.world.biome.BiomeData;
import javax.annotation.Nullable;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
/**
* A biome registry that knows nothing.
*/

View File

@ -22,7 +22,14 @@
package com.sk89q.worldedit.world.snapshot;
import com.sk89q.worldedit.world.DataException;
import com.sk89q.worldedit.world.storage.*;
import com.sk89q.worldedit.world.storage.ChunkStore;
import com.sk89q.worldedit.world.storage.FileLegacyChunkStore;
import com.sk89q.worldedit.world.storage.FileMcRegionChunkStore;
import com.sk89q.worldedit.world.storage.TrueZipLegacyChunkStore;
import com.sk89q.worldedit.world.storage.TrueZipMcRegionChunkStore;
import com.sk89q.worldedit.world.storage.ZippedLegacyChunkStore;
import com.sk89q.worldedit.world.storage.ZippedMcRegionChunkStore;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;

View File

@ -19,10 +19,11 @@
package com.sk89q.worldedit.world.snapshot;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Calendar;
import javax.annotation.Nullable;
/**
* A name parser attempts to make sense of a filename for a snapshot.
*/

View File

@ -23,7 +23,6 @@ package com.sk89q.worldedit.world.snapshot;
import com.sk89q.worldedit.world.storage.MissingWorldException;
import javax.annotation.Nullable;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
@ -31,6 +30,8 @@ import java.util.Calendar;
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
/**
* A repository contains zero or more snapshots.
*/

View File

@ -30,6 +30,7 @@ import com.sk89q.worldedit.world.DataException;
import com.sk89q.worldedit.world.chunk.Chunk;
import com.sk89q.worldedit.world.storage.ChunkStore;
import com.sk89q.worldedit.world.storage.MissingChunkException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;

View File

@ -45,8 +45,8 @@ public abstract class ChunkStore implements Closeable {
public static final int DATA_VERSION_MC_1_13 = 1519;
/**
* >> to chunk
* << from chunk
* {@code >>} - to chunk
* {@code <<} - from chunk
*/
public static final int CHUNK_SHIFTS = 4;

View File

@ -29,6 +29,7 @@ import com.sk89q.worldedit.world.World;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import java.util.zip.GZIPInputStream;
/**

View File

@ -19,12 +19,12 @@
package com.sk89q.worldedit.world.storage;
import static com.google.common.base.Preconditions.checkNotNull;
import com.sk89q.jnbt.ListTag;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.util.Location;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Utility methods for working with NBT data used in Minecraft.
*/

View File

@ -24,11 +24,11 @@ import com.sk89q.worldedit.world.DataException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.Enumeration;
/**
* Represents the chunk store used by Minecraft alpha but zipped.

View File

@ -26,11 +26,11 @@ import com.sk89q.worldedit.world.DataException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.Enumeration;
/**
* Represents the chunk store used by Minecraft alpha but zipped.