Cleanup a little bit more code.

This commit is contained in:
Matthew Miller
2018-08-06 19:08:15 +10:00
parent 526aa6cf49
commit 5f4cc3e694
21 changed files with 103 additions and 268 deletions

View File

@ -83,25 +83,6 @@ public class BaseBlock implements BlockStateHolder<BaseBlock>, TileEntityBlock {
this.nbtData = nbtData;
}
/**
* Construct a block with the given ID and data value.
*
* @param id ID value
* @param data data value
*/
@Deprecated
public BaseBlock(int id, int data) {
try {
this.blockState = LegacyMapper.getInstance().getBlockFromLegacy(id, data);
if (this.blockState == null) {
this.blockState = BlockTypes.AIR.getDefaultState();
}
} catch (Exception e) {
System.out.println(id);
e.printStackTrace();
}
}
/**
* Create a clone of another block.
*

View File

@ -28,81 +28,64 @@ import com.sk89q.worldedit.world.block.BlockTypes;
*/
@Deprecated
public final class BlockID {
public static final int SAPLING = 6;
public static final int BED = 26;
public static final int POWERED_RAIL = 27; // GOLDEN_RAIL
public static final int DETECTOR_RAIL = 28;
public static final int LONG_GRASS = 31; // TALLGRASS
public static final int DEAD_BUSH = 32; // DEADBUSH
public static final int PISTON_EXTENSION = 34; // PISTON_HEAD
public static final int YELLOW_FLOWER = 37;
public static final int RED_FLOWER = 38;
public static final int BROWN_MUSHROOM = 39;
public static final int RED_MUSHROOM = 40;
public static final int STEP = 44; // STONE_SLAB
public static final int TORCH = 50;
public static final int REDSTONE_WIRE = 55;
public static final int CROPS = 59; // WHEAT
public static final int SIGN_POST = 63; // STANDING_SIGN
public static final int WOODEN_DOOR = 64; // WOODEN_DOOR
public static final int LADDER = 65;
public static final int MINECART_TRACKS = 66; // RAIL
public static final int WALL_SIGN = 68;
public static final int LEVER = 69;
public static final int STONE_PRESSURE_PLATE = 70;
public static final int IRON_DOOR = 71;
public static final int WOODEN_PRESSURE_PLATE = 72;
public static final int REDSTONE_TORCH_OFF = 75; // UNLIT_REDSTONE_TORCH
public static final int REDSTONE_TORCH_ON = 76; // LIT_REDSTONE_TORCH
public static final int STONE_BUTTON = 77;
public static final int SNOW = 78; // SNOW_LAYER
public static final int CACTUS = 81;
public static final int REED = 83; // REEDS
public static final int FENCE = 85;
public static final int SLOW_SAND = 88; // SOUL_SAND
public static final int CAKE_BLOCK = 92; // CAKE
public static final int REDSTONE_REPEATER_OFF = 93; // UNPOWERED_REPEATER
public static final int REDSTONE_REPEATER_ON = 94; // POWERED_REPEATER
public static final int TRAP_DOOR = 96; // TRAPDOOR
public static final int PUMPKIN_STEM = 104;
public static final int MELON_STEM = 105;
public static final int VINE = 106;
public static final int FENCE_GATE = 107;
public static final int LILY_PAD = 111; // WATERLILY
public static final int NETHER_WART = 115;
public static final int ENCHANTMENT_TABLE = 116; // ENCHANTING_TABLE
public static final int BREWING_STAND = 117;
public static final int CAULDRON = 118;
public static final int END_PORTAL_FRAME = 120;
public static final int WOODEN_STEP = 126; // WOODEN_SLAB
public static final int COCOA_PLANT = 127; // COCOA
public static final int TRIPWIRE_HOOK = 131;
public static final int TRIPWIRE = 132;
public static final int COBBLESTONE_WALL = 139;
public static final int FLOWER_POT = 140;
public static final int CARROTS = 141;
public static final int POTATOES = 142;
public static final int WOODEN_BUTTON = 143;
public static final int HEAD = 144; // SKULL
public static final int ANVIL = 145;
public static final int PRESSURE_PLATE_LIGHT = 147; // LIGHT_WEIGHTED_PRESSURE_PLATE
public static final int PRESSURE_PLATE_HEAVY = 148; // HEAVY_WEIGHTED_PRESSURE_PLATE
public static final int COMPARATOR_OFF = 149; // UNPOWERED_COMPARATOR
public static final int COMPARATOR_ON = 150; // COMPARATOR
public static final int DAYLIGHT_SENSOR = 151; // DAYLIGHT_DETECTOR
public static final int HOPPER = 154;
public static final int ACTIVATOR_RAIL = 157;
public static final int IRON_TRAP_DOOR = 167;
public static final int CARPET = 171;
public static final int DOUBLE_PLANT = 175;
public static final int STANDING_BANNER = 176;
public static final int WALL_BANNER = 177;
public static final int STEP2 = 182;
public static final int SPRUCE_DOOR = 193;
public static final int BIRCH_DOOR = 194;
public static final int JUNGLE_DOOR = 195;
public static final int ACACIA_DOOR = 196;
public static final int DARK_OAK_DOOR = 197;
static final int SAPLING = 6;
static final int POWERED_RAIL = 27; // GOLDEN_RAIL
static final int DETECTOR_RAIL = 28;
static final int LONG_GRASS = 31; // TALLGRASS
static final int DEAD_BUSH = 32; // DEADBUSH
static final int PISTON_EXTENSION = 34; // PISTON_HEAD
static final int YELLOW_FLOWER = 37;
static final int RED_FLOWER = 38;
static final int BROWN_MUSHROOM = 39;
static final int RED_MUSHROOM = 40;
static final int TORCH = 50;
static final int REDSTONE_WIRE = 55;
static final int CROPS = 59; // WHEAT
static final int SIGN_POST = 63; // STANDING_SIGN
static final int WOODEN_DOOR = 64; // WOODEN_DOOR
static final int LADDER = 65;
static final int MINECART_TRACKS = 66; // RAIL
static final int WALL_SIGN = 68;
static final int LEVER = 69;
static final int STONE_PRESSURE_PLATE = 70;
static final int IRON_DOOR = 71;
static final int WOODEN_PRESSURE_PLATE = 72;
static final int REDSTONE_TORCH_OFF = 75; // UNLIT_REDSTONE_TORCH
static final int REDSTONE_TORCH_ON = 76; // LIT_REDSTONE_TORCH
static final int STONE_BUTTON = 77;
static final int CACTUS = 81;
static final int REED = 83; // REEDS
static final int CAKE_BLOCK = 92; // CAKE
static final int REDSTONE_REPEATER_OFF = 93; // UNPOWERED_REPEATER
static final int REDSTONE_REPEATER_ON = 94; // POWERED_REPEATER
static final int TRAP_DOOR = 96; // TRAPDOOR
static final int PUMPKIN_STEM = 104;
static final int MELON_STEM = 105;
static final int VINE = 106;
static final int NETHER_WART = 115;
static final int COCOA_PLANT = 127; // COCOA
static final int TRIPWIRE_HOOK = 131;
static final int TRIPWIRE = 132;
static final int FLOWER_POT = 140;
static final int CARROTS = 141;
static final int POTATOES = 142;
static final int WOODEN_BUTTON = 143;
static final int ANVIL = 145;
static final int PRESSURE_PLATE_LIGHT = 147; // LIGHT_WEIGHTED_PRESSURE_PLATE
static final int PRESSURE_PLATE_HEAVY = 148; // HEAVY_WEIGHTED_PRESSURE_PLATE
static final int COMPARATOR_OFF = 149; // UNPOWERED_COMPARATOR
static final int COMPARATOR_ON = 150; // COMPARATOR
static final int ACTIVATOR_RAIL = 157;
static final int IRON_TRAP_DOOR = 167;
static final int CARPET = 171;
static final int DOUBLE_PLANT = 175;
static final int STANDING_BANNER = 176;
static final int WALL_BANNER = 177;
static final int SPRUCE_DOOR = 193;
static final int BIRCH_DOOR = 194;
static final int JUNGLE_DOOR = 195;
static final int ACACIA_DOOR = 196;
static final int DARK_OAK_DOOR = 197;
private BlockID() {
}

View File

@ -19,10 +19,7 @@
package com.sk89q.worldedit.blocks;
import static com.google.common.base.Preconditions.checkNotNull;
import com.sk89q.worldedit.PlayerDirection;
import com.sk89q.worldedit.world.block.BlockStateHolder;
import java.util.HashMap;
import java.util.Map;
@ -37,95 +34,6 @@ public enum BlockType {
;
/**
* HashSet for centralTopLimit.
*/
private static final Map<Integer, Double> centralTopLimit = new HashMap<>();
static {
centralTopLimit.put(BlockID.BED, 0.5625);
centralTopLimit.put(BlockID.BREWING_STAND, 0.875);
centralTopLimit.put(BlockID.CAKE_BLOCK, 0.4375);
for (int data = 6; data < 16; ++data) {
centralTopLimit.put(-16*BlockID.CAKE_BLOCK-data, 0.0);
}
centralTopLimit.put(BlockID.CAULDRON, 0.3125);
centralTopLimit.put(BlockID.COCOA_PLANT, 0.750);
centralTopLimit.put(BlockID.ENCHANTMENT_TABLE, 0.75);
for (int data = 0; data < 16; ++data) {
if ((data & 4) != 0) {
centralTopLimit.put(-16*BlockID.END_PORTAL_FRAME-data, 1.0);
} else {
centralTopLimit.put(-16*BlockID.END_PORTAL_FRAME-data, 0.8125);
}
centralTopLimit.put(-16*BlockID.HEAD-data, 0.75);
}
// Heads on the floor are lower
centralTopLimit.put(-16*BlockID.HEAD-1, 0.5);
centralTopLimit.put(-16*BlockID.HEAD-9, 0.5);
centralTopLimit.put(BlockID.FENCE, 1.5);
for (int data = 0; data < 8; ++data) {
centralTopLimit.put(-16*BlockID.STEP-data, 0.5);
centralTopLimit.put(-16*BlockID.WOODEN_STEP-data, 0.5);
centralTopLimit.put(-16*BlockID.STEP2-data, 0.5);
centralTopLimit.put(-16*BlockID.SNOW-data, 0.125*data);
centralTopLimit.put(-16*BlockID.SNOW-(data+8), 0.125*data);
}
centralTopLimit.put(BlockID.LILY_PAD, 0.015625);
centralTopLimit.put(BlockID.REDSTONE_REPEATER_ON, .125);
centralTopLimit.put(BlockID.REDSTONE_REPEATER_OFF, .125);
for (int data = 0; data < 4; ++data) {
centralTopLimit.put(-16*BlockID.TRAP_DOOR-(data+ 0), 0.1875); // closed lower trap doors
centralTopLimit.put(-16*BlockID.TRAP_DOOR-(data+ 4), 0.0); // opened lower trap doors
centralTopLimit.put(-16*BlockID.TRAP_DOOR-(data+ 8), 1.0); // closed upper trap doors
centralTopLimit.put(-16*BlockID.TRAP_DOOR-(data+12), 0.0); // opened upper trap doors
centralTopLimit.put(-16*BlockID.FENCE_GATE-(data+ 0), 1.5);
centralTopLimit.put(-16*BlockID.FENCE_GATE-(data+ 4), 0.0);
centralTopLimit.put(-16*BlockID.FENCE_GATE-(data+ 8), 1.5);
centralTopLimit.put(-16*BlockID.FENCE_GATE-(data+12), 0.0);
}
centralTopLimit.put(BlockID.SLOW_SAND, 0.875);
centralTopLimit.put(BlockID.COBBLESTONE_WALL, 1.5);
centralTopLimit.put(BlockID.FLOWER_POT, 0.375);
centralTopLimit.put(BlockID.COMPARATOR_OFF, .125);
centralTopLimit.put(BlockID.COMPARATOR_ON, .125);
centralTopLimit.put(BlockID.DAYLIGHT_SENSOR, 0.375);
centralTopLimit.put(BlockID.HOPPER, 0.625);
// Some default values to be used if no data value is given
centralTopLimit.put(BlockID.HEAD, 0.75);
centralTopLimit.put(BlockID.TRAP_DOOR, 1.0);
centralTopLimit.put(BlockID.FENCE_GATE, 1.5);
}
/**
* Returns the y offset a player falls to when falling onto the top of a block at xp+0.5/zp+0.5.
*
* @param id the block ID
* @param data the block data value
* @return the y offset
*/
public static double centralTopLimit(int id, int data) {
if (centralTopLimit.containsKey(-16*id-data))
return centralTopLimit.get(-16*id-data);
if (centralTopLimit.containsKey(id))
return centralTopLimit.get(id);
return 1;
}
/**
* Returns the y offset a player falls to when falling onto the top of a block at xp+0.5/zp+0.5.
*
* @param block the block
* @return the y offset
*/
public static double centralTopLimit(BlockStateHolder block) {
checkNotNull(block);
return centralTopLimit(block.getBlockType().getLegacyId(), 0);
}
private static final Map<Integer, PlayerDirection> dataAttachments = new HashMap<>();
private static final Map<Integer, PlayerDirection> nonDataAttachments = new HashMap<>();
static {