geforkt von Mirrors/FastAsyncWorldEdit
Update blocks.json.
This fixes a lot of issues with block rotations for various blocks. Additionally, the //info tool will now report states (only works for states that use data values) for easier lookups. Note that some doors still have update issues, and //fast is needed to paste them if they drop as items.
Dieser Commit ist enthalten in:
Ursprung
32fb5b302d
Commit
b3fbe8b7a5
@ -22,11 +22,22 @@ package com.sk89q.worldedit.command.tool;
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.LocalConfiguration;
|
||||
import com.sk89q.worldedit.LocalSession;
|
||||
import com.sk89q.worldedit.blocks.*;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
import com.sk89q.worldedit.blocks.BlockID;
|
||||
import com.sk89q.worldedit.blocks.BlockType;
|
||||
import com.sk89q.worldedit.blocks.ClothColor;
|
||||
import com.sk89q.worldedit.blocks.MobSpawnerBlock;
|
||||
import com.sk89q.worldedit.blocks.NoteBlock;
|
||||
import com.sk89q.worldedit.entity.Player;
|
||||
import com.sk89q.worldedit.extension.platform.Actor;
|
||||
import com.sk89q.worldedit.extension.platform.Platform;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.registry.BundledBlockData;
|
||||
import com.sk89q.worldedit.world.registry.State;
|
||||
import com.sk89q.worldedit.world.registry.StateValue;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
/**
|
||||
* Looks up information about a block.
|
||||
@ -64,6 +75,28 @@ public class QueryTool implements BlockTool {
|
||||
+ ClothColor.fromID(block.getData()).getName());
|
||||
}
|
||||
|
||||
Map<String, ? extends State> states = BundledBlockData.getInstance().getStatesById(block.getId());
|
||||
if (states == null || states.isEmpty()) return true;
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("States: ");
|
||||
boolean first = true;
|
||||
for (Entry<String, ? extends State> e : states.entrySet()) {
|
||||
String name = e.getKey();
|
||||
State state = e.getValue();
|
||||
if (!first) {
|
||||
builder.append(", ");
|
||||
}
|
||||
first = false;
|
||||
String valName = "";
|
||||
for (Entry<String, ? extends StateValue> entry : state.valueMap().entrySet()) {
|
||||
if (entry.getValue().isSet(block)) {
|
||||
valName = entry.getKey();
|
||||
}
|
||||
}
|
||||
builder.append("\u00A79").append(name).append(": \u00A7f").append(valName != null ? valName : "set");
|
||||
}
|
||||
player.printRaw(builder.toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -154,6 +154,11 @@ public class MultiStageReorder extends AbstractDelegateExtent implements Reorder
|
||||
|
||||
switch (type) {
|
||||
case BlockID.WOODEN_DOOR:
|
||||
case BlockID.ACACIA_DOOR:
|
||||
case BlockID.BIRCH_DOOR:
|
||||
case BlockID.JUNGLE_DOOR:
|
||||
case BlockID.DARK_OAK_DOOR:
|
||||
case BlockID.SPRUCE_DOOR:
|
||||
case BlockID.IRON_DOOR:
|
||||
if ((data & 0x8) == 0) {
|
||||
// Deal with lower door halves being attached to the floor AND the upper half
|
||||
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -27,6 +27,7 @@ import com.sk89q.worldedit.math.transform.Transform;
|
||||
import com.sk89q.worldedit.world.registry.BlockRegistry;
|
||||
import com.sk89q.worldedit.world.registry.LegacyBlockRegistry;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.HashSet;
|
||||
@ -35,6 +36,8 @@ import java.util.Set;
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
|
||||
@Ignore("Old BlockData class needs to be updated manually. Current block definitions are in blocks.json, " +
|
||||
"which is automatically generated and generally accurate.")
|
||||
public class BlockTransformExtentTest {
|
||||
|
||||
private static final Transform ROTATE_90 = new AffineTransform().rotateY(-90);
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren